: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;
  --wa:#20BA5A;
  /* flight enquiry form — light mode (true glassmorphism, Emirates/Qatar/Apple grade) */
  --form-bg:linear-gradient(168deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.78) 45%,rgba(255,255,255,.83) 100%);
  --form-bg-solid:linear-gradient(168deg,#FFFFFF 0%,#FAFAF8 100%);
  --form-blur:28px;
  --form-shadow:
    0 70px 100px -32px rgba(17,19,24,.28),
    0 26px 40px -16px rgba(17,19,24,.16),
    0 0 0 1px rgba(255,255,255,.5) inset,
    0 1.5px 0 rgba(255,255,255,.9) inset,
    0 -1px 0 rgba(17,19,24,.05) inset;
  --form-sheen:linear-gradient(122deg,rgba(255,255,255,.65) 0%,rgba(255,255,255,0) 30%,rgba(255,255,255,0) 68%,rgba(255,255,255,.3) 100%);
  --form-glow-color:rgba(199,154,62,.4);
  --form-tab-inactive:#5B6070;
  --form-field-hover:rgba(255,255,255,.4);
  --form-label:#4B5163;
  --form-text:#1F2937;
  --form-soft:#4A5163;
  --form-divider:rgba(31,41,55,.12);
  --form-swap-bg:rgba(255,255,255,.45);
  --form-swap-border:rgba(255,255,255,.6);
  --form-swap-color:#4B5163;
  --form-popover-bg:linear-gradient(168deg,#FFFFFF 0%,#FAFAF8 100%);
  --form-popover-solid:#FFFFFF;
  --form-popover-border:rgba(255,255,255,.6);
  --form-popover-shadow:
    0 30px 70px -14px rgba(17,19,24,.24),
    0 1px 0 rgba(255,255,255,.9) inset,
    0 0 0 1px rgba(255,255,255,.5) inset,
    0 0 60px 4px rgba(199,154,62,.14);
  --form-option-hover:rgba(199,154,62,.14);
  --form-heading:#1F2937;
  --form-btn-bg:rgba(255,255,255,.45);
  --form-btn-border:rgba(255,255,255,.65);
  --form-btn-color:#1F2937;
  --form-btn-disabled:#C7CAD3;
  --form-invalid-bg:rgba(200,60,60,.08);
  --form-error:#B23A3A;
  --form-success:#1E9E4E;
  --form-code:#8A6A28;
  --form-input-scheme:light;
  --form-input-bg:rgba(255,255,255,.38);
  --form-input-border:rgba(255,255,255,.55);
  --form-input-hover-border:rgba(199,154,62,.55);
  --form-input-focus-border:rgba(199,154,62,.8);
  --form-input-focus-glow:0 0 0 4px rgba(199,154,62,.14);
  --form-hover-shadow:0 4px 14px rgba(17,19,24,.07);

  /* 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);
}
[data-theme="dark"]{
  --bg:#0A0B0F; --surface:#15171E; --surface-2:#1B1E27;
  --ink:#F2F2F0; --ink-soft:#9AA0AE;
  --line:rgba(255,255,255,.09);
  --gold-text:#EAD08A;
  /* flight enquiry form — dark mode (premium glass, deepened to match) */
  --form-bg:linear-gradient(168deg,rgba(16,28,48,.68) 0%,rgba(8,16,30,.58) 45%,rgba(12,22,40,.64) 100%);
  --form-bg-solid:linear-gradient(168deg,#152B47 0%,#0C1A30 100%);
  --form-blur:28px;
  --form-shadow:
    0 70px 100px -32px rgba(0,0,0,.55),
    0 26px 40px -16px rgba(0,0,0,.4),
    0 1px 0 rgba(255,255,255,.08) inset,
    0 0 0 1px rgba(234,208,138,.16) inset;
  --form-sheen:linear-gradient(122deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,0) 30%,rgba(255,255,255,0) 68%,rgba(255,255,255,.06) 100%);
  --form-glow-color:rgba(234,208,138,.32);
  --form-tab-inactive:#9BA4B6;
  --form-field-hover:rgba(255,255,255,.06);
  --form-label:#8892A3;
  --form-text:#fff;
  --form-soft:#8892A3;
  --form-divider:rgba(255,255,255,.14);
  --form-swap-bg:rgba(255,255,255,.06);
  --form-swap-border:rgba(255,255,255,.16);
  --form-swap-color:#9BA4B6;
  --form-popover-bg:linear-gradient(168deg,#132840 0%,#0B1930 100%);
  --form-popover-solid:#132840;
  --form-popover-border:rgba(234,208,138,.22);
  --form-popover-shadow:
    0 30px 70px -14px rgba(0,0,0,.55),
    0 1px 0 rgba(255,255,255,.06) inset,
    0 0 0 1px rgba(234,208,138,.14) inset,
    0 0 60px 4px rgba(234,208,138,.1);
  --form-option-hover:rgba(234,208,138,.12);
  --form-heading:#fff;
  --form-btn-bg:rgba(255,255,255,.06);
  --form-btn-border:rgba(255,255,255,.17);
  --form-btn-color:#fff;
  --form-btn-disabled:#454C5B;
  --form-invalid-bg:rgba(220,90,90,.1);
  --form-error:#F2A0A0;
  --form-success:#7FD99A;
  --form-code:var(--gold-light);
  --form-input-scheme:dark;
  --form-input-bg:rgba(255,255,255,.05);
  --form-input-border:rgba(255,255,255,.12);
  --form-input-hover-border:rgba(234,208,138,.4);
  --form-input-focus-border:rgba(234,208,138,.65);
  --form-input-focus-glow:0 0 0 4px rgba(234,208,138,.14);
  --form-hover-shadow:0 4px 14px rgba(0,0,0,.28);

  --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 .search-card,
html.theme-transitioning .field,
html.theme-transitioning .deal-card,
html.theme-transitioning .deal-body,
html.theme-transitioning .why-card,
html.theme-transitioning .trust-badge,
html.theme-transitioning .trust-stat,
html.theme-transitioning .airline-chip,
html.theme-transitioning .payment-step,
html.theme-transitioning .offer-card,
html.theme-transitioning .faq-item,
html.theme-transitioning .contact-card,
html.theme-transitioning .airport-dropdown,
html.theme-transitioning .calendar-pop,
html.theme-transitioning .pax-pop,
html.theme-transitioning .cabin-pop{
  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 label{
  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;}}
/* while actively scrolling, pause the decorative animations that sit behind or beside
   backdrop-filter/blur surfaces — a moving background or pulsing blurred glow forces the
   browser to keep re-sampling those blurred layers every frame, which is expensive to do
   at the same time as scroll compositing. Pausing them for the ~200ms of a scroll gesture
   is imperceptible but removes the single biggest cause of dropped frames while scrolling. */
body.is-scrolling .hero-bg,
body.is-scrolling .hero-video,
body.is-scrolling .search-card::after,
body.is-scrolling .float-chip,
body.is-scrolling .hero-particles span,
body.is-scrolling .ticker-track{animation-play-state:paused;}
/* once the hero is fully scrolled out of view, its background/particle animations stop
   entirely rather than continuing to run (and cost compositor time) indefinitely below the fold */
body.hero-offscreen .hero-bg,
body.hero-offscreen .hero-video,
body.hero-offscreen .hero-particles span,
body.hero-offscreen .float-chip{animation-play-state:paused;}
/* mobile performance: phone GPUs composite backdrop-filter/filter blur far less efficiently
   than desktop, and the constant Ken Burns scale + particle drift add compositing work that
   mobile devices feel much more than desktop does. Below the tablet breakpoint we turn off
   the purely decorative continuous animations and lighten the blur radius, keeping the same
   glass look at a fraction of the per-frame cost. */
@media (max-width:640px){
  .hero-bg{animation:none;}
  .hero-particles{display:none;}
  .float-chip{animation:none;}
  :root,[data-theme="dark"]{--form-blur:14px;}
  :root{--head-blur:blur(12px) saturate(150%);--head-blur-scrolled:blur(16px) saturate(160%);}
  [data-theme="dark"]{--head-blur:blur(12px) saturate(140%);--head-blur-scrolled:blur(16px) saturate(150%);}
}
.eyebrow{font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold-text);font-weight:700;}

.icon{width:20px;height:20px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.skip-link{position:absolute;left:0;top:0;transform:translateX(-999px);background:var(--gold);color:var(--navy-deep);padding:12px 20px;z-index:999;font-weight:700;border-radius:0 0 8px 0;transition:transform .2s ease;}
.skip-link:focus{transform:translateX(0);}

/* reveal — visibility of .reveal elements is now fully owned by the
   NovaflyMotion 'scrollReveal' GSAP module (initial hidden state set via
   gsap.set() before anything is visible, final state left by the reveal
   tween). This class is kept only as a marker/selector for that module;
   it must not itself declare opacity/transform, or GSAP clearing its own
   inline styles after each reveal (to restore normal hover transitions)
   would fall back to this rule and hide the element again. */
.stagger .reveal:nth-child(1){transition-delay:0s;} .stagger .reveal:nth-child(2){transition-delay:.08s;}
.stagger .reveal:nth-child(3){transition-delay:.16s;} .stagger .reveal:nth-child(4){transition-delay:.24s;}
.stagger .reveal:nth-child(5){transition-delay:.32s;} .stagger .reveal:nth-child(6){transition-delay:.4s;}

/* 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;}}

/* 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;}
.mobile-theme-toggle{width:calc(100% - 12px);margin:8px 6px 4px;padding:12px 13px;display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,rgba(199,154,62,.12),rgba(255,255,255,.035));color:var(--ink);text-align:left;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);transition:border-color .25s ease,background .25s ease,transform .2s ease;}
.mobile-theme-toggle:active{transform:scale(.985);border-color:rgba(199,154,62,.55);}
.mobile-theme-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:var(--gold-grad);box-shadow:var(--shadow-gold-sm);font-size:15px;}
.mobile-theme-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px;}
.mobile-theme-copy strong{font-size:13px;line-height:1.15;}
.mobile-theme-copy small{color:var(--muted);font-size:10px;line-height:1.2;}
.mobile-theme-state{padding:5px 8px;border-radius:999px;background:rgba(199,154,62,.12);color:var(--gold-deep);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}
body.mobile-nav-open{overflow:hidden;position:fixed;width:100%;}
@media(min-width:921px){.mobile-nav,.mobile-nav-backdrop{display:none;}}

/* ripple */
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.5);transform:scale(0);animation:rippleAnim .6s ease-out;pointer-events:none;}
@keyframes rippleAnim{to{transform:scale(3);opacity:0;}}

/* announcement ribbon — premium infinite marquee */
.ticker{
  position:relative;
  height:34px;
  background:linear-gradient(180deg,#0A1526 0%,var(--navy-deep) 100%);
  color:#fff;
  overflow:hidden;
  display:flex;
  align-items:center;
  isolation:isolate;
}
.ticker::before{
  content:"";position:absolute;inset:0 0 auto 0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(234,208,138,.35) 50%,transparent);
  z-index:2;
}
.ticker::after{
  content:"";position:absolute;inset:auto 0 0 0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(234,208,138,.16) 50%,transparent);
  z-index:2;
}
/* soft edge fade so items don't hard-clip at the viewport edge */
.ticker-fade{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,var(--navy-deep) 0%,transparent 6%,transparent 94%,var(--navy-deep) 100%);
}
.ticker-track{
  display:flex;align-items:center;width:max-content;
  will-change:transform;transform:translateZ(0);backface-visibility:hidden;
  animation:tickerScroll linear infinite;
  animation-duration:var(--ticker-duration,42s);
}
@media(hover:hover){ .ticker:hover .ticker-track{animation-play-state:paused;} }
.ticker-item{
  display:inline-flex;align-items:center;gap:9px;
  padding:0 24px;white-space:nowrap;flex-shrink:0;
  font-size:11.5px;font-weight:500;letter-spacing:.01em;color:#C9D0DE;
}
.ticker-item .ti-plane{width:12px;height:12px;color:var(--gold-light);fill:currentColor;opacity:.92;flex-shrink:0;}
.ticker-item .ti-route{display:inline-flex;align-items:center;gap:7px;color:#fff;font-size:12px;font-weight:750;letter-spacing:.015em;}
.ticker-item .ti-origin{color:#cbd2dd;font-weight:600;}
.ticker-item .ti-arrow{color:var(--gold-light);font-size:12px;font-weight:500;}
.ticker-item .ti-fare{color:#AEB6C6;font-size:11px;}
.ticker-item .ti-fare b{color:var(--gold-light);font-size:12px;font-weight:750;}
.ticker-item.ti-trust{color:#C9D0DE;}
.ticker-item.ti-trust .ti-icon{font-size:12px;flex-shrink:0;opacity:.92;}
.ticker-sep{width:1px;height:12px;border-radius:0;background:linear-gradient(180deg,transparent,var(--gold-light),transparent);opacity:.48;flex-shrink:0;}
@keyframes tickerScroll{from{transform:translate3d(0,0,0);}to{transform:translate3d(-50%,0,0);}}
/* reduced motion: static, gently rotating single announcement — no scrolling motion at all */
.ticker.is-static .ticker-track{animation:none;transform:none;width:100%;justify-content:center;}
.ticker.is-static .ticker-item{display:none;padding:0;}
.ticker.is-static .ticker-item.is-current{display:inline-flex;}
@media(max-width:640px){
  .ticker{height:32px;}
  .ticker-item{padding:0 18px;gap:7px;}
  .ticker-item .ti-plane{width:11px;height:11px;}
  .ticker-item .ti-route{gap:5px;font-size:11px;}
  .ticker-item .ti-fare{font-size:10px;}
  .ticker-item .ti-fare b{font-size:11px;}
}

/* hero */
/* Guaranteed clearance so hero content can never render behind the glass
   header, even though the header visually overlays the hero image. This is
   padding on the hero flex CONTAINER (not the centered .hero-inner child) —
   padding on a centered flex item only pushes its content down by half its
   own value, whereas padding on the container establishes a hard floor the
   centered content can never rise above. Value = header's own top-state
   footprint (margin-top + border-box height, same figure used for the
   .site-top overlap trick) plus breathing room, and is kept in sync with
   that footprint at the same breakpoints. */
:root{--hero-clearance:104px;}
.hero{position:relative;min-height:calc(100vh - 114px);min-height:calc(100svh - 114px);display:flex;align-items:center;overflow:hidden;color:#fff;isolation:isolate;padding-top:var(--hero-clearance);padding-bottom:110px;}
@media(max-width:640px){.hero{padding-bottom:70px;}}
.hero-bg-wrap{position:absolute;inset:-4%;will-change:transform;}
.hero-bg{position:absolute;inset:0;background-image:url('https://images.unsplash.com/photo-1436491865332-7a61a109cc05?auto=format&fit=crop&w=1800&q=80');background-size:cover;background-position:center 55%;animation:kenburns 28s ease-in-out infinite alternate;will-change:transform;}
@keyframes kenburns{from{transform:scale(1);}to{transform:scale(1.14);}}
/* Hero background video: sits above .hero-bg (which stays in the DOM as the
   instant-paint fallback for mobile, reduced-motion, data-saver connections,
   or if the video simply fails to load). JS only assigns a src and starts
   playback under the conditions in the 'hero' module below; until then this
   element paints nothing and .hero-bg alone is visible. Once playback starts
   it fades in over the image rather than popping in. */
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;opacity:0;transition:opacity 1.1s ease;animation:kenburns 40s ease-in-out infinite alternate;will-change:transform,opacity;}
.hero-video.is-playing{opacity:1;}
@media(max-width:640px){.hero-video{display:none;}}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,15,28,.62) 0%,rgba(7,15,28,.36) 38%,rgba(7,15,28,.5) 62%,rgba(7,15,28,.97) 100%);}
.hero-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,transparent 32%,rgba(7,15,28,.55) 100%);pointer-events:none;}
.hero-grain{position:absolute;inset:0;opacity:.045;mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.hero-glow{position:absolute;top:-10%;right:-5%;width:60%;height:70%;background:radial-gradient(circle,rgba(199,154,62,.28),transparent 65%);filter:blur(10px);pointer-events:none;transition:transform .15s linear;}
.hero-glow2{position:absolute;bottom:-15%;left:-10%;width:50%;height:60%;background:radial-gradient(circle,rgba(63,110,113,.22),transparent 65%);pointer-events:none;transition:transform .15s linear;}

.hero-particles{position:absolute;inset:0;pointer-events:none;z-index:1;}
.hero-particles span{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--gold-light);opacity:0;box-shadow:0 0 8px 1px rgba(234,208,138,.6);animation:drift 9s ease-in-out infinite;}
@keyframes drift{0%{opacity:0;transform:translateY(0);}15%{opacity:.8;}85%{opacity:.4;}100%{opacity:0;transform:translateY(-160px);}}
.hero-particles span:nth-child(1){left:12%;top:72%;animation-delay:0s;}
.hero-particles span:nth-child(2){left:24%;top:82%;animation-delay:1.6s;}
.hero-particles span:nth-child(3){left:38%;top:66%;animation-delay:3.2s;}
.hero-particles span:nth-child(4){left:64%;top:78%;animation-delay:.8s;}
.hero-particles span:nth-child(5){left:80%;top:60%;animation-delay:4s;}
.hero-particles span:nth-child(6){left:90%;top:74%;animation-delay:2.4s;}

