/* =====================================================================
   EXTORIMUNDUS — Guia editorial dos casinos legais em Portugal
   Design system · editorial · deep-green / cream / terracotta
   Self-contained. Unique to this project.
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500;1,9..144,600&family=Inter:wght@400;500;600;700&display=swap');

:root{
  /* palette */
  --ex-cream:      #f3efe6;
  --ex-cream-card: #faf7f0;
  --ex-paper:      #fbf9f4;
  --ex-green:      #1f3d2f;
  --ex-green-700:  #2a5240;
  --ex-green-900:  #14241c;
  --ex-ink:        #1a221d;
  --ex-muted:      #5a6b60;
  --ex-terra:      #c4623d;
  --ex-terra-600:  #a64f30;
  --ex-ochre:      #c9962f;
  --ex-line:       rgba(31,61,47,.14);
  --ex-line-soft:  rgba(31,61,47,.08);
  --ex-shadow:     0 18px 48px -28px rgba(20,36,28,.55);
  --ex-shadow-sm:  0 8px 22px -16px rgba(20,36,28,.5);

  /* type */
  --ex-serif: 'Fraunces', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --ex-sans:  'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* layout */
  --ex-wrap: 1440px;
  --ex-radius: 14px;
  --ex-radius-lg: 22px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{
  margin:0;
  font-family:var(--ex-sans);
  color:var(--ex-ink);
  background:var(--ex-cream);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  max-width:100%;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
h1,h2,h3,h4{font-family:var(--ex-serif);font-weight:600;line-height:1.08;color:var(--ex-green-900);margin:0;letter-spacing:-.01em}
p{margin:0 0 1rem}
em{font-style:italic;color:var(--ex-terra-600)}

.ex-wrap{width:100%;max-width:var(--ex-wrap);margin-inline:auto;padding-inline:clamp(1.15rem,4.5vw,3.5rem)}
.ex-wrap--narrow{max-width:1180px}
.ex-eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--ex-sans);font-weight:600;font-size:.72rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ex-terra-600);
}
.ex-eyebrow::before{content:"";width:1.6rem;height:1px;background:currentColor;opacity:.6}
.ex-section{padding:clamp(3.2rem,7vw,5.5rem) 0}
.ex-section--alt{background:linear-gradient(180deg,var(--ex-paper),var(--ex-cream))}
.ex-center{text-align:center}
.ex-sec-head{max-width:42rem;margin-bottom:2.6rem}
.ex-center .ex-sec-head{margin-inline:auto}
.ex-sec-head h2{font-size:clamp(1.85rem,4.4vw,2.9rem);margin:.7rem 0 .55rem}
.ex-sec-head p{color:var(--ex-muted);font-size:1.04rem;margin:0}

/* ---------- buttons ---------- */
.ex-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--ex-sans);font-weight:600;font-size:.92rem;
  padding:.78rem 1.35rem;border-radius:999px;border:1.5px solid transparent;
  cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
}
.ex-btn svg{width:1.05em;height:1.05em}
.ex-btn--primary{background:var(--ex-terra);color:#fff;box-shadow:var(--ex-shadow-sm)}
.ex-btn--primary:hover{background:var(--ex-terra-600);transform:translateY(-2px)}
.ex-btn--ghost{background:transparent;color:var(--ex-green);border-color:var(--ex-line)}
.ex-btn--ghost:hover{border-color:var(--ex-green);background:rgba(31,61,47,.04)}
.ex-btn--dark{background:var(--ex-green);color:var(--ex-cream)}
.ex-btn--dark:hover{background:var(--ex-green-900);transform:translateY(-2px)}
.ex-btn--sm{padding:.55rem 1rem;font-size:.84rem}
.ex-btn--block{width:100%}

/* ---------- topbar ---------- */
.ex-topbar{background:var(--ex-green-900);color:rgba(243,239,230,.85);font-size:.76rem}
.ex-topbar__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:38px;flex-wrap:wrap}
.ex-topbar__cell{display:inline-flex;align-items:center;gap:.55rem}
.ex-topbar__18{
  display:inline-grid;place-items:center;min-width:26px;height:20px;padding:0 5px;
  border:1px solid rgba(243,239,230,.5);border-radius:5px;font-weight:700;font-size:.66rem;color:var(--ex-cream)
}
.ex-topbar__18 sup{font-size:.6em}
.ex-topbar a{color:var(--ex-cream);display:inline-flex;align-items:center;gap:.4rem;font-weight:600}
.ex-topbar a:hover{color:#fff}
.ex-topbar__mid{opacity:.8}
@media(max-width:720px){.ex-topbar__mid{display:none}}

/* ---------- header ---------- */
.ex-header{position:sticky;top:0;z-index:60;background:rgba(243,239,230,.86);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--ex-line)}
.ex-nav{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:72px}
.ex-logo{display:inline-flex;align-items:center;gap:.7rem}
.ex-logo__mark{width:42px;height:42px;flex:none}
.ex-logo__text{display:flex;flex-direction:column;line-height:1}
.ex-logo__word{font-family:var(--ex-serif);font-weight:600;font-size:1.32rem;letter-spacing:-.02em;color:var(--ex-green-900)}
.ex-logo__sub{font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ex-terra-600);font-weight:600;margin-top:3px}
.ex-menu{display:flex;align-items:center;gap:.35rem;list-style:none;margin:0;padding:0}
.ex-menu a{
  font-weight:500;font-size:.92rem;color:var(--ex-green);padding:.5rem .8rem;border-radius:999px;
  transition:background .16s ease,color .16s ease
}
.ex-menu a:hover,.ex-menu a[aria-current="page"]{background:rgba(31,61,47,.07);color:var(--ex-green-900)}
.ex-nav__actions{display:flex;align-items:center;gap:.7rem}
@media(max-width:980px){.ex-menu{display:none}}

.ex-burger{display:none;width:44px;height:44px;border:1px solid var(--ex-line);border-radius:12px;background:transparent;cursor:pointer;align-items:center;justify-content:center}
.ex-burger span,.ex-burger span::before,.ex-burger span::after{content:"";display:block;width:20px;height:2px;background:var(--ex-green-900);border-radius:2px;transition:.25s}
.ex-burger span{position:relative}
.ex-burger span::before{position:absolute;top:-6px}
.ex-burger span::after{position:absolute;top:6px}
body.ex-open .ex-burger span{background:transparent}
body.ex-open .ex-burger span::before{top:0;transform:rotate(45deg)}
body.ex-open .ex-burger span::after{top:0;transform:rotate(-45deg)}
@media(max-width:980px){.ex-burger{display:inline-flex}.ex-nav__actions .ex-btn{display:none}}

