@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,700;1,500&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');

/* ══════════════════════════════════════
   ROOT & RESET
══════════════════════════════════════ */
:root{
  --c-navy:#0B1628;--c-navy2:#1E3252;
  --c-gold:#C4872A;--c-gold2:#DFA84A;
  --c-cream:#FAF7F2;--c-cream2:#F3EFE7;
  --c-border:#E4DDD3;
  --c-muted:#9BAAB8;--c-sub:#5A6B82;
  --c-green:#065F46;--c-green-bg:#ECFDF5;--c-green-border:#6EE7B7;
  --c-red:#991B1B;--c-red-bg:#FEF2F2;--c-red-border:#FCA5A5;
  --radius:16px;--radius-sm:10px;
  --shadow:0 2px 16px rgba(11,22,40,.09);
  --shadow-lg:0 12px 40px rgba(11,22,40,.14);
  --font-body:'Plus Jakarta Sans',system-ui,sans-serif;
  --font-display:'Playfair Display',Georgia,serif;
}
.tcr-root{font-family:var(--font-body);color:var(--c-navy);max-width:1320px;margin:0 auto;padding:0 0 60px}
.tcr-root *,tcr-root *::before,.tcr-root *::after{box-sizing:border-box}

/* ══════════════════════════════════════
   HERO STATS
══════════════════════════════════════ */
.tcr-hero{background:var(--c-navy);border-radius:24px;padding:0;margin-bottom:32px;overflow:hidden;position:relative}
.tcr-hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}
.tcr-hero-inner{display:grid;grid-template-columns:200px 1fr auto;align-items:center;gap:40px;padding:44px 52px;position:relative;z-index:1}
.tcr-score-block{text-align:center}
.tcr-score-num{font-family:var(--font-display);font-size:5rem;font-weight:700;color:var(--c-gold2);line-height:1;letter-spacing:-2px}
.tcr-score-stars{color:#F59E0B;font-size:1.3rem;letter-spacing:3px;margin:6px 0 4px}
.tcr-score-sub{font-size:.72rem;color:rgba(255,255,255,.4);font-weight:500;text-transform:uppercase;letter-spacing:.08em}
.tcr-bars-block{display:flex;flex-direction:column;gap:9px}
.tcr-bar-row{display:flex;align-items:center;gap:10px;font-size:.76rem}
.tcr-bar-lbl{color:var(--c-gold2);width:24px;text-align:right;font-weight:700;flex-shrink:0}
.tcr-bar-track{flex:1;height:8px;background:rgba(255,255,255,.08);border-radius:100px;overflow:hidden;min-width:160px}
.tcr-bar-fill{height:100%;background:linear-gradient(90deg,var(--c-gold),var(--c-gold2));border-radius:100px;transition:width .9s cubic-bezier(.22,.68,0,1.2);transition-delay:.2s}
.tcr-bar-pct{color:rgba(255,255,255,.35);width:34px;font-size:.69rem;font-weight:600}
.tcr-kpi-row{display:flex;flex-direction:column;gap:10px}
.tcr-kpi{text-align:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:14px 20px;min-width:90px}
.tcr-kpi-v{display:block;font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--c-gold2);line-height:1}
.tcr-kpi-l{display:block;font-size:.65rem;color:rgba(255,255,255,.35);margin-top:3px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}

/* ══════════════════════════════════════
   TOOLBAR
══════════════════════════════════════ */
.tcr-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:24px;padding:14px 18px;background:#fff;border:1.5px solid var(--c-border);border-radius:14px;box-shadow:var(--shadow)}
.tcr-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1}
.tcr-sel{padding:8px 12px;border:1.5px solid var(--c-border);border-radius:8px;font-family:var(--font-body);font-size:.82rem;color:var(--c-navy);background:var(--c-cream);outline:none;cursor:pointer;transition:border-color .2s;font-weight:500}
.tcr-sel:focus{border-color:var(--c-gold)}
.tcr-count-wrap{font-size:.8rem;color:var(--c-muted);white-space:nowrap;font-weight:500}
.tcr-count-wrap strong{color:var(--c-navy)}
.tcr-write-btn{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,var(--c-gold),var(--c-gold2));color:#fff;border:none;border-radius:9px;padding:10px 22px;font-family:var(--font-body);font-size:.85rem;font-weight:700;cursor:pointer;transition:all .25s;box-shadow:0 4px 16px rgba(196,135,42,.3);white-space:nowrap}
.tcr-write-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(196,135,42,.4)}