.hero-float{position:absolute;z-index:2;pointer-events:none;transition:transform .2s ease-out;}
.hero-float-1{top:24%;right:8%;}
.hero-float-2{top:56%;right:5%;}
.hero-float-3{top:18%;left:6%;}
.float-chip{display:flex;align-items:center;gap:10px;background:rgba(10,20,36,.5);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border:1px solid rgba(234,208,138,.25);border-radius:var(--radius-sm);padding:12px 16px;box-shadow:0 16px 34px rgba(0,0,0,.3);animation:bob 5s ease-in-out infinite;will-change:transform;}
.float-chip .icon{width:18px;height:18px;color:var(--gold-light);flex-shrink:0;}
.float-chip strong{display:block;font-family:'Fraunces',serif;font-size:15px;color:#fff;font-weight:600;line-height:1.25;}
.float-chip span{font-size:10.5px;color:#9BA4B6;letter-spacing:.02em;}
.float-chip-sm{padding:10px 14px;gap:8px;}
.float-chip-sm span{font-size:11.5px;color:#fff;font-weight:600;}
.hero-float-2 .float-chip{animation-delay:1.2s;}
.hero-float-3 .float-chip{animation-delay:2.4s;}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@media(max-width:1240px){.hero-float{display:none;}}

.hero-inner{position:relative;z-index:3;width:100%;max-width:1220px;margin:0 auto;text-align:center;padding:0 32px;}
@media(max-width:900px){.hero-inner{padding:0 28px;}}
@media(max-width:640px){.hero-inner{padding:0 20px;}}

.hero-badge-row{display:flex;justify-content:center;margin-bottom:22px;}
.hero-eyebrow-new{display:inline-flex;align-items:center;gap:8px;color:var(--gold-light);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;border:1px solid rgba(234,208,138,.3);padding:8px 18px;border-radius:var(--radius-full);background:rgba(234,208,138,.06);}
.eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px 1px rgba(234,208,138,.7);animation:pulseDot 2s ease-in-out infinite;}
@keyframes pulseDot{0%,100%{opacity:1;}50%{opacity:.4;}}

/* .lead is now the hero's primary message (the old headline is gone), so it
   gets a quiet editorial serif treatment instead of body-copy styling —
   distinct from the smaller sans-serif paragraphs used elsewhere on the
   page — while staying well short of "headline" scale. */
.hero .lead{max-width:640px;margin:0 auto 42px;color:#EDEFF3;font-family:'Fraunces',serif;font-weight:500;font-size:clamp(19px,2.4vw,28px);line-height:1.5;letter-spacing:.005em;}
.btn-outline{position:relative;overflow:hidden;border:1.5px solid rgba(255,255,255,.4);color:#fff;font-weight:600;font-size:14.5px;padding:15px 28px;border-radius:var(--radius-full);transition:all .25s ease;background:transparent;}
.btn-outline:hover{border-color:var(--gold-light);background:rgba(255,255,255,.08);color:var(--gold-light);}
.magnetic{will-change:transform;}

/* cursor-follow lighting — additive interaction layer driven by the GSAP
   'interactions' module (desktop only). Off by default (opacity:0); JS
   toggles .is-glowing on hover and updates --mx/--my to track the pointer.
   Purely decorative, sits behind each element's own content. */
.cursor-glow::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),rgba(199,154,62,.16),transparent 70%);opacity:0;transition:opacity .35s ease;pointer-events:none;z-index:0;}
.cursor-glow.is-glowing::before{opacity:1;}

.hero-trustline{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;}
.hero-trustline span{display:flex;align-items:center;gap:6px;font-size:12px;color:#B7BECB;font-weight:600;letter-spacing:.02em;}
.hero-trustline .icon{width:14px;height:14px;color:var(--gold-light);}
.hero-trustline .sep{color:rgba(255,255,255,.25);}

/* search dock — glass panel bridging the hero into the page below */
.search-dock{position:relative;z-index:20;margin-top:-72px;}
@media(max-width:640px){.search-dock{margin-top:-40px;}}
.search-card{position:relative;isolation:isolate;background:var(--form-bg);backdrop-filter:blur(var(--form-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--form-blur)) saturate(180%);border-radius:var(--radius-lg);box-shadow:var(--form-shadow);padding:12px;transition:background .4s ease,box-shadow .4s ease;}
/* while any dropdown inside the card is open, drop the card's own backdrop-filter —
   a blurred ancestor sitting behind an opaque, isolated descendant is a known source of
   compositing glitches on some Android GPUs, where the descendant ends up rendered with
   the ancestor's blur/translucency instead of its own solid background */
.search-card.popover-open{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--form-bg-solid);}
.search-card::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--form-sheen);z-index:-1;pointer-events:none;}
.search-card::after{content:"";position:absolute;inset:-8px -26px -32px -26px;border-radius:calc(var(--radius-lg) + 20px);background:radial-gradient(ellipse at 50% 30%,var(--form-glow-color),transparent 68%);filter:blur(34px);z-index:-2;pointer-events:none;animation:ambientGlow 6s ease-in-out infinite;will-change:transform,opacity;}
@keyframes ambientGlow{0%,100%{opacity:.7;transform:scale(1);}50%{opacity:1;transform:scale(1.045);}}
@media(prefers-reduced-motion:reduce),(prefers-reduced-data:reduce){.search-card::after{animation:none;opacity:.85;will-change:auto;}}
@media(max-width:640px){.search-card::after{animation:none;opacity:.85;will-change:auto;}}
.search-tabs{display:flex;gap:4px;padding:12px 16px 4px;flex-wrap:wrap;}
.search-tab{font-size:13px;font-weight:700;padding:8px 16px;border-radius:var(--radius-full);color:var(--form-tab-inactive);transition:color .25s ease,background .35s cubic-bezier(.16,.8,.24,1),box-shadow .35s ease,transform .2s ease;background:none;border:none;white-space:nowrap;cursor:pointer;}
.search-tab:hover:not(.active){background:var(--form-option-hover);color:var(--form-heading);}
.search-tab:active{transform:scale(.96);}
@media(max-width:380px){.search-tab{padding:7px 12px;font-size:12px;}}
.search-tab.active{background:var(--gold-grad);color:var(--navy-deep);box-shadow:0 6px 18px rgba(199,154,62,.38);}
.search-fields{display:grid;grid-template-columns:1.15fr auto 1.15fr auto 1.05fr 1.05fr 1fr .95fr;gap:6px;align-items:stretch;padding:6px 10px 14px;}
#fieldPax{grid-column:7;}
#fieldCabin{grid-column:8;}
.multi-city-fields{display:none;grid-column:1/7;grid-row:1;flex-direction:column;gap:8px;}
.multi-city-fields.is-active{display:flex;}
.multi-city-legs{display:flex;flex-direction:column;gap:8px;}
.multi-leg{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:6px;align-items:stretch;}
.multi-leg-remove{width:32px;height:32px;border-radius:50%;background:var(--form-btn-bg);border:1px solid var(--form-btn-border);color:var(--form-btn-color);display:flex;align-items:center;justify-content:center;cursor:pointer;align-self:center;flex-shrink:0;transition:background .2s ease,color .2s ease,border-color .2s ease;}
.multi-leg-remove:hover{background:var(--form-error);color:#fff;border-color:transparent;}
.multi-leg-remove .icon{width:14px;height:14px;}
.multi-leg-error{display:none;grid-column:1/-1;font-size:11px;color:var(--form-error);font-weight:600;margin:0 4px;}
.multi-leg.is-invalid-leg .multi-leg-error{display:block;}
.multi-add-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:11px;border-radius:var(--radius-xs);border:1px dashed var(--form-input-border);background:transparent;color:var(--form-soft);font-weight:700;font-size:13px;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease;}
.multi-add-btn:hover{border-color:var(--gold);color:var(--gold-text);background:var(--form-option-hover);}
.multi-add-btn:disabled{opacity:.4;cursor:not-allowed;}
@media(max-width:1100px){
  #fieldPax{grid-column:auto;}
  #fieldCabin{grid-column:auto;}
  .multi-city-fields{grid-column:1/-1;}
}
@media(max-width:640px){.multi-leg{grid-template-columns:1fr 1fr;}.multi-leg .field-date{grid-column:1/-1;}}
.field{position:relative;padding:10px 13px;min-height:64px;display:flex;flex-direction:column;justify-content:center;border-radius:var(--radius-xs);background:var(--form-input-bg);border:1px solid var(--form-input-border);transition:background .25s ease,border-color .25s ease,box-shadow .25s ease,transform .25s cubic-bezier(.16,.8,.24,1);box-sizing:border-box;}
.field:hover{border-color:var(--form-input-hover-border);transform:translateY(-1px);box-shadow:var(--form-hover-shadow);}
.field:focus-within{border-color:var(--form-input-focus-border);box-shadow:var(--form-input-focus-glow);background:var(--form-field-hover);transform:translateY(-1px);}
.field label{display:block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--form-label);margin-bottom:4px;line-height:1.2;white-space:nowrap;}
.field-value{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;min-width:0;line-height:1.3;}
.field input,.field textarea{width:100%;background:transparent;border:none;color:var(--form-text);font-family:inherit;font-size:14px;font-weight:600;padding:0;color-scheme:var(--form-input-scheme);resize:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.field input:focus,.field textarea:focus{outline:none;}
.field input::placeholder,.field textarea::placeholder{color:var(--form-soft);font-weight:500;}
/* dropdown/popover trigger buttons — styled to look identical to a plain field */
.date-trigger,.pax-trigger,.cabin-trigger{width:100%;text-align:left;background:none;border:none;color:var(--form-text);font-family:inherit;font-size:14px;font-weight:600;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;}
.date-trigger span,.pax-trigger span,.cabin-trigger span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;}
.date-trigger.is-empty,.pax-trigger.is-empty{color:var(--form-soft);font-weight:500;}
.date-trigger .icon,.pax-trigger .icon,.cabin-trigger .icon{width:12px;height:12px;color:var(--form-soft);flex-shrink:0;transition:transform .25s ease;}
.field.is-open .date-trigger .icon,.field.is-open .pax-trigger .icon,.field.is-open .cabin-trigger .icon{transform:rotate(180deg);color:var(--gold-deep);}
[data-theme="dark"] .field.is-open .date-trigger .icon,[data-theme="dark"] .field.is-open .pax-trigger .icon,[data-theme="dark"] .field.is-open .cabin-trigger .icon{color:var(--gold-light);}

