:root{
  --bg:#FFFFFF; --surface:#F5F5F7; --surface-2:#EFEEE9;
  --ink:#111318; --ink-soft:#6E7180;
  --navy:#0E1E33; --navy-deep:#070F1C;
  --gold:#C79A3E; --gold-light:#EAD08A; --gold-deep:#9C7A2E; --gold-text:#8A6A28;
  --gold-grad:linear-gradient(135deg,#9C7A2E 0%,#E8CA82 50%,#C79A3E 100%);
  --gold-grad-soft:linear-gradient(135deg,rgba(156,122,46,.12),rgba(234,208,138,.18));
  --line:rgba(17,19,24,.08);
  --shadow-sm:0 2px 10px rgba(17,19,24,.06);
  --shadow:0 20px 50px rgba(17,19,24,.08);
  --shadow-lg:0 30px 70px rgba(17,19,24,.14);
  --shadow-gold:0 18px 40px rgba(156,122,46,.28);
  --shadow-gold-sm:0 8px 20px rgba(156,122,46,.24);
  --radius-xs:10px; --radius-sm:14px; --radius:20px; --radius-lg:28px; --radius-full:100px;

  /* header / navigation — premium floating glass. Kept as its own variable
     family (distinct from --form-*) because the header is a much smaller,
     lighter glass surface that has to stay readable over both the cinematic
     hero photo (top state) and the page's own light background (scrolled
     state), rather than sitting on a single fixed backdrop like the booking
     card does.
     --head-bg-top is deliberately very sheer (not a "white bar") — the hero
     photo must read through it. Legibility at this state comes from the
     white nav-link/icon color (see header.main color:#fff) rather than from
     propping the background opacity up. */
  --head-bg-top:rgba(255,255,255,.18);
  --head-bg-scrolled:rgba(255,255,255,.82);
  --head-bg-scrolled-strong:rgba(255,255,255,.90);
  --head-border-top:rgba(255,255,255,.32);
  --head-border-scrolled:rgba(255,255,255,.68);
  --head-shadow-top:0 8px 26px rgba(0,0,0,.16);
  --head-shadow-scrolled:0 16px 40px rgba(17,19,24,.12);
  --head-blur:blur(20px) saturate(180%);
  --head-blur-scrolled:blur(26px) saturate(180%);
  --head-icon-bg:rgba(255,255,255,.16);
  --head-icon-border:rgba(255,255,255,.30);
  --mnav-bg:rgba(255,255,255,.94);
  --mnav-border:rgba(17,19,24,.08);
}

.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;}
[data-theme="dark"]{
  --bg:#0A0B0F; --surface:#15171E; --surface-2:#1B1E27;
  --ink:#F2F2F0; --ink-soft:#9AA0AE;
  --line:rgba(255,255,255,.09);
  --gold-text:#EAD08A;
  --head-bg-top:rgba(7,15,28,.22);
  --head-bg-scrolled:rgba(7,15,28,.84);
  --head-bg-scrolled-strong:rgba(7,15,28,.90);
  --head-border-top:rgba(234,208,138,.18);
  --head-border-scrolled:rgba(234,208,138,.16);
  --head-shadow-top:0 8px 26px rgba(0,0,0,.30);
  --head-shadow-scrolled:0 18px 44px rgba(0,0,0,.5);
  --head-blur:blur(20px) saturate(160%);
  --head-blur-scrolled:blur(26px) saturate(170%);
  --head-icon-bg:rgba(255,255,255,.08);
  --head-icon-border:rgba(234,208,138,.16);
  --mnav-bg:rgba(10,12,18,.92);
  --mnav-border:rgba(234,208,138,.14);

  --shadow-sm:0 2px 10px rgba(0,0,0,.4);
  --shadow:0 20px 50px rgba(0,0,0,.5); --shadow-lg:0 30px 70px rgba(0,0,0,.6);
  --shadow-gold:0 18px 44px rgba(234,208,138,.16);
  --shadow-gold-sm:0 8px 22px rgba(234,208,138,.14);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%;}