/* mobile drawer */
.ex-drawer{position:fixed;inset:0 0 0 auto;width:min(86vw,340px);background:var(--ex-paper);z-index:90;transform:translateX(102%);transition:transform .32s cubic-bezier(.4,0,.2,1);padding:1.4rem;display:flex;flex-direction:column;gap:.4rem;box-shadow:var(--ex-shadow);overflow-y:auto}
body.ex-open .ex-drawer{transform:translateX(0)}
.ex-drawer__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.ex-drawer a{padding:.85rem .9rem;border-radius:12px;font-weight:600;color:var(--ex-green-900);font-size:1.02rem}
.ex-drawer a:hover{background:rgba(31,61,47,.06)}
.ex-drawer__x{width:42px;height:42px;border:1px solid var(--ex-line);border-radius:12px;background:transparent;cursor:pointer;font-size:1.3rem;color:var(--ex-green-900)}
.ex-scrim{position:fixed;inset:0;background:rgba(20,36,28,.45);z-index:80;opacity:0;visibility:hidden;transition:.3s}
body.ex-open .ex-scrim{opacity:1;visibility:visible}

/* ---------- hero ---------- */
.ex-hero{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 85% -10%,rgba(196,98,61,.12),transparent 55%),var(--ex-cream)}
.ex-hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);align-items:center;padding:clamp(3rem,6vw,5rem) 0}
.ex-hero__chip{display:inline-flex;align-items:center;gap:.5rem;background:var(--ex-cream-card);border:1px solid var(--ex-line);border-radius:999px;padding:.45rem .9rem;font-size:.76rem;font-weight:600;color:var(--ex-green-700);margin-bottom:1.4rem}
.ex-hero__chip .ex-dot{width:7px;height:7px;border-radius:50%;background:#3aa564;box-shadow:0 0 0 4px rgba(58,165,100,.18)}
.ex-hero h1{font-size:clamp(2.4rem,6vw,4.1rem);letter-spacing:-.025em}
.ex-hero h1 em{display:inline}
.ex-hero__lead{font-size:clamp(1.05rem,2vw,1.2rem);color:var(--ex-muted);max-width:34rem;margin:1.3rem 0 1.9rem}
.ex-hero__cta{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
.ex-hero__trust{display:flex;flex-wrap:wrap;gap:1.3rem;margin-top:2rem;padding-top:1.6rem;border-top:1px solid var(--ex-line)}
.ex-hero__trust div{display:flex;flex-direction:column}
.ex-hero__trust b{font-family:var(--ex-serif);font-size:1.5rem;color:var(--ex-green-900);font-weight:600}
.ex-hero__trust span{font-size:.78rem;color:var(--ex-muted)}

/* hero panel — ranking teaser */
.ex-hero__panel{background:var(--ex-green-900);border-radius:var(--ex-radius-lg);padding:1.6rem;color:var(--ex-cream);box-shadow:var(--ex-shadow);position:relative}
.ex-hero__panel-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.ex-hero__panel-h span{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(243,239,230,.6)}
.ex-hero__panel-h b{font-family:var(--ex-serif);font-size:1.1rem;color:#fff}
.ex-mini{display:flex;align-items:center;gap:.85rem;padding:.7rem 0;border-top:1px solid rgba(243,239,230,.12)}
.ex-mini:first-of-type{border-top:none}
.ex-mini__rank{font-family:var(--ex-serif);font-size:1.05rem;color:var(--ex-ochre);width:1.5rem;flex:none}
.ex-mini__badge{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:.82rem;color:var(--ex-green-900);flex:none}
.ex-mini__name{font-weight:600;font-size:.92rem;color:#fff;flex:1}
.ex-mini__score{font-family:var(--ex-serif);font-weight:600;color:var(--ex-cream);font-size:1rem}
.ex-mini__score small{color:var(--ex-ochre);font-family:var(--ex-sans);font-weight:600;font-size:.7rem;margin-left:2px}

@media(max-width:880px){.ex-hero__grid{grid-template-columns:1fr}.ex-hero__panel{order:-1}}

/* ---------- operator badges (typographic, no trademark logos) ---------- */
.ex-badge{
  display:grid;place-items:center;border-radius:11px;font-weight:700;color:#fff;flex:none;
  font-family:var(--ex-sans);letter-spacing:.01em;line-height:1;text-align:center;
  position:relative;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -10px 18px -8px rgba(0,0,0,.45)
}
.ex-badge::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 28% 18%,rgba(255,255,255,.28),transparent 60%);pointer-events:none}
.ex-badge img{position:relative;z-index:1;width:60%;height:60%;object-fit:contain;display:block}
.ex-mini__badge img{width:62%;height:62%;object-fit:contain}
.b-betano{background:linear-gradient(135deg,#ff6a00,#e64a19)}
.b-betclic{background:linear-gradient(135deg,#0b1f3a,#13386b)}
.b-esc{background:linear-gradient(135deg,#1b6b4a,#0e4630)}
.b-bwin{background:linear-gradient(135deg,#1a1a1a,#3a3a3a)}
.b-casinopt{background:linear-gradient(135deg,#7a1f2b,#a8323f)}
.b-solverde{background:linear-gradient(135deg,#0f7a52,#0a5238)}
.b-pokerstars{background:linear-gradient(135deg,#1d2733,#34465b)}
.b-888{background:linear-gradient(135deg,#0a7d3a,#0a5c2b)}
.b-placard{background:linear-gradient(135deg,#1f6f3e,#15512d)}
.b-luckia{background:linear-gradient(135deg,#e23744,#b51f2c)}
.b-lebull{background:linear-gradient(135deg,#c8102e,#8c0a20)}
.b-goldenpark{background:linear-gradient(135deg,#caa53d,#9c7d24)}

/* ---------- ranking list ---------- */
.ex-rank{display:flex;flex-direction:column;gap:1rem}
.ex-rcard{
  display:grid;grid-template-columns:auto auto 1fr auto;gap:1.3rem;align-items:center;
  background:var(--ex-cream-card);border:1px solid var(--ex-line);border-radius:var(--ex-radius-lg);
  padding:1.25rem 1.5rem;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;position:relative
}
.ex-rcard:hover{transform:translateY(-3px);box-shadow:var(--ex-shadow);border-color:rgba(31,61,47,.25)}
.ex-rcard--top{border-color:rgba(196,98,61,.5);box-shadow:0 0 0 1px rgba(196,98,61,.25),var(--ex-shadow-sm)}
.ex-rcard__rank{font-family:var(--ex-serif);font-size:2.1rem;font-weight:600;color:var(--ex-green);width:2.4rem;text-align:center;opacity:.85}
.ex-rcard--top .ex-rcard__rank{color:var(--ex-terra)}
.ex-rcard__badge{width:62px;height:62px;font-size:1.1rem}
.ex-rcard__body{min-width:0}
.ex-rcard__name{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.ex-rcard__name h3{font-size:1.3rem}
.ex-tag{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .5rem;border-radius:6px;background:rgba(196,98,61,.14);color:var(--ex-terra-600)}
.ex-tag--srij{background:rgba(31,61,47,.1);color:var(--ex-green-700)}
.ex-rcard__meta{display:flex;flex-wrap:wrap;gap:.5rem .9rem;margin-top:.5rem;font-size:.83rem;color:var(--ex-muted)}
.ex-rcard__meta span{display:inline-flex;align-items:center;gap:.35rem}
.ex-rcard__meta svg{width:14px;height:14px;color:var(--ex-green-700)}
.ex-rcard__side{display:flex;flex-direction:column;align-items:flex-end;gap:.7rem}
.ex-score{display:flex;flex-direction:column;align-items:center;line-height:1}
.ex-score b{font-family:var(--ex-serif);font-size:1.9rem;font-weight:600;color:var(--ex-green-900)}
.ex-score small{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ex-muted);margin-top:3px}
.ex-stars{display:flex;gap:2px;margin-top:4px}
.ex-stars svg{width:13px;height:13px;color:var(--ex-ochre)}
.ex-rcard__actions{display:flex;gap:.5rem}
@media(max-width:760px){
  .ex-rcard{grid-template-columns:auto 1fr;gap:.9rem 1rem}
  .ex-rcard__rank{grid-row:1;width:auto}
  .ex-rcard__badge{width:48px;height:48px;grid-row:1}
  .ex-rcard__body{grid-column:1/-1}
  .ex-rcard__side{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;border-top:1px solid var(--ex-line);padding-top:.9rem}
}

/* ---------- criteria / feature cards ---------- */
.ex-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.ex-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.3rem}
.ex-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
@media(max-width:900px){.ex-grid-3,.ex-grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.ex-grid-3,.ex-grid-2,.ex-grid-4{grid-template-columns:1fr}}

.ex-fcard{background:var(--ex-cream-card);border:1px solid var(--ex-line);border-radius:var(--ex-radius);padding:1.6rem;transition:transform .2s ease,box-shadow .2s ease}
.ex-fcard:hover{transform:translateY(-3px);box-shadow:var(--ex-shadow-sm)}
.ex-fcard__ico{width:48px;height:48px;border-radius:12px;background:var(--ex-green-900);display:grid;place-items:center;margin-bottom:1.1rem}
.ex-fcard__ico svg{width:22px;height:22px;color:var(--ex-cream)}
.ex-fcard__ico--terra{background:var(--ex-terra)}
.ex-fcard h3{font-size:1.18rem;margin-bottom:.5rem}
.ex-fcard p{color:var(--ex-muted);font-size:.94rem;margin:0}
.ex-fcard__num{font-family:var(--ex-serif);font-size:.95rem;color:var(--ex-terra-600);font-weight:600;letter-spacing:.05em;margin-bottom:.7rem;display:block}

/* ---------- payments ---------- */
.ex-pay{display:flex;flex-wrap:wrap;gap:.7rem}
.ex-pay__item{display:inline-flex;align-items:center;gap:.55rem;background:var(--ex-cream-card);border:1px solid var(--ex-line);border-radius:999px;padding:.55rem 1.05rem;font-weight:600;font-size:.88rem;color:var(--ex-green-900)}
.ex-pay__item svg{width:16px;height:16px;color:var(--ex-terra-600)}

/* ---------- procon ---------- */
.ex-procon{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
@media(max-width:680px){.ex-procon{grid-template-columns:1fr}}
.ex-pc{background:var(--ex-cream-card);border:1px solid var(--ex-line);border-radius:var(--ex-radius);padding:1.5rem}
.ex-pc h4{display:flex;align-items:center;gap:.5rem;font-size:1.05rem;margin-bottom:1rem}
.ex-pc h4 svg{width:18px;height:18px}
.ex-pc--pro h4 svg{color:#2f8f5b}
.ex-pc--con h4 svg{color:var(--ex-terra)}
.ex-pc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}
.ex-pc li{display:flex;gap:.6rem;font-size:.92rem;color:var(--ex-ink)}
.ex-pc li::before{content:"";width:6px;height:6px;border-radius:50%;margin-top:.55rem;flex:none;background:var(--ex-line)}
.ex-pc--pro li::before{background:#2f8f5b}
.ex-pc--con li::before{background:var(--ex-terra)}

/* ---------- FAQ ---------- */
.ex-faq{max-width:50rem;margin-inline:auto;display:flex;flex-direction:column;gap:.7rem}
.ex-faq__item{background:var(--ex-cream-card);border:1px solid var(--ex-line);border-radius:var(--ex-radius);overflow:hidden}
.ex-faq__q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;background:transparent;border:0;cursor:pointer;padding:1.15rem 1.4rem;font-family:var(--ex-serif);font-weight:600;font-size:1.08rem;color:var(--ex-green-900)}
.ex-faq__q svg{width:18px;height:18px;flex:none;transition:transform .25s ease;color:var(--ex-terra-600)}
.ex-faq__item.is-open .ex-faq__q svg{transform:rotate(180deg)}
.ex-faq__a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.ex-faq__a p{padding:0 1.4rem 1.25rem;margin:0;color:var(--ex-muted);font-size:.95rem}
.ex-faq__item.is-open .ex-faq__a{max-height:340px}

/* ---------- cta band ---------- */
.ex-band{background:var(--ex-green-900);color:var(--ex-cream);border-radius:var(--ex-radius-lg);padding:clamp(2.2rem,5vw,3.4rem);text-align:center;position:relative;overflow:hidden}
.ex-band::before{content:"";position:absolute;inset:auto -10% -60% auto;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(196,98,61,.35),transparent 65%)}
.ex-band h2{color:#fff;font-size:clamp(1.7rem,4vw,2.6rem);position:relative}
.ex-band p{color:rgba(243,239,230,.8);max-width:40rem;margin:1rem auto 1.8rem;position:relative}
.ex-band .ex-hero__cta{justify-content:center;position:relative}

/* ---------- newsletter / subscribe ---------- */
.ex-news{background:var(--ex-cream-card);border:1px solid var(--ex-line);border-radius:var(--ex-radius-lg);padding:clamp(1.8rem,4vw,2.8rem);box-shadow:var(--ex-shadow-sm);max-width:42rem;margin-inline:auto}
.ex-news__head{text-align:center;margin-bottom:1.6rem}
.ex-news__head h2{font-size:clamp(1.5rem,3.5vw,2.1rem)}
.ex-news__head p{color:var(--ex-muted);margin-top:.5rem}
.ex-form{display:flex;flex-direction:column;gap:.9rem}
.ex-field{display:flex;flex-direction:column;gap:.35rem}
.ex-field label{font-size:.78rem;font-weight:600;color:var(--ex-green-700);letter-spacing:.02em}
.ex-field input[type=text],.ex-field input[type=tel],.ex-field input[type=email]{
  width:100%;padding:.8rem 1rem;border-radius:12px;border:1.5px solid var(--ex-line);
  background:var(--ex-paper);color:var(--ex-ink);font-size:.95rem;font-family:inherit;transition:border-color .16s ease,box-shadow .16s ease
}
.ex-field input:focus{outline:none;border-color:var(--ex-terra);box-shadow:0 0 0 3px rgba(196,98,61,.15)}
.ex-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media(max-width:520px){.ex-row{grid-template-columns:1fr}}
.ex-consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.82rem;color:var(--ex-muted)}
.ex-consent input{margin-top:.25rem;accent-color:var(--ex-terra)}
.ex-consent a{color:var(--ex-terra-600);font-weight:600}
.ex-success{display:none;margin-top:.4rem;color:#2f8f5b;font-weight:600;font-size:.88rem;text-align:center}
.ex-success.show{display:block}

/* ---------- callout ---------- */
.ex-callout{display:flex;gap:.9rem;background:rgba(196,98,61,.08);border:1px solid rgba(196,98,61,.22);border-radius:var(--ex-radius);padding:1.1rem 1.3rem;margin:1.4rem 0}
.ex-callout svg{width:22px;height:22px;color:var(--ex-terra);flex:none;margin-top:2px}
.ex-callout p{margin:0;font-size:.92rem;color:var(--ex-green-900)}
.ex-callout--green{background:rgba(31,61,47,.06);border-color:var(--ex-line)}
.ex-callout--green svg{color:var(--ex-green-700)}

/* ---------- generic article / legal ---------- */
.ex-page-hero{background:linear-gradient(180deg,var(--ex-paper),var(--ex-cream));padding:clamp(2.6rem,6vw,4.4rem) 0 clamp(2rem,4vw,3rem);border-bottom:1px solid var(--ex-line)}
.ex-crumb{display:flex;gap:.5rem;list-style:none;margin:0 0 1.1rem;padding:0;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--ex-muted)}
.ex-crumb a{color:var(--ex-terra-600)}
.ex-crumb li[aria-current]{color:var(--ex-green-900)}
.ex-page-hero h1{font-size:clamp(2.1rem,5vw,3.4rem);max-width:24ch}
.ex-page-hero .lead{font-size:1.1rem;color:var(--ex-muted);max-width:46rem;margin-top:1.1rem}
.ex-meta-row{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:1.6rem;font-size:.84rem;color:var(--ex-muted)}
.ex-meta-row span{display:inline-flex;align-items:center;gap:.45rem}
.ex-meta-row svg{width:15px;height:15px;color:var(--ex-terra-600)}

.ex-prose{max-width:48rem;margin-inline:auto;font-size:1.02rem}
.ex-prose h2{font-size:clamp(1.5rem,3.5vw,2.1rem);margin:2.4rem 0 1rem}
.ex-prose h3{font-size:1.25rem;margin:1.8rem 0 .7rem}
.ex-prose p{color:#33403a}
.ex-prose ul,.ex-prose ol{color:#33403a;padding-left:1.2rem;margin:0 0 1.2rem}
.ex-prose li{margin-bottom:.5rem}
.ex-prose strong{color:var(--ex-green-900)}
.ex-prose a{color:var(--ex-terra-600);font-weight:600;text-decoration:underline;text-decoration-color:rgba(196,98,61,.35);text-underline-offset:3px}
.ex-prose__num{counter-reset:exs}
.ex-legal-sec{padding:1.6rem 0;border-top:1px solid var(--ex-line)}
.ex-legal-sec:first-child{border-top:none}
.ex-legal-sec h2{display:flex;gap:.8rem;align-items:baseline}
.ex-legal-sec h2 .n{font-family:var(--ex-serif);color:var(--ex-terra);font-size:1.1rem;font-weight:600}

/* ---------- contact ---------- */
.ex-contact{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem;align-items:start}
@media(max-width:820px){.ex-contact{grid-template-columns:1fr}}
.ex-contact__cards{display:flex;flex-direction:column;gap:1rem}

/* ---------- footer ---------- */
.ex-footer{background:var(--ex-green-900);color:rgba(243,239,230,.8);margin-top:0}
.ex-footer__disc{border-bottom:1px solid rgba(243,239,230,.1)}
.ex-footer__disc-in{display:flex;align-items:center;gap:1.2rem;padding:1.4rem 0;flex-wrap:wrap}
.ex-stamp{display:grid;place-items:center;width:46px;height:46px;border:1.5px solid rgba(243,239,230,.4);border-radius:10px;font-weight:700;color:var(--ex-cream);font-size:.85rem;flex:none}
.ex-footer__disc p{margin:0;font-size:.82rem;color:rgba(243,239,230,.72);flex:1;min-width:240px}
.ex-footer__disc p strong{color:var(--ex-cream)}
.ex-footer__main{padding:3rem 0 2rem}
.ex-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem}
@media(max-width:900px){.ex-footer__grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ex-footer__grid{grid-template-columns:1fr}}
.ex-footer__brand p{font-size:.88rem;color:rgba(243,239,230,.7);margin:1rem 0}
.ex-footer__brand .ex-logo__word,.ex-footer__brand .ex-logo__sub{color:var(--ex-cream)}
.ex-footer__brand .ex-logo__sub{color:var(--ex-ochre)}
.ex-footer__col h3{font-family:var(--ex-sans);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ex-ochre);font-weight:700;margin-bottom:1rem}
.ex-footer__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.ex-footer__col a{font-size:.9rem;color:rgba(243,239,230,.8)}
.ex-footer__col a:hover{color:#fff}
.ex-footer__regs{border-top:1px solid rgba(243,239,230,.1);padding:1.6rem 0}
.ex-footer__regs-in{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}
.ex-footer__regs-lab{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(243,239,230,.55)}
.ex-orgs{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;margin:0;padding:0}
.ex-orgs li{font-size:.72rem;font-weight:600;letter-spacing:.04em;color:rgba(243,239,230,.78);border:1px solid rgba(243,239,230,.18);border-radius:7px;padding:.4rem .7rem}
.ex-footer__bottom{border-top:1px solid rgba(243,239,230,.1);padding:1.3rem 0}
.ex-footer__bottom-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:rgba(243,239,230,.6)}

/* ---------- age gate ---------- */
.ex-age{position:fixed;inset:0;z-index:200;background:rgba(20,36,28,.72);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1.2rem}
.ex-age[hidden]{display:none}
.ex-age__panel{background:var(--ex-paper);border-radius:var(--ex-radius-lg);max-width:430px;width:100%;padding:2.2rem;text-align:center;box-shadow:var(--ex-shadow)}
.ex-age__stamp{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:16px;background:var(--ex-green-900);color:var(--ex-cream);font-family:var(--ex-serif);font-size:1.4rem;font-weight:600;margin-bottom:1.1rem}
.ex-age__panel h2{font-size:1.6rem;margin-bottom:.6rem}
.ex-age__panel p{color:var(--ex-muted);font-size:.92rem;margin-bottom:1.6rem}
.ex-age__actions{display:flex;flex-direction:column;gap:.7rem}
.ex-age__no{color:var(--ex-muted);font-size:.84rem;font-weight:600}
.ex-age__legal{display:block;margin-top:1.2rem;font-size:.72rem;color:var(--ex-muted)}

/* ---------- cookie ---------- */
.ex-cookie{position:fixed;left:1rem;right:1rem;bottom:1rem;max-width:560px;margin-inline:auto;background:var(--ex-green-900);color:var(--ex-cream);border-radius:var(--ex-radius);padding:1.1rem 1.3rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;z-index:120;box-shadow:var(--ex-shadow)}
.ex-cookie[hidden]{display:none}
.ex-cookie p{margin:0;font-size:.82rem;color:rgba(243,239,230,.82);flex:1;min-width:200px}
.ex-cookie a{color:var(--ex-ochre);font-weight:600}
.ex-cookie__btns{display:flex;gap:.5rem}
.ex-cookie__btns button{padding:.5rem .95rem;border-radius:999px;font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid rgba(243,239,230,.3);background:transparent;color:var(--ex-cream)}
.ex-cookie__btns button.primary{background:var(--ex-terra);border-color:var(--ex-terra);color:#fff}

/* ---------- misc ---------- */
.ex-divider{height:1px;background:var(--ex-line);margin:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.ex-note{font-size:.8rem;color:var(--ex-muted)}

/* =====================================================================
   PREMIUM LAYER · texture · motion · editorial detail · imagery
   ===================================================================== */

/* ---- film grain / paper texture overlay ---- */
body::after{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
}
body>*{position:relative;z-index:2}

/* ---- top scroll-progress bar ---- */
.ex-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;background:linear-gradient(90deg,var(--ex-terra),var(--ex-ochre));box-shadow:0 0 12px rgba(196,98,61,.5);transition:width .08s linear}

/* ---- ambient gradient blobs ---- */
.has-glow{position:relative;overflow:hidden}
.has-glow>.ex-wrap{position:relative;z-index:2}
.ex-glow{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none;z-index:0;opacity:.55}
.ex-glow--terra{background:radial-gradient(circle,rgba(196,98,61,.5),transparent 65%)}
.ex-glow--green{background:radial-gradient(circle,rgba(31,61,47,.4),transparent 65%)}
.ex-glow--ochre{background:radial-gradient(circle,rgba(201,150,47,.4),transparent 65%)}

/* ---- scroll reveal (added by JS, progressive) ---- */
.ex-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.ex-reveal.is-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.ex-reveal{opacity:1!important;transform:none!important;transition:none}}

/* ---- decorative section mark + eyebrow upgrade ---- */
.ex-mark{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:14px;background:var(--ex-cream-card);border:1px solid var(--ex-line);box-shadow:var(--ex-shadow-sm);margin-bottom:1.1rem}
.ex-mark svg{width:26px;height:26px;color:var(--ex-terra)}
.ex-center .ex-mark{margin-inline:auto}
.ex-zig{display:block;width:84px;height:9px;margin-top:.9rem;color:var(--ex-terra);opacity:.8}
.ex-center .ex-zig{margin-inline:auto}

/* gradient-tinted headline accent */
.ex-grad{background:linear-gradient(100deg,var(--ex-terra),var(--ex-ochre));-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic}

/* ---- button shine ---- */
.ex-btn--primary,.ex-btn--dark{position:relative;overflow:hidden}
.ex-btn--primary::after,.ex-btn--dark::after{content:"";position:absolute;top:0;left:-120%;width:55%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg);transition:left .6s ease}
.ex-btn--primary:hover::after,.ex-btn--dark:hover::after{left:130%}

/* ---- hero upgrade · image collage ---- */
.ex-hero__visual{position:relative;isolation:isolate}
.ex-hero__photo{border-radius:var(--ex-radius-lg);overflow:hidden;box-shadow:var(--ex-shadow);border:1px solid var(--ex-line);aspect-ratio:4/5;position:relative}
.ex-hero__photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.ex-hero__visual:hover .ex-hero__photo img{transform:scale(1.06)}
.ex-hero__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(14,26,19,.55))}
.ex-hero__tagimg{position:absolute;left:1.1rem;bottom:1.1rem;z-index:3;color:#fff;font-family:var(--ex-serif);font-size:1rem;font-style:italic;text-shadow:0 2px 10px rgba(0,0,0,.5)}
/* floating ranking card overlaps photo */
.ex-float{position:absolute;z-index:4;background:var(--ex-green-900);color:var(--ex-cream);border-radius:16px;box-shadow:var(--ex-shadow);padding:1.1rem 1.2rem;border:1px solid rgba(243,239,230,.12);animation:ex-bob 5.5s ease-in-out infinite}
.ex-float--rank{right:-1.4rem;top:1.6rem;width:min(15rem,62vw)}
.ex-float--score{left:-1.3rem;bottom:2.2rem;display:flex;align-items:center;gap:.7rem;animation-delay:-2.4s}
.ex-float--score b{font-family:var(--ex-serif);font-size:2.1rem;color:#fff;line-height:1}
.ex-float--score span{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ex-ochre)}
.ex-stamp-badge{position:absolute;z-index:5;right:-1.2rem;bottom:-1.2rem;width:92px;height:92px;border-radius:50%;background:var(--ex-terra);color:#fff;display:grid;place-items:center;text-align:center;box-shadow:var(--ex-shadow);animation:ex-spin 26s linear infinite}
.ex-stamp-badge span{font-family:var(--ex-serif);font-size:.62rem;letter-spacing:.06em;line-height:1.25;text-transform:uppercase;font-weight:600}
@keyframes ex-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes ex-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.ex-float,.ex-stamp-badge{animation:none}}
@media(max-width:880px){.ex-float--rank{right:0;top:.6rem}.ex-float--score{left:0}.ex-stamp-badge{right:0;bottom:0}}

/* ---- operator marquee ticker ---- */
.ex-marquee{overflow:hidden;border-top:1px solid var(--ex-line);border-bottom:1px solid var(--ex-line);background:var(--ex-paper);padding:.9rem 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ex-marquee__track{display:flex;gap:2.4rem;width:max-content;animation:ex-marq 34s linear infinite}
.ex-marquee:hover .ex-marquee__track{animation-play-state:paused}
.ex-marquee__item{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--ex-serif);font-size:1.05rem;color:var(--ex-green-900);white-space:nowrap;opacity:.85}
.ex-marquee__item .d{width:6px;height:6px;border-radius:50%;background:var(--ex-terra)}
.ex-marquee__item small{font-family:var(--ex-sans);font-size:.72rem;color:var(--ex-ochre);font-weight:700}
@keyframes ex-marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ex-marquee__track{animation:none}}

/* ---- image figure cards ---- */
.ex-figure{position:relative;border-radius:var(--ex-radius-lg);overflow:hidden;box-shadow:var(--ex-shadow-sm);border:1px solid var(--ex-line);background:var(--ex-green-900);aspect-ratio:1/1}
.ex-figure img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1);opacity:.92}
.ex-figure:hover img{transform:scale(1.08)}
.ex-figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,18,13,.82))}
.ex-figure__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.2rem}
.ex-figure__cap span{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ex-ochre);font-weight:700}
.ex-figure__cap h3{color:#fff;font-size:1.18rem;margin-top:.3rem}
.ex-figure--wide{aspect-ratio:16/10}
@media(max-width:600px){.ex-figure{aspect-ratio:16/10}}

/* ---- comparison table ---- */
.ex-cmp-wrap{overflow-x:auto;border:1px solid var(--ex-line);border-radius:var(--ex-radius-lg);box-shadow:var(--ex-shadow-sm);background:var(--ex-cream-card)}
.ex-cmp{width:100%;border-collapse:collapse;min-width:640px;font-size:.92rem}
.ex-cmp th,.ex-cmp td{padding:.95rem 1.1rem;text-align:left;border-bottom:1px solid var(--ex-line-soft)}
.ex-cmp thead th{background:var(--ex-green-900);color:var(--ex-cream);font-family:var(--ex-sans);font-weight:600;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;position:sticky;top:0}
.ex-cmp thead th:first-child{border-top-left-radius:var(--ex-radius-lg)}
.ex-cmp thead th:last-child{border-top-right-radius:var(--ex-radius-lg)}
.ex-cmp tbody tr{transition:background .18s ease}
.ex-cmp tbody tr:hover{background:rgba(196,98,61,.06)}
.ex-cmp__op{display:flex;align-items:center;gap:.7rem;font-weight:600;color:var(--ex-green-900);font-family:var(--ex-serif);font-size:1rem}
.ex-cmp__op .ex-badge{width:34px;height:34px;font-size:.72rem;border-radius:9px}
.ex-cmp__sc{font-family:var(--ex-serif);font-weight:600;color:var(--ex-terra-600);font-size:1.05rem}
.ex-yes{color:#2f8f5b;font-weight:700}
.ex-cmp td small{color:var(--ex-muted)}

/* ---- editor verdict / quote ---- */
.ex-verdict{display:grid;grid-template-columns:.8fr 1.2fr;gap:0;border-radius:var(--ex-radius-lg);overflow:hidden;box-shadow:var(--ex-shadow);border:1px solid var(--ex-line)}
.ex-verdict__media{position:relative;min-height:280px;background:var(--ex-green-900)}
.ex-verdict__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85}
.ex-verdict__media::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(20,36,28,.2),rgba(20,36,28,.7))}
.ex-verdict__body{background:var(--ex-cream-card);padding:clamp(1.8rem,4vw,3rem)}
.ex-verdict__body .q{font-family:var(--ex-serif);font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.32;color:var(--ex-green-900);font-style:italic}
.ex-verdict__body .q::before{content:"\201C";color:var(--ex-terra);font-size:2.4em;line-height:0;vertical-align:-.35em;margin-right:.05em}
.ex-sign{display:flex;align-items:center;gap:.8rem;margin-top:1.6rem}
.ex-sign__avatar{width:46px;height:46px;border-radius:50%;background:var(--ex-terra);color:#fff;display:grid;place-items:center;font-family:var(--ex-serif);font-weight:600;font-size:1.1rem}
.ex-sign__name{font-weight:700;color:var(--ex-green-900);font-size:.92rem}
.ex-sign__role{font-size:.78rem;color:var(--ex-muted)}
.ex-sign__mark{margin-left:auto;font-family:var(--ex-serif);font-style:italic;font-size:1.5rem;color:var(--ex-terra-600);opacity:.7}
@media(max-width:760px){.ex-verdict{grid-template-columns:1fr}.ex-verdict__media{min-height:180px}}

/* ---- counters band ---- */
.ex-counters{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
@media(max-width:700px){.ex-counters{grid-template-columns:repeat(2,1fr)}}
.ex-counter{text-align:center;padding:1.4rem 1rem;border-radius:var(--ex-radius);background:rgba(243,239,230,.06);border:1px solid rgba(243,239,230,.14)}
.ex-counter b{display:block;font-family:var(--ex-serif);font-size:clamp(2rem,5vw,3rem);color:#fff;line-height:1}
.ex-counter span{font-size:.8rem;letter-spacing:.06em;color:rgba(243,239,230,.7);margin-top:.4rem;display:block}
.ex-counter em{color:var(--ex-ochre);font-style:normal}

/* ---- pull quote (prose) ---- */
.ex-pull{border-left:3px solid var(--ex-terra);padding:.4rem 0 .4rem 1.4rem;margin:1.8rem 0;font-family:var(--ex-serif);font-style:italic;font-size:1.25rem;color:var(--ex-green-900);line-height:1.4}

/* ---- ranking card thumb (top operators) ---- */
.ex-rcard__thumb{width:62px;height:62px;border-radius:14px;overflow:hidden;flex:none;border:1px solid var(--ex-line)}
.ex-rcard__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.ex-rcard:hover .ex-rcard__thumb img{transform:scale(1.1)}
.ex-rcard__why{margin-top:.55rem;font-size:.86rem;color:var(--ex-green-700);font-style:italic}
.ex-rcard__why b{font-style:normal;color:var(--ex-terra-600)}

/* nav link animated underline */
.ex-menu a{position:relative}
.ex-menu a::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.32rem;height:1.5px;background:var(--ex-terra);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;opacity:0}
.ex-menu a:hover::after,.ex-menu a[aria-current="page"]::after{transform:scaleX(1);opacity:1}

/* image frame for prose/about */
.ex-imgframe{border-radius:var(--ex-radius-lg);overflow:hidden;border:1px solid var(--ex-line);box-shadow:var(--ex-shadow-sm)}
.ex-imgframe img{width:100%;display:block;transition:transform 1s ease}
.ex-imgframe:hover img{transform:scale(1.05)}

/* =====================================================================
   REFINEMENT LAYER · section ornaments · dark band · figures strip
   ===================================================================== */

/* decorative ornament under section eyebrow/heading */
.ex-orn{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;color:var(--ex-terra);opacity:.85}
.ex-center .ex-orn{justify-content:center}
.ex-orn::before,.ex-orn::after{content:"";height:1.5px;width:2.2rem;background:linear-gradient(90deg,transparent,currentColor)}
.ex-orn::after{background:linear-gradient(90deg,currentColor,transparent)}
.ex-orn svg{width:16px;height:16px}

/* small decorative diamonds row */
.ex-diamonds{display:inline-flex;gap:.35rem;align-items:center}
.ex-diamonds i{width:5px;height:5px;background:currentColor;transform:rotate(45deg);opacity:.5}
.ex-diamonds i:nth-child(2){opacity:.85;width:6px;height:6px}

/* dark section (counters / trust band) */
.ex-section--dark{background:radial-gradient(120% 120% at 80% -10%,rgba(196,98,61,.22),transparent 55%),var(--ex-green-900);color:var(--ex-cream);position:relative;overflow:hidden}
.ex-section--dark h2,.ex-section--dark h3{color:#fff}
.ex-section--dark .ex-sec-head p{color:rgba(243,239,230,.72)}
.ex-section--dark .ex-eyebrow{color:var(--ex-ochre)}

/* trust intro grid (left copy + right counters) */
.ex-trust-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(1.6rem,4vw,3rem);align-items:center}
@media(max-width:860px){.ex-trust-grid{grid-template-columns:1fr}}
.ex-trust-grid .ex-sec-head{margin-bottom:0}

/* editor verdict eyebrow tweak inside cream */
.ex-verdict__body .ex-eyebrow{margin-bottom:.6rem}

/* image figures strip */
.ex-figs{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:1.1rem}
.ex-figs .ex-figure:first-child{grid-row:span 2}
@media(max-width:820px){.ex-figs{grid-template-columns:1fr 1fr}.ex-figs .ex-figure:first-child{grid-row:auto;grid-column:span 2}}
@media(max-width:520px){.ex-figs{grid-template-columns:1fr}.ex-figs .ex-figure:first-child{grid-column:auto}}

/* comparison table — operator mark inside */
.ex-cmp__op .ex-badge img{width:60%;height:60%}
.ex-cmp__rank{font-family:var(--ex-serif);color:var(--ex-terra-600);font-weight:600}
.ex-cmp tbody tr:first-child{background:rgba(196,98,61,.05)}

/* pill row of operator marks (logo wall) */
.ex-logowall{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin-top:1.8rem}
.ex-logowall__chip{display:inline-flex;align-items:center;gap:.55rem;background:var(--ex-cream-card);border:1px solid var(--ex-line);border-radius:999px;padding:.4rem .9rem .4rem .42rem;font-weight:600;font-size:.84rem;color:var(--ex-green-900);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.ex-logowall__chip:hover{transform:translateY(-2px);box-shadow:var(--ex-shadow-sm);border-color:rgba(31,61,47,.25)}
.ex-logowall__chip .ex-badge{width:30px;height:30px;border-radius:8px}
.ex-logowall__chip small{color:var(--ex-ochre);font-weight:700;margin-left:.1rem}

/* regulator logo badges (footer) */
.ex-reg{display:flex;flex-wrap:wrap;gap:.7rem}
.ex-reg__item{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(243,239,230,.2);border-radius:10px;padding:.5rem .8rem;background:rgba(243,239,230,.04);transition:border-color .2s ease,background .2s ease}
.ex-reg__item:hover{border-color:rgba(201,150,47,.5);background:rgba(243,239,230,.07)}
.ex-reg__item svg{width:20px;height:20px;color:var(--ex-cream);opacity:.85;flex:none}
.ex-reg__item span{font-size:.74rem;font-weight:600;color:rgba(243,239,230,.85);line-height:1.1}
.ex-reg__item b{display:block;font-size:.82rem;color:#fff;font-weight:700}

/* badge sheen sweep on hover (ranking) */
.ex-rcard__badge::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 40%,rgba(255,255,255,.22) 50%,transparent 60%);transform:translateX(-120%);transition:transform .7s ease;z-index:2}
.ex-rcard:hover .ex-rcard__badge::after{transform:translateX(120%)}
.ex-rcard__badge img{transition:transform .35s var(--ex-ease,cubic-bezier(.2,.7,.2,1))}
.ex-rcard:hover .ex-rcard__badge img{transform:scale(1.08)}

/* counter hover lift */
.ex-counter{transition:transform .22s ease,border-color .22s ease,background .22s ease}
.ex-counter:hover{transform:translateY(-3px);border-color:rgba(201,150,47,.45);background:rgba(243,239,230,.1)}

/* hero chip pulsing dot */
.ex-hero__chip .ex-dot{position:relative}
.ex-hero__chip .ex-dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(58,165,100,.5);animation:ex-pulse 2.4s ease-out infinite}
@keyframes ex-pulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.8);opacity:0}}
@media(prefers-reduced-motion:reduce){.ex-hero__chip .ex-dot::after{animation:none}}

/* marquee item hover accent */
.ex-marquee__item{transition:opacity .2s ease,color .2s ease}
.ex-marquee__item:hover{opacity:1;color:var(--ex-terra-600)}

/* tag subtle */
.ex-tag{transition:transform .18s ease}
.ex-rcard:hover .ex-tag{transform:translateY(-1px)}

/* faq hover */
.ex-faq__item{transition:border-color .2s ease,box-shadow .2s ease}
.ex-faq__item:hover{border-color:rgba(196,98,61,.32);box-shadow:var(--ex-shadow-sm)}

/* footer link hover slide */
.ex-footer__col a{transition:color .18s ease,padding-left .18s ease}
.ex-footer__col a:hover{padding-left:.3rem}

/* =====================================================================
   COLOR LAYER · azulejo blue accent · vibrant gradients · richer surfaces
   ===================================================================== */
:root{
  --ex-azul:      #2c6e91;   /* azulejo blue — Portuguese tile */
  --ex-azul-600:  #235a78;
  --ex-azul-soft: #e2eef3;
  --ex-rose:      #c64f6a;
  --ex-grad-warm: linear-gradient(115deg,#c4623d 0%,#c9962f 55%,#d8a93f 100%);
  --ex-grad-sun:  linear-gradient(135deg,#e8804f,#c9962f);
  --ex-grad-jewel:linear-gradient(135deg,#1f3d2f,#274d3b 55%,#2c6e91);
}

/* richer hero backdrop */
.ex-hero{
  background:
    radial-gradient(80% 70% at 88% -8%,rgba(196,98,61,.20),transparent 58%),
    radial-gradient(70% 80% at 6% 110%,rgba(44,110,145,.16),transparent 60%),
    radial-gradient(60% 60% at 50% 120%,rgba(201,150,47,.12),transparent 60%),
    var(--ex-cream);
}
.ex-grad{background:var(--ex-grad-warm);-webkit-background-clip:text;background-clip:text}

/* colourful alt section wash */
.ex-section--alt{background:
  linear-gradient(180deg,#fbf4ec,var(--ex-cream)),
  radial-gradient(60% 50% at 100% 0%,rgba(44,110,145,.06),transparent 60%)}

/* methodology icons — varied colours */
.ex-grid-4 .ex-fcard:nth-child(1) .ex-fcard__ico{background:var(--ex-green-900)}
.ex-grid-4 .ex-fcard:nth-child(2) .ex-fcard__ico{background:var(--ex-terra)}
.ex-grid-4 .ex-fcard:nth-child(3) .ex-fcard__ico{background:var(--ex-azul)}
.ex-grid-4 .ex-fcard:nth-child(4) .ex-fcard__ico{background:var(--ex-ochre)}
.ex-fcard{position:relative;overflow:hidden}
.ex-fcard::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--ex-grad-warm);opacity:0;transition:opacity .25s ease}
.ex-fcard:hover::before{opacity:1}

/* colour pop on tags & chips */
.ex-tag--srij{background:var(--ex-azul-soft);color:var(--ex-azul-600)}
.ex-hero__chip{background:linear-gradient(135deg,#fff,var(--ex-cream-card));border-color:rgba(196,98,61,.28)}

/* vibrant CTA band */
.ex-band{background:var(--ex-grad-jewel)}
.ex-band::before{background:radial-gradient(circle,rgba(201,150,47,.45),transparent 65%)}
.ex-band::after{content:"";position:absolute;inset:auto auto -50% -10%;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(44,110,145,.5),transparent 65%)}

/* dark trust band — add blue glow */
.ex-section--dark{background:
  radial-gradient(110% 120% at 82% -10%,rgba(196,98,61,.22),transparent 52%),
  radial-gradient(90% 100% at 4% 120%,rgba(44,110,145,.22),transparent 55%),
  var(--ex-green-900)}
.ex-counter b{background:var(--ex-grad-warm);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* payment chips — tinted */
.ex-pay__item:hover{border-color:var(--ex-azul);color:var(--ex-azul-600)}
.ex-pay__item:nth-child(odd) svg{color:var(--ex-azul)}

/* score number gradient on top card */
.ex-rcard--top .ex-score b{background:var(--ex-grad-warm);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ex-rcard--top{background:linear-gradient(180deg,#fff,var(--ex-cream-card))}

/* figure caption eyebrow colour cycle */
.ex-figs .ex-figure:nth-child(2) .ex-figure__cap span{color:#7fc4e6}
.ex-figs .ex-figure:nth-child(3) .ex-figure__cap span{color:#f0b14e}

/* eyebrow underline accent */
.ex-eyebrow::before{background:var(--ex-grad-warm);opacity:1;height:2px}

/* =====================================================================
   MOBILE LAYER · refined responsive layout
   ===================================================================== */
@media(max-width:1024px){
  .ex-hero__grid{gap:2.4rem}
}

/* tablet / small-desktop hero stacking handled at 880 already; refine floats */
@media(max-width:880px){
  .ex-hero__visual{max-width:520px;margin-inline:auto;width:100%}
}

/* phones */
@media(max-width:680px){
  /* hero: turn floating collage into a clean stacked card */
  .ex-hero__grid{padding:2rem 0 1rem}
  .ex-hero__photo{aspect-ratio:16/11}
  .ex-float--score,.ex-stamp-badge{display:none}
  .ex-float--rank{
    position:static;width:100%;margin-top:.9rem;animation:none;
    right:auto;top:auto;box-shadow:var(--ex-shadow-sm)
  }
  .ex-hero__trust{gap:1rem 1.4rem}
  .ex-hero__trust b{font-size:1.3rem}
  .ex-hero h1{font-size:clamp(2.1rem,8.5vw,2.9rem)}

  /* counters: 2-up tighter, no overflow */
  .ex-counters{gap:.7rem}
  .ex-counter{padding:1.1rem .7rem}
  .ex-counter b{font-size:1.9rem}
  .ex-counter span{font-size:.72rem}

  /* trust grid copy spacing */
  .ex-trust-grid{gap:1.6rem}

  /* section rhythm */
  .ex-section{padding:2.6rem 0}
  .ex-sec-head{margin-bottom:1.8rem}

  /* ranking card: keep tidy */
  .ex-rcard{padding:1.1rem 1.15rem;gap:.8rem 1rem}
  .ex-rcard__meta{font-size:.8rem;gap:.4rem .7rem}
  .ex-rcard__why{font-size:.84rem}
  .ex-rcard__actions{width:100%}
  .ex-rcard__actions .ex-btn{flex:1;justify-content:center}

  /* verdict stacks, media shorter */
  .ex-verdict__media{min-height:200px}

  /* figures: single column with nice ratio */
  .ex-figs{gap:.9rem}
  .ex-figure,.ex-figs .ex-figure:first-child{aspect-ratio:16/10}

  /* footer regulators wrap full width */
  .ex-reg{gap:.5rem}
  .ex-reg__item{flex:1 1 calc(50% - .5rem);min-width:0}
  .ex-footer__regs-in{flex-direction:column;align-items:flex-start;gap:1rem}
  .ex-footer__disc-in{gap:1rem}
  .ex-footer__disc p{min-width:0}

  /* topbar: keep only essentials */
  .ex-topbar{font-size:.72rem}

  /* CTA band buttons full width */
  .ex-band .ex-hero__cta .ex-btn{flex:1 1 100%}

  /* cookie bar full width */
  .ex-cookie{left:.6rem;right:.6rem;bottom:.6rem;padding:1rem}
}

@media(max-width:420px){
  .ex-counters{grid-template-columns:1fr}
  .ex-hero__cta .ex-btn{flex:1 1 100%}
  .ex-logo__word{font-size:1.18rem}
  .ex-logo__mark{width:38px;height:38px}
}