.swap-btn{width:38px;height:38px;border-radius:50%;background:var(--form-swap-bg);border:1px solid var(--form-swap-border);display:flex;align-items:center;justify-content:center;transition:transform .35s cubic-bezier(.34,1.56,.64,1),background .25s ease,border-color .25s ease,color .25s ease;flex-shrink:0;color:var(--form-swap-color);align-self:center;cursor:pointer;}
.swap-btn:hover{background:var(--gold-grad);color:var(--navy-deep);border-color:transparent;transform:rotate(180deg) scale(1.08);box-shadow:0 6px 20px rgba(199,154,62,.4);}
.swap-btn:active{transform:rotate(180deg) scale(.94);}
.swap-btn.spun{transform:rotate(180deg);}
.field-divider{width:1px;background:var(--form-divider);align-self:center;height:34px;}

/* shared popover shell */
.airport-dropdown,.calendar-pop,.pax-pop,.cabin-pop{position:absolute;top:calc(100% + 10px);left:0;z-index:500;background-color:#FFFFFF !important;border:1px solid var(--form-popover-border);border-radius:var(--radius-sm);box-shadow:var(--form-popover-shadow);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top left;transition:opacity .25s cubic-bezier(.16,.8,.24,1),transform .25s cubic-bezier(.16,.8,.24,1),visibility .25s;}
[data-theme="dark"] .airport-dropdown,[data-theme="dark"] .calendar-pop,[data-theme="dark"] .pax-pop,[data-theme="dark"] .cabin-pop{background-color:#132840 !important;}
.field.is-open .airport-dropdown,.field.is-open .calendar-pop,.field.is-open .pax-pop,.field.is-open .cabin-pop,.airport-dropdown[data-portaled],.calendar-pop[data-portaled],.pax-pop[data-portaled],.cabin-pop[data-portaled]{opacity:1;visibility:visible;transform:translateY(0) scale(1);}
/* on the mobile 2-up grid, the right-column fields (To, Return, Cabin) sit far enough right
   that a popover anchored to their own left edge would render mostly off-screen. Anchoring
   those specific popovers to their field's right edge instead keeps them fully within the
   card's bounds — the same fix already relied on max-width:88vw for the left-column fields. */
@media(max-width:640px){
  #fieldTo .airport-dropdown,#fieldReturn .calendar-pop,#fieldCabin .cabin-pop{left:auto;right:0;transform-origin:top right;}
}

/* airport autocomplete */
.airport-dropdown{width:320px;max-width:88vw;padding:8px;max-height:340px;overflow-y:auto;}
.airport-option{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-xs);cursor:pointer;transition:background .2s ease,transform .2s cubic-bezier(.16,.8,.24,1);}
.airport-option:hover,.airport-option.is-active{background:var(--form-option-hover);transform:translateX(3px);}
.airport-option .code{font-family:'Fraunces',serif;font-weight:600;font-size:14px;color:var(--form-code);flex-shrink:0;width:34px;}
.airport-option .meta{min-width:0;}
.airport-option .aname{font-size:13.5px;font-weight:600;color:var(--form-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.airport-option .aname mark{background:rgba(199,154,62,.28);color:inherit;border-radius:2px;padding:0 1px;}
.airport-option .aplace{font-size:11.5px;color:var(--form-soft);}
.airport-option .aplace mark{background:rgba(63,110,113,.18);color:var(--form-text);border-radius:2px;padding:0 1px;box-shadow:inset 0 -1px 0 rgba(63,110,113,.45);}
[data-theme="dark"] .airport-option .aplace mark{background:rgba(106,164,168,.2);color:var(--form-soft);box-shadow:inset 0 -1px 0 rgba(132,191,195,.5);}
.airport-empty{padding:18px 12px;text-align:center;font-size:13px;color:var(--form-soft);}
.airport-group-label{padding:10px 12px 6px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--form-soft);}
.airport-group-label:first-child{padding-top:4px;}

/* calendar */
.calendar-pop{width:300px;max-width:88vw;padding:16px;}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cal-head .cal-title{font-family:'Fraunces',serif;font-weight:600;font-size:15px;color:var(--form-heading);}
.cal-nav{width:28px;height:28px;border-radius:50%;background:var(--form-btn-bg);border:1px solid var(--form-btn-border);display:flex;align-items:center;justify-content:center;color:var(--form-btn-color);cursor:pointer;transition:background .2s ease,border-color .2s ease;}
.cal-nav:hover{background:var(--gold-grad);color:var(--navy-deep);border-color:transparent;box-shadow:0 4px 14px rgba(199,154,62,.4);}
.cal-nav .icon{width:13px;height:13px;}
.cal-nav.prev .icon{transform:rotate(90deg);}
.cal-nav.next .icon{transform:rotate(-90deg);}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:6px;}
.cal-weekdays span{text-align:center;font-size:10px;font-weight:700;color:var(--form-soft);letter-spacing:.03em;}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--form-text);border-radius:50%;cursor:pointer;transition:background .18s ease,transform .18s ease,color .18s ease;position:relative;background:none;border:none;font-family:inherit;}
.cal-day:hover:not(:disabled):not(.is-empty){background:var(--form-option-hover);transform:scale(1.12);}
.cal-day:disabled{color:var(--form-btn-disabled);cursor:not-allowed;}
.cal-day.is-empty{visibility:hidden;cursor:default;}
.cal-day.is-today::after{content:"";position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--gold-deep);}
[data-theme="dark"] .cal-day.is-today::after{background:var(--gold-light);}
.cal-day.is-selected{background:var(--gold-grad);color:var(--navy-deep);font-weight:700;animation:calPop .35s cubic-bezier(.34,1.56,.64,1);}
@keyframes calPop{0%{transform:scale(.7);}60%{transform:scale(1.12);}100%{transform:scale(1);}}
.cal-foot{margin-top:12px;padding-top:12px;border-top:1px solid var(--form-divider);font-size:11.5px;color:var(--form-soft);text-align:center;}