body{background:var(--bg);color:var(--ink);font-family:'Inter',sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .4s ease,color .4s ease;overflow-x:hidden;max-width:100%;position:relative;}
html.theme-transitioning body,
html.theme-transitioning header.main,
html.theme-transitioning .legal-hero,
html.theme-transitioning .legal-content,
html.theme-transitioning .legal-updated,
html.theme-transitioning .toc-details summary,
html.theme-transitioning .toc-list,
html.theme-transitioning .legal-section{
  transition-property:background-color,color,border-color,box-shadow!important;
  transition-duration:.32s!important;
  transition-timing-function:cubic-bezier(.2,.7,.2,1)!important;
}
html.theme-transitioning h1,
html.theme-transitioning h2,
html.theme-transitioning h3,
html.theme-transitioning h4,
html.theme-transitioning p,
html.theme-transitioning li,
html.theme-transitioning a{
  transition:color .28s cubic-bezier(.2,.7,.2,1)!important;
}
html.theme-transitioning #themeToggle{animation:theme-toggle-pop .32s cubic-bezier(.2,.7,.2,1) both;}
@keyframes theme-toggle-pop{0%,100%{transform:scale(1)}48%{transform:scale(.78)}}
h1,h2{font-family:'Fraunces',serif;letter-spacing:-0.015em;font-weight:600;color:var(--ink);}
h3,h4{letter-spacing:-0.01em;font-weight:700;color:var(--ink);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;}
.wrap{max-width:1220px;margin:0 auto;padding:0 32px;position:relative;}
@media(max-width:900px){.wrap{padding:0 28px;}}
@media(max-width:640px){.wrap{padding:0 20px;}}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
@media (prefers-reduced-motion: reduce){*{animation:none !important;transition:none !important;}html.theme-transitioning #themeToggle{animation:none!important;}}
.skip-link{position:absolute;left:12px;top:-60px;background:var(--gold);color:var(--navy-deep);padding:12px 20px;z-index:9999;font-weight:700;border-radius:0 0 8px 8px;transition:top .2s ease;}
.skip-link:focus{top:0;}
.icon{width:20px;height:20px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
/* logo */
.logo{display:flex;align-items:center;height:38px;flex-shrink:0;}
.logo img{height:100%;width:auto;transition:height .3s ease;}
.logo .logo-dark{display:none;}
[data-theme="dark"] .logo .logo-light{display:none;}
[data-theme="dark"] .logo .logo-dark{display:block;}

/* site top stack — ticker + nav are pinned together as one unit (so they can
   never overlap EACH OTHER), but the stack is deliberately pulled up over the
   hero via a negative margin equal to the header's own footprint. This is
   what makes the floating glass header genuinely sit on top of the cinematic
   hero photo — rather than reserving its own opaque slot above it — so the
   backdrop-filter has real hero imagery behind it to actually filter. */
.site-top{position:sticky;top:0;z-index:95;margin-bottom:-76px;}

/* header — floating premium glass nav. At the top of the page it sits directly
   over the cinematic hero as a translucent, blurred surface (integrated into
   the hero rather than boxed above it); once the page scrolls it settles into
   a more defined, more opaque glass surface for readability over page content.
   Both states are driven by the existing .scrolled toggle in the scroll
   handler further down — no extra scroll listener is introduced. */
header.main{
  position:relative;
  margin:10px 24px 0;
  padding:13px 20px;
  background:var(--head-bg-top);
  backdrop-filter:var(--head-blur);
  -webkit-backdrop-filter:var(--head-blur);
  border:1px solid var(--head-border-top);
  border-radius:16px;
  box-shadow:var(--head-shadow-top);
  color:#fff;
  transition:background .4s ease,border-color .4s ease,box-shadow .4s ease,backdrop-filter .4s ease,color .4s ease,margin .35s ease,padding .3s ease;
}
header.main .wrap{max-width:1220px;padding:0;display:flex;align-items:center;gap:20px;}
header.main.scrolled{
  margin-top:6px;
  padding:10px 20px;
  background:var(--head-bg-scrolled);
  backdrop-filter:var(--head-blur-scrolled);
  -webkit-backdrop-filter:var(--head-blur-scrolled);
  border-color:var(--head-border-scrolled);
  box-shadow:var(--head-shadow-scrolled);
  color:var(--ink);
}
header.main.scrolled .logo{height:30px;}
/* once the hero is completely out of view the header is read purely against
   page content, so it can afford a touch more opacity for clarity */
body.hero-offscreen header.main.scrolled{background:var(--head-bg-scrolled-strong);}
/* nav links + menu icon inherit header.main's color: white over the hero at
   the top of the page, switching to the theme ink color once scrolled past
   it onto page content. The gold CTA and logo are untouched, as required. */
header.main nav.primary a{color:inherit;}
header.main .icon-btn{color:inherit;background:var(--head-icon-bg);border-color:var(--head-icon-border);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.navwrap{display:flex;align-items:center;flex:1;min-width:0;gap:20px;justify-content:flex-end;}
nav.primary{display:flex;align-items:center;gap:2px;font-size:14px;font-weight:600;flex:1;min-width:0;justify-content:center;}
/* Premium nav hover: no gold-filled pill (Find Flights stays the only strong
   gold CTA). Normal state is muted low-opacity text with no background;
   hover simply brings the inherited text color to full opacity and adds a
   faint translucent glass highlight plus a restrained gold underline. The
   highlight tint itself flips between light-glass and dark-glass below so
   it stays visible whether the header is currently sheer-over-hero or
   opaque-and-scrolled, in both themes. */
nav.primary a{position:relative;opacity:.72;transition:opacity .2s ease,background .25s ease,border-color .25s ease;padding:9px 16px;border-radius:var(--radius-full);white-space:nowrap;border:1px solid transparent;}
nav.primary a::after{content:"";position:absolute;left:18px;right:18px;bottom:6px;height:1.5px;background:var(--gold-light);opacity:0;transform:scaleX(.55);transition:opacity .25s ease,transform .25s ease;}
nav.primary a:hover{opacity:1;background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.14);}
nav.primary a:hover::after{opacity:.6;transform:scaleX(1);}
header.main.scrolled nav.primary a:hover{background:rgba(17,19,24,.06);border-color:rgba(17,19,24,.09);}
[data-theme="dark"] header.main.scrolled nav.primary a:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);}
.head-actions{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.icon-btn{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--line);transition:transform .3s cubic-bezier(.34,1.56,.64,1),border-color .2s ease;flex-shrink:0;}
.icon-btn:hover{transform:translateY(-2px) rotate(-10deg);border-color:var(--gold);}
.btn-book{background:var(--gold-grad);color:var(--navy-deep);font-size:13px;font-weight:700;padding:11px 22px;border-radius:var(--radius-full);transition:transform .25s cubic-bezier(.16,.8,.24,1),box-shadow .3s ease;border:none;position:relative;overflow:hidden;white-space:nowrap;flex-shrink:0;box-shadow:var(--shadow-gold-sm);}
.btn-book::before{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);transition:left .6s ease;}
.btn-book:hover::before{left:140%;}
.btn-book:hover{transform:translateY(-2px);box-shadow:var(--shadow-gold);}
@media(max-width:920px){nav.primary{display:none;}.head-actions{margin-left:auto;}header.main{margin:12px 18px 0;padding:12px 18px;border-radius:16px;}header.main.scrolled{margin-top:8px;padding:10px 18px;}}
@media(max-width:480px){.btn-book{padding:10px 16px;font-size:12px;}.head-actions{gap:8px;}header.main{margin:10px 12px 0;padding:10px 14px;border-radius:14px;}header.main.scrolled{margin-top:6px;}.site-top{margin-bottom:-70px;}:root{--hero-clearance:94px;}}
@media(max-width:380px){.head-actions .btn-book{display:none;}header.main{margin:8px 8px 0;padding:9px 12px;}.site-top{margin-bottom:-66px;}:root{--hero-clearance:88px;}}

