/* ─── TESTIMONIALS PAGE STYLES ─── */

    /* HERO */
    .tm-hero {
      background: linear-gradient(150deg, #0b1628 0%, #0d2152 55%, #0f172a 100%);
      padding: 80px 0 72px;
      position: relative;
      overflow: hidden;
    }
    .tm-hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse 900px 500px at 60% 30%, rgba(37,99,235,.18) 0%, transparent 70%);
      pointer-events: none;
    }
    .tm-hero-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: .8rem;
      font-weight: 600;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: #93c5fd;
      background: rgba(37,99,235,.15);
      border: 1px solid rgba(59,130,246,.3);
      padding: 6px 14px;
      border-radius: 100px;
      margin-bottom: 20px;
    }
    .tm-hero h1 {
      font-size: clamp(2rem, 4vw, 3.2rem);
      font-weight: 800;
      color: #fff;
      line-height: 1.15;
      margin-bottom: 16px;
    }
    .tm-hero h1 span {
      background: linear-gradient(90deg, #60a5fa, #38bdf8, #34d399);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .tm-hero-sub {
      font-size: 1.05rem;
      color: rgba(255,255,255,.65);
      max-width: 520px;
      margin: 0 auto 40px;
    }
    .tm-campaign-note {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      flex-wrap: wrap;
      margin: -18px auto 34px;
      padding: 10px 14px;
      border-radius: 14px;
      border: 1px solid rgba(96,165,250,.26);
      background: rgba(37,99,235,.14);
      color: rgba(255,255,255,.82);
      font-size: .88rem;
      font-weight: 700;
    }
    .tm-campaign-note i { color: #60a5fa; }
    .tm-campaign-note strong { color: #fff; }
    .tm-campaign-note a { color: #67e8f9; font-weight: 800; text-decoration: none; }
    .tm-campaign-note a:hover { color: #fff; }
    .tm-review-cta { display:inline-flex; align-items:center; justify-content:center; gap:9px; margin:0 auto 34px; padding:12px 20px; border:0; border-radius:999px; background:linear-gradient(135deg,#67e8f9,#facc15); color:#082033; font:inherit; font-weight:900; box-shadow:0 14px 34px rgba(103,232,249,.22); cursor:pointer; }
    .tm-review-cta:hover { transform:translateY(-1px); }
    .tm-review-link { display:inline-flex; align-items:center; gap:8px; margin-top:10px; border:0; background:none; color:var(--primary); font:inherit; font-size:.82rem; font-weight:800; cursor:pointer; padding:0; }
    .tm-rating-cta { margin:38px auto 0; width:min(100%,760px); display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px; border:1px solid #dbeafe; border-radius:18px; background:linear-gradient(135deg,#ffffff,#eff6ff); box-shadow:0 16px 42px rgba(15,23,42,.07); }
    .tm-rating-cta strong { display:block; color:var(--dark); font-size:1rem; }
    .tm-rating-cta span { display:block; margin-top:3px; color:var(--muted); font-size:.86rem; }
    .tm-rating-cta button { flex-shrink:0; border:0; border-radius:999px; padding:11px 17px; background:linear-gradient(135deg,#2563eb,#06b6d4); color:#fff; font:inherit; font-weight:900; cursor:pointer; }
    @media (max-width:575.98px) { .tm-rating-cta { flex-direction:column; align-items:flex-start; } .tm-rating-cta button { width:100%; } }
    .tm-review-modal { position:fixed; inset:0; z-index:10000; display:none; align-items:center; justify-content:center; padding:20px; }
    .tm-review-modal.is-open { display:flex; }
    .tm-review-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.62); backdrop-filter:blur(8px); }
    .tm-review-panel { position:relative; width:min(100%,720px); max-height:min(92vh,840px); overflow:auto; padding:28px; border-radius:22px; background:#fff; box-shadow:0 28px 90px rgba(0,0,0,.28); }
    .tm-review-close { position:absolute; top:16px; right:16px; width:38px; height:38px; border:1px solid #e2e8f0; border-radius:12px; background:#fff; color:#334155; display:flex; align-items:center; justify-content:center; cursor:pointer; }
    .tm-review-head { display:flex; gap:14px; align-items:flex-start; padding-right:44px; margin-bottom:22px; }
    .tm-review-icon { width:52px; height:52px; flex-shrink:0; border-radius:16px; display:flex; align-items:center; justify-content:center; background:#fff7ed; border:1px solid #fed7aa; }
    .tm-review-icon img { width:34px; height:34px; object-fit:contain; }
    .tm-review-head h2 { margin:0 0 6px; color:#0f172a; font-size:clamp(1.35rem,3vw,2rem); font-weight:900; letter-spacing:-.03em; }
    .tm-review-head p { margin:0; color:#64748b; }
    .tm-review-form { display:grid; gap:16px; }
    .tm-review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
    .tm-review-form label { display:grid; gap:7px; color:#334155; font-size:.88rem; font-weight:800; }
    .tm-review-form input, .tm-review-form select, .tm-review-form textarea { width:100%; border:1px solid #cbd5e1; border-radius:12px; padding:12px 13px; color:#0f172a; background:#fff; font:inherit; font-weight:600; outline:none; transition:border-color .16s, box-shadow .16s; }
    .tm-review-form textarea { resize:vertical; min-height:132px; }
    .tm-review-form input:focus, .tm-review-form select:focus, .tm-review-form textarea:focus { border-color:#2563eb; box-shadow:0 0 0 4px rgba(37,99,235,.12); }
    .tm-review-note { padding:11px 13px; border-radius:12px; background:#eff6ff; color:#1e40af; font-size:.84rem; font-weight:700; }
    .tm-review-alert { padding:11px 13px; border-radius:12px; background:#fef2f2; color:#991b1b; font-size:.88rem; font-weight:800; }
    .tm-review-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; padding-top:4px; }
    .tm-review-actions button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:11px 18px; border-radius:999px; font:inherit; font-weight:900; cursor:pointer; }
    .tm-review-cancel { border:1px solid #cbd5e1; background:#fff; color:#0f172a; }
    .tm-review-submit { border:0; background:linear-gradient(135deg,#2563eb,#06b6d4); color:#fff; }
    .tm-review-hp { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; }
    @media (max-width:575.98px) { .tm-review-modal { padding:10px; align-items:flex-end; } .tm-review-panel { padding:22px; border-radius:20px 20px 0 0; } .tm-review-grid { grid-template-columns:1fr; } .tm-review-actions { justify-content:stretch; } .tm-review-actions button { width:100%; } }
    /* Stars display */
    .tm-hero-stars {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      margin-bottom: 40px;
    }
    .tm-hero-stars .stars {
      display: flex;
      gap: 3px;
      color: #fbbf24;
      font-size: 1.1rem;
    }
    .tm-hero-stars .rating-num {
      font-size: 1.1rem;
      font-weight: 700;
      color: #fff;
    }
    .tm-hero-stars .rating-count {
      font-size: .85rem;
      color: rgba(255,255,255,.5);
    }
    /* Stat grid */
    .tm-stat-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 1px;
      background: rgba(255,255,255,.1);
      border: 1px solid rgba(255,255,255,.1);
      border-radius: 16px;
      overflow: hidden;
      margin-top: 16px;
    }
    .tm-stat {
      background: rgba(255,255,255,.04);
      padding: 24px 20px;
      text-align: center;
      transition: background .2s;
    }
    .tm-stat:hover { background: rgba(255,255,255,.08); }
    .tm-stat-num {
      font-size: 2rem;
      font-weight: 800;
      color: #fff;
      line-height: 1;
      display: block;
      margin-bottom: 6px;
    }
    .tm-stat-label {
      font-size: .8rem;
      color: rgba(255,255,255,.5);
      font-weight: 500;
    }
    .tm-stat-num .accent { color: #60a5fa; }

    /* LOGOS TICKER */
    .tm-logos-section {
      background: var(--light);
      border-bottom: 1px solid var(--border);
      padding: 28px 0;
      overflow: hidden;
    }
    .tm-logos-label {
      text-align: center;
      font-size: .75rem;
      font-weight: 600;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: 20px;
    }
    .tm-ticker-wrap {
      overflow: hidden;
      -webkit-mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
      mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
    }
    .tm-ticker-track {
      display: flex;
      gap: 0;
      animation: tmTicker 28s linear infinite;
      width: max-content;
    }
    .tm-ticker-track:hover { animation-play-state: paused; }
    @keyframes tmTicker {
      0%   { transform: translateX(0); }
      100% { transform: translateX(-50%); }
    }
    .tm-logo-item {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0 36px;
      opacity: .45;
      transition: opacity .2s;
      white-space: nowrap;
      font-size: .9rem;
      font-weight: 700;
      color: var(--dark3);
      letter-spacing: -.01em;
      flex-shrink: 0;
    }
    .tm-logo-item:hover { opacity: .85; }
    .tm-logo-item i { margin-right: 7px; font-size: 1.1rem; }

    /* FEATURED QUOTE */
    .tm-featured-section {
      background: #fff;
      padding: 72px 0 64px;
      border-bottom: 1px solid var(--border);
    }
    .tm-featured-card {
      background: linear-gradient(135deg, #eff6ff 0%, #f0fdf4 100%);
      border: 1px solid #bfdbfe;
      border-radius: 20px;
      padding: 48px 52px;
      position: relative;
      overflow: hidden;
    }
    .tm-featured-card::before {
      content: '\201C';
      position: absolute;
      top: -20px;
      left: 32px;
      font-size: 12rem;
      line-height: 1;
      color: #bfdbfe;
      font-family: Georgia, serif;
      pointer-events: none;
    }
    .tm-featured-quote {
      font-size: clamp(1.1rem, 2vw, 1.35rem);
      font-weight: 500;
      color: var(--dark);
      line-height: 1.7;
      position: relative;
      z-index: 1;
    }
    .tm-featured-author {
      display: flex;
      align-items: center;
      gap: 16px;
      margin-top: 32px;
    }
    .tm-featured-avatar {
      width: 56px;
      height: 56px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.2rem;
      font-weight: 700;
      flex-shrink: 0;
    }
    .tm-featured-name {
      font-weight: 700;
      font-size: 1rem;
      color: var(--dark);
      display: block;
    }
    .tm-featured-role {
      font-size: .85rem;
      color: var(--muted);
      display: block;
    }
    .tm-featured-badge {
      margin-left: auto;
      background: #2563eb;
      color: #fff;
      font-size: .75rem;
      font-weight: 600;
      padding: 6px 12px;
      border-radius: 100px;
    }

    /* FILTER BAR */
    .tm-filter-section {
      background: var(--light);
      padding: 48px 0 0;
    }
    .tm-filter-bar {
      display: flex;
      gap: 10px;
      flex-wrap: nowrap;
      align-items: center;
      overflow-x: scroll;
      overflow-y: hidden;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: thin;
      scrollbar-color: #94a3b8 #e2e8f0;
      padding: 2px 2px 8px;
      margin-bottom: 36px;
    }
    .tm-filter-bar::-webkit-scrollbar { height: 10px; }
    .tm-filter-bar::-webkit-scrollbar-track {
      background: #e2e8f0;
      border-radius: 999px;
    }
    .tm-filter-bar::-webkit-scrollbar-thumb {
      background: #94a3b8;
      border-radius: 999px;
      border: 2px solid #e2e8f0;
    }
    .tm-filter-bar::-webkit-scrollbar-thumb:hover { background: #64748b; }
    .tm-filter-btn {
      flex: 0 0 auto;
      white-space: nowrap;
      padding: 11px 22px;
      border-radius: 100px;
      border: 1.5px solid var(--border);
      background: #fff;
      font-size: .92rem;
      font-weight: 600;
      color: var(--dark3);
      cursor: pointer;
      transition: all .18s;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .tm-filter-btn:hover { border-color: var(--primary); color: var(--primary); }
    .tm-filter-btn.active {
      background: var(--primary);
      border-color: var(--primary);
      color: #fff;
    }
    .tm-filter-btn .count {
      background: rgba(0,0,0,.1);
      border-radius: 100px;
      padding: 0 9px;
      font-size: .78rem;
      line-height: 1.65;
    }
    .tm-filter-btn.active .count { background: rgba(255,255,255,.25); }

    /* WALL */
    .tm-wall-section {
      background: var(--light);
      padding: 0 0 64px;
    }
    .tm-wall {
      column-count: 3;
      column-gap: 20px;
    }
    .tm-card {
      break-inside: avoid;
      margin-bottom: 20px;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 16px;
      padding: 24px;
      transition: box-shadow .2s, transform .2s, border-color .2s;
      display: block;
    }
    .tm-card:hover {
      box-shadow: var(--shadow);
      transform: translateY(-2px);
      border-color: #bfdbfe;
    }
    .tm-card-head {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      margin-bottom: 14px;
    }
    .tm-avatar {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: .9rem;
      font-weight: 700;
      flex-shrink: 0;
    }
    .tm-author-name {
      font-weight: 700;
      font-size: .9rem;
      color: var(--dark);
      line-height: 1.2;
    }
    .tm-author-role {
      font-size: .78rem;
      color: var(--muted);
      margin-top: 2px;
    }
    .tm-stars {
      display: flex;
      gap: 2px;
      color: #f59e0b;
      font-size: .8rem;
      margin-top: 4px;
    }
    .tm-text {
      font-size: .9rem;
      color: var(--dark3);
      line-height: 1.65;
      margin-bottom: 16px;
    }
    .tm-footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .tm-badge {
      font-size: .72rem;
      font-weight: 600;
      padding: 4px 10px;
      border-radius: 100px;
    }
    .tm-badge--blue   { background: #dbeafe; color: #1d4ed8; }
    .tm-badge--green  { background: #d1fae5; color: #047857; }
    .tm-badge--purple { background: #ede9fe; color: #6d28d9; }
    .tm-badge--amber  { background: #fef3c7; color: #b45309; }
    .tm-badge--rose   { background: #ffe4e6; color: #be123c; }
    .tm-badge--teal   { background: #ccfbf1; color: #0f766e; }
    .tm-badge--cyan   { background: #cffafe; color: #0e7490; }
    .tm-badge--orange { background: #ffedd5; color: #c2410c; }
    .tm-badge--indigo { background: #e0e7ff; color: #3730a3; }
    .tm-date {
      font-size: .72rem;
      color: var(--muted);
    }
    /* Large card variant */
    .tm-card--lg .tm-text {
      font-size: .95rem;
    }

    /* Avatar color helpers */
    .av-blue   { background: #dbeafe; color: #1d4ed8; }
    .av-green  { background: #d1fae5; color: #047857; }
    .av-purple { background: #ede9fe; color: #6d28d9; }
    .av-amber  { background: #fef3c7; color: #b45309; }
    .av-rose   { background: #ffe4e6; color: #be123c; }
    .av-teal   { background: #ccfbf1; color: #0f766e; }
    .av-cyan   { background: #cffafe; color: #0e7490; }
    .av-orange { background: #ffedd5; color: #c2410c; }
    .av-indigo { background: #e0e7ff; color: #3730a3; }
    .av-slate  { background: #f1f5f9; color: #475569; }

    /* RATING BREAKDOWN */
    .tm-rating-section {
      background: #fff;
      padding: 72px 0;
      border-top: 1px solid var(--border);
    }
    .tm-rating-big {
      font-size: 5rem;
      font-weight: 900;
      color: var(--dark);
      line-height: 1;
    }
    .tm-rating-big-stars {
      display: flex;
      gap: 5px;
      color: #f59e0b;
      font-size: 1.5rem;
      margin: 10px 0 8px;
    }
    .tm-rating-sub {
      font-size: .85rem;
      color: var(--muted);
    }
    .tm-bar-rows { display: flex; flex-direction: column; gap: 10px; }
    .tm-bar-row {
      display: grid;
      grid-template-columns: 80px 1fr 40px;
      align-items: center;
      gap: 12px;
    }
    .tm-bar-label {
      font-size: .82rem;
      color: var(--dark3);
      font-weight: 500;
      display: flex;
      gap: 3px;
      align-items: center;
      color: var(--muted);
    }
    .tm-bar-label .fa-star { color: #f59e0b; font-size: .8rem; }
    .tm-bar-track {
      height: 8px;
      border-radius: 100px;
      background: #f1f5f9;
      overflow: hidden;
    }
    .tm-bar-fill {
      height: 100%;
      border-radius: 100px;
      background: #f59e0b;
      transform-origin: left;
      animation: barGrow 1s var(--ease) both;
    }
    @keyframes barGrow {
      from { transform: scaleX(0); }
      to   { transform: scaleX(1); }
    }
    .tm-bar-pct {
      font-size: .8rem;
      color: var(--muted);
      font-weight: 500;
      text-align: right;
    }
    /* Platform badges */
    .tm-platform-badges {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      margin-top: 28px;
    }
    .tm-platform-badge {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 16px;
      border: 1.5px solid var(--border);
      border-radius: 12px;
      background: var(--light);
    }
    .tm-platform-badge .score { font-weight: 800; color: var(--dark); font-size: 1rem; }
    .tm-platform-badge .pname { font-size: .75rem; color: var(--muted); font-weight: 600; }
    .tm-platform-badge .pstars { color: #f59e0b; font-size: .7rem; }

    /* CTA */
    .tm-cta-section {
      background: linear-gradient(135deg, #0f172a, #1e3a6e);
      padding: 80px 0;
      text-align: center;
    }
    .tm-cta-section h2 {
      font-size: clamp(1.6rem, 3vw, 2.4rem);
      font-weight: 800;
      color: #fff;
      margin-bottom: 14px;
    }
    .tm-cta-section p {
      color: rgba(255,255,255,.6);
      font-size: 1.05rem;
      max-width: 480px;
      margin: 0 auto 32px;
    }
    .tm-cta-btns {
      display: flex;
      gap: 12px;
      justify-content: center;
      flex-wrap: wrap;
    }
    .tm-cta-btn-primary {
      background: #fff;
      color: #1d4ed8;
      font-weight: 700;
      padding: 14px 28px;
      border-radius: 12px;
      text-decoration: none;
      font-size: .95rem;
      transition: all .18s;
    }
    .tm-cta-btn-primary:hover { background: #eff6ff; transform: translateY(-1px); }
    .tm-cta-btn-ghost {
      color: rgba(255,255,255,.8);
      font-weight: 600;
      padding: 14px 28px;
      border-radius: 12px;
      text-decoration: none;
      font-size: .95rem;
      border: 1.5px solid rgba(255,255,255,.25);
      transition: all .18s;
    }
    .tm-cta-btn-ghost:hover { border-color: rgba(255,255,255,.6); color: #fff; }

    /* Responsive */
    @media (max-width: 991px) {
      .tm-wall { column-count: 2; }
      .tm-stat-grid { grid-template-columns: repeat(2, 1fr); }
      .tm-featured-card { padding: 32px; }
      .tm-featured-card::before { font-size: 8rem; }
      .tm-featured-badge { margin-left: 0; margin-top: 12px; }
      .tm-featured-author { flex-wrap: wrap; }
    }
    @media (max-width: 575px) {
      .tm-wall { column-count: 1; }
      .tm-stat-grid { grid-template-columns: repeat(2, 1fr); }
      .tm-hero { padding: 56px 0 52px; }
      .tm-stat-num { font-size: 1.6rem; }
      .tm-featured-card { padding: 24px 20px; }
      .tm-featured-card::before { display: none; }
      .tm-filter-section { padding: 36px 0 0; }
      .tm-filter-bar { gap: 8px; padding-bottom: 6px; margin-bottom: 24px; }
      .tm-filter-btn { padding: 9px 16px; font-size: .84rem; }
      .tm-filter-btn .count { padding: 0 7px; font-size: .72rem; }
    }