/* passengers */
.pax-pop{width:280px;max-width:88vw;padding:16px;}
@media(max-width:640px){
  .swap-btn{width:44px;height:44px;}
  .cal-nav{width:44px;height:44px;}
  .search-tab{padding:11px 16px;}
}
/* touch feedback: :hover never fires on touch devices, so give the main tappable
   elements a brief press-down response instead — without touching hover-driven desktop feel */
@media (hover:none){
  .btn-book:active,.deal-book:active,.icon-btn:active,.search-btn:active,.airline-chip:active{transform:scale(.96);}
  .deal-card:active{transform:scale(.98);}
  .region-tab:active{transform:scale(.96);}
}
.pax-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;}
.pax-row+.pax-row{border-top:1px solid var(--form-divider);}
.pax-label{font-size:14px;font-weight:700;color:var(--form-heading);}
.pax-sub{font-size:11px;color:var(--form-soft);margin-top:1px;}
.pax-stepper{display:flex;align-items:center;gap:12px;}
.pax-btn{width:28px;height:28px;border-radius:50%;background:var(--form-btn-bg);border:1px solid var(--form-btn-border);color:var(--form-btn-color);display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;transition:background .2s ease,opacity .2s ease,transform .15s ease;line-height:1;}
.pax-btn:hover:not(:disabled){background:var(--gold-grad);color:var(--navy-deep);border-color:transparent;box-shadow:0 4px 14px rgba(199,154,62,.4);}
.pax-btn:active:not(:disabled){transform:scale(.9);}
.pax-btn:disabled{opacity:.35;cursor:not-allowed;}
@media(max-width:640px){.pax-btn{width:44px;height:44px;font-size:18px;}}
.pax-count{font-family:'Fraunces',serif;font-weight:600;font-size:15px;color:var(--form-heading);width:16px;text-align:center;}
.pax-done{width:100%;margin-top:14px;background:var(--gold-grad);color:var(--navy-deep);border:none;padding:11px;border-radius:var(--radius-xs);font-weight:700;font-size:13px;cursor:pointer;transition:transform .2s ease;}
.pax-done:hover{transform:translateY(-1px);}

