
/* ---------- Palette & tokens ---------- */
:root{
  --background:#ffffff;
  --ink:#181818;
  --ink-soft:#645d58;
  --brand:#e10018;
  --brand-deep:#181818;
  --brand-light:#ff7242;
  --accent-gold:#f4b840;
  --surface:#f5f5f5;
  --surface-card:#ffffff;
  --ghost:#e6ddd7;
  --ghost-strong:#9c8876;
  --hairline:#eae3df;
  --on-brand:#ffffff;
  --radius-card:1.5rem;
  --radius-card-lg:2rem;
  --radius-pill:62.5rem;
  --easeExpo:cubic-bezier(.16,1,.3,1);
  --easeQuart:cubic-bezier(.25,1,.5,1);
  --easeInOutCubic:cubic-bezier(.65,0,.35,1);
}

/* ---------- Adaptive rem grid ---------- */
html{font-size:16px}
@media (max-width:1920px){html{font-size:clamp(0.75rem,.833333vw,1.25rem)}}
@media (max-width:1440px){html{font-size:clamp(0.75rem,1.111111vw,1.25rem)}}
@media (max-width:1024px){html{font-size:clamp(0.8125rem,1.5625vw,1.25rem)}}
@media (max-width:640px){html{font-size:clamp(0.875rem,4.444444vw,1.25rem)}}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html.lock{position:relative;overflow:hidden;height:100%}
body{min-height:100vh;background:var(--background);color:var(--ink);font-family:"Onest","Onest Fallback",system-ui,sans-serif;font-weight:400;line-height:1.4;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
button{cursor:pointer;font-family:inherit;color:inherit;background:none;border:0}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
[hidden]{display:none!important}
address{font-style:normal}
::selection{background:var(--brand);color:#fff}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.page{width:100%;overflow-x:clip;padding:.5rem}
@media (min-width:640px){.page{padding:.75rem}}
/* Skip link: first tab stop, WCAG 2.4.1. Visually hidden until focused,
   then pinned top-left above every layer including the loader. */
.skip-link{position:absolute;left:.5rem;top:.5rem;z-index:300;
  transform:translateY(-160%);transition:transform .2s var(--easeQuart);
  background:var(--ink);color:#fff;padding:.7rem 1.1rem;
  border-radius:var(--radius-pill);font-size:.85rem;font-weight:500}
.skip-link:focus,.skip-link:focus-visible{transform:translateY(0)}
/* Scroll targets are focused programmatically so the skip link and in-page
   anchors actually move focus. They are containers, not controls, so they
   take no focus ring — the real controls inside them keep theirs. */
main:focus,section:focus{outline:none}
@media (prefers-reduced-motion:reduce){.skip-link{transition:none}}

/* ---------- Logo ---------- */
.logo{aspect-ratio:336/75;height:auto;color:var(--ink);--holi:var(--brand)}
.logo.ondark{color:#fff;--holi:var(--brand-light)}

/* ---------- Reveal primitives ---------- */
.ln{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.14em;margin-bottom:-.14em}
.li{display:inline-block;transform:translateY(115%);opacity:0;
    transition:transform var(--rd,950ms) var(--easeExpo) var(--dl,0ms),opacity var(--rd,950ms) var(--easeExpo) var(--dl,0ms)}
.in .li{transform:none;opacity:1}
.w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.14em;margin-bottom:-.14em}
.wi{display:inline-block;transform:translateY(115%);opacity:0;
    transition:transform var(--rd,1100ms) var(--easeExpo) var(--dl,0ms),opacity var(--rd,1100ms) var(--easeExpo) var(--dl,0ms)}
.in .wi{transform:none;opacity:1}
.wf .w{overflow:visible;vertical-align:baseline;padding-bottom:0;margin-bottom:0}
.wf .wi{transform:translateY(18px);transition:transform var(--rd,700ms) var(--easeQuart) var(--dl,0ms),opacity var(--rd,700ms) var(--easeQuart) var(--dl,0ms)}
.wf.in .wi{transform:none;opacity:1}
.gw{display:inline-block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.gwi{display:inline-block;transform:translateY(115%);opacity:0;
     transition:transform 700ms var(--easeExpo) var(--dl,0ms),opacity 700ms var(--easeExpo) var(--dl,0ms)}
.gw.in .gwi{transform:none;opacity:1}
.cut .li,.cut .wi,.cut .gwi,.ln.cut .li,.gw.cut .gwi{transition:none!important}
@media (prefers-reduced-motion:reduce){
  .li,.wi,.gwi{transition-duration:1ms!important;transition-delay:0ms!important}
}

/* ---------- Shared components ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.22em;color:var(--ink-soft)}
.eyebrow i{width:.375rem;height:.375rem;border-radius:var(--radius-pill);background:var(--brand);flex:none}
.eyebrow.light{color:rgba(255,255,255,.7)}
.eyebrow.light i{background:var(--brand-light)}

.h2{font-size:1.75rem;font-weight:500;line-height:1.05;letter-spacing:-.02em;text-transform:uppercase;margin-top:1rem;text-wrap:balance}
@media (min-width:640px){.h2{font-size:2.25rem}}
@media (min-width:1024px){.h2{font-size:3rem}}
.hword{display:block}

.pill{display:inline-flex;align-items:center;gap:.5rem;border-radius:var(--radius-pill);padding:.875rem 1.75rem;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;border:1px solid transparent;transition:background-color .3s ease,color .3s ease,border-color .3s ease}
.pill svg{width:1rem;height:1rem;flex:none}
.pill.light{background:#fff;color:var(--brand-deep)}
.pill.light:hover{background:var(--brand-light);color:#fff}
.pill.solid{background:var(--ink);color:#fff}
.pill.solid:hover{background:var(--brand)}
.pill.outline{border-color:currentColor;color:var(--ink)}
.pill.outline:hover{background:var(--ink);color:#fff}

.arrow-btn{width:3rem;height:3rem;border-radius:var(--radius-pill);display:grid;place-items:center;border:1px solid var(--hairline);background:transparent;color:var(--ink);transition:border-color .3s,background-color .3s,color .3s}
@media (min-width:640px){.arrow-btn{width:3.5rem;height:3.5rem}}
.arrow-btn:hover{border-color:var(--ink)}
.arrow-btn.solid{background:var(--ink);border-color:var(--ink);color:#fff}
.arrow-btn.solid:hover{background:var(--brand);border-color:var(--brand)}
.arrow-btn .flip{display:grid;transform:scaleX(-1)}
.arrow-btn svg{width:1.25rem;height:1.25rem}

.dots{display:flex;gap:.5rem}
.dot{padding:.375rem;display:grid;place-items:center;min-width:1.5rem;min-height:1.5rem}
.dot i{display:block;height:.375rem;width:.375rem;border-radius:var(--radius-pill);background:var(--ghost);transition:width .35s var(--easeExpo),background-color .35s}
.dot.on i{width:1.25rem;background:var(--ink)}
.dots.light .dot i{background:rgba(255,255,255,.4)}
.dots.light .dot.on i{background:#fff}

.glass{border:1px solid rgba(255,255,255,.15);background:rgba(24,24,24,.55);box-shadow:0 1rem 2rem rgba(24,24,24,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-card)}

/* ---------- Hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius-card-lg);background:var(--brand-deep);color:#fff;display:flex;flex-direction:column;min-height:calc(100vh - 5.5rem);min-height:calc(100svh - 5.5rem)}
@media (min-width:768px){.hero{min-height:calc(100vh - 6.75rem);min-height:calc(100svh - 6.75rem)}}
/* Desktop: bar + hero lock to exactly one screen (short viewports fall back to natural growth) */
@media (min-width:1024px) and (min-height:800px){.hero{height:calc(100vh - 6.75rem);height:calc(100svh - 6.75rem)}}
.hero-plate{position:absolute;inset:0;z-index:-1;overflow:hidden;border-radius:inherit}
.hero-plate-inner{position:absolute;left:0;right:0;top:-16%;height:132%;width:100%;will-change:transform}
.hero-plate-inner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-plate-inner .bgv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.hero-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(24,24,24,.68),rgba(24,24,24,.34),rgba(24,24,24,.80))}

/* Top bar — white, above the hero: logo left · nav centre · Contact Us right */
.top-bar{position:relative;z-index:60;height:4rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;background:var(--background);padding:0 .5rem;margin-bottom:.5rem}
@media (min-width:640px){.top-bar{height:4.5rem;padding:0 1rem;margin-bottom:.75rem}}
.tb-brand{grid-column:1;justify-self:start;display:flex;align-items:center}
.tb-brand .logo{width:8rem}
@media (min-width:640px){.tb-brand .logo{width:10.5rem}}
.tb-nav{grid-column:2;display:none;align-self:stretch}
@media (min-width:1024px){.tb-nav{display:flex;align-items:stretch}}
.tb-nav > a,.tb-nav .nav-link{display:inline-flex;align-items:center;gap:.35rem;padding:0 .8rem;font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--ink);transition:color .25s;white-space:nowrap}
.tb-nav > a:hover,.nav-item.open > .nav-link,.nav-item:hover > .nav-link,.nav-item:focus-within > .nav-link{color:var(--brand)}
.nav-item{display:flex;align-items:stretch;position:relative}
.nav-item.has-mega{position:static}
.nav-link .caret{width:.7rem;height:.7rem;transition:transform .25s}
.nav-item.open .caret,.nav-item:hover .caret,.nav-item:focus-within .caret{transform:rotate(180deg)}
/* Services dropdown */
.drop-panel{position:absolute;top:100%;left:50%;transform:translate(-50%,10px);min-width:17rem;background:var(--surface-card);border:1px solid var(--hairline);border-radius:1rem;box-shadow:0 1.5rem 3rem rgba(24,24,24,.15);padding:.6rem;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,transform .25s ease,visibility .25s}
.nav-item.open > .drop-panel,.nav-item:hover > .drop-panel,.nav-item:focus-within > .drop-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.drop-panel a{display:block;padding:.6rem .9rem;border-radius:.6rem;font-size:.82rem;color:var(--ink);white-space:nowrap;transition:background-color .2s,color .2s}
.drop-panel a:hover{background:var(--surface);color:var(--brand)}
/* Destinations mega menu */
.mega-panel{position:absolute;top:100%;left:0;right:0;transform:translateY(10px);background:var(--surface-card);border:1px solid var(--hairline);border-radius:1.25rem;box-shadow:0 2rem 4rem rgba(24,24,24,.18);padding:1.25rem 1.5rem 1.5rem;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,transform .25s ease,visibility .25s}
.has-mega.open > .mega-panel,.has-mega:hover > .mega-panel,.has-mega:focus-within > .mega-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.mega-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:0 .4rem .85rem;border-bottom:1px solid var(--hairline);margin-bottom:.85rem}
.mega-title{font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft)}
.mega-note{font-size:.75rem;color:var(--ink-soft)}
.mega-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.1rem .5rem}
.mega-grid a{display:flex;align-items:center;gap:.55rem;padding:.45rem .6rem;border-radius:.6rem;font-size:.82rem;color:var(--ink);transition:background-color .2s,color .2s}
.mega-grid a:hover{background:var(--surface);color:var(--brand)}
.mega-grid .fl{font-size:1rem;line-height:1;flex:none}
.tb-right{grid-column:3;justify-self:end;display:flex;align-items:center;gap:.75rem}
.pill.sm{padding:.65rem 1.15rem;font-size:.7rem}
.tb-cta{display:none}
@media (min-width:1024px){.tb-cta{display:inline-flex}}
.burger{width:2.75rem;height:2.75rem;border-radius:var(--radius-pill);background:var(--surface);display:grid;place-items:center;transition:background-color .25s}
.burger:hover{background:var(--hairline)}
.burger .bars{display:grid;gap:5px}
.burger .bars span{display:block;width:1rem;height:1px;background:var(--ink)}
@media (min-width:1024px){.top-bar .burger{display:none}}