/* Shared NovaFly dark header treatment. Legal pages do not use the homepage's
   ticker wrapper, so the header itself owns the sticky position here. */
body>header.main{position:sticky;top:0;z-index:950;}
header.main,
header.main.scrolled,
[data-theme="dark"] header.main,
[data-theme="dark"] header.main.scrolled{
  background:rgba(7,15,28,.95);
  border-color:rgba(255,255,255,.15);
  box-shadow:0 14px 38px rgba(2,8,17,.28),inset 0 1px 0 rgba(255,255,255,.05);
  color:#fff;
  backdrop-filter:blur(18px) saturate(145%);
  -webkit-backdrop-filter:blur(18px) saturate(145%);
}
header.main.scrolled .logo{height:38px;}
header.main .logo .logo-light{display:none!important;}
header.main .logo .logo-dark{display:block!important;}
header.main.scrolled nav.primary a:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);}
header.main .icon-btn{color:#fff;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);}
.head-actions{gap:11px;}
.header-contact{position:relative;display:flex;align-items:center;gap:9px;flex-shrink:0;}
.header-contact-icons{display:flex;align-items:center;gap:5px;}
.header-contact-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:50%;transition:transform .22s ease,border-color .22s ease,background .22s ease,color .22s ease;}
.header-contact-icon .icon{width:16px;height:16px;}
.header-contact-icon:hover{transform:translateY(-2px);border-color:rgba(224,190,117,.7);background:rgba(199,154,62,.14);color:var(--gold-light);}
.header-contact-icon.is-whatsapp{color:#fff;}
.header-contact-copy{display:flex;flex-direction:column;gap:1px;color:#fff;line-height:1.08;white-space:nowrap;}
.header-contact-copy span{font-size:8.5px;text-transform:uppercase;letter-spacing:.12em;color:#aeb8c7;font-weight:700;}
.header-contact-copy strong{font-family:'Fraunces',Georgia,serif;font-size:14px;font-weight:590;letter-spacing:.01em;}
.mobile-contact-group{display:block;position:relative;}
.mobile-contact-group summary{width:68px;height:38px;display:flex;align-items:center;justify-content:center;gap:8px;list-style:none;cursor:pointer;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-full);transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease;}
.mobile-contact-group summary::-webkit-details-marker{display:none;}
.mobile-contact-menu{display:none;}
.mobile-contact-group summary .icon{width:16px;height:16px;}
.mobile-contact-group summary .is-whatsapp{color:#fff;}
.mobile-contact-group summary:hover{transform:translateY(-2px);border-color:rgba(224,190,117,.7);background:rgba(199,154,62,.13);}
.mobile-contact-group[open] .mobile-contact-menu{position:absolute;top:calc(100% + 12px);right:0;width:268px;display:grid;gap:8px;padding:12px;background:radial-gradient(circle at 88% 0,rgba(199,154,62,.2),transparent 42%),linear-gradient(145deg,rgba(9,24,42,.99),rgba(13,34,57,.99));border:1px solid rgba(224,190,117,.25);border-radius:18px;box-shadow:0 26px 65px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.08);z-index:980;}
.mobile-contact-group[open] .mobile-contact-menu::before{content:"Talk to a travel specialist";display:block;padding:4px 5px 8px;color:#f4e7c7;font:600 14px/1.25 'Fraunces',Georgia,serif;}
.mobile-contact-menu a{display:flex;align-items:center;gap:12px;padding:12px;color:#fff;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.055);font-size:13px;font-weight:750;}
.mobile-contact-menu .icon{width:20px;height:20px;padding:7px;box-sizing:content-box;border-radius:10px;background:rgba(199,154,62,.14);color:#fff;}
.mobile-contact-menu .is-whatsapp{color:#fff;}
.mobile-contact-menu span{display:flex;flex-direction:column;gap:3px;}
.mobile-contact-menu small{font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.12em;color:#aeb9c8;}
.header-contact-icons,.header-contact-copy{display:none;}
.cta-short{display:none;}
.menu-toggle:hover,.menu-toggle:active,.menu-toggle:focus{transform:none!important;}

@media(min-width:921px){
  header.main .wrap{position:relative;}
  header.main .logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;}
  header.main .navwrap{width:100%;justify-content:space-between;}
  header.main nav.primary{flex:0 1 auto;justify-content:flex-start;}
  header.main .head-actions{margin-left:auto;}
}

@media(max-width:1080px){
  nav.primary a{padding-inline:11px;}
  .header-contact-copy strong{font-size:13px;}
}

@media(max-width:920px){
  header.main.scrolled .logo,header.main .logo{height:30px;}
  header.main .wrap{gap:10px;}
  #themeToggle{display:none;}
  .header-contact{order:2;gap:0;}
  .header-contact-copy{display:none;}
  .header-contact-icons{display:none;}
  .mobile-contact-group{display:block;}
  .mobile-contact-group summary{width:62px;height:40px;display:flex;align-items:center;justify-content:center;gap:7px;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-full);transition:border-color .22s ease,background .22s ease;}
  .mobile-contact-group summary .icon{width:16px;height:16px;}
  .mobile-contact-group summary .is-whatsapp{color:#fff;}
  .mobile-contact-group[open] summary{border-color:rgba(224,190,117,.72);background:rgba(199,154,62,.14);}
  .mobile-contact-group[open] .mobile-contact-menu{position:absolute;top:calc(100% + 10px);right:0;width:218px;display:grid;gap:5px;padding:8px;background:rgba(7,15,28,.98);border:1px solid rgba(255,255,255,.15);border-radius:14px;box-shadow:0 18px 42px rgba(0,0,0,.34);z-index:980;}
  .mobile-contact-menu a{display:flex;align-items:center;gap:11px;padding:10px 11px;color:#fff;border-radius:9px;font-size:12px;font-weight:700;}
  .mobile-contact-menu a:hover,.mobile-contact-menu a:focus-visible{background:rgba(255,255,255,.08);}
  .mobile-contact-menu .icon{width:18px;height:18px;color:var(--gold-light);}
  .mobile-contact-menu .is-whatsapp{color:#fff;}
  .mobile-contact-menu span{display:flex;flex-direction:column;gap:2px;}
  .mobile-contact-menu small{font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.1em;color:#9fabbc;}
  .header-flight-cta{order:1;}
  .menu-toggle{order:3;}
}

@media(max-width:480px){
  .head-actions .header-flight-cta{display:inline-flex;}
  header.main .logo,header.main.scrolled .logo{height:25px;}
  header.main .wrap{gap:6px;}
  .head-actions{gap:5px;}
  .mobile-contact-group summary{width:56px;height:32px;gap:6px;}
  .mobile-contact-group summary .icon{width:14px;height:14px;}
  .menu-toggle{width:36px;height:36px;}
  .header-flight-cta{padding:9px 12px;font-size:11px;}
  .cta-full{display:none;}
  .cta-short{display:inline;}
}

@media(max-width:340px){.head-actions .header-flight-cta{display:none;}}

/* mobile navigation */
.menu-toggle{display:none;}
@media(max-width:920px){
  .menu-toggle{display:flex;width:44px;height:44px;}
  .icon-btn{width:44px;height:44px;}
}
.mobile-nav-backdrop{position:fixed;inset:0;background:rgba(7,15,28,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:990;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;}
.mobile-nav-backdrop.is-open{opacity:1;visibility:visible;}
.mobile-nav{position:fixed;top:0;right:0;bottom:0;width:min(84vw,340px);background:var(--mnav-bg);backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);border-left:1px solid var(--mnav-border);z-index:991;display:flex;flex-direction:column;padding:18px 8px 28px;transform:translateX(100%);transition:transform .35s cubic-bezier(.16,.8,.24,1);box-shadow:-20px 0 50px rgba(0,0,0,.25);overflow-y:auto;}
.mobile-nav.is-open{transform:translateX(0);}
.mobile-nav-head{display:flex;align-items:center;justify-content:space-between;padding:6px 12px 18px;border-bottom:1px solid var(--line);margin-bottom:10px;}
.mobile-nav-title{font-family:'Fraunces',serif;font-weight:600;font-size:19px;color:var(--ink);}
.mobile-nav a{display:block;padding:16px 14px;font-size:16px;font-weight:600;color:var(--ink);border-radius:var(--radius-sm);transition:background .2s ease,color .2s ease;}
.mobile-nav a:active{background:var(--gold-grad-soft);color:var(--gold-deep);}
.mobile-nav a.mobile-nav-cta{margin:14px 6px 0;text-align:center;padding:15px;font-size:15px;color:var(--navy-deep);border-radius:var(--radius-full);font-weight:700;}
body.mobile-nav-open{overflow:hidden;position:fixed;width:100%;}
footer{background:var(--navy-deep);color:#B7BECB;padding:70px 0 26px;position:relative;overflow:hidden;}
footer::before{content:"";position:absolute;top:-10%;left:-5%;width:40%;height:50%;background:radial-gradient(ellipse,rgba(199,154,62,.08),transparent 65%);pointer-events:none;}
footer .wrap{position:relative;z-index:1;}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:40px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.1);}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr;}}
footer h4{color:#fff;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px;}
footer p{font-size:13.5px;color:#8B93A3;max-width:270px;margin-top:12px;}
footer .legal-entity{white-space:nowrap;}
footer ul{list-style:none;}
footer li{margin-bottom:10px;font-size:13.5px;}
footer a{transition:color .2s ease;}
footer a:hover{color:var(--gold-light);}
.footer-socials{display:flex;align-items:center;gap:10px;margin-top:16px;}
.footer-social{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(234,208,138,.24);border-radius:13px;background:rgba(255,255,255,.045);color:#f4f6f9;box-shadow:inset 0 1px 0 rgba(255,255,255,.07);transition:transform .25s cubic-bezier(.16,.8,.24,1),border-color .25s ease,background .25s ease,color .25s ease;}
.footer-social svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;}
.footer-social:hover,.footer-social:focus-visible{transform:translateY(-3px);border-color:rgba(234,208,138,.7);background:rgba(199,154,62,.14);color:var(--gold-light);}
.nl-form{display:flex;gap:8px;margin-top:6px;}
.nl-form input{flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);color:#fff;padding:10px 12px;border-radius:var(--radius-xs);font-size:13px;transition:border-color .2s ease;}
.nl-form input:focus{border-color:var(--gold);outline:none;}
.nl-form button{background:var(--gold-grad);color:var(--navy-deep);border:none;padding:10px 18px;border-radius:var(--radius-xs);font-weight:700;font-size:13px;transition:transform .25s ease,box-shadow .25s ease;}
.nl-form button:hover{transform:translateY(-2px);box-shadow:var(--shadow-gold-sm);}
@media(max-width:760px){.nl-form button{min-height:42px;}}
.payment-icons{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
.payment-icons span{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);padding:6px 13px;border-radius:var(--radius-xs);font-size:11px;font-weight:700;color:#D8DEE9;transition:border-color .2s ease;}
.newsletter-error{min-height:16px;margin-top:5px;font-size:11px;font-weight:600;color:#ffb0b3;}
.newsletter-error:empty{display:none;}
.newsletter-error.is-success{color:#9ee5bd;}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;padding-bottom:12px;font-size:13px;color:#A8B2C4;flex-wrap:wrap;gap:12px;border-top:1px solid rgba(255,255,255,.08);line-height:1.6;}

/* ---------- legal page: header adjustments (no hero photo behind it) ---------- */
.site-top{margin-bottom:0;}
header.main{color:var(--ink);background:var(--head-bg-scrolled);backdrop-filter:var(--head-blur-scrolled);-webkit-backdrop-filter:var(--head-blur-scrolled);border-color:var(--head-border-scrolled);box-shadow:var(--head-shadow-scrolled);}
header.main nav.primary a:hover{background:rgba(17,19,24,.06);border-color:rgba(17,19,24,.09);}
[data-theme="dark"] header.main nav.primary a:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);}
nav.primary a[aria-current="page"]{opacity:1;background:var(--gold-grad-soft);color:var(--gold-deep);}
[data-theme="dark"] nav.primary a[aria-current="page"]{color:var(--gold-light);}
.mobile-nav a[aria-current="page"]{color:var(--gold-deep);background:var(--gold-grad-soft);}
[data-theme="dark"] .mobile-nav a[aria-current="page"]{color:var(--gold-light);}

/* ---------- legal hero ---------- */
.legal-hero{padding:125px 0 36px;border-bottom:1px solid var(--line);}
[data-theme="dark"] body.terms-page .legal-hero{background:#031023;}
[data-theme="dark"] body.privacy-page .legal-hero{background:#000a1d;}
[data-theme="dark"] .legal-hero{border-bottom-color:rgba(234,208,138,.12);}
.legal-hero .wrap{display:flex;flex-direction:column;align-items:center;text-align:center;}
.legal-hero-img{width:100%;max-width:1040px;height:auto;display:block;margin:0 auto 28px;border-radius:var(--radius-sm,14px);}
[data-theme="dark"] .legal-hero-img{border-radius:0;}
.legal-updated{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-soft);border:1px solid var(--line);padding:7px 14px;border-radius:var(--radius-full);background:var(--surface);}

/* ---------- content layout ---------- */
.legal-content{padding:52px 0 90px;}
.legal-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;align-items:start;}
@media(max-width:980px){.legal-grid{grid-template-columns:1fr;gap:28px;}}

/* table of contents */
.toc-details{position:sticky;top:104px;}
@media(max-width:980px){.toc-details{position:static;}}
.toc-details summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;}
.toc-details summary::-webkit-details-marker{display:none;}
.toc-details summary .toc-chevron{transition:transform .25s ease;flex-shrink:0;color:var(--ink-soft);}
.toc-details[open] summary .toc-chevron{transform:rotate(180deg);}
@media(min-width:981px){.toc-details summary{display:none;}.toc-details .toc-list{display:block !important;}}
.toc-list{margin-top:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:10px;}
@media(min-width:981px){.toc-list{margin-top:0;background:transparent;border:none;padding:0;}}
.toc-list a{display:flex;align-items:baseline;gap:10px;padding:9px 10px;border-radius:var(--radius-xs);font-size:13.5px;color:var(--ink-soft);transition:background .2s ease,color .2s ease;}
.toc-list a:hover{color:var(--ink);background:var(--gold-grad-soft);}
.toc-list a .toc-num{font-family:'Fraunces',serif;color:var(--gold-text);font-weight:600;flex-shrink:0;width:1.6em;}

/* article */
.legal-article{max-width:760px;}
.legal-section{padding:36px 0;border-top:1px solid var(--line);scroll-margin-top:96px;}
.legal-section:first-child{border-top:none;padding-top:0;}
.legal-section .sec-num{font-family:'Fraunces',serif;font-size:14px;color:var(--gold-text);font-weight:600;letter-spacing:.06em;display:block;margin-bottom:6px;}
.legal-section h2{font-size:clamp(21px,2.4vw,26px);margin-bottom:16px;}
.legal-section p{font-size:15.5px;line-height:1.8;color:var(--ink);margin-bottom:14px;max-width:70ch;}
.legal-section p:last-child{margin-bottom:0;}
.legal-section ol{margin:0 0 14px 0;padding-left:1.3em;}
.legal-section ol:last-child{margin-bottom:0;}
.legal-section ol>li::marker{color:var(--gold-text);font-weight:700;}
.legal-section ul{margin:0 0 14px 0;padding-left:1.2em;}
.legal-section ul>li::marker{color:var(--ink);font-weight:normal;}
.legal-section li ul{margin:8px 0 4px 0;padding-left:1.2em;}
.legal-section li ul li{margin-bottom:6px;}
.legal-section li ul li::marker{color:var(--ink);font-weight:normal;}
.legal-section li{font-size:15.5px;line-height:1.8;color:var(--ink);margin-bottom:10px;max-width:70ch;}
.legal-section li:last-child{margin-bottom:0;}

/* callouts */
.callout{margin:22px 0;padding:18px 20px;border-radius:var(--radius-sm);background:var(--gold-grad-soft);border:1px solid rgba(199,154,62,.28);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.callout .callout-label{display:block;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text);margin-bottom:6px;}
.callout p{margin-bottom:0;color:var(--ink);}


/* fade-in on scroll, respecting reduced motion */
.reveal-in{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease;}
.reveal-in.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){.reveal-in{opacity:1;transform:none;transition:none;}}

@media(max-width:640px){
  .legal-hero{padding:102px 0 28px;}
  .legal-content{padding:36px 0 64px;}
  .legal-section{padding:28px 0;}
}