/* cabin */
.cabin-pop{width:200px;max-width:88vw;padding:8px;}
.cabin-option{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:var(--radius-xs);cursor:pointer;font-size:13.5px;font-weight:600;color:var(--form-soft);transition:background .15s ease,color .15s ease;}
.cabin-option:hover{background:var(--form-option-hover);}
.cabin-option .icon{width:14px;height:14px;color:var(--gold-deep);opacity:0;transition:opacity .15s ease;}
[data-theme="dark"] .cabin-option .icon{color:var(--gold-light);}
.cabin-option.is-selected{color:var(--form-heading);}
.cabin-option.is-selected .icon{opacity:1;}

/* your details */
.details-divider{display:flex;align-items:center;gap:12px;padding:14px 16px 10px;}
.details-divider::before,.details-divider::after{content:"";flex:1;height:1px;background:var(--form-divider);}
.details-divider span{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--form-soft);white-space:nowrap;}
.details-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:0 10px 6px;}
.details-fields .field-full{grid-column:1/-1;}
.field.is-invalid{background:var(--form-invalid-bg);}
.multi-leg.is-invalid-leg .field{background:var(--form-invalid-bg);}
.field.is-invalid input,.field.is-invalid textarea{color:var(--form-text);}
.field-error{display:none;font-size:11px;color:var(--form-error);margin-top:5px;font-weight:600;}
.field.is-invalid .field-error{display:block;}
@media(max-width:760px){.details-fields{grid-template-columns:1fr 1fr;}.details-fields .field-full{grid-column:1/-1;}}
@media(max-width:480px){.details-fields{grid-template-columns:1fr;}}