#hero-title{font-weight:500;margin-top:1rem}
#hero-title .giant{display:block;font-size:8vw;line-height:.95;letter-spacing:-.02em;text-transform:uppercase}
@media (min-width:768px){#hero-title .giant{font-size:6vw}}
@media (min-width:1024px){#hero-title .giant{font-size:4.6rem}}
.hero-sub{margin-top:1rem;font-size:.95rem;line-height:1.65;max-width:40rem;color:rgba(255,255,255,.8)}
.hero-wa{margin-top:1.5rem}
.hero-trust{margin-top:1.75rem}
.tp-line{font-size:.82rem;color:#fff}
.tp-line .li{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}
.tp-line strong{font-weight:500;font-size:1.1rem;letter-spacing:-.01em;line-height:1}
.tp-line .tp{width:4.5rem;height:1.1rem;display:block;flex:none;transform:translateY(.22rem)}
@media (min-width:640px){
  .tp-line{font-size:1.05rem}
  .tp-line .li{gap:.45rem}
  .tp-line strong{font-size:1.5rem}
  .tp-line .tp{width:6.15rem;height:1.5rem;transform:translateY(.28rem)}
}
.hero-left .tp-bottom{margin-top:2.5rem}
@media (min-width:1024px){.hero-left .tp-bottom{margin-top:auto;padding-top:2rem}}
.trust-list{display:grid;gap:.5rem;justify-items:start;text-align:left}
.trust-list li{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.trust-list .li{display:flex;align-items:center;gap:.55rem}
.trust-list .ck{width:.95rem;height:.95rem;color:var(--brand-light);flex:none}

.hero-split{flex:1;min-height:0;display:flex;flex-direction:column;gap:2rem;padding:1.75rem 1.5rem 1.25rem}
@media (min-width:640px){.hero-split{padding:1.75rem 2.5rem 1.5rem}}
@media (min-width:1024px){.hero-split{flex-direction:row;align-items:stretch;justify-content:space-between;gap:3rem;padding-top:1.25rem}}
.hero-left{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
/* Desktop swaps to an explicit 2-row, 2-column grid so the form (a mid-flow
   child, kept there for mobile order: H1, copy, CTA, form, trust details)
   still lands beside the text as a full-height right-hand column instead of
   inline below the CTA. .hero-copy-top/-bottom split the text into the two
   named rows; .enquiry spans both via the explicit row count (an implicit
   "1/-1" span does not reach past the explicit grid, so the row count here
   has to be named rather than inferred).

   Scoped with :has() to pages that actually have the .hero-copy-top/-bottom
   split — most heroes don't, and .hero-left's children would otherwise
   auto-place alternating across the two grid columns with no override,
   scrambling the copy left/right instead of stacking it. */
@media (min-width:1024px){
  .hero-left:has(> .hero-copy-top){display:grid;grid-template-columns:1fr 30rem;grid-template-rows:auto 1fr;column-gap:3rem;align-items:start}
  .hero-copy-top{grid-column:1;grid-row:1}
  .hero-copy-bottom{grid-column:1;grid-row:2;align-self:end}
}

/* Consultancy enquiry form (hero lead capture) */
.enquiry{width:100%;padding:1.25rem;flex:none;margin-top:1.75rem}
@media (min-width:640px){.enquiry{padding:1.5rem}}
@media (min-width:1024px){
  .enquiry{width:100%;padding:1.75rem;grid-column:2;grid-row:1/3;align-self:end;margin:0 1.25rem 1rem 0}
  .enq-title{font-size:1.25rem}
  .enq-note{font-size:.75rem}
  .enq-grid{gap:.9rem}
  .efield label{font-size:.68rem}
  .efield input,.efield select,.efield textarea{font-size:.9rem;padding:.7rem .9rem}
  .efield select{padding-right:2.4rem}
  .enq-submit{padding:.9rem 1.5rem;font-size:.85rem}
  .enq-terms{font-size:.78rem}
  .enq-foot{font-size:.68rem}
}
.enq-title{font-size:1.125rem;font-weight:500}
.enq-note{font-size:.7rem;line-height:1.55;color:rgba(255,255,255,.85);margin-top:.4rem}
.enq-form{margin-top:1rem}
.enq-grid{display:grid;gap:.75rem}
@media (min-width:640px){.enq-grid{grid-template-columns:1fr 1fr}.efield-full{grid-column:1 / -1}}
.efield label{display:block;font-size:.62rem;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.92);margin-bottom:.35rem}
.efield input,.efield select,.efield textarea{width:100%;border-radius:.6rem;border:1px solid rgba(255,255,255,.25);background-color:rgba(255,255,255,.12);padding:.6rem .75rem;font-size:.8rem;font-family:inherit;color:#fff;resize:vertical;transition:border-color .25s,box-shadow .25s,background-color .25s}
.efield input::placeholder,.efield textarea::placeholder{color:rgba(255,255,255,.8)}
.efield input:focus,.efield select:focus,.efield textarea:focus{outline:none;border-color:var(--brand-light);background-color:rgba(255,255,255,.16);box-shadow:0 0 0 3px rgba(255,114,66,.25)}
.efield select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:2.2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:.75rem}
.efield select:invalid{color:rgba(255,255,255,.8)}
.efield select option{color:var(--ink);background:#fff}
.enq-terms{display:flex;gap:.5rem;align-items:flex-start;margin-top:.9rem;font-size:.72rem;color:rgba(255,255,255,.9);line-height:1.5;cursor:pointer}
.enq-terms input{width:.9rem;height:.9rem;margin-top:.15rem;accent-color:var(--brand);flex:none;cursor:pointer}
.enq-terms a{text-decoration:underline}
.enq-terms a:hover{color:#fff}
.enq-submit{width:100%;margin-top:1rem;border-radius:var(--radius-pill);background:#fff;color:var(--brand-deep);padding:.8rem 1.5rem;font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;transition:background-color .3s,color .3s,opacity .3s}
.enq-submit:hover{background:var(--brand-light);color:#fff}
.enq-submit:disabled{opacity:.55;cursor:default}
.enq-foot{margin-top:.8rem;font-size:.62rem;line-height:1.6;color:rgba(255,255,255,.8)}
.enq-foot a{text-decoration:underline}
.enq-foot a:hover{color:#fff}
.enq-success{text-align:center;padding:1.5rem 0 .5rem}
.enq-success .tick{width:3rem;height:3rem;border-radius:var(--radius-pill);background:var(--brand);display:grid;place-items:center;margin:0 auto}
.enq-success .tick svg{width:1.4rem;height:1.4rem;color:#fff}
.enq-success h3{font-size:1.125rem;font-weight:500;margin-top:1rem}
.enq-success p{font-size:.8rem;color:rgba(255,255,255,.88);margin-top:.5rem;line-height:1.6}

.hero-disclaimer{margin-top:1rem;font-size:.65rem;line-height:1.55;color:rgba(255,255,255,.55);max-width:40rem}

/* ---------- Destination badge: which country page this is, at a glance ---------- */
.dest-badge{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1rem;font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.9)}
.dest-flag{width:1.9rem;height:1.9rem;flex:none;border-radius:var(--radius-pill);overflow:hidden;border:1px solid rgba(255,255,255,.4);box-shadow:0 .3rem .7rem rgba(0,0,0,.3)}
.dest-flag img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- WhatsApp chat widget: fixed, every page ---------- */
.wa-widget{position:fixed;right:1.25rem;bottom:1.25rem;z-index:55;width:3.5rem;height:3.5rem;border-radius:var(--radius-pill);background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:0 .6rem 1.5rem rgba(24,24,24,.28);transition:transform .25s,box-shadow .25s}
.wa-widget:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 .9rem 2rem rgba(24,24,24,.32)}
.wa-widget svg{width:1.9rem;height:1.9rem}
@media (min-width:640px){.wa-widget{right:1.75rem;bottom:1.75rem}}

/* ---------- Country marquee strip ---------- */
.countries-strip{background:var(--surface);border-radius:var(--radius-card-lg);margin-top:.75rem;padding:1.6rem 0}
.mq{overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}
/* The 58 marquee items are injected by JS after first paint. Reserving the
   track height stops that injection from pushing the whole page down — it
   was the single largest layout shift on every page. */
.mq{min-height:2.85rem}
@media (min-width:640px){.mq{min-height:3.05rem}}
/* will-change forces this onto its own compositor layer up front — without it,
   some WebKit builds don't start animating a bare `animation` declaration
   until something else (like a hover on a child) forces a layer promotion,
   so the strip can sit still until the user's cursor crosses it. */
.mq-track{display:flex;width:max-content;animation:mq-scroll 60s linear infinite;will-change:transform}
.mq:hover .mq-track{animation-play-state:paused}
.mq-group{display:flex;gap:2.25rem;padding:.6rem 2.25rem .6rem 0}
@keyframes mq-scroll{to{transform:translateX(-50%)}}
.mq-item{display:flex;flex-direction:row;align-items:center;gap:.65rem;flex:none;transition:transform .35s var(--easeExpo)}
.mq-item:hover{transform:translateY(-4px) scale(1.06)}
.mq-flag{width:1.65rem;height:1.65rem;flex:none;border-radius:var(--radius-pill);overflow:hidden;border:1px solid var(--hairline);background:#fff;box-shadow:0 .25rem .6rem rgba(24,24,24,.08);transition:border-color .3s,box-shadow .3s}
@media (min-width:640px){.mq-flag{width:1.85rem;height:1.85rem}}
.mq-item:hover .mq-flag{border-color:var(--brand-light);box-shadow:0 .5rem 1rem rgba(24,24,24,.16)}
.mq-flag img{width:100%;height:100%;object-fit:cover}
.mq-name{font-size:.9rem;font-weight:500;color:var(--ink);white-space:nowrap;transition:color .25s}
@media (min-width:640px){.mq-name{font-size:.95rem}}
.mq-item:hover .mq-name{color:var(--brand)}
@media (max-width:639px){
  .efield input,.efield select,.efield textarea,.field input,.field textarea{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
}

/* ---------- Pain point ---------- */
.pain{background:var(--background);padding:3.5rem 1.5rem}
@media (min-width:640px){.pain{padding:6rem 2.5rem}}
.pain-grid{display:grid;gap:2.5rem}
@media (min-width:768px){.pain-grid{grid-template-columns:1fr 1.15fr;gap:4rem;align-items:start}}
.pain-copy{display:grid;gap:1.5rem}
@media (min-width:768px){.pain-copy{margin-top:2.4rem}}
.pain-copy p{font-size:1rem;line-height:1.75;color:var(--ink-soft)}
.pain-copy p.pain-punch{font-size:1.35rem;line-height:1.5;color:var(--ink)}
.pain-punch strong{font-weight:500;color:var(--brand)}

/* ---------- Who we are ---------- */
.who{background:var(--surface);border-radius:var(--radius-card-lg);padding:3.5rem 1.5rem 4rem}
@media (min-width:640px){.who{padding:5rem 2.5rem 5.5rem}}
.who-layout{display:grid;gap:2.5rem}
@media (min-width:768px){
  .who-layout{grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
  .who-img{order:-1}
}
.who-grid{display:grid;gap:1.25rem;margin-top:1.75rem}
.who-grid p{font-size:1rem;line-height:1.75;color:var(--ink-soft)}
.who-grid strong{font-weight:500;color:var(--ink)}
.who-cta{margin-top:2.25rem;display:flex;flex-wrap:wrap;gap:.9rem}
.who-img{margin:0;border-radius:var(--radius-card);overflow:hidden}
.who-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;display:block}
@media (min-width:768px){.who-img img{aspect-ratio:auto}}

/* ---------- Trust section ---------- */
.trust{position:relative;isolation:isolate;overflow:hidden;background:var(--background);padding:3rem 1.5rem}
@media (min-width:640px){.trust{padding:5rem 2.5rem}}
.trust-top{position:relative;z-index:20;display:flex;flex-direction:column;gap:1.5rem}
@media (min-width:640px){.trust-top{flex-direction:row;justify-content:space-between;align-items:flex-start}}
.badge-circle{width:7rem;height:7rem;border-radius:var(--radius-pill);background:var(--surface);display:grid;place-content:center;text-align:center;row-gap:.3rem;flex:none}
@media (min-width:640px){.badge-circle{width:8rem;height:8rem}}
.bc-value{font-size:1.5rem;font-weight:500;line-height:1}
.bc-cap{font-size:.6rem;color:var(--ink-soft);max-width:9em;margin:0 auto;line-height:1.4}
.badge-card{max-width:28rem;display:flex;gap:1rem;border-radius:var(--radius-card);background:var(--surface);padding:1.25rem}
@media (min-width:640px){.badge-card{gap:1.25rem;padding:1.5rem}}
.badge-chip{align-self:flex-start;border-radius:.75rem;background:var(--background);padding:.5rem 1rem;font-size:1.25rem;font-weight:500;flex:none}
.badge-tx h3{font-size:1.125rem;font-weight:500;line-height:1.3}
.badge-tx p{font-size:.75rem;color:var(--ink-soft);line-height:1.65;margin-top:.5rem}

.ghost-head{position:relative;z-index:0;pointer-events:none;user-select:none;-webkit-user-select:none;max-width:88rem;margin:3rem auto 0;font-size:8.2vw;font-weight:500;text-transform:uppercase;line-height:1.02;letter-spacing:-.02em;color:var(--ghost)}
@media (min-width:640px){.ghost-head{font-size:5vw;padding:2.5rem 0}}
.ghost-row{display:flex;justify-content:space-between}
.gw.ink{color:var(--ink)}

.coach-pos{position:relative;z-index:10;width:13rem;margin:2.5rem auto 0}
@media (min-width:640px){.coach-pos{position:absolute;left:50%;top:50%;width:16rem;margin:0;transform:translate(-50%,-50%)}}
.coach{transform:rotate(6deg);aspect-ratio:3/4;border-radius:var(--radius-card);background:var(--brand);overflow:hidden;position:relative;box-shadow:0 1.5rem 3rem rgba(24,24,24,.25)}
.coach img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.coach-cap{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;z-index:5;border-radius:.75rem;background:rgba(24,24,24,.45);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:.5rem .75rem}
.cc-name{font-size:.875rem;font-weight:500}
.cc-role{font-size:.65rem;opacity:.8;margin-top:.1rem}

.trust-controls{position:relative;z-index:20;margin-top:3rem;display:flex;justify-content:space-between;align-items:center}
@media (min-width:640px){.trust-controls{margin-top:6rem}}

/* ---------- Services ---------- */
.services{background:var(--background);padding:3.5rem 1.5rem 4rem}
@media (min-width:640px){.services{padding:4.5rem 2.5rem 5rem}}
.services-intro{margin-top:1.5rem;font-size:1.05rem;line-height:1.6;color:var(--ink-soft);max-width:38rem}
.services-cta{margin-top:2.75rem;font-size:1.05rem;line-height:1.6;color:var(--ink)}
.services-cta a{text-decoration:underline;text-underline-offset:.2em;color:var(--brand);font-weight:500}
.services-cta a:hover{color:var(--brand-light)}

/* ---------- Service cards ----------
   aspect-ratio is taller on mobile (3/4 instead of 4/3) so the caption box has
   room for the longest description (card 05) without clipping it; touch
   devices show the button permanently (no hover), which needs the extra
   height too. */
.svc-grid{margin-top:2.25rem;display:grid;gap:1.1rem}
@media (min-width:640px){.svc-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.svc-grid{grid-template-columns:repeat(3,1fr)}}
.svc-card{position:relative;border-radius:var(--radius-card);overflow:hidden;background:var(--surface);aspect-ratio:3/4;text-align:left;padding:0;will-change:transform}
@media (min-width:640px){.svc-card{aspect-ratio:4/3}}
.svc-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svc-cap{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;border-radius:.85rem;background:rgba(24,24,24,.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;padding:1.1rem 1.2rem;display:block;transition:background-color .35s ease,color .35s ease}
.svc-name{display:block;font-size:1.2rem;font-weight:500;line-height:1.25}
.svc-desc{display:block;margin-top:.5rem;font-size:.85rem;line-height:1.55;color:rgba(255,255,255,.88);transition:color .35s ease}
.svc-btn{display:inline-flex;align-items:center;gap:.45rem;border-radius:var(--radius-pill);background:var(--brand);color:#fff;font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;padding:0 1rem;max-height:0;margin-top:0;opacity:0;overflow:hidden;transform:translateY(6px);transition:max-height .35s ease,margin-top .35s ease,opacity .35s ease,transform .35s ease,padding .35s ease}
.svc-btn svg{width:.85rem;height:.85rem;flex:none}
.svc-card:hover .svc-cap{background:rgba(255,255,255,.96);color:var(--ink)}
.svc-card:hover .svc-desc{color:var(--ink-soft)}
.svc-card:hover .svc-btn{max-height:3rem;margin-top:.85rem;opacity:1;transform:none;padding:.55rem 1rem}
@media (hover:none){.svc-btn{max-height:3rem;margin-top:.85rem;opacity:1;transform:none;padding:.55rem 1rem}}

.rows{margin-top:3rem}
.row{border-top:1px solid var(--hairline)}
.row:last-child{border-bottom:1px solid var(--hairline)}
.row-btn{display:flex;width:100%;gap:1rem;align-items:center;padding:1.75rem 0;text-align:left;transition:background-color .25s}
@media (min-width:640px){.row-btn{gap:1.5rem}}
.row-ico{flex:none;width:3rem;height:3rem;border-radius:.9rem;background:var(--surface);color:var(--brand);display:grid;place-items:center;transition:background-color .3s,color .3s}
.row-ico svg{width:1.4rem;height:1.4rem}
.row-btn:hover .row-ico{background:var(--brand);color:#fff}
.row-btn:focus-visible{background:var(--surface)}
.row-i{width:2.5rem;flex:none;font-size:.875rem;font-weight:500;color:var(--ink-soft)}
.row-body{flex:1;min-width:0}
.row-name{font-size:1.5rem;font-weight:500;letter-spacing:-.01em;line-height:1.1}
@media (min-width:640px){.row-name{font-size:1.875rem}}
.row-desc{font-size:.875rem;color:var(--ink-soft);margin-top:.4rem;line-height:1.5}
.row-arrow{flex:none;width:2.75rem;height:2.75rem;border:1px solid var(--hairline);border-radius:var(--radius-pill);display:grid;place-items:center}
.row-arrow .ico{display:grid;opacity:.55}
.row-arrow svg{width:1.25rem;height:1.25rem}

/* ---------- Process (image bg, sticky step stack) ---------- */
.process{position:relative;margin-top:.75rem}
.process-wrap{position:relative}
@media (min-width:1024px){.process-wrap{height:220vh}}
.process-sticky{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius-card-lg);background:var(--brand-deep);color:#fff;padding:3rem 1.5rem;display:flex;flex-direction:column;gap:2rem}
@media (min-width:640px){.process-sticky{padding:4.25rem 2.5rem}}
@media (min-width:1024px){.process-sticky{position:sticky;top:.75rem}}
.process-bg{position:absolute;inset:0;z-index:-1}
.process-bg img{width:100%;height:100%;object-fit:cover}
.process-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(24,24,24,.85),rgba(24,24,24,.74),rgba(24,24,24,.88))}
.process-sub{margin-top:1rem;font-size:1rem;color:rgba(255,255,255,.75)}
.steps{display:grid;gap:1.25rem}
@media (min-width:1024px){.steps{grid-template-columns:repeat(3,1fr)}}
/* 4-item variant (e.g. process page's "after submission" stage) — same
   step-card look, just an extra column at wide widths instead of a lone
   4th card wrapping alone under a 3-column grid. */
.steps--4{margin-top:2.5rem}
@media (min-width:640px){.steps--4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1280px){.steps--4{grid-template-columns:repeat(4,1fr)}}
.step-card{border-radius:var(--radius-card);background:var(--surface-card);color:var(--ink);padding:1.75rem;box-shadow:0 1rem 2.5rem rgba(24,24,24,.25);will-change:transform}
.step-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.step-ico{width:3.5rem;height:3.5rem;flex:none;border-radius:1rem;background:var(--surface);color:var(--brand);display:grid;place-items:center}
.step-ico svg{width:1.6rem;height:1.6rem}
.step-num{font-size:3rem;font-weight:500;line-height:.9;letter-spacing:-.02em;color:var(--ghost-strong)}
.step-card h3{margin-top:3rem;font-size:1.5rem;font-weight:500;line-height:1.25}
.step-card p{margin-top:.85rem;font-size:.95rem;line-height:1.7;color:var(--ink-soft)}
.process-foot{display:flex;flex-direction:column;gap:1.25rem}
@media (min-width:768px){.process-foot{flex-direction:row;align-items:center;justify-content:space-between;gap:2.5rem}}
.process-note{font-size:.78rem;line-height:1.65;color:rgba(255,255,255,.68);max-width:44rem}
.process-foot .pill{flex:none}

/* ---------- Why choose Flypass ---------- */
.whyc{background:var(--surface);border-radius:var(--radius-card-lg);margin-top:.75rem;padding:3.5rem 1.5rem 4rem}
@media (min-width:640px){.whyc{padding:5rem 2.5rem 5.5rem}}
.whyc-grid{display:grid;gap:2.5rem}
@media (min-width:768px){.whyc-grid{grid-template-columns:1fr 1fr;gap:4rem;align-items:center}}
.whyc-intro{margin-top:1.5rem;font-size:1.05rem;line-height:1.65;color:var(--ink-soft);max-width:38rem}
.whyc-points{margin-top:2.25rem;display:grid;gap:1.75rem}
.whyc-points li{display:flex;gap:1.1rem;align-items:flex-start}
.wp-ico{flex:none;width:3rem;height:3rem;border-radius:.9rem;background:var(--surface-card);color:var(--brand);display:grid;place-items:center;box-shadow:0 .35rem .9rem rgba(24,24,24,.06)}
.wp-ico svg{width:1.4rem;height:1.4rem}
.whyc-points h3{font-size:1.1rem;font-weight:500;line-height:1.35}
.whyc-points p{margin-top:.5rem;font-size:.92rem;line-height:1.7;color:var(--ink-soft)}
.whyc-cta{margin-top:2.5rem}
.whyc-img{margin:0;border-radius:var(--radius-card);overflow:hidden}
.whyc-img img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/5}
@media (min-width:768px){.whyc-img img{aspect-ratio:auto;height:100%}}

/* ---------- Numbers / stats ---------- */
.numbers{background:var(--brand-deep);color:#fff;border-radius:var(--radius-card-lg);margin-top:.75rem;padding:3.5rem 1.5rem 4rem}
@media (min-width:640px){.numbers{padding:5rem 2.5rem}}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:3rem 2rem;margin-top:4rem}
@media (min-width:1024px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{border-top:1px solid rgba(255,255,255,.2);padding-top:1.25rem}
.stat-v{display:block;font-size:3.75rem;font-weight:500;letter-spacing:-.02em;line-height:1}
@media (min-width:640px){.stat-v{font-size:4.5rem}}
.stat-l{display:block;font-size:.875rem;color:rgba(255,255,255,.65);margin-top:.75rem;line-height:1.5}
.countries{margin-top:3rem;font-size:.8rem;line-height:1.8;color:rgba(255,255,255,.55);max-width:62rem}
.countries strong{color:rgba(255,255,255,.85);font-weight:500}
.country-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.25rem;margin-top:2.5rem}
@media (min-width:640px){.country-grid{gap:0 2rem;margin-top:3.25rem}}
@media (min-width:640px){.country-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.country-grid{grid-template-columns:repeat(5,1fr)}}
.cg-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 0;border-bottom:1px solid rgba(255,255,255,.16);transition:border-color .3s}
.cg-item:hover{border-bottom-color:var(--brand-light)}
.cg-left{display:flex;align-items:center;gap:.75rem;min-width:0}
.cg-flag{width:2rem;height:2rem;flex:none;border-radius:var(--radius-pill);overflow:hidden;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1)}
.cg-flag img{width:100%;height:100%;object-fit:cover}
.cg-name{font-size:1rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cg-arrow{flex:none;width:2.25rem;height:2.25rem;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-pill);display:grid;place-items:center;color:#fff;transition:background-color .3s,color .3s,transform .3s}
.cg-arrow svg{width:1rem;height:1rem}
.cg-item:hover .cg-arrow{background:#fff;color:var(--ink);transform:translateX(3px)}
@media (max-width:639px){.cg-arrow{display:none}.cg-item{padding:.8rem 0}.cg-name{font-size:.85rem}.cg-flag{width:1.6rem;height:1.6rem}}
.numbers-cta{margin-top:2.75rem}

/* ---------- Reviews ---------- */
.reviews{background:var(--background);padding:3.5rem 1.5rem}
@media (min-width:640px){.reviews{padding:6rem 2.5rem}}
.tp-summary{margin-top:1.75rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.tp-summary p{font-size:.95rem;color:var(--ink-soft)}
.tp-summary strong{color:var(--ink);font-weight:500}
.tp-summary .tp{width:6.15rem;height:1.5rem;display:block}
.tp-dark{--tp-word:#191919}
.tp-stars{display:inline-flex;gap:.25rem}
.tps{width:1.7rem;height:1.7rem;background:#04DA8D;display:grid;place-items:center}
.tps svg{width:1.15rem;height:1.15rem;fill:#fff}
.tps.half{background:linear-gradient(90deg,#04DA8D 50%,#d6d9dd 50%)}
.tp-stars.small .tps{width:1.2rem;height:1.2rem}
.tp-stars.small .tps svg{width:.85rem;height:.85rem}
.t-grid{display:grid;gap:1.25rem;margin-top:2.75rem}
@media (min-width:768px){.t-grid{grid-template-columns:repeat(3,1fr)}}
.t-card{display:flex;flex-direction:column;justify-content:space-between;height:100%;border-radius:var(--radius-card);background:var(--surface);padding:1.75rem}
.t-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.t-date{font-size:.78rem;color:var(--ink-soft)}
.t-by{margin-top:1rem;font-weight:500}
.t-quote{margin-top:.5rem;font-size:.95rem;line-height:1.65;color:var(--ink-soft)}
.t-foot{border-top:1px solid var(--hairline);padding-top:1rem;margin-top:1.5rem;font-size:.75rem;color:var(--ink-soft);display:flex;align-items:center;gap:.45rem}
.t-foot .ck{width:.9rem;height:.9rem;color:#04DA8D;flex:none}
.t-cta{margin-top:2.5rem}

/* ---------- Why applicants feel safe ---------- */
.safe{background:var(--surface);border-radius:var(--radius-card-lg);margin-top:.75rem;padding:3.5rem 1.5rem 4rem}
@media (min-width:640px){.safe{padding:5rem 2.5rem 6rem}}
.safe-grid{margin-top:3rem;display:grid;gap:1.25rem}
@media (min-width:768px){.safe-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.safe-grid{grid-template-columns:repeat(4,1fr);gap:1rem}}
.safe-card{border-radius:var(--radius-card);background:var(--surface-card);padding:1.75rem}
@media (min-width:1024px){.safe-card{padding:1.5rem}}
.safe-ico{width:3rem;height:3rem;border-radius:.9rem;background:var(--surface);color:var(--brand);display:grid;place-items:center}
.safe-ico svg{width:1.4rem;height:1.4rem}
.safe-card h3{margin-top:1.25rem;font-size:1.15rem;font-weight:500}
.safe-card p{margin-top:.6rem;font-size:.92rem;line-height:1.7;color:var(--ink-soft)}

/* ---------- FAQ ---------- */
.faq{background:var(--background);padding:3.5rem 1.5rem 4rem}
@media (min-width:640px){.faq{padding:5rem 2.5rem}}
.faq-layout{display:grid;gap:2.5rem}
@media (min-width:1024px){.faq-layout{grid-template-columns:1fr 1.7fr;gap:4rem;align-items:start}.faq-head{position:sticky;top:6rem}}
.faq-list{margin-top:0}
.faq-item{border-top:1px solid var(--hairline)}
.faq-item:last-child{border-bottom:1px solid var(--hairline)}
.faq-q{width:100%;display:flex;gap:1.25rem;align-items:center;padding:1.2rem 0;text-align:left}
.fq-i{width:2rem;font-size:.85rem;font-weight:500;color:var(--ink-soft);flex:none}
.fq-t{flex:1;font-size:1.125rem;font-weight:500;letter-spacing:-.01em;line-height:1.35}
@media (min-width:640px){.fq-t{font-size:1.25rem}}
.fq-x{flex:none;width:2.25rem;height:2.25rem;border:1px solid var(--hairline);border-radius:var(--radius-pill);position:relative;transition:transform .45s var(--easeExpo),border-color .3s}
.faq-q:hover .fq-x{border-color:var(--ink)}
.fq-x::before,.fq-x::after{content:"";position:absolute;left:50%;top:50%;background:var(--ink)}
.fq-x::before{width:.85rem;height:1px;transform:translate(-50%,-50%)}
.fq-x::after{width:1px;height:.85rem;transform:translate(-50%,-50%)}
.faq-item.open .fq-x{transform:rotate(45deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--easeInOutCubic)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a-in{overflow:hidden}
.faq-a p{padding:0 2.5rem 1.5rem 3.25rem;font-size:.9375rem;line-height:1.7;color:var(--ink-soft)}
@media (max-width:639px){.faq-a p{padding:0 0 1.25rem}}
.faq-refs{margin-top:2rem;font-size:.75rem;color:var(--ink-soft);line-height:1.8;max-width:24rem}
.faq-refs a{text-decoration:underline}
.faq-refs a:hover{color:var(--ink)}

/* ---------- Final CTA ---------- */
.final{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius-card-lg);margin-top:.75rem;background:var(--brand-deep);color:#fff;padding:4.5rem 1.5rem}
@media (min-width:640px){.final{padding:7.5rem 2.5rem}}
.final-bg{position:absolute;inset:0;z-index:-1}
.final-bg img{width:100%;height:100%;object-fit:cover}
.final-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(24,24,24,.74),rgba(24,24,24,.58),rgba(24,24,24,.82))}
.final-inner{max-width:56rem;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center}
.final .h2{margin-top:0}
@media (max-width:639px){.final .h2{font-size:2rem}}
@media (min-width:768px){.final .h2{font-size:3rem}}
.final-p{margin-top:1.5rem;font-size:1.05rem;line-height:1.7;color:rgba(255,255,255,.88);max-width:44rem}
.final-p + .final-p{margin-top:1rem}
.final-ctas{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center}
.pill.ghost{border-color:rgba(255,255,255,.55);color:#fff}
.pill.ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.final-contact{margin-top:2.75rem;font-size:.78rem;color:rgba(255,255,255,.62)}
.final-contact a{text-decoration:underline}
.final-contact a:hover{color:#fff}

/* ---------- Footer ---------- */
.foot{background:var(--brand-deep);color:#fff;border-radius:var(--radius-card-lg);margin-top:.75rem;padding:3.5rem 1.5rem 0;overflow:hidden}
@media (min-width:640px){.foot{padding:4rem 2.5rem 0}}
.foot-grid{display:grid;gap:2.5rem;padding:0 0 3rem}
@media (min-width:768px){.foot-grid{grid-template-columns:1.4fr 1fr 1.1fr 1.1fr;gap:2rem}}
.f-brand .logo{width:11.5rem}
.f-blurb{font-size:.875rem;color:rgba(255,255,255,.65);margin-top:1.25rem;max-width:20rem;line-height:1.7}
.f-h{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.2em;color:rgba(255,255,255,.5)}
.f-links{margin-top:1rem;display:grid;gap:.75rem;font-size:.875rem;color:rgba(255,255,255,.8)}
.f-links a:hover{color:#fff}
.f-contact a{display:inline-flex;align-items:center;gap:.6rem}
.f-cico{width:1.05rem;height:1.05rem;flex:none;color:var(--brand-light)}
.foot-mark{padding-top:1.5rem}
.foot-mark-svg{width:100%;height:auto;display:block}
.foot-legal{background:var(--background);padding:1.75rem .5rem 1rem}
@media (min-width:640px){.foot-legal{padding:2rem 1rem 1.25rem}}
.fl-row{display:flex;flex-direction:column;gap:.6rem;font-size:.72rem;color:var(--ink-soft)}
@media (min-width:640px){.fl-row{flex-direction:row;justify-content:space-between;align-items:center}}
.fl-row nav{display:flex;gap:1.5rem}
.fl-row a:hover{color:var(--ink)}

/* ---------- Menu overlay ---------- */
#menu{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;pointer-events:none}
#menu .backdrop{position:absolute;inset:0;background:var(--brand-deep);opacity:0}
.menu-panel{position:relative;height:100%;display:flex;flex-direction:column;padding:.5rem;opacity:0;overflow-y:auto}
@media (min-width:640px){.menu-panel{padding:.75rem}}
.menu-inner{flex:1;display:flex;flex-direction:column;color:#fff;padding:1rem 1.5rem 1.5rem;min-height:0}
@media (min-width:640px){.menu-inner{padding:1.25rem 2.5rem 2rem}}
.menu-top{display:flex;align-items:center;justify-content:space-between}
.menu-top .logo{width:10.5rem}
.icon-btn{width:2.75rem;height:2.75rem;border-radius:var(--radius-pill);background:rgba(255,255,255,.15);display:grid;place-items:center;transition:background-color .25s}
.icon-btn:hover{background:rgba(255,255,255,.25)}
.icon-btn svg{width:1.1rem;height:1.1rem}
.menu-nav{flex:1;display:flex;flex-direction:column;justify-content:center;gap:.35rem}
.menu-nav a{display:block;font-size:1.75rem;font-weight:500;letter-spacing:-.02em;line-height:1.15;text-transform:uppercase;transition:color .25s}
@media (min-width:640px){.menu-nav a{font-size:2.5rem}}
@media (min-width:768px){.menu-nav a{font-size:3rem}}
.menu-nav a:hover{color:var(--brand-light)}
.menu-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:2rem;display:flex;flex-direction:column;gap:1.25rem}
@media (min-width:640px){.menu-bottom{flex-direction:row;justify-content:space-between;align-items:center}}
.menu-social{display:flex;gap:1.25rem;font-size:.875rem;color:rgba(255,255,255,.7)}
.menu-social a:hover{color:#fff}

/* ---------- Modal ---------- */
#modal{position:fixed;inset:0;z-index:90;display:flex;align-items:flex-end;justify-content:center;padding:.75rem;pointer-events:none}
@media (min-width:640px){#modal{align-items:center;padding:1.5rem}}
#modal .backdrop{position:absolute;inset:0;background:rgba(24,24,24,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0}
.panel{position:relative;width:100%;max-width:32rem;max-height:92vh;max-height:92svh;overflow-y:auto;border-radius:var(--radius-card-lg);background:var(--surface-card);color:var(--ink);padding:1.5rem;box-shadow:0 2rem 4rem rgba(24,24,24,.35);opacity:0}
@media (min-width:640px){.panel{padding:2rem}}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.panel-head .h2{font-size:2.25rem}
@media (min-width:640px){.panel-head .h2{font-size:3rem}}
.close-btn{flex:none;width:2.75rem;height:2.75rem;border-radius:var(--radius-pill);background:var(--surface);display:grid;place-items:center;transition:background-color .25s}
.close-btn:hover{background:var(--hairline)}
.close-btn svg{width:1.1rem;height:1.1rem}
.modal-form{margin-top:1.75rem;display:flex;flex-direction:column;gap:1rem}
.field label{display:block;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);margin-bottom:.5rem}
.field input,.field textarea{width:100%;border-radius:.75rem;border:1px solid var(--hairline);background:var(--background);padding:.75rem 1rem;font-size:.875rem;font-family:inherit;color:inherit;resize:vertical;transition:border-color .25s,box-shadow .25s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px rgba(255,114,66,.22)}
.field input::placeholder,.field textarea::placeholder{color:#b6aca6}
.submit-btn{align-self:flex-start;border-radius:var(--radius-pill);background:var(--ink);color:#fff;padding:.875rem 1.75rem;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;transition:background-color .3s,opacity .3s}
.submit-btn:hover{background:var(--brand)}
.submit-btn:disabled{opacity:.55;cursor:default}
.modal-alt{font-size:.8rem;color:var(--ink-soft);margin-top:.25rem}
.modal-alt a{text-decoration:underline}
.modal-alt a:hover{color:var(--ink)}
.modal-note{font-size:.72rem;color:var(--ink-soft);line-height:1.6;margin-top:.5rem}
.success{margin-top:2rem;border-radius:var(--radius-card);background:var(--surface);padding:1.5rem;text-align:center}
.success .tick{width:3rem;height:3rem;border-radius:var(--radius-pill);background:var(--brand);display:grid;place-items:center;margin:0 auto}
.success .tick svg{width:1.4rem;height:1.4rem;color:#fff}
.success h3{font-size:1.125rem;font-weight:500;margin-top:1rem}
.success p{font-size:.875rem;color:var(--ink-soft);margin-top:.5rem;line-height:1.6}
.success .pill{margin-top:1.25rem}

/* ===== GLOBAL-CHROME-2026-08-27: flat black footer legal area + social icons (section geometry is the theme's original) ===== */
.foot .foot-legal{border-top:1px solid rgba(255,255,255,.14);margin-top:3.2rem;padding:1.6rem 0 2rem;background:transparent}
.foot .fl-row{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;justify-content:space-between;align-items:center;margin:0}
.foot .fl-row p{margin:0;font-size:.82rem;color:rgba(255,255,255,.62)}
.foot .fl-row nav{display:flex;gap:1.4rem}
.foot .fl-row nav a{font-size:.82rem;color:rgba(255,255,255,.75);transition:color .25s}
.foot .fl-row nav a:hover{color:#fff}
.foot .fl-statutory{background:transparent !important;box-shadow:none !important;border:0 !important;border-radius:0 !important;padding:0 !important;margin:1.5rem 0 0 !important;font-style:normal;font-size:.78rem;line-height:1.7;color:rgba(255,255,255,.5)}
.foot .fl-statutory strong{color:rgba(255,255,255,.8);font-weight:500}
.foot .fl-statutory a{color:rgba(255,255,255,.72);text-decoration:underline;text-underline-offset:2px}
.foot .fl-statutory a:hover{color:#fff}
.foot .fl-independence{display:block;margin-top:.55rem}
.foot .fl-updated{margin-top:1.1rem;font-size:.68rem;color:rgba(255,255,255,.38)}
.f-social{display:flex;gap:.65rem;margin-top:1.15rem;padding:0;list-style:none}
.f-social a{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:#fff;transition:background .25s,border-color .25s,color .25s}
.f-social a:hover{background:#fff;color:#181818;border-color:#fff}
.f-social a:focus-visible{outline:2px solid #FF7242;outline-offset:3px}
.f-social svg{width:1.05rem;height:1.05rem}
@media (min-width:1024px) and (max-width:1279px){.tb-nav{gap:1.1rem}.tb-nav > a,.tb-nav .nav-link{font-size:.72rem}}


/* ===== FACTS-CARDS-2026-08-27: the "in brief" facts panel rendered as icon cards
   (icon, then the small-caps headline, then the answer). Applies to the same
   component on the homepage, the destinations hub and the About entity block. ===== */
.facts-dl{margin-top:2.5rem;display:grid;grid-template-columns:1fr;gap:1rem;border-top:0}
@media (min-width:640px){.facts-dl{grid-template-columns:repeat(2,1fr);column-gap:1rem}}
@media (min-width:1024px){.facts-dl{grid-template-columns:repeat(2,1fr);column-gap:1rem}}
@media (min-width:1280px){.facts-dl{grid-template-columns:repeat(4,1fr);gap:1.1rem;column-gap:1.1rem}}
.facts-row{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;margin:0;padding:1.6rem 1.5rem;background:var(--surface);border:0;border-radius:var(--radius-card)}
.facts-row dt{margin-top:.5rem;font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--ink)}
.facts-row dd{font-size:.9rem;line-height:1.68;color:var(--ink-soft)}
.fact-ico{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:.85rem;
  background:var(--surface-card);color:var(--brand)}
.fact-ico svg{width:1.25rem;height:1.25rem}

/* ===== DEF-SPLIT + WHO-FLIP 2026-08-27 =====
   Definition section: equal split, image left / content right.
   Who-we-are section: image moved to the right (content left). */
.def-split{display:grid;gap:2rem;width:100%}
@media (min-width:1024px){.def-split{grid-template-columns:1fr 1fr;gap:4rem;align-items:center}}
.def-img{margin:0;position:relative;border-radius:var(--radius-card);overflow:hidden;aspect-ratio:16/10}
@media (min-width:1024px){.def-img{aspect-ratio:auto;min-height:24rem}}
.def-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.who-img{order:0}

/* ===== WORTH-IT REDESIGN 2026-08-27: full-width comparison showcase ===== */
#worth-it .worth-wrap{width:100%}
#worth-it .worth-head{display:grid;gap:1.5rem}
@media (min-width:1024px){#worth-it .worth-head{grid-template-columns:1.05fr .95fr;gap:4rem;align-items:end}}
#worth-it .worth-intro{margin-top:0;font-size:1.02rem}
#worth-it .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#worth-it .worth-tblwrap{margin-top:2.5rem;border:1px solid var(--hairline);border-radius:var(--radius-card-lg);background:var(--surface-card)}
#worth-it .worth-tbl{min-width:48rem;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
#worth-it .worth-tbl thead th{padding:1.05rem 1.5rem;background:var(--surface);color:var(--ink-soft);border-bottom:1px solid var(--hairline)}
#worth-it .worth-tbl thead th:first-child{width:16rem}
#worth-it .worth-tbl thead th:nth-child(2){width:31%}
#worth-it .worth-tbl th:nth-child(n+2),#worth-it .worth-tbl td{border-left:1px solid var(--hairline)}
#worth-it .worth-tbl thead th.hl{color:var(--brand);font-weight:600}
#worth-it .worth-tbl tbody th{padding:1rem 1rem 1rem 1.5rem;border-bottom:1px solid var(--hairline);text-align:left;font-weight:500;color:var(--ink);vertical-align:middle;background:var(--surface-card)}
#worth-it .worth-tbl tbody td{padding:1rem 1.5rem;border-bottom:1px solid var(--hairline);vertical-align:middle;font-size:.98rem;line-height:1.6;color:var(--ink-soft)}
#worth-it .worth-tbl tbody td.hl{color:var(--ink)}
#worth-it .worth-tbl tbody tr:last-child th,#worth-it .worth-tbl tbody tr:last-child td{border-bottom:0}
#worth-it .worth-tbl tbody tr:nth-child(even) th,#worth-it .worth-tbl tbody tr:nth-child(even) td{background:var(--surface)}
#worth-it .w-lab{display:flex;align-items:center;gap:.8rem}
#worth-it .w-lab b{font-weight:500}
#worth-it .w-ico{display:grid;place-items:center;flex:none;width:2.2rem;height:2.2rem;border-radius:.65rem;background:rgba(225,0,24,.07);color:var(--brand)}
#worth-it .w-ico svg{width:1.1rem;height:1.1rem}
#worth-it .worth-cases{display:grid;gap:1rem;margin-top:1.25rem}
@media (min-width:768px){#worth-it .worth-cases{grid-template-columns:1fr 1fr;gap:1.1rem}}
#worth-it .worth-case{background:var(--surface-card);border-radius:var(--radius-card);padding:1.6rem 1.5rem}
#worth-it .worth-case > .w-ico{margin-bottom:.85rem}
#worth-it .worth-case p{margin-top:0}
#worth-it .worth-close{margin-top:2rem;max-width:44rem}

/* ===== FEES REDESIGN 2026-08-27: price card, icon cost table, inclusions grid ===== */
#fees .fees-wrap{width:100%}
#fees .price-card{background:var(--brand-deep);color:#fff;border-radius:var(--radius-card-lg);padding:2.2rem 2rem;display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
#fees .pc-label{display:flex;align-items:center;gap:.55rem;font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.6)}
#fees .pc-label i{width:.45rem;height:.45rem;border-radius:50%;background:var(--brand)}
#fees .pc-price{font-size:3.4rem;font-weight:600;letter-spacing:-.02em;line-height:1;color:#fff}
#fees .pc-price .pc-from{font-size:1.05rem;font-weight:400;color:rgba(255,255,255,.55);letter-spacing:0}
#fees .pc-note{font-size:.92rem;line-height:1.6;color:rgba(255,255,255,.72)}
#fees .pc-hr{border:0;width:100%;height:1px;background:rgba(255,255,255,.15);margin:.2rem 0}
#fees .pc-trust{display:flex;align-items:flex-start;gap:.7rem;font-size:.85rem;line-height:1.55;color:rgba(255,255,255,.7)}
#fees .pc-trust .w-ico{background:rgba(255,255,255,.08);color:#fff}
#fees .price-card .pill{margin-top:.4rem}
#fees .w-ico{display:grid;place-items:center;flex:none;width:2.2rem;height:2.2rem;border-radius:.65rem;background:rgba(225,0,24,.07);color:var(--brand)}
#fees .w-ico svg{width:1.1rem;height:1.1rem}
#fees .w-lab{display:flex;align-items:center;gap:.8rem}
#fees .w-lab b{font-weight:500}
#fees .fees-tblwrap{margin-top:2.5rem;border:1px solid var(--hairline);border-radius:var(--radius-card-lg);background:var(--surface-card)}
#fees .fees-tbl{min-width:46rem;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
#fees .fees-tbl thead th{padding:1.05rem 1.5rem;background:var(--surface);color:var(--ink-soft);border-bottom:1px solid var(--hairline)}
#fees .fees-tbl thead th:first-child{width:19rem}
#fees .fees-tbl thead th:nth-child(2){width:29%}
#fees .fees-tbl th:nth-child(n+2),#fees .fees-tbl td{border-left:1px solid var(--hairline)}
#fees .fees-tbl tbody th{padding:1rem 1rem 1rem 1.5rem;border-bottom:1px solid var(--hairline);text-align:left;font-weight:500;color:var(--ink);vertical-align:middle;background:var(--surface-card)}
#fees .fees-tbl tbody td{padding:1rem 1.5rem;border-bottom:1px solid var(--hairline);vertical-align:middle;font-size:.98rem;line-height:1.6;color:var(--ink-soft)}
#fees .fees-tbl tbody td:last-child{color:var(--ink)}
#fees .fees-tbl tbody tr:nth-child(even) th,#fees .fees-tbl tbody tr:nth-child(even) td{background:var(--surface)}
#fees .fees-tbl tbody tr:last-child th,#fees .fees-tbl tbody tr:last-child td{border-bottom:0}
#fees .fees-note{display:flex;align-items:flex-start;gap:.9rem;margin-top:1.25rem;background:var(--surface-card);border:1px solid var(--hairline);border-radius:var(--radius-card);padding:1.25rem 1.4rem;font-size:.95rem;line-height:1.7;color:var(--ink-soft)}
#fees .covers{margin-top:2.75rem}
#fees .covers-h{font-size:1.1rem;font-weight:600;letter-spacing:-.01em;color:var(--ink)}

/* ===== SECTIONS PASS 2026-08-27 =====
   fees 70/30 · document checklist as cards (5 per row) · trust section as
   image + content · footer 5 columns with a two-line legal block. */

/* ---- Fees: 70 / 30 ---- */
#fees .fees-split{display:grid;gap:2rem;width:100%}
@media (min-width:1024px){#fees .fees-split{grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:3rem}}
#fees .price-col{min-width:0}
#fees .fees-main{min-width:0}
#fees .fees-main .body:first-of-type{margin-top:1.5rem}
#fees .fees-tbl{min-width:38rem}
#fees .fees-tbl thead th:first-child{width:17rem}
@media (min-width:1024px){#fees .price-card{position:sticky;top:1.5rem}}
#fees .covers-list{margin:1.1rem 0 0;padding:0;list-style:none;display:grid;gap:.7rem}
@media (min-width:768px){#fees .covers-list{grid-template-columns:1fr 1fr;column-gap:2.5rem}}
#fees .covers-list li{position:relative;padding-left:1.6rem;font-size:.95rem;line-height:1.65;color:var(--ink-soft)}
#fees .covers-list li::before{content:"";position:absolute;left:0;top:.6rem;width:.42rem;height:.42rem;border-radius:50%;background:var(--brand)}

/* ---- Document checklist: cards, five per row ---- */
.docs-list{margin-top:2.5rem;display:grid;grid-template-columns:1fr;gap:1rem;column-gap:1rem;padding:0;list-style:none}
@media (min-width:640px){.docs-list{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.docs-list{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1280px){.docs-list{grid-template-columns:repeat(5,1fr);gap:1rem;column-gap:1rem}}
.docs-item{display:block;padding:1.4rem 1.3rem;border:0;border-radius:var(--radius-card);background:var(--surface)}
.docs-n{display:inline-grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:.6rem;background:var(--surface-card);color:var(--brand);font-size:.7rem;font-weight:500;letter-spacing:.06em;padding-top:0;margin-bottom:.9rem}
.docs-item h3{font-size:.95rem;font-weight:500;line-height:1.35}
.docs-item p{margin-top:.5rem;font-size:.85rem;line-height:1.6}

/* ---- Trust & accountability: image + content, no cards ---- */
.safe-split{display:grid;gap:2rem}
@media (min-width:1024px){.safe-split{grid-template-columns:1fr 1fr;gap:4rem;align-items:center}}
.safe-img{margin:0;position:relative;border-radius:var(--radius-card);overflow:hidden;aspect-ratio:4/5}
@media (min-width:1024px){.safe-img{aspect-ratio:auto;min-height:24rem}}
.safe-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.safe-content{min-width:0}
.safe-list{margin-top:2rem;display:grid;gap:1.6rem}
.safe-point{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start}
.safe-point h3{font-size:1rem;font-weight:500;line-height:1.4;letter-spacing:-.01em;text-transform:none;color:var(--ink)}
.safe-point p{margin-top:.4rem;font-size:.92rem;line-height:1.7;color:var(--ink-soft)}
.safe-point .safe-ico{width:2.6rem;height:2.6rem;border-radius:.8rem;background:var(--surface-card);color:var(--brand);display:grid;place-items:center;flex:none}
.safe-point .safe-ico svg{width:1.2rem;height:1.2rem}

/* ---- Footer: five columns, two-line legal block ---- */
@media (min-width:640px){.foot-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.foot-grid{grid-template-columns:1.5fr 1fr 1.25fr 1fr 1.2fr;gap:2rem}}
.foot .fl-top{display:grid;gap:1rem;padding-bottom:1.6rem}
@media (min-width:1024px){.foot .fl-top{grid-template-columns:1fr 1fr;gap:3rem}}
.foot .fl-statutory,.foot .fl-independence{margin:0 !important;font-style:normal;font-size:.78rem;line-height:1.7;color:rgba(255,255,255,.5)}
.foot .fl-independence{display:block}
.foot .foot-legal{border-top:1px solid rgba(255,255,255,.14);margin-top:3.2rem;padding:1.8rem 0 2.2rem}
.foot .fl-row{border-top:1px solid rgba(255,255,255,.14);padding-top:1.5rem}

/* ===== SPLIT HEADS + PRICE-CARD FOUNDER 2026-08-27 ===== */
.facts--split .facts-head{max-width:none;display:grid;gap:1rem}
@media (min-width:1024px){
  .facts--split .facts-head{grid-template-columns:1.05fr .95fr;column-gap:4rem;align-items:end}
  .facts--split .facts-head .eyebrow{grid-column:1;grid-row:1}
  .facts--split .facts-head .h2{grid-column:1;grid-row:2;margin-top:1rem}
  .facts--split .facts-head .facts-lede{grid-column:2;grid-row:1/3;align-self:end;margin-top:0;max-width:none}
}
.docs-head{max-width:none;display:grid;gap:1rem}
@media (min-width:1024px){
  .docs-head{grid-template-columns:1.05fr .95fr;column-gap:4rem;align-items:end}
  .docs-head .eyebrow{grid-column:1;grid-row:1}
  .docs-head .h2{grid-column:1;grid-row:2;margin-top:1rem}
  .docs-head .docs-intro{grid-column:2;grid-row:1/3;align-self:end;margin-top:0;max-width:none}
}
#fees .pc-founder{display:flex;align-items:center;gap:.95rem;width:100%}
#fees .pc-avatar{display:grid;place-items:center;flex:none;width:3.1rem;height:3.1rem;border-radius:50%;
  background:linear-gradient(135deg,#E10018,#FF7242);color:#fff;font-size:.95rem;font-weight:600;letter-spacing:.05em}
#fees .pc-name{font-size:.95rem;font-weight:600;color:#fff;line-height:1.3}
#fees .pc-role{margin-top:.2rem;font-size:.78rem;line-height:1.55;color:rgba(255,255,255,.6)}

/* ===== ADVISORY LAYOUTS 2026-08-27 (generic adv* classes, reusable on inner pages) ===== */
.advsplit{width:100%;display:grid;gap:1.5rem}
@media (min-width:1024px){.advsplit{grid-template-columns:1.05fr .95fr;column-gap:4rem;align-items:start}}
.advsplit-body .body:first-child{margin-top:0}
@media (min-width:1024px){.advsplit-body{padding-top:.4rem}}
.advwrap{width:100%}
.advcards{margin-top:2.5rem;display:grid;grid-template-columns:1fr;gap:1rem}
@media (min-width:640px){.advcards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.advcards{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1280px){.advcards{grid-template-columns:repeat(5,1fr)}}
.advcard{background:var(--surface-card);border-radius:var(--radius-card);padding:1.5rem 1.4rem}
.advcard h3{margin-top:.95rem;font-size:.95rem;font-weight:500;line-height:1.4;letter-spacing:-.01em;text-transform:none;color:var(--ink)}
.advcard p{margin-top:.5rem;font-size:.85rem;line-height:1.62;color:var(--ink-soft)}
.advcard p a{border-bottom:1px solid var(--ghost)}
.advcard p a:hover{color:var(--brand);border-bottom-color:var(--brand)}
.aico{display:grid;place-items:center;flex:none;width:2.2rem;height:2.2rem;border-radius:.65rem;background:var(--surface);color:var(--brand)}
.aico svg{width:1.1rem;height:1.1rem}
.advaudit{margin-top:1rem;display:flex;align-items:flex-start;gap:1rem;background:var(--surface-card);border-radius:var(--radius-card);padding:1.5rem 1.4rem}
/* !important: inner.css's .sec p.body carries one more type selector (p) than
   this rule, so it wins on specificity alone and pushes the text 1rem below
   the icon it's meant to sit flush with. */
.advaudit .body{margin-top:0 !important}
.advmedia{width:100%;display:grid;gap:2rem}
@media (min-width:1024px){.advmedia{grid-template-columns:1fr 1fr;gap:4rem;align-items:center}}
.advmedia-img{margin:0;position:relative;border-radius:var(--radius-card);overflow:hidden;aspect-ratio:4/5}
@media (min-width:1024px){.advmedia-img{aspect-ratio:auto;min-height:24rem}}
.advmedia-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.advmedia-content{min-width:0}

/* ===== INNER-ALIGN 2026-08-27: adv* extensions for the inner-page restructure ===== */
.advcards--3,.advcards--4,.advcards--6{margin-top:2.5rem}
@media (min-width:1024px){.advcards--4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1280px){.advcards--3,.advcards--6{grid-template-columns:repeat(3,1fr)}.advcards--4{grid-template-columns:repeat(4,1fr)}}
.sec:not(.card) .advcard,.sec:not(.card) .advaudit{background:var(--surface)}
.sec:not(.card) .advcard .aico,.sec:not(.card) .advaudit .aico{background:var(--surface-card)}
.advlede-col,.advnote-col{max-width:52rem}
.advwrap .cta-row{margin-top:2.25rem}
.advsplit-body .callout:first-child,.advsplit-body ul.blist:first-child,.advsplit-body ol.blist:first-child{margin-top:0}

/* ===== 2026-09-14: sticky split head + in-column CTA + wide single-column head =====
   A step sequence read as a plain list has nothing to visually orient against
   as it scrolls; pinning the heading beside it (same mechanic as .faq-head)
   keeps the section title in view for the whole scroll instead of vanishing
   after the first screen. */
@media (min-width:1024px){.advsplit--sticky .advsplit-head{position:sticky;top:6rem}}
/* Cards nested in an advsplit's (narrower) body column read as a sequential
   list, not a grid — stack them in one column regardless of viewport width,
   since the column itself, not the viewport, is what's narrow here. */
.advsplit-body .advcards,.advmedia-content .advcards{grid-template-columns:1fr!important}
/* A cta-row that follows .advmedia as a sibling spans the full row, so it
   visually sits under the image column as much as the text. Moving it inside
   .advmedia-content keeps it under the text only. */
.advmedia-content .cta-row{margin-top:2rem}

/* Single-column section head (eyebrow + h2 + lede) split into heading-left /
   lede-right on desktop, so the lede isn't stranded in a half-empty section. */
.adv-head-split{display:grid;gap:1rem}
@media (min-width:1024px){
  .adv-head-split{grid-template-columns:1.05fr .95fr;column-gap:4rem;align-items:end}
  .adv-head-split > .eyebrow{grid-column:1;grid-row:1}
  .adv-head-split > .h2{grid-column:1;grid-row:2;margin-top:1rem}
  .adv-head-split > .advlede-col{grid-column:2;grid-row:1/3;align-self:end;margin-top:0;max-width:none}
}
