/* ============================================================
   CarHireAirport.com — shared stylesheet
   Travel-trust identity: navy + ONE reserved amber action (P-38).
   Layered depth (P-23), double-bezel containers, soft diffused
   colour-tinted shadows, grain, glass. Static HTML/CSS (P-06).
   ============================================================ */

/* ---------- Design tokens ---------- */
:root {
  --navy:    #081C36;
  --navy-2:  #0A2748;
  --blue-900:#0B3D74;
  --blue-700:#0B57A8;
  --blue-600:#1268C3;
  --blue-500:#2E8FE6;
  --blue-400:#5AA9F0;
  --blue-300:#93C5FD;
  --blue-100:#DCEAF9;
  --blue-50: #F0F6FC;

  /* Reserved ACTION = clickout only (P-38). Amber gradient, dark navy text (AA ~7:1). */
  --action:    #FFB23E;
  --action-2:  #FF9E1B;
  --action-3:  #F58A00;
  --action-ink:#0A2540;

  --ink:      #0E2238;
  --slate:    #46566B;
  --slate-2:  #66778C;
  --faint:    #97A6BA;
  --line:     #E6EDF5;
  --line-2:   #EFF4F9;
  --surface:  #F4F8FC;
  --surface-2:#EAF1F9;
  --white:    #ffffff;

  /* Soft, diffused, colour-tinted elevation (P-23) */
  --sh-sm: 0 1px 2px rgba(11,61,116,.05), 0 2px 6px rgba(11,61,116,.05);
  --sh-md: 0 2px 4px rgba(11,61,116,.04), 0 10px 24px -6px rgba(11,61,116,.12);
  --sh-lg: 0 4px 8px rgba(11,61,116,.05), 0 18px 40px -10px rgba(11,61,116,.18), 0 36px 64px -28px rgba(8,28,54,.20);
  --sh-xl: 0 8px 18px rgba(11,61,116,.08), 0 30px 64px -16px rgba(11,61,116,.30), 0 56px 100px -40px rgba(8,28,54,.34);
  --glow-blue: 0 30px 70px -24px rgba(18,104,195,.6);
  --sh-amber: 0 1px 1px rgba(255,255,255,.5) inset, 0 8px 18px -4px rgba(245,138,0,.5), 0 2px 6px rgba(245,138,0,.35);
  --hi-top: inset 0 1px 0 rgba(255,255,255,.7);
  --hi-top-d: inset 0 1px 0 rgba(255,255,255,.14);

  --ease: cubic-bezier(.32,.72,0,1);
  --ease-out: cubic-bezier(.16,1,.3,1);

  --t-over: .68rem;
  --t-body: 1.075rem;
  --t-lead: clamp(1.08rem, 1.4vw, 1.28rem);
  --t-h3:   clamp(1.2rem, 1.6vw, 1.45rem);
  --t-h2:   clamp(2rem, 4vw, 3.1rem);
  --t-h1:   clamp(2.5rem, 6vw, 4.6rem);

  --r-pill:999px; --r-2xl:30px; --r-xl:22px; --r-lg:18px; --r:14px; --r-sm:11px;
  --maxw:1200px; --measure:60ch;

  /* Fine grain (premium tactile texture, P-25) */
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Reset & base ---------- */
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
.js html { scroll-behavior:smooth; }
body {
  margin:0; background:var(--white); color:var(--ink);
  font-family:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;
  font-size:var(--t-body); line-height:1.62; letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
.grain{ position:fixed; inset:0; z-index:60; pointer-events:none; opacity:.035; background-image:var(--grain); }

h1,h2,h3,h4 { margin:0; font-family:'Sora',system-ui,sans-serif; font-weight:800; letter-spacing:-.025em; line-height:1.06; color:var(--ink); }
p{margin:0;} a{color:inherit;text-decoration:none;} img,svg{display:block;}
strong{font-weight:700;color:var(--ink);}

.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:clamp(1.15rem,4vw,2.2rem); }
.section{ padding-block:clamp(4rem,8vw,7rem); scroll-margin-top:92px; }
.measure{ max-width:var(--measure); }

/* ---------- Eyebrow pill (P-25) ---------- */
.eyebrow{ display:inline-flex; align-items:center; gap:.5rem; background:var(--blue-50); color:var(--blue-700); border:1px solid var(--line); border-radius:var(--r-pill); padding:.42rem .9rem; font-size:var(--t-over); font-weight:700; letter-spacing:.18em; text-transform:uppercase; box-shadow:var(--hi-top); }
.eyebrow svg{ width:13px; height:13px; }
.eyebrow--light{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.18); color:#dbe9fb; box-shadow:var(--hi-top-d); backdrop-filter:blur(6px); }
h2.head{ font-size:var(--t-h2); }
.lead{ font-size:var(--t-lead); color:var(--slate); line-height:1.55; }

/* ---------- Buttons ---------- */
.btn{ position:relative; display:inline-flex; align-items:center; gap:.7rem; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:.98rem; line-height:1; padding:.95rem 1.35rem; border-radius:var(--r-pill); border:0; cursor:pointer; transition:transform .4s var(--ease), box-shadow .4s var(--ease), background-color .3s var(--ease); }
.btn svg{ width:1.15em; height:1.15em; flex:none; }
.btn__ic{ display:grid; place-items:center; width:30px; height:30px; border-radius:var(--r-pill); transition:transform .45s var(--ease), background-color .3s; }
.btn__ic svg{ width:16px; height:16px; }
.btn:active{ transform:scale(.97); }

/* Reserved ACTION colour — clickout only */
.btn-action{ background:linear-gradient(180deg,var(--action),var(--action-2) 62%,var(--action-3)); color:var(--action-ink); padding-left:1.6rem; box-shadow:var(--sh-amber); }
.btn-action .btn__ic{ background:rgba(10,37,64,.14); }
.btn-action:hover{ transform:translateY(-2px); box-shadow:0 1px 1px rgba(255,255,255,.6) inset, 0 14px 28px -6px rgba(245,138,0,.6), 0 4px 10px rgba(245,138,0,.4); }
.btn-action:hover .btn__ic{ transform:translate(3px,-1px) scale(1.06); background:rgba(10,37,64,.2); }
.btn-action--lg{ font-size:1.06rem; padding:1.15rem 1.3rem 1.15rem 1.9rem; }
.btn-action--lg .btn__ic{ width:38px; height:38px; } .btn-action--lg .btn__ic svg{ width:19px; height:19px; }
.btn-action--sm{ font-size:.85rem; padding:.62rem .7rem .62rem 1.1rem; gap:.5rem; }
.btn-action--sm .btn__ic{ width:24px; height:24px; } .btn-action--sm .btn__ic svg{ width:13px; height:13px; }
.btn-ghost{ background:rgba(255,255,255,.08); color:#eaf2fc; border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(8px); box-shadow:var(--hi-top-d); }
.btn-ghost:hover{ background:rgba(255,255,255,.16); transform:translateY(-2px); }

.alink{ display:inline-flex; align-items:center; gap:.45rem; color:var(--blue-700); font-weight:700; font-size:.92rem; }
.alink svg{ width:1.05rem; height:1.05rem; transition:transform .4s var(--ease); }
.alink:hover svg{ transform:translateX(4px); }
.tlink{ color:var(--blue-700); font-weight:600; text-decoration:underline; text-decoration-color:rgba(11,87,168,.32); text-underline-offset:3px; transition:text-decoration-color .2s; }
.tlink:hover{ text-decoration-color:var(--blue-600); }

/* ---------- Header: floating glass island ---------- */
.hdr{ position:fixed; inset:.7rem 0 auto 0; z-index:50; }
.hdr__bar{ max-width:var(--maxw); margin:0 auto; }
.nav{ display:flex; align-items:center; justify-content:space-between; height:60px; padding:0 .6rem 0 1.1rem; background:rgba(255,255,255,.72); backdrop-filter:blur(18px) saturate(1.4); border:1px solid rgba(255,255,255,.7); border-radius:var(--r-pill); box-shadow:var(--sh-md), var(--hi-top); }
.brand{ display:flex; align-items:center; gap:.6rem; }
.brand__mark{ width:36px; height:36px; border-radius:11px; background:linear-gradient(145deg,var(--blue-500),var(--blue-900)); color:#fff; display:grid; place-items:center; box-shadow:0 4px 12px -2px rgba(11,87,168,.5), var(--hi-top-d); }
.brand__mark svg{ width:20px; height:20px; }
.brand__name{ font-family:'Sora',sans-serif; font-weight:800; font-size:1.12rem; letter-spacing:-.03em; color:var(--ink); line-height:1; display:block; }
.brand__tag{ font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--blue-600); margin-top:3px; display:block; }
.nav__links{ display:none; align-items:center; gap:.1rem; }
.nav__links a{ font-size:.88rem; font-weight:600; color:var(--slate); padding:.5rem .8rem; border-radius:var(--r-pill); transition:background .25s var(--ease),color .2s; }
.nav__links a:hover{ color:var(--blue-700); background:var(--blue-50); }
.nav__links a[aria-current]{ color:var(--blue-700); }
.nav__right{ display:flex; align-items:center; gap:.4rem; }
.nav__toggle{ display:inline-grid; place-items:center; width:42px; height:42px; background:none; border:0; color:var(--slate); cursor:pointer; }
.nav__toggle svg{ width:24px; height:24px; }
@media(min-width:880px){ .nav__links{ display:flex; } .nav__toggle{ display:none; } }
.nav__cta{ display:inline-flex; align-items:center; gap:.45rem; background:linear-gradient(180deg,var(--action),var(--action-2) 62%,var(--action-3)); color:var(--action-ink); font-weight:800; font-size:.85rem; padding:.62rem 1.1rem; border-radius:var(--r-pill); box-shadow:var(--sh-amber); }
.mob{ overflow:hidden; max-height:0; transition:max-height .45s var(--ease); margin:.4rem .4rem 0; }
.mob.open{ max-height:340px; }
.mob nav{ display:flex; flex-direction:column; gap:.15rem; padding:.6rem; background:rgba(255,255,255,.8); backdrop-filter:blur(18px); border:1px solid rgba(255,255,255,.7); border-radius:var(--r-lg); box-shadow:var(--sh-md); }
.mob a{ padding:.7rem .9rem; border-radius:var(--r-sm); font-size:.95rem; color:var(--slate); font-weight:600; }
.mob a[aria-current]{ color:var(--blue-700); background:var(--blue-50); }
.hdr-spacer{ height:76px; }

/* Disclosure banner */
.disc{ background:var(--surface); }
.disc p{ font-size:11.5px; color:var(--slate-2); padding-block:.6rem; text-align:center; }
.disc strong{ color:var(--slate); }

/* ---------- Breadcrumb ---------- */
.crumb{ font-size:.82rem; color:var(--slate-2); padding:1.1rem 0 .2rem; }
.crumb a{ color:var(--slate-2); } .crumb a:hover{ color:var(--blue-700); }

/* ---------- HERO (shared base) ---------- */
.hero{ position:relative; background:var(--navy); color:#fff; overflow:hidden; isolation:isolate; }
.hero__photo{ position:absolute; inset:0; z-index:-3; pointer-events:none; background:var(--navy) center/cover no-repeat; }
.hero__aura{ position:absolute; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(70% 55% at 80% 4%, rgba(46,143,230,.34), transparent 62%),
    radial-gradient(60% 50% at 8% 14%, rgba(14,116,144,.30), transparent 64%),
    linear-gradient(180deg, rgba(8,28,54,.72) 0%, rgba(8,28,54,.55) 42%, rgba(8,28,54,.84) 100%);
}
.hero__scrim{ position:absolute; inset:0; z-index:-2; background:linear-gradient(180deg,rgba(8,28,54,.72),rgba(8,28,54,.55) 45%,rgba(8,28,54,.86)); }
.hero__grain{ position:absolute; inset:0; z-index:-1; opacity:.06; background-image:var(--grain); pointer-events:none; }
.hero__dots{ position:absolute; inset:0; z-index:-1; opacity:.4; pointer-events:none; background-image:radial-gradient(rgba(255,255,255,.18) 1px,transparent 1.4px); background-size:30px 30px; mask-image:radial-gradient(120% 80% at 50% 0,#000,transparent 75%); -webkit-mask-image:radial-gradient(120% 80% at 50% 0,#000,transparent 75%); }
.hero h1{ color:#fff; }
.hero h1 .grad{ background:linear-gradient(110deg,#FFD37A,#FFB23E); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero__trust{ display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; }
.hero__trust span{ display:inline-flex; align-items:center; gap:.4rem; color:rgba(225,236,248,.82); font-size:12.5px; font-weight:600; }
.hero__trust svg{ width:15px; height:15px; color:#7CE0B0; flex:none; }

/* --- Hero: homepage variant --- */
.hero--home .hero__inner{ position:relative; text-align:center; padding-block:clamp(3rem,7vw,5.5rem) 0; }
.hero--home h1{ font-size:var(--t-h1); max-width:17ch; margin:1.3rem auto 1.1rem; }
.hero--home .hero__sub{ color:rgba(225,236,248,.86); font-size:var(--t-lead); max-width:56ch; margin:0 auto 2rem; }
.hero--home .hero__sub strong{ color:#fff; }
.hero--home .hero__trust{ justify-content:center; padding:1.5rem 0 0; }

/* --- Hero: destination-page variant --- */
.hero--dest .hero__in{ position:relative; padding-block:clamp(2.4rem,5vw,3.6rem) clamp(2.6rem,5vw,3.6rem); max-width:760px; }
.hero--dest h1{ font-size:clamp(2.1rem,5.2vw,3.5rem); margin:1rem 0 .9rem; }
.hero--dest p.sub{ color:rgba(225,236,248,.88); font-size:clamp(1.05rem,1.5vw,1.2rem); max-width:54ch; margin-bottom:1.6rem; }
.hero--dest .btn{ font-size:1.05rem; font-weight:800; padding:1rem 1.3rem 1rem 1.7rem; }
.hero--dest .hero__trust{ margin-top:1.3rem; }

/* Skyline horizon + wave transition (homepage) */
.hero__horizon{ position:relative; margin-top:clamp(2.5rem,5vw,4rem); height:130px; }
.hero__skyline{ position:absolute; inset:auto 0 38px 0; height:84px; opacity:.5; background:bottom center / 1100px 84px repeat-x; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1100' height='84' viewBox='0 0 1100 84'%3E%3Cg fill='%230A2748'%3E%3Crect x='20' y='44' width='34' height='40'/%3E%3Crect x='60' y='28' width='26' height='56'/%3E%3Crect x='92' y='52' width='40' height='32'/%3E%3Crect x='140' y='20' width='22' height='64'/%3E%3Crect x='168' y='40' width='34' height='44'/%3E%3Crect x='210' y='56' width='48' height='28'/%3E%3Crect x='266' y='34' width='28' height='50'/%3E%3Crect x='300' y='48' width='40' height='36'/%3E%3Crect x='348' y='24' width='20' height='60'/%3E%3Crect x='374' y='46' width='36' height='38'/%3E%3Crect x='418' y='58' width='52' height='26'/%3E%3Crect x='478' y='38' width='30' height='46'/%3E%3Crect x='514' y='50' width='42' height='34'/%3E%3Crect x='562' y='26' width='24' height='58'/%3E%3Crect x='592' y='44' width='38' height='40'/%3E%3Crect x='636' y='56' width='46' height='28'/%3E%3Crect x='688' y='32' width='28' height='52'/%3E%3Crect x='722' y='48' width='40' height='36'/%3E%3Crect x='768' y='22' width='22' height='62'/%3E%3Crect x='796' y='46' width='36' height='38'/%3E%3Crect x='840' y='58' width='50' height='26'/%3E%3Crect x='898' y='36' width='30' height='48'/%3E%3Crect x='934' y='52' width='42' height='32'/%3E%3Crect x='982' y='28' width='26' height='56'/%3E%3Crect x='1014' y='46' width='38' height='38'/%3E%3C/g%3E%3C/svg%3E"); }
.hero__plane{ position:absolute; top:6px; left:0; width:100%; height:70px; opacity:.5; }
.hero__plane svg{ width:100%; height:100%; }
.hero__wave{ position:absolute; inset:auto 0 -1px 0; }
.hero__wave svg{ display:block; width:100%; height:auto; }

/* ---------- Search widget (homepage) ---------- */
.search{ max-width:940px; margin:0 auto; padding:.5rem; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); border-radius:var(--r-2xl); box-shadow:var(--glow-blue); backdrop-filter:blur(10px); }
.search__core{ background:linear-gradient(180deg,#fff,#fbfdff); border-radius:calc(var(--r-2xl) - 8px); padding:.55rem; box-shadow:var(--hi-top); }
.search__grid{ display:grid; gap:.5rem; grid-template-columns:1fr; }
@media(min-width:780px){ .search__grid{ grid-template-columns:1.5fr 1fr 1fr auto; align-items:stretch; } }
.field{ position:relative; display:flex; flex-direction:column; justify-content:center; gap:3px; padding:.7rem .9rem .7rem 2.9rem; border-radius:var(--r); background:var(--surface); min-height:64px; transition:background .25s var(--ease), box-shadow .25s; box-shadow:inset 0 0 0 1px var(--line); }
.field:focus-within{ background:#fff; box-shadow:inset 0 0 0 1.5px var(--blue-400), 0 6px 16px -6px rgba(11,87,168,.3); }
.field__ic{ position:absolute; left:.95rem; top:50%; transform:translateY(-50%); color:var(--blue-600); }
.field__ic svg{ width:20px; height:20px; }
.field label{ font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--slate-2); }
.field input{ border:0; background:transparent; padding:0; font-family:inherit; font-size:.96rem; font-weight:600; color:var(--ink); width:100%; }
.field input::placeholder{ color:var(--faint); font-weight:500; }
.field input:focus{ outline:none; }
.search .btn-action{ justify-content:center; min-height:64px; border-radius:var(--r); padding-inline:1.3rem 1.1rem; }
@media(min-width:780px){ .search .btn-action{ padding-inline:1.7rem 1.3rem; } }
.search__note{ display:flex; align-items:center; justify-content:center; gap:.45rem; color:rgba(225,236,248,.7); font-size:11.5px; padding:.95rem .4rem 0; }
.search__note svg{ width:14px; height:14px; color:#7CE0B0; flex:none; }

/* ---------- Suppliers ---------- */
.suppliers{ background:#fff; }
.suppliers__in{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.8rem 2rem; padding-block:1.8rem; }
.suppliers__lab{ font-size:10.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--slate-2); }
.supp{ font-family:'Sora',sans-serif; font-weight:700; font-size:1.08rem; color:var(--slate); opacity:.55; letter-spacing:-.02em; transition:opacity .2s; }
.supp:hover{ opacity:.85; }

/* ---------- Stats ---------- */
.stats{ background:linear-gradient(180deg,#fff,var(--surface)); }
.stats__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-sm); }
@media(min-width:760px){ .stats__grid{ grid-template-columns:repeat(4,1fr); } }
.stat{ background:#fff; padding:1.8rem 1.4rem; text-align:center; }
.stat b{ font-family:'Sora',sans-serif; font-weight:800; font-size:clamp(1.9rem,3vw,2.5rem); background:linear-gradient(160deg,var(--blue-600),var(--blue-900)); -webkit-background-clip:text; background-clip:text; color:transparent; display:block; line-height:1; font-variant-numeric:tabular-nums; letter-spacing:-.03em; }
.stat span{ font-size:12.5px; color:var(--slate); display:block; margin-top:.55rem; }

/* ---------- Comparison preview ---------- */
.compare{ background:var(--surface); position:relative; }
.compare__grid{ display:grid; gap:2.5rem; align-items:center; }
@media(min-width:940px){ .compare__grid{ grid-template-columns:1fr 1.08fr; gap:4rem; } }
.ccard{ padding:.5rem; background:linear-gradient(160deg,rgba(255,255,255,.9),rgba(240,246,252,.7)); border:1px solid var(--line); border-radius:var(--r-2xl); box-shadow:var(--sh-xl); }
.ccard__core{ background:#fff; border-radius:calc(var(--r-2xl) - 8px); overflow:hidden; box-shadow:var(--hi-top), 0 0 0 1px var(--line-2); }
.ccard__top{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:1.05rem 1.3rem; background:linear-gradient(180deg,var(--blue-50),#fff); border-bottom:1px solid var(--line); }
.ccard__top b{ font-size:.88rem; color:var(--blue-900); display:block; font-family:'Sora',sans-serif; }
.ccard__top span{ font-size:.72rem; color:var(--slate-2); }
.tag{ font-size:9.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--blue-700); background:#fff; border:1px solid var(--blue-100); padding:.3rem .6rem; border-radius:var(--r-pill); }
.crow{ display:grid; grid-template-columns:1fr auto; gap:.2rem 1rem; align-items:center; padding:1rem 1.3rem; border-bottom:1px solid var(--line-2); }
.crow:last-child{ border-bottom:0; }
.crow--best{ background:linear-gradient(180deg,#FFFaf0,#FFF6E6); box-shadow:inset 3px 0 0 var(--action-2); }
.crow__s{ font-family:'Sora',sans-serif; font-weight:700; color:var(--ink); font-size:1rem; }
.crow__m{ font-size:11.5px; color:var(--slate-2); margin-top:2px; }
.crow__badge{ display:inline-block; font-size:9px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--action-ink); background:linear-gradient(180deg,var(--action),var(--action-2)); padding:.18rem .5rem; border-radius:var(--r-pill); margin-left:.5rem; vertical-align:1px; box-shadow:var(--hi-top); }
.crow__p{ font-family:'Sora',sans-serif; font-weight:800; font-size:1.6rem; background:linear-gradient(160deg,var(--blue-600),var(--blue-900)); -webkit-background-clip:text; background-clip:text; color:transparent; text-align:right; line-height:1; font-variant-numeric:tabular-nums; }
.crow__p span{ display:block; font-family:'Plus Jakarta Sans',sans-serif; font-size:10.5px; font-weight:600; color:var(--slate-2); margin-top:4px; -webkit-text-fill-color:var(--slate-2); }
.ccard__foot{ display:flex; align-items:center; justify-content:space-between; gap:.8rem; padding:1.1rem 1.3rem; background:#fff; }
.ccard__foot .s{ font-size:11px; color:var(--slate-2); max-width:17ch; }

/* ---------- Benefit cards ---------- */
.feat-grid{ display:grid; gap:1.1rem; margin-top:2.8rem; }
@media(min-width:640px){ .feat-grid{ grid-template-columns:repeat(2,1fr); } }
.feat{ background:linear-gradient(170deg,#fff,#fbfdff); border:1px solid var(--line); border-radius:var(--r-xl); padding:1.8rem; box-shadow:var(--sh-md), var(--hi-top); transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
.feat:hover{ transform:translateY(-5px); box-shadow:var(--sh-lg), var(--hi-top); }
.feat__ic{ width:50px; height:50px; border-radius:14px; background:linear-gradient(150deg,var(--blue-500),var(--blue-900)); color:#fff; display:grid; place-items:center; margin-bottom:1.2rem; box-shadow:0 8px 16px -4px rgba(11,87,168,.5), var(--hi-top-d); }
.feat__ic svg{ width:23px; height:23px; }
.feat h3{ font-size:var(--t-h3); margin-bottom:.55rem; }
.feat p{ font-size:.94rem; color:var(--slate); }

/* ---------- CTA band ---------- */
.ctaband{ text-align:center; margin-top:3rem; }
.ctaband p.k{ font-family:'Sora',sans-serif; font-weight:700; font-size:clamp(1.5rem,2.6vw,2rem); color:var(--ink); margin-bottom:1.4rem; letter-spacing:-.03em; }
.ctaband .s{ font-size:12.5px; color:var(--slate-2); margin-top:1.1rem; }

/* --- CTA band: destination-page dark variant --- */
.ctaband--dark{ background:linear-gradient(160deg,var(--blue-700),var(--navy)); border-radius:var(--r-xl); padding:clamp(2.2rem,5vw,3.2rem); color:#fff; box-shadow:var(--sh-lg); margin-top:0; }
.ctaband--dark h2{ color:#fff; font-size:clamp(1.5rem,2.6vw,2rem); margin-bottom:.6rem; }
.ctaband--dark p{ color:rgba(225,236,248,.8); margin-bottom:1.4rem; }

/* ---------- How it works ---------- */
.how{ background:#fff; }
.how__grid{ display:grid; gap:1.1rem; margin-top:2.8rem; }
@media(min-width:760px){ .how__grid{ grid-template-columns:repeat(4,1fr); } }
.hstep{ position:relative; background:linear-gradient(170deg,#fff,#fbfdff); border:1px solid var(--line); border-radius:var(--r-xl); padding:1.7rem; box-shadow:var(--sh-md), var(--hi-top); }
.hstep__n{ width:42px; height:42px; border-radius:12px; background:linear-gradient(150deg,var(--blue-500),var(--blue-900)); color:#fff; font-family:'Sora',sans-serif; font-weight:800; display:grid; place-items:center; margin-bottom:1.1rem; box-shadow:0 6px 14px -3px rgba(11,87,168,.5), var(--hi-top-d); }
.hstep h3{ font-size:1.08rem; margin-bottom:.45rem; }
.hstep p{ font-size:.9rem; color:var(--slate); line-height:1.5; }
.hstep__out{ color:var(--blue-700); font-weight:700; }

/* ---------- Cost table ---------- */
.costs{ background:var(--surface); }
.tw{ border:1px solid var(--line); border-radius:var(--r-2xl); overflow:hidden; box-shadow:var(--sh-lg); margin-top:2.4rem; background:#fff; }
.tw__scroll{ overflow-x:auto; }
table{ width:100%; border-collapse:collapse; font-size:.92rem; }
thead th{ text-align:left; font-size:10.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#dbe9fb; background:linear-gradient(160deg,var(--blue-700),var(--blue-900)); padding:1.1rem 1.25rem; white-space:nowrap; }
thead th.num,tbody td.num{ text-align:right; font-variant-numeric:tabular-nums; }
tbody td{ padding:.95rem 1.25rem; border-bottom:1px solid var(--line-2); color:var(--slate); }
tbody tr:last-child td{ border-bottom:0; }
tbody tr:nth-child(even){ background:var(--surface); }
tbody tr:hover{ background:var(--blue-50); }
td.region{ font-weight:700; color:var(--ink); }
td.lead{ font-weight:800; color:var(--blue-700); }
.tnote{ padding:.85rem 1.25rem; background:var(--surface); border-top:1px solid var(--line); font-size:11.5px; color:var(--slate-2); }
.hide-sm{ display:none; } @media(min-width:640px){ .hide-sm{ display:table-cell; } }
.hide-md{ display:none; } @media(min-width:820px){ .hide-md{ display:table-cell; } }

/* ---------- Tips ---------- */
.tips{ background:#fff; }
.tips__list{ display:grid; gap:1rem; margin-top:2.6rem; }
@media(min-width:760px){ .tips__list{ grid-template-columns:repeat(2,1fr); } }
.tip{ display:flex; gap:1.1rem; align-items:flex-start; background:linear-gradient(170deg,#fff,#fbfdff); border:1px solid var(--line); border-radius:var(--r-xl); padding:1.4rem 1.5rem; box-shadow:var(--sh-sm), var(--hi-top); transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
.tip:hover{ transform:translateY(-3px); box-shadow:var(--sh-md), var(--hi-top); }
.tip__n{ width:38px; height:38px; flex:none; border-radius:11px; background:var(--blue-50); color:var(--blue-700); border:1px solid var(--blue-100); font-family:'Sora',sans-serif; font-weight:800; font-size:1.05rem; display:grid; place-items:center; }
.tip h3{ font-size:1.02rem; margin-bottom:.3rem; }
.tip p{ font-size:.9rem; color:var(--slate); line-height:1.55; }

/* ---------- Destinations grid ---------- */
.dest{ background:var(--surface); }
.dest__head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1rem; }
.dest__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; margin-top:2.6rem; }
@media(min-width:640px){ .dest__grid{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:940px){ .dest__grid{ grid-template-columns:repeat(4,1fr); } }
.dcard{ position:relative; border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-md); transition:transform .55s var(--ease), box-shadow .55s var(--ease); isolation:isolate; }
.dcard:hover{ transform:translateY(-6px); box-shadow:var(--sh-lg); }
.dcard__img{ position:relative; height:150px; display:flex; align-items:flex-end; padding:1.05rem; overflow:hidden; background:var(--blue-900) center/cover no-repeat; }
.dcard__img > *{ transition:transform .6s var(--ease); }
/* topographic map texture (travel-coded, P-25) */
.dcard__img::before{ content:''; position:absolute; inset:0; opacity:.09; background:center / 240px repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1.1'%3E%3Cpath d='M-20 60 C40 30 90 90 150 60 S250 30 300 60'/%3E%3Cpath d='M-20 100 C40 70 90 130 150 100 S250 70 300 100'/%3E%3Cpath d='M-20 140 C50 110 100 170 160 140 S250 110 300 140'/%3E%3Cpath d='M-20 180 C40 150 90 210 150 180 S250 150 300 180'/%3E%3Cpath d='M-20 220 C50 190 100 250 160 220 S250 190 300 220'/%3E%3C/g%3E%3C/svg%3E"); }
.dcard__img::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,18,34,.14) 0%, transparent 30%, rgba(6,18,34,.82) 100%); }
.dcard__sheen{ position:absolute; inset:0; background:radial-gradient(120% 80% at 80% 0, rgba(255,255,255,.22), transparent 55%); transition:opacity .55s var(--ease); }
.dcard:hover .dcard__sheen{ opacity:.6; }
.dcard__b{ position:relative; z-index:1; }
.dcard__flag{ font-size:1.55rem; display:block; margin-bottom:.2rem; filter:drop-shadow(0 2px 4px rgba(0,0,0,.35)); }
.dcard__city{ font-family:'Sora',sans-serif; font-weight:800; font-size:1.22rem; color:#fff; line-height:1.04; display:block; letter-spacing:-.02em; text-shadow:0 2px 10px rgba(0,0,0,.4); }
.dcard__chip{ position:absolute; z-index:2; top:.9rem; right:.9rem; display:inline-flex; align-items:center; gap:.25rem; font-size:11px; font-weight:800; color:#fff; background:rgba(8,28,54,.42); border:1px solid rgba(255,255,255,.28); border-radius:var(--r-pill); padding:.3rem .6rem; backdrop-filter:blur(8px); box-shadow:var(--hi-top-d); }
.dcard__chip b{ color:#FFD37A; }
.dcard__code{ font-size:11px; color:rgba(255,255,255,.82); margin-top:.1rem; display:block; font-weight:600; letter-spacing:.08em; text-shadow:0 1px 4px rgba(0,0,0,.35); }
.dcard--feat{ grid-column:span 2; }
.dcard--feat .dcard__img{ height:100%; min-height:170px; }
.dcard--feat .dcard__city{ font-size:1.85rem; }
.g-lhr{background:linear-gradient(150deg,#0B3D74,#1E73C8);} .g-dxb{background:linear-gradient(150deg,#9A4B12,#F5A623);}
.g-fco{background:linear-gradient(150deg,#8E1230,#E2475F);} .g-agp{background:linear-gradient(150deg,#B4530A,#F6B73C);}
.g-syd{background:linear-gradient(150deg,#075985,#34A9E8);} .g-cun{background:linear-gradient(150deg,#046B4E,#2DC48E);}
.g-lis{background:linear-gradient(150deg,#0C6478,#23C0D6);} .g-akl{background:linear-gradient(150deg,#312C8C,#5B61E6);}
.g-bkk{background:linear-gradient(150deg,#5C24B8,#9A77E8);} .g-bcn{background:linear-gradient(150deg,#A01818,#EB5C6E);}
.g-cpt{background:linear-gradient(150deg,#374151,#8A8F98);} .g-yyz{background:linear-gradient(150deg,#A81818,#F0823C);}
.g-mia{background:linear-gradient(150deg,#0077B6,#48CAE4);} .g-mco{background:linear-gradient(150deg,#1B4332,#52B788);}
.g-dub{background:linear-gradient(150deg,#1B6B3A,#6DBE8A);} .g-den{background:linear-gradient(150deg,#1E3A5F,#7EB8DA);}
.g-las{background:linear-gradient(150deg,#8B1A1A,#E8A838);}

/* ---------- Email capture ---------- */
.alerts{ position:relative; overflow:hidden; color:#fff; background:var(--navy); isolation:isolate; }
.alerts__aura{ position:absolute; inset:0; z-index:-1; background:radial-gradient(60% 60% at 80% 10%, rgba(46,143,230,.5), transparent 60%), radial-gradient(60% 60% at 10% 90%, rgba(14,116,144,.45), transparent 62%), linear-gradient(160deg,var(--blue-900),var(--navy)); }
.alerts__grain{ position:absolute; inset:0; z-index:-1; opacity:.06; background-image:var(--grain); }
.alerts__in{ position:relative; max-width:560px; margin:0 auto; text-align:center; }
.alerts h2{ color:#fff; font-size:clamp(1.8rem,3vw,2.4rem); margin:1rem 0 .7rem; }
.alerts p.l{ color:rgba(225,236,248,.82); max-width:46ch; margin:0 auto 1.7rem; }
.alerts__form{ display:flex; flex-wrap:wrap; gap:.55rem; max-width:460px; margin:0 auto; padding:.5rem; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:var(--r-pill); backdrop-filter:blur(8px); }
.alerts label{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.alerts input{ flex:1 1 200px; padding:.85rem 1.2rem; border-radius:var(--r-pill); background:transparent; border:0; color:#fff; font-size:.94rem; font-family:inherit; }
.alerts input::placeholder{ color:rgba(225,236,248,.5); }
.alerts input:focus{ outline:none; }
.alerts__note{ color:rgba(225,236,248,.5); font-size:11.5px; margin-top:1.1rem; }

/* ---------- FAQ ---------- */
.faq{ background:#fff; }
.faq__list{ display:grid; gap:.8rem; max-width:780px; margin:2.6rem auto 0; }
details.q{ background:linear-gradient(170deg,#fff,#fbfdff); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-sm), var(--hi-top); }
details.q summary{ display:flex; align-items:center; justify-content:space-between; gap:1rem; cursor:pointer; padding:1.2rem 1.4rem; font-family:'Sora',sans-serif; font-weight:700; font-size:1rem; color:var(--ink); list-style:none; }
details.q summary::-webkit-details-marker{ display:none; }
details.q summary:hover{ color:var(--blue-700); }
details.q summary .chev{ display:grid; place-items:center; width:28px; height:28px; border-radius:var(--r-pill); background:var(--blue-50); color:var(--blue-600); flex:none; transition:transform .4s var(--ease); }
details.q summary .chev svg{ width:16px; height:16px; }
details.q[open] summary .chev{ transform:rotate(180deg); }
details.q .a{ padding:0 1.4rem 1.35rem; font-size:.93rem; color:var(--slate); line-height:1.62; }

/* ---------- Network ---------- */
.net{ background:var(--surface); border-top:1px solid var(--line); }
.net__in{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem; padding-block:1.8rem; }
.net__lab{ font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--slate-2); }
.ncard{ display:flex; align-items:center; gap:.75rem; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:.75rem 1.1rem; font-size:.85rem; box-shadow:var(--sh-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.ncard:hover{ transform:translateY(-2px); box-shadow:var(--sh-md); }
.ncard b{ color:var(--ink); display:block; } .ncard span{ color:var(--slate-2); font-size:11.5px; }

/* ---------- Footer ---------- */
.ft{ background:var(--navy); color:rgba(225,236,248,.6); position:relative; isolation:isolate; }
.ft__aura{ position:absolute; inset:0; z-index:-1; background:radial-gradient(50% 80% at 80% 0,rgba(18,104,195,.3),transparent 60%); }
.ft__grid{ display:grid; grid-template-columns:1fr; gap:2.2rem; padding-block:3.4rem 0; }
@media(min-width:640px){ .ft__grid{ grid-template-columns:2fr 1fr 1fr; } }
.ft__brand{ display:flex; align-items:center; gap:.65rem; margin-bottom:1.1rem; }
.ft__brand .brand__mark{ width:36px; height:36px; }
.ft__brand span{ font-family:'Sora',sans-serif; font-weight:800; font-size:1.15rem; color:#fff; }
.ft p.about{ font-size:.88rem; line-height:1.6; max-width:42ch; color:rgba(225,236,248,.5); }
.ft h4{ color:#fff; font-family:'Sora',sans-serif; font-size:.82rem; font-weight:700; margin-bottom:1.1rem; letter-spacing:.02em; }
.ft ul{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.ft ul a{ font-size:.86rem; color:rgba(225,236,248,.55); transition:color .2s; }
.ft ul a:hover{ color:#fff; }
.ft__gov{ margin-top:1.1rem; padding-top:1.1rem; border-top:1px solid rgba(255,255,255,.12); font-size:11.5px; color:rgba(225,236,248,.42); }
.ft__gov a{ color:rgba(225,236,248,.6); text-decoration:underline; }
.ft__bar{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem; padding-block:1.6rem; margin-top:2.6rem; border-top:1px solid rgba(255,255,255,.12); font-size:11.5px; color:rgba(225,236,248,.42); }

/* ---------- Sticky mobile CTA ---------- */
.sticky{ position:fixed; inset:auto .7rem .7rem; z-index:45; }
.sticky .btn-action{ width:100%; justify-content:center; box-shadow:var(--sh-amber), 0 12px 30px -8px rgba(8,28,54,.4); }
@media(min-width:760px){ .sticky{ display:none; } }
body{ padding-bottom:84px; } @media(min-width:760px){ body{ padding-bottom:0; } }
@media(max-width:759px){ .nav__right .btn-action{ display:none; } }

/* ---------- Destination-page prose / split / aside ---------- */
.prose{ max-width:var(--measure); }
.prose p{ margin:0 0 1.1rem; color:var(--slate); }
.prose h2{ margin:0 0 1rem; }
.prose h3{ font-size:1.15rem; margin:1.8rem 0 .5rem; color:var(--ink); }
.prose ul{ padding-left:1.2rem; color:var(--slate); margin:0 0 1.1rem; }
.prose li{ margin-bottom:.45rem; }
.split{ display:grid; gap:2.5rem; }
@media(min-width:900px){ .split{ grid-template-columns:1.3fr .7fr; gap:3.5rem; align-items:start; } }
.aside{ background:linear-gradient(170deg,#fff,#fbfdff); border:1px solid var(--line); border-radius:var(--r-xl); padding:1.6rem; box-shadow:var(--sh-md), var(--hi-top); position:sticky; top:96px; }
.aside h3{ font-family:'Sora',sans-serif; font-size:1.1rem; margin:0 0 .8rem; }
.aside p{ font-size:.92rem; color:var(--slate); margin:0 0 1.1rem; }

/* ---------- Facts strip (destination pages) ---------- */
.facts{ background:var(--surface); border-bottom:1px solid var(--line); }
.facts__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-sm); margin-block:clamp(2rem,4vw,2.6rem); }
@media(min-width:760px){ .facts__grid{ grid-template-columns:repeat(4,1fr); } }
.fact{ background:#fff; padding:1.4rem 1.2rem; text-align:center; }
.fact b{ font-family:'Sora',sans-serif; font-weight:800; font-size:1.5rem; color:var(--blue-700); display:block; line-height:1; }
.fact span{ font-size:12px; color:var(--slate); display:block; margin-top:.5rem; }

/* ---------- Guide-page article ---------- */
.article{ max-width:var(--measure); }
.article p{ margin:0 0 1.1rem; color:var(--slate); }
.article h2{ margin:2.2rem 0 1rem; }
.article h3{ font-size:1.15rem; margin:1.8rem 0 .5rem; color:var(--ink); }
.article ul,.article ol{ padding-left:1.2rem; color:var(--slate); margin:0 0 1.1rem; }
.article li{ margin-bottom:.45rem; }
.article blockquote{ margin:1.5rem 0; padding:1rem 1.4rem; background:var(--blue-50); border-left:4px solid var(--blue-400); border-radius:0 var(--r-sm) var(--r-sm) 0; font-size:.94rem; color:var(--slate); }

/* ---------- Motion ---------- */
.rise{ animation:rise .9s var(--ease-out) both; }
@keyframes rise{ from{opacity:0;transform:translateY(28px);filter:blur(6px);} to{opacity:1;transform:none;filter:blur(0);} }
.d1{animation-delay:.05s}.d2{animation-delay:.14s}.d3{animation-delay:.23s}.d4{animation-delay:.32s}.d5{animation-delay:.41s}
.js .reveal{ opacity:0; transform:translateY(30px); filter:blur(8px); transition:opacity .85s var(--ease-out), transform .85s var(--ease-out), filter .85s var(--ease-out); }
.reveal.visible{ opacity:1; transform:none; filter:blur(0); }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
  .js .reveal{ opacity:1!important; transform:none!important; filter:none!important; }
  .rise{ filter:none!important; }
}