/* actions + status */
.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap;padding:14px 16px 16px;}
.form-status{flex:1;min-width:180px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px;opacity:0;transform:translateY(4px);transition:opacity .3s ease,transform .3s ease;}
.form-status.is-visible{opacity:1;transform:translateY(0);}
.form-status .icon{width:16px;height:16px;flex-shrink:0;}
.form-status.is-success{color:var(--form-success);}
.form-status.is-error{color:var(--form-error);}
.form-status a{color:var(--gold-text);text-decoration:underline;}
[data-theme="dark"] .form-status a{color:var(--gold-light);}

.search-btn{background:var(--gold-grad);color:var(--navy-deep);border:none;padding:0 30px;border-radius:var(--radius-xs);font-weight:700;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .25s cubic-bezier(.16,.8,.24,1),box-shadow .3s ease,background .3s ease;white-space:nowrap;height:52px;box-shadow:var(--shadow-gold-sm);position:relative;overflow:hidden;min-width:180px;cursor:pointer;}
.search-btn::before{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .65s ease;pointer-events:none;}
.search-btn:hover::before{left:130%;}
.search-btn:active{transform:scale(.97);}
.search-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-gold);}
.search-btn:disabled{cursor:default;}
.search-btn .btn-label{display:flex;align-items:center;gap:8px;transition:opacity .2s ease;}
.search-btn .btn-spinner{display:none;width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(7,15,28,.25);border-top-color:var(--navy-deep);animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.search-btn.is-loading .btn-label{display:none;}
.search-btn.is-loading .btn-spinner{display:block;}
.search-btn.is-loading{transform:none;}
.search-btn.is-success{background:linear-gradient(135deg,#1EA34E,#20BA5A);box-shadow:0 10px 26px rgba(32,186,90,.3);}
.search-btn.is-success .btn-label{display:flex;}
.search-btn.is-success .btn-spinner{display:none;}

@media(max-width:1100px){.search-fields{grid-template-columns:1fr 1fr;}.swap-btn,.field-divider{display:none;}}

/* sections — consistent responsive vertical rhythm */
.section{padding:120px 0;}
.section.tight{padding:96px 0;}
@media(max-width:900px){.section{padding:88px 0;}.section.tight{padding:72px 0;}}
@media(max-width:640px){.section{padding:64px 0;}.section.tight{padding:56px 0;}}
.section-head{max-width:640px;margin:0 auto 56px;text-align:center;}
@media(max-width:640px){.section-head{margin:0 auto 36px;}}
.section-head h2{font-size:clamp(30px,3.6vw,44px);margin-top:12px;line-height:1.12;letter-spacing:-0.01em;}
.section-head p{color:var(--ink-soft);margin-top:14px;font-size:16px;line-height:1.6;}
[id]{scroll-margin-top:114px;}

/* region filter tabs */
.region-tabs{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:44px;}
.region-tab{position:relative;overflow:hidden;padding:10px 20px;border-radius:var(--radius-full);border:1px solid var(--line);background:var(--surface);font-size:13.5px;font-weight:700;color:var(--ink-soft);transition:all .3s cubic-bezier(.16,.8,.24,1);}
@media(max-width:640px){.region-tab{padding:8px 14px;font-size:12.5px;}}
@media(max-width:380px){.region-tab{padding:7px 12px;font-size:12px;}}
.region-tab.active{background:var(--gold-grad);color:var(--navy-deep);border-color:transparent;box-shadow:var(--shadow-gold-sm);}
.region-tab:hover:not(.active){border-color:var(--gold);color:var(--ink);}

/* deals */
.deals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:900px){.deals-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.deals-grid{grid-template-columns:1fr;}}
.deal-card{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow);transition:transform .45s cubic-bezier(.16,.8,.24,1),box-shadow .45s ease,opacity .4s ease;border:1px solid var(--line);opacity:1;}
.deal-card.is-fading{opacity:0;transform:translateY(14px) scale(.97);}
.deal-card.hidden{display:none;}
.deal-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg),var(--shadow-gold);}
.deal-photo-wrap{position:relative;height:220px;overflow:hidden;}
.deal-photo{position:absolute;inset:0;background-size:cover;background-position:center;background-color:var(--surface-2);transition:transform 1s cubic-bezier(.16,.8,.24,1),filter .5s ease;}
/* Dark mode: every deal photo turns to night. Cards with data-photo-dark
   have a real photographed night shot swapped in via JS instead (see the
   "deal photo day/night" script) — this filter is the fallback for every
   other destination, since a genuine free night photo isn't available for
   every city in the grid. brightness+saturate darken and mute it, and
   sepia+hue-rotate(180deg) is a standard trick to shift the resulting
   tone toward a cool night blue rather than a flat grey. */