/* ══════════════════════════════════════
   SKELETON LOADING
══════════════════════════════════════ */
.tcr-skeleton-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tcr-skel-card{background:#fff;border:1.5px solid var(--c-border);border-radius:var(--radius);padding:22px}
.tcr-skel-head,.tcr-skel-line{background:linear-gradient(90deg,#f0ede8 25%,#faf7f2 50%,#f0ede8 75%);background-size:200% 100%;animation:tcr-shimmer 1.5s infinite;border-radius:6px}
.tcr-skel-head{height:42px;width:42px;border-radius:50%;float:left;margin-right:12px}
.tcr-skel-line{height:12px;margin-bottom:10px;clear:both}
.tcr-skel-line:first-of-type{width:60%;margin-top:4px}
.tcr-skel-s{width:40%}
.tcr-skel-m{width:80%}
@keyframes tcr-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ══════════════════════════════════════
   REVIEW GRID & CARDS
══════════════════════════════════════ */
.tcr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:8px}
.tcr-card{background:#fff;border:1.5px solid var(--c-border);border-radius:var(--radius);padding:22px 22px 18px;position:relative;transition:transform .28s cubic-bezier(.22,.68,0,1.1),box-shadow .28s,border-color .28s;overflow:hidden;animation:tcr-card-in .4s ease both}
@keyframes tcr-card-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.tcr-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--c-gold),var(--c-gold2));transform:scaleX(0);transform-origin:left;transition:transform .3s}
.tcr-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:rgba(196,135,42,.25)}.tcr-card:hover::before{transform:scaleX(1)}
.tcr-feat-pill{position:absolute;top:14px;right:14px;background:rgba(196,135,42,.1);color:var(--c-gold);border:1px solid rgba(196,135,42,.22);font-size:.58rem;font-weight:800;padding:3px 8px;border-radius:100px;letter-spacing:.06em;text-transform:uppercase}
.tcr-card-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.tcr-av{width:44px;height:44px;min-width:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;color:#fff;flex-shrink:0}
.tcr-av-meta{flex:1;min-width:0}
.tcr-av-name{font-size:.9rem;font-weight:700;color:var(--c-navy);line-height:1.2}
.tcr-av-co{font-size:.75rem;font-weight:600;color:var(--c-sub);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcr-av-loc{font-size:.7rem;color:var(--c-muted);margin-top:1px}
.tcr-card-stars{color:#F59E0B;font-size:.9rem;letter-spacing:1px;flex-shrink:0;margin-top:2px}
.tcr-svc-tag{display:inline-flex;align-items:center;background:var(--c-cream);border:1px solid var(--c-cream2);color:var(--c-sub);font-size:.67rem;font-weight:700;padding:3px 10px;border-radius:100px;margin-bottom:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tcr-card-body{font-size:.85rem;color:var(--c-sub);line-height:1.78;margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.tcr-card-foot{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--c-cream2);font-size:.7rem}
.tcr-verified{color:#0A7C55;font-weight:700;display:flex;align-items:center;gap:3px}
.tcr-date{color:var(--c-muted)}

/* ══════════════════════════════════════
   BOTTOM BAR
══════════════════════════════════════ */
.tcr-bottom-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 0;margin-top:4px}
.tcr-page-info{font-size:.8rem;color:var(--c-muted);font-weight:500}
.tcr-more-btn{background:var(--c-navy);color:#fff;border:none;border-radius:10px;padding:12px 28px;font-family:var(--font-body);font-size:.88rem;font-weight:700;cursor:pointer;transition:all .22s;letter-spacing:.01em}
.tcr-more-btn:hover{background:var(--c-navy2);transform:translateY(-2px);box-shadow:0 6px 20px rgba(11,22,40,.2)}
.tcr-spinner{display:flex;align-items:center;justify-content:center;padding:8px 0}
.tcr-spin-ring{width:28px;height:28px;border:3px solid var(--c-border);border-top-color:var(--c-gold);border-radius:50%;animation:tcr-spin .7s linear infinite}
@keyframes tcr-spin{to{transform:rotate(360deg)}}

/* ══════════════════════════════════════
   WRITE REVIEW MODAL
══════════════════════════════════════ */
.tcr-modal-overlay{position:fixed;inset:0;background:rgba(11,22,40,.6);z-index:999999;display:none;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.tcr-modal-overlay.tcr-open{display:flex}
.tcr-modal{background:#fff;border-radius:22px;width:100%;max-width:660px;max-height:92vh;overflow-y:auto;box-shadow:0 30px 80px rgba(11,22,40,.3);animation:tcr-modal-in .28s cubic-bezier(.34,1.46,.64,1)}
@keyframes tcr-modal-in{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
.tcr-modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:28px 28px 0;gap:16px}
.tcr-modal-tag{display:inline-flex;font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--c-gold);background:rgba(196,135,42,.08);border:1px solid rgba(196,135,42,.2);padding:3px 10px;border-radius:100px;margin-bottom:6px}
.tcr-modal-title{font-family:var(--font-display);font-size:1.55rem;font-weight:500;color:var(--c-navy);line-height:1.2;margin:0}
.tcr-modal-title em{font-style:italic;color:var(--c-gold)}
.tcr-modal-x{width:32px;height:32px;min-width:32px;border-radius:50%;border:1.5px solid var(--c-border);background:#fff;color:var(--c-sub);font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s;margin-top:4px}
.tcr-modal-x:hover{background:var(--c-red-bg);border-color:var(--c-red-border);color:var(--c-red)}
.tcr-modal-body{padding:20px 28px 28px}
.tcr-notice{padding:11px 14px;border-radius:9px;font-size:.83rem;font-weight:600;margin-bottom:16px;display:flex;align-items:flex-start;gap:8px;line-height:1.5}
.tcr-notice-ok{background:var(--c-green-bg);border:1.5px solid var(--c-green-border);color:var(--c-green)}
.tcr-notice-err{background:var(--c-red-bg);border:1.5px solid var(--c-red-border);color:var(--c-red)}
/* Stars */
.tcr-star-section{margin-bottom:16px}
.tcr-field-lbl{display:block;font-size:.72rem;font-weight:700;color:var(--c-navy);margin-bottom:5px;letter-spacing:.01em}
.tcr-star-picker{display:flex;flex-direction:row-reverse;gap:4px;width:fit-content;margin-bottom:4px}
.tcr-star-picker input{display:none}
.tcr-star-picker label{font-size:2.1rem;color:var(--c-border);cursor:pointer;transition:color .12s;line-height:1}
.tcr-star-picker input:checked~label,.tcr-star-picker label:hover,.tcr-star-picker label:hover~label{color:#F59E0B}
.tcr-rating-label{font-size:.82rem;font-weight:700;color:var(--c-gold)}
/* Form */
.tcr-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.tcr-field{display:flex;flex-direction:column;gap:4px}
.tcr-field small{font-size:.68rem;font-weight:400;color:var(--c-muted)}
.tcr-field-full{grid-column:1/-1}
.tcr-input{width:100%;padding:9px 13px;border:1.5px solid var(--c-border);border-radius:9px;font-family:var(--font-body);font-size:.85rem;color:var(--c-navy);background:var(--c-cream);outline:none;transition:border-color .2s,box-shadow .2s}
.tcr-input:focus{border-color:var(--c-gold);box-shadow:0 0 0 3px rgba(196,135,42,.12);background:#fff}
.tcr-input-err{border-color:var(--c-red)!important;box-shadow:0 0 0 3px rgba(153,27,27,.07)!important}
.tcr-input::placeholder{color:var(--c-muted)}
.tcr-textarea{resize:vertical;min-height:110px;line-height:1.6}
.tcr-cc{float:right;font-weight:500;color:var(--c-muted);font-size:.68rem}
.tcr-form-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:6px;border-top:1px solid var(--c-cream2)}
.tcr-privacy-note{font-size:.72rem;color:var(--c-muted);flex:1}
.tcr-submit-btn{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--c-navy),var(--c-navy2));color:#fff;font-family:var(--font-body);font-size:.88rem;font-weight:700;border:none;border-radius:9px;padding:12px 28px;cursor:pointer;transition:all .22s;box-shadow:0 4px 16px rgba(11,22,40,.2)}
.tcr-submit-btn:hover{transform:translateY(-2px);box-shadow:0 8px 26px rgba(11,22,40,.3)}
.tcr-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.tcr-btn-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:tcr-spin .7s linear infinite}

/* ══════════════════════════════════════
   INLINE WIDGET (auto-inject service pages)
══════════════════════════════════════ */
.tcrm-inject-wrap,.tcrm-auto-inject-wrap{background:var(--c-cream);border-top:1px solid var(--c-border);padding:52px 0}
.tcrm-inline-widget{max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,40px);font-family:var(--font-body)}
.tcrm-il-header{text-align:center;margin-bottom:32px}
.tcrm-il-badge{display:inline-flex;align-items:center;gap:6px;font-size:.67rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--c-gold);background:rgba(196,135,42,.08);border:1px solid rgba(196,135,42,.18);padding:4px 12px;border-radius:100px;margin-bottom:12px}
.tcrm-il-title{font-family:var(--font-display);font-size:1.8rem;font-weight:500;color:var(--c-navy);line-height:1.2}
.tcrm-il-title em{font-style:italic;color:var(--c-gold)}
.tcrm-il-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:28px}
.tcrm-il-card{background:#fff;border:1.5px solid var(--c-border);border-radius:var(--radius);padding:22px;transition:all .28s;position:relative;overflow:hidden}
.tcrm-il-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--c-gold),var(--c-gold2));transform:scaleX(0);transform-origin:left;transition:transform .3s}
.tcrm-il-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(196,135,42,.2)}.tcrm-il-card:hover::before{transform:scaleX(1)}
.tcrm-il-head{display:flex;align-items:flex-start;gap:11px;margin-bottom:12px}
.tcrm-il-av{width:42px;height:42px;min-width:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.83rem;color:#fff}
.tcrm-il-meta{flex:1;min-width:0}
.tcrm-il-name{font-size:.88rem;font-weight:700;color:var(--c-navy)}
.tcrm-il-sub{font-size:.71rem;color:var(--c-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.tcrm-il-co{font-weight:600;color:var(--c-sub)}
.tcrm-il-stars{color:#F59E0B;font-size:.84rem;letter-spacing:.5px;flex-shrink:0;margin-top:2px}
.tcrm-il-text{font-size:.84rem;color:var(--c-sub);line-height:1.76;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.tcrm-il-foot{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--c-cream2);font-size:.7rem}
.tcrm-il-verified{color:#0A7C55;font-weight:700}
.tcrm-il-date{color:var(--c-muted)}
.tcrm-il-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.tcrm-il-score-strip{display:flex;align-items:center;gap:9px}
.tcrm-il-score{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--c-navy)}
.tcrm-il-score-stars{color:#F59E0B;font-size:.9rem;letter-spacing:1px}
.tcrm-il-score-label{font-size:.74rem;color:var(--c-muted)}
.tcrm-il-all{display:inline-flex;align-items:center;gap:6px;background:var(--c-navy);color:#fff;border-radius:9px;padding:10px 20px;font-family:var(--font-body);font-size:.83rem;font-weight:700;transition:all .2s;text-decoration:none}
.tcrm-il-all:hover{background:var(--c-navy2);transform:translateY(-1px)}

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media(max-width:1024px){
  .tcr-hero-inner{grid-template-columns:160px 1fr;grid-template-rows:auto auto;gap:28px}
  .tcr-kpi-row{flex-direction:row;grid-column:1/-1}
  .tcr-kpi{flex:1}
  .tcrm-il-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  .tcr-grid{grid-template-columns:repeat(2,1fr);gap:14px}
  .tcr-skeleton-grid{grid-template-columns:repeat(2,1fr)}
  .tcr-hero-inner{grid-template-columns:1fr;padding:28px 22px;gap:20px}
  .tcr-kpi-row{display:grid;grid-template-columns:repeat(4,1fr)}
  .tcr-form-grid{grid-template-columns:1fr}
  .tcrm-il-grid{grid-template-columns:1fr}
}
@media(max-width:540px){
  .tcr-grid{grid-template-columns:1fr}
  .tcr-skeleton-grid{grid-template-columns:1fr}
  .tcr-toolbar{gap:8px;padding:10px 12px}
  .tcr-filters{gap:6px}
  .tcr-sel{font-size:.78rem;padding:7px 9px}
  .tcr-modal-head{padding:20px 18px 0}
  .tcr-modal-body{padding:16px 18px 22px}
  .tcr-hero-inner{padding:22px 16px}
  .tcr-kpi-row{grid-template-columns:repeat(2,1fr)}
  .tcr-bottom-bar{flex-direction:column;align-items:center}
}