[data-theme="dark"] .deal-photo:not([data-photo-dark]){filter:brightness(.5) contrast(1.15) saturate(.7) sepia(.2) hue-rotate(180deg);}
.deal-card:hover .deal-photo{transform:scale(1.1);}
.deal-glass{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,15,28,0) 40%,rgba(7,15,28,.78) 100%);}
.badge{position:absolute;top:14px;left:14px;background:var(--gold-grad);color:var(--navy-deep);font-size:10.5px;font-weight:800;padding:6px 13px;border-radius:var(--radius-full);letter-spacing:.03em;z-index:2;box-shadow:0 4px 14px rgba(0,0,0,.2);}
.seats-badge{position:absolute;top:14px;right:14px;background:rgba(7,15,28,.55);backdrop-filter:blur(6px);color:#fff;font-size:10px;font-weight:700;padding:6px 11px;border-radius:var(--radius-full);z-index:2;border:1px solid rgba(255,255,255,.14);}
.deal-meta{position:absolute;left:18px;bottom:14px;right:18px;color:#fff;z-index:2;}
.deal-meta h3{color:#fff;font-family:'Fraunces',serif;font-weight:600;font-size:22px;}
.deal-meta .sub{font-size:11.5px;color:var(--gold-light);margin-top:2px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;}
.deal-body{padding:18px 20px 22px;}
.deal-specs{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--ink-soft);margin-bottom:14px;flex-wrap:wrap;}
.deal-specs span{display:flex;align-items:center;gap:5px;}
.deal-specs .icon{width:13px;height:13px;color:var(--gold-deep);flex-shrink:0;}
.deal-airline-logo{height:24px;width:auto;max-width:68px;object-fit:contain;flex-shrink:0;}
/* Several marks (BA, Turkish Airlines, etc.) use dark or black ink, which
   would nearly disappear on the dark theme's dark card surface — a small
   light backing chip keeps them legible without needing per-logo color
   swaps for something this small. */
[data-theme="dark"] .deal-airline-logo{background:rgba(255,255,255,.92);border-radius:4px;padding:3px 6px;}
[data-theme="dark"] .deal-specs .icon{color:var(--gold-light);}
.deal-row{display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1.5px dashed rgba(156,122,46,.3);}
.deal-price{font-family:'Fraunces',serif;font-size:24px;font-weight:600;color:var(--ink);}
.deal-price::before{content:"Starting from";display:block;margin-bottom:6px;color:var(--ink-soft);font-family:'Inter',sans-serif;font-size:9px;font-weight:750;line-height:1;text-transform:uppercase;letter-spacing:.08em;}
.deal-price small{display:block;font-size:10px;font-family:'Inter',sans-serif;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;}
.deal-book{position:relative;overflow:hidden;background:var(--ink);color:var(--bg);font-size:12.5px;font-weight:700;padding:10px 20px;border-radius:var(--radius-full);border:none;transition:background .3s ease,box-shadow .3s ease,transform .25s ease;}
.deal-book:hover{background:var(--gold-grad);color:var(--navy-deep);box-shadow:var(--shadow-gold-sm);transform:translateY(-2px);}

/* trust */
.trust-section{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;overflow:hidden;}
.trust-section::before{content:"";position:absolute;top:-20%;left:50%;transform:translateX(-50%);width:70%;height:60%;background:radial-gradient(ellipse,rgba(199,154,62,.08),transparent 65%);pointer-events:none;}
.trust-section .wrap{position:relative;z-index:1;}
.trust-badges{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:64px;}
.trust-badge{position:relative;display:flex;align-items:center;gap:9px;background:var(--bg);border:1px solid var(--line);padding:12px 20px;border-radius:var(--radius-full);font-size:13px;font-weight:700;box-shadow:var(--shadow-sm);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
.trust-badge:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--gold);}
.trust-badge .icon{width:16px;height:16px;color:var(--gold-deep);flex-shrink:0;}
[data-theme="dark"] .trust-badge .icon{color:var(--gold-light);}
.trust-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
@media(max-width:760px){.trust-stats{grid-template-columns:1fr 1fr;}}
.trust-stat{background:var(--bg);padding:34px 24px;text-align:center;transition:background .3s ease;}
.trust-stat:hover{background:var(--gold-grad-soft);}
.trust-stat .num{font-family:'Fraunces',serif;font-size:38px;font-weight:600;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.trust-stat .label{font-size:12px;color:var(--ink-soft);margin-top:6px;font-weight:600;}
@media(max-width:480px){
  .trust-stat{min-width:0;padding:30px 10px;}
  .trust-stat .num{font-size:clamp(31px,9.3vw,35px);line-height:1;letter-spacing:-.035em;white-space:nowrap;}
}

/* airlines */
.airlines{padding:56px 0;background:var(--bg);}
.airlines-label{display:block;text-align:center;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);opacity:.7;margin:0 0 26px;}
.airlines-track{overflow:hidden;padding:8px 0;margin:-8px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.airlines-inner{display:flex;align-items:center;gap:36px;width:max-content;will-change:transform;transform:translate3d(0,0,0);backface-visibility:hidden;animation:airlinesScroll 68s linear infinite;}
.airlines-group{display:flex;align-items:center;gap:36px;flex-shrink:0;}
@keyframes airlinesScroll{from{transform:translate3d(0,0,0);}to{transform:translate3d(calc(-1 * var(--airlines-distance, 50%)),0,0);}}
.airline-chip{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.6);border:1px solid var(--line);padding:10px 18px;border-radius:16px;min-height:56px;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;}
.airline-chip:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:var(--shadow-sm);}
/* Most airline marks are drawn for light backgrounds (dark or multi-colour
   ink), so the chip keeps a fixed light backing even in dark theme rather
   than inheriting the page's dark surface colour — otherwise marks like
   British Airways' navy wordmark would nearly disappear. */
[data-theme="dark"] .airline-chip{background:rgba(255,255,255,.94);border-color:rgba(0,0,0,.06);}
.airline-logo{height:42px;width:auto;max-width:118px;object-fit:contain;flex-shrink:0;}
@media(max-width:760px){
  .airlines{padding:40px 0;}
  .airlines-inner{gap:24px;}
  .airlines-group{gap:24px;}
  .airline-chip{padding:8px 14px;min-height:46px;border-radius:14px;}
  .airline-logo{height:32px;max-width:88px;}
}

/* payment process */
.payment{background:var(--surface);position:relative;overflow:hidden;}
.payment::before{content:"";position:absolute;bottom:-30%;right:-10%;width:50%;height:70%;background:radial-gradient(ellipse,rgba(199,154,62,.07),transparent 65%);pointer-events:none;}
.payment .wrap{position:relative;z-index:1;}
.payment-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;position:relative;}
.payment-steps::before{content:"";position:absolute;top:39px;left:16.5%;right:16.5%;border-top:1.5px dashed var(--gold-light);opacity:.6;z-index:0;}
@media(max-width:900px){.payment-steps{grid-template-columns:1fr;}.payment-steps::before{display:none;}}
.payment-step{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:32px 26px;position:relative;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;z-index:1;}
.payment-step:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--gold);}
.step-num{width:40px;height:40px;border-radius:50%;background:var(--gold-grad);color:var(--navy-deep);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:600;font-size:17px;margin-bottom:18px;box-shadow:var(--shadow-gold-sm);}
.payment-step h3{font-size:18px;margin-bottom:8px;}
.payment-step p{color:var(--ink-soft);font-size:14px;}

/* why choose */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:900px){.why-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){
  .why-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
}
.why-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;transition:transform .35s cubic-bezier(.16,.8,.24,1),box-shadow .35s ease,border-color .35s ease;position:relative;}
.why-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-gold);border-color:var(--gold);}
.why-icon{width:48px;height:48px;border-radius:var(--radius-xs);background:var(--gold-grad);display:flex;align-items:center;justify-content:center;margin-bottom:18px;transition:transform .35s cubic-bezier(.34,1.56,.64,1);box-shadow:var(--shadow-gold-sm);}
.why-icon .icon{width:22px;height:22px;color:var(--navy-deep);}
.why-card:hover .why-icon{transform:scale(1.08) rotate(-6deg);}
.why-card h3{font-size:17px;margin-bottom:8px;}
.why-card p{color:var(--ink-soft);font-size:14px;}
@media(max-width:560px){
  .why-card{min-width:0;min-height:196px;padding:18px 14px;border-radius:16px;}
  .why-icon{width:40px;height:40px;margin-bottom:13px;border-radius:10px;}
  .why-icon .icon{width:19px;height:19px;}
  .why-card h3{margin-bottom:7px;font-size:14px;line-height:1.25;}
  .why-card p{font-size:11.5px;line-height:1.5;overflow-wrap:anywhere;}
}

/* reviews */
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:900px){.reviews-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.reviews-grid{grid-template-columns:1fr;}}
.review-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:transform .35s cubic-bezier(.16,.8,.24,1),box-shadow .35s ease,border-color .35s ease;}
.review-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--gold);}
.review-top{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.review-avatar{width:46px;height:46px;border-radius:50%;background-size:cover;background-position:center;flex-shrink:0;border:2px solid var(--bg);box-shadow:0 0 0 1px var(--line);}
.review-name{font-weight:700;font-size:14.5px;display:flex;align-items:center;gap:6px;}
.review-meta{font-size:12px;color:var(--ink-soft);}
.stars{color:var(--gold-text);font-size:13px;margin-bottom:12px;letter-spacing:2px;}
.review-card p{font-size:14.5px;color:var(--ink-soft);}

/* offers */
.offers{background:var(--navy-deep);color:#fff;position:relative;overflow:hidden;}
.offers::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(199,154,62,.2),transparent 45%),radial-gradient(circle at 10% 90%,rgba(199,154,62,.1),transparent 40%);}
.offers .wrap{position:relative;z-index:2;}
.offers .section-head h2{color:#fff;}
.offers .section-head p{color:#B7BECB;}
.countdown{display:flex;gap:16px;justify-content:center;margin-bottom:56px;}
.count-box{background:rgba(255,255,255,.06);border:1px solid rgba(234,208,138,.2);border-radius:var(--radius-sm);padding:18px 22px;min-width:84px;text-align:center;backdrop-filter:blur(6px);transition:border-color .3s ease,transform .3s ease;}
.count-box:hover{border-color:var(--gold);transform:translateY(-3px);}
.count-box .n{font-family:'Fraunces',serif;font-size:32px;font-weight:600;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.count-box .l{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#8B93A3;margin-top:4px;}
.offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:900px){.offer-grid{grid-template-columns:1fr 1fr;}.countdown{flex-wrap:wrap;}}
@media(max-width:640px){.offer-grid{grid-template-columns:1fr;}}
.offer-card{position:relative;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:26px;transition:transform .35s cubic-bezier(.16,.8,.24,1),border-color .35s ease,background .35s ease;}
.offer-card:hover{transform:translateY(-5px);border-color:var(--gold);background:rgba(199,154,62,.06);}
.offer-card h3{color:#fff;font-family:'Fraunces',serif;font-weight:600;font-size:19px;margin:10px 0 8px;}
.offer-card p{color:#9BA4B6;font-size:13.5px;margin-bottom:16px;}
.offer-cta{padding:11px 22px;font-size:13px;}

/* FAQ */
.faq-list{max-width:760px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:26px 4px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:16px;font-weight:700;color:var(--ink);transition:color .25s ease;}
.faq-q:hover{color:var(--gold-deep);}
[data-theme="dark"] .faq-q:hover{color:var(--gold-light);}
.faq-q .plus{flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--surface);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--gold-deep);transition:transform .4s cubic-bezier(.34,1.56,.64,1),background .3s ease,border-color .3s ease;font-weight:400;}
.faq-item.open .faq-q .plus{transform:rotate(135deg);background:var(--gold-grad);color:var(--navy-deep);border-color:transparent;}
.faq-a{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.16,.8,.24,1);}
.faq-a p{padding:0 4px 26px;color:var(--ink-soft);font-size:14.5px;max-width:600px;}
.faq-item.open .faq-a{max-height:220px;}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:stretch;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:560px){
  .contact-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
}
.contact-card{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:20px;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;}
.contact-card:hover{transform:translateY(-3px);border-color:var(--gold);box-shadow:var(--shadow-sm);}
.contact-card .ico{width:34px;height:34px;border-radius:var(--radius-xs);background:var(--gold-grad-soft);display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.contact-card .ico .icon{width:17px;height:17px;color:var(--gold-deep);}
[data-theme="dark"] .contact-card .ico .icon{color:var(--gold-light);}
.contact-card h4{font-size:14px;margin-bottom:4px;}
.contact-card p{font-size:13.5px;color:var(--ink-soft);}
@media(max-width:560px){
  .contact-card{min-width:0;min-height:126px;padding:15px 13px;border-radius:14px;}
  .contact-card .ico{width:32px;height:32px;margin-bottom:10px;}
  .contact-card .ico .icon{width:16px;height:16px;}
  .contact-card h4{font-size:13px;line-height:1.25;}
  .contact-card p{font-size:11.5px;line-height:1.45;overflow-wrap:anywhere;}
  #contact .contact-cards + .contact-card{min-height:0;margin-top:10px!important;}
  #contact .callback-form{margin-top:10px;}
}
.callback-form{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:20px;margin-top:16px;}
.callback-form h4{font-size:14px;margin-bottom:12px;}
.callback-row{display:flex;gap:10px;flex-wrap:wrap;}
.callback-field{flex:1;min-width:140px;display:flex;flex-direction:column;}
.callback-row input{width:100%;background:var(--surface);border:1px solid var(--line);padding:11px 13px;border-radius:var(--radius-xs);font-family:inherit;font-size:13.5px;color:var(--ink);transition:border-color .2s ease;}
.callback-row input:focus{border-color:var(--gold);outline:none;}
.callback-row input[aria-invalid="true"]{border-color:var(--form-error);}
.callback-row button{align-self:flex-start;background:var(--gold-grad);color:var(--navy-deep);border:none;padding:11px 22px;border-radius:var(--radius-xs);font-weight:700;font-size:13px;transition:transform .25s ease,box-shadow .25s ease;}
.callback-row button:hover{transform:translateY(-2px);box-shadow:var(--shadow-gold-sm);}
.form-inline-error{min-height:16px;margin-top:4px;font-size:11px;font-weight:600;color:var(--form-error);}
.form-inline-error:empty{display:none;}
.map-embed{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);min-height:340px;box-shadow:var(--shadow);}
.map-embed iframe{width:100%;height:100%;min-height:340px;border:0;filter:grayscale(.15);}

/* footer */
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 input[aria-invalid="true"]{border-color:#FF8A8E;}
.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){.callback-row button,.nl-form button{min-height:42px;}}
.newsletter-error{min-height:16px;margin-top:5px;font-size:11px;font-weight:600;color:#FFB0B3;}
.newsletter-error:empty{display:none;}
.foot-legal{display:flex;gap:20px;flex-wrap:wrap;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:12.5px;}
.foot-legal a{color:#9BA4B6;}
.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;}
.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;}

