/* ==========================================================================
   Happy Bags for Travels
   Palette sampled from the logo: navy "Happy", blue "Bags", cyan suitcase,
   orange plane. Type: PT Sans (supplied by the client), trimmed to 4 files.
   The rupee sign comes from the system font on purpose: PT Sans draws U+20B9 as a ruble sign.
   ========================================================================== */

@font-face{font-family:"PT Sans";src:url(../fonts/pts-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+2013-2014,U+2018-201E,U+2022,U+2026,U+2039-203A,U+20AC,U+2122}
@font-face{font-family:"PT Sans";src:url(../fonts/pts-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+2013-2014,U+2018-201E,U+2022,U+2026,U+2039-203A,U+20AC,U+2122}
@font-face{font-family:"PT Sans";src:url(../fonts/pts-400i.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+2013-2014,U+2018-201E,U+2022,U+2026,U+2039-203A,U+20AC,U+2122}
@font-face{font-family:"PT Sans";src:url(../fonts/pts-700i.woff2) format("woff2");font-weight:700;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+2013-2014,U+2018-201E,U+2022,U+2026,U+2039-203A,U+20AC,U+2122}

:root{
  --canvas:#F4F8FB;
  --ice:#E8F1F7;
  --ice-2:#DCEAF3;
  --panel:#FFFFFF;
  --ink:#06283A;
  --navy:#043E59;
  --navy-2:#0A5378;
  --blue:#0780B3;
  --blue-text:#066A95;
  --cyan:#3CC3DD;
  --sky:#9FDDF0;
  --orange:#F7931A;
  --orange-2:#FFAA45;
  --orange-deep:#E07A06;
  --orange-text:#A95A00;
  --coral:#F4714A;
  --text-2:#48626F;
  --line:#D6E4EC;
  --line-2:#BCD2DF;
  --wa:#25D366;
  --font:"PT Sans","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --r-sm:12px;--r:20px;--r-lg:28px;--r-xl:40px;
  --shadow-1:0 1px 2px rgba(6,40,58,.05),0 10px 30px -14px rgba(6,40,58,.20);
  --shadow-2:0 2px 6px rgba(6,40,58,.06),0 28px 56px -24px rgba(6,40,58,.34);
  --gutter:clamp(16px,4vw,40px);
  --nav-h:74px;
  --section:clamp(64px,8vw,112px);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:hidden;overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;overflow-x:hidden;overflow-x:clip;background:var(--canvas);color:var(--ink);font:400 17px/1.6 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;animation:pageIn .8s var(--ease-out) both}
@keyframes pageIn{from{opacity:0}to{opacity:1}}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.08;letter-spacing:-.02em;text-wrap:balance}
p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
em{font-style:italic}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;left:16px;top:-80px;z-index:300;background:var(--navy);color:#fff;padding:12px 18px;border-radius:12px;text-decoration:none;font-weight:700;transition:top .3s var(--ease-out)}
.skip:focus{top:16px}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:8px}
main:focus{outline:none}
html.modal-open{overflow:hidden}
.wrap{width:min(1240px,100% - var(--gutter)*2);margin-inline:auto}
::selection{background:var(--orange);color:var(--ink)}

/* ---------- the page environment: one fixed layer, slow drift ---------- */
.env{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:var(--canvas)}
.env i{position:absolute;border-radius:50%;will-change:transform}
.env i:nth-child(1){width:86vmax;height:86vmax;left:-34vmax;top:-38vmax;background:radial-gradient(closest-side,rgba(60,195,221,.22),rgba(60,195,221,0) 72%);animation:envA 74s var(--ease-io) -18s infinite alternate}
.env i:nth-child(2){width:72vmax;height:72vmax;right:-32vmax;top:26vh;background:radial-gradient(closest-side,rgba(247,147,26,.11),rgba(247,147,26,0) 72%);animation:envB 92s var(--ease-io) -40s infinite alternate}
.env i:nth-child(3){width:64vmax;height:64vmax;left:8vw;bottom:-44vmax;background:radial-gradient(closest-side,rgba(7,128,179,.12),rgba(7,128,179,0) 72%);animation:envA 116s var(--ease-io) -60s infinite alternate-reverse}
.env::after{content:"";position:absolute;inset:0;opacity:.55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .02 0 0 0 0 .16 0 0 0 0 .23 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes envA{to{transform:translate3d(18vw,14vh,0) scale(1.12)}}
@keyframes envB{to{transform:translate3d(-16vw,-12vh,0) scale(.9)}}

/* ---------- small type pieces ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-text)}
.eyebrow .tagmark{flex:none}
.sec-head{text-align:center;max-width:760px;margin:0 auto clamp(32px,4vw,56px)}
.sec-head h2,.h2{font-size:clamp(34px,4.4vw,58px);letter-spacing:-.03em}
.sec-head h2 em,.h2 em{font-weight:700;color:var(--blue)}
.sec-head p,.lede{color:var(--text-2);font-size:clamp(16.5px,1.3vw,19px);line-height:1.6}
.sec-head p{margin:16px auto 0;max-width:56ch}
.sec-head .eyebrow{margin-bottom:16px}

/* the luggage tag: the site's signature shape (cut corners + punched hole) */
.ltag{--tag:var(--orange);position:relative;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 13px 0 24px;background:var(--tag);color:var(--ink);font-weight:700;font-size:13px;letter-spacing:.04em;line-height:1;border-radius:0 8px 8px 0;clip-path:polygon(11px 0,100% 0,100% 100%,11px 100%,0 calc(100% - 9px),0 9px)}
.ltag::before{content:"";position:absolute;left:9px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:rgba(4,30,45,.55);box-shadow:inset 0 1px 1px rgba(0,0,0,.35)}
.ltag--glass{--tag:rgba(255,255,255,.18);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.ltag--glass::before{background:rgba(255,255,255,.75)}
.ltag--ice{--tag:#D3EAF5;color:var(--navy)}
.ltag--ice::before{background:#fff}

/* ---------- buttons ---------- */
.btn{--h:54px;--bub:40px;--mx:0px;--my:0px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:14px;height:var(--h);padding:0 7px 0 26px;border:0;border-radius:999px;font-weight:700;font-size:16px;letter-spacing:.01em;line-height:1;text-decoration:none;white-space:nowrap;overflow:hidden;isolation:isolate;transform:translate3d(var(--mx),var(--my),0);transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out),background-color .35s,color .35s}
.btn__bub{width:var(--bub);height:var(--bub);border-radius:50%;display:grid;place-items:center;flex:none;transition:transform .55s var(--ease-spring),background-color .35s}
.btn__bub svg{width:18px;height:18px;transition:transform .55s var(--ease-out)}
.btn:hover .btn__bub svg{transform:scale(1.12) rotate(-8deg)}
.btn__bub svg:has(use[href="#i-arrow"]){transform:rotate(-45deg)}
.btn:hover .btn__bub svg:has(use[href="#i-arrow"]),.btn:focus-visible .btn__bub svg:has(use[href="#i-arrow"]){transform:rotate(0)}
.btn:hover .btn__bub{transform:scale(1.06)}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.5) 48%,transparent 66%);transform:translateX(-130%);transition:transform .9s var(--ease-out)}
.btn:hover::after{transform:translateX(130%)}
.btn:active{transform:translate3d(var(--mx),var(--my),0) scale(.97)}
.btn--plain{padding:0 26px}
.btn--orange{background:linear-gradient(180deg,var(--orange-2),var(--orange) 55%,#F28A0D);color:var(--ink);box-shadow:0 14px 30px -12px rgba(233,122,6,.65),inset 0 1px 0 rgba(255,255,255,.5)}
.btn--orange .btn__bub{background:var(--navy);color:#fff}
.btn--orange:hover{box-shadow:0 18px 36px -12px rgba(233,122,6,.75),inset 0 1px 0 rgba(255,255,255,.5)}
.btn--navy{background:var(--navy);color:#fff;box-shadow:0 14px 30px -14px rgba(4,62,89,.7)}
.btn--navy:hover{background:var(--navy-2)}
.btn--navy .btn__bub{background:var(--orange);color:var(--ink)}
.btn--white{background:#fff;color:var(--navy);box-shadow:0 14px 30px -16px rgba(4,30,45,.5)}
.btn--white .btn__bub{background:var(--orange);color:var(--ink)}
.btn--glass{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.btn--glass:hover{background:rgba(255,255,255,.24)}
.btn--glass .btn__bub{background:#fff;color:var(--navy)}
.btn--wa{background:var(--wa);color:var(--ink);box-shadow:0 14px 30px -14px rgba(18,140,74,.7)}
.btn--wa .btn__bub{background:var(--ink);color:#fff}
.btn--sm{--h:46px;--bub:34px;font-size:15px;padding-left:20px;gap:10px}
.btn--lg{--h:62px;--bub:48px;font-size:17px;padding-left:30px}
.btn--block{width:100%}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:700;text-decoration:none;color:var(--blue-text);background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;padding-bottom:3px;transition:background-size .5s var(--ease-out)}
.link-arrow:hover{background-size:100% 2px}
.link-arrow svg{width:16px;height:16px;transition:transform .45s var(--ease-out)}
.link-arrow:hover svg{transform:translateX(4px)}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:14px var(--gutter) 0;pointer-events:none}
.nav__bar{pointer-events:auto;max-width:1320px;margin:0 auto;height:var(--nav-h);display:flex;align-items:center;gap:16px;padding:0 10px 0 16px;background:rgba(255,255,255,.88);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);border:1px solid rgba(255,255,255,.75);border-radius:24px;box-shadow:0 12px 40px -20px rgba(6,40,58,.45);transition:transform .6s var(--ease-out),box-shadow .5s,background-color .5s}
.nav.is-scrolled .nav__bar{background:rgba(255,255,255,.95);box-shadow:0 18px 44px -22px rgba(6,40,58,.5)}
.nav.is-tucked .nav__bar{transform:translateY(calc(-100% - 24px))}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;flex:none;border-radius:14px}
.brand__mark{height:54px;width:auto;transition:transform .7s var(--ease-spring)}
.brand:hover .brand__mark{transform:rotate(-7deg) translateY(-2px)}
.brand__word{height:36px;width:auto}
.nav__links{display:flex;gap:2px;margin-left:auto}
.nav__links a{position:relative;padding:10px 14px;border-radius:12px;text-decoration:none;font-weight:700;font-size:15.5px;color:var(--navy);transition:background-color .3s}
.nav__links a::after{content:"";position:absolute;left:14px;right:14px;bottom:5px;height:2px;border-radius:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}
.nav__links a:hover{background:rgba(4,62,89,.05)}
.nav__links a:hover::after,.nav__links a[aria-current="page"]::after{transform:scaleX(1)}
.nav__cta{display:flex;align-items:center;gap:10px;margin-left:10px}
.nav__call{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);padding:6px 10px 6px 6px;border-radius:16px;transition:background-color .3s}
.nav__call:hover{background:rgba(4,62,89,.05)}
.nav__call-ic{position:relative;width:40px;height:40px;border-radius:50%;background:var(--ice);display:grid;place-items:center;color:var(--blue)}
.nav__call-ic svg{width:19px;height:19px}
.nav__call-ic::after{content:"";position:absolute;right:1px;top:1px;width:10px;height:10px;border-radius:50%;background:#2BC46B;border:2px solid #fff}
.nav__call small{display:block;font-size:11.5px;line-height:1.15;color:var(--text-2);text-transform:uppercase;letter-spacing:.12em;font-weight:700}
.nav__call b{display:block;font-size:15px;line-height:1.3}
.nav__burger{display:none;position:relative;width:48px;height:48px;border-radius:16px;border:0;background:var(--navy);color:#fff}
.nav__burger span{position:absolute;left:14px;right:14px;height:2px;border-radius:2px;background:currentColor;transition:transform .5s var(--ease-out),top .5s var(--ease-out)}
.nav__burger span:nth-child(1){top:19px}
.nav__burger span:nth-child(2){top:27px;left:20px}
.nav__burger[aria-expanded="true"] span:nth-child(1){top:23px;transform:rotate(45deg)}
.nav__burger[aria-expanded="true"] span:nth-child(2){top:23px;left:14px;transform:rotate(-45deg)}

/* mobile menu */
.menu{position:fixed;inset:0;z-index:45;display:flex;flex-direction:column;padding:calc(var(--nav-h) + 44px) var(--gutter) max(28px,env(safe-area-inset-bottom));background:rgba(244,248,251,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .45s var(--ease-out),visibility 0s linear .45s;overflow-y:auto}
.menu.is-open{opacity:1;visibility:visible;transition-delay:0s}
.menu__links{display:flex;flex-direction:column;gap:2px}
.menu__links a{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:700;font-size:clamp(30px,8.5vw,44px);letter-spacing:-.02em;color:var(--navy)}
.menu__links a small{font-size:13px;letter-spacing:.14em;color:var(--text-2)}
.menu .menu__links a{opacity:0;transform:translate3d(0,24px,0);transition:opacity .5s var(--ease-out),transform .7s var(--ease-out)}
.menu.is-open .menu__links a{opacity:1;transform:none}
.menu.is-open .menu__links a:nth-child(1){transition-delay:.06s}
.menu.is-open .menu__links a:nth-child(2){transition-delay:.12s}
.menu.is-open .menu__links a:nth-child(3){transition-delay:.18s}
.menu.is-open .menu__links a:nth-child(4){transition-delay:.24s}
.menu.is-open .menu__links a:nth-child(5){transition-delay:.3s}
.menu__foot{margin-top:auto;padding-top:28px;display:grid;gap:12px}
.menu__foot .btn{width:100%}
.menu__foot p{color:var(--text-2);font-size:15px;text-align:center;margin-top:6px}

/* ---------- home hero: the five destination films ---------- */
.hero{position:relative;min-height:max(660px,100svh);display:flex;flex-direction:column;color:#fff;background:#0B3148;border-radius:0 0 var(--r-xl) var(--r-xl);overflow:hidden;isolation:isolate}
.hero__media{position:absolute;inset:0;z-index:0}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.3s var(--ease-io)}
.slide.is-active{opacity:1;z-index:2}
.slide.is-prev{opacity:1;z-index:1}
.slide__zoom{position:absolute;inset:0;transform:scale(1.07)}
.slide.is-active .slide__zoom,.slide.is-prev .slide__zoom{animation:kenburns 12s linear both}
@keyframes kenburns{from{transform:scale(1.07)}to{transform:scale(1)}}
.slide img,.slide video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slide video{opacity:0;transition:opacity .7s var(--ease-out);transform:translateZ(0)}
.slide video.is-on{opacity:1}
.hero__scrim{position:absolute;inset:0;z-index:3;pointer-events:none;background:
  linear-gradient(180deg,rgba(4,28,42,.62) 0%,rgba(4,28,42,.16) 22%,rgba(4,28,42,0) 40%,rgba(4,28,42,.18) 62%,rgba(4,28,42,.82) 100%),
  radial-gradient(ellipse 62% 46% at 50% 47%,rgba(4,28,42,.46),rgba(4,28,42,0) 74%)}
.hero__scrim::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 52% at 50% 46%,rgba(4,28,42,.66),rgba(4,28,42,.3) 62%,rgba(4,28,42,.14) 100%);opacity:var(--dim,0);transition:opacity 1.3s var(--ease-io)}
.hero__inner{position:relative;z-index:4;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:calc(var(--nav-h) + 64px) var(--gutter) 200px}
.hero__eyebrow{display:inline-flex;align-items:center;gap:14px;font-size:13px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.9);margin-bottom:22px;text-shadow:0 1px 10px rgba(4,28,42,.5)}
.hero__eyebrow::before,.hero__eyebrow::after{content:"";width:30px;height:1.5px;background:currentColor;opacity:.65}
.hero__stack{display:grid;width:100%;max-width:1180px}
.hero__text{grid-area:1/1;display:flex;flex-direction:column;align-items:center;visibility:hidden;transition:visibility 0s linear .9s}
.hero__text.is-active{visibility:visible;transition-delay:0s}
.hero__text.is-leaving{visibility:visible}
.hero__kicker{display:flex;align-items:center;gap:12px;font-weight:700;font-size:14.5px;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 12px rgba(4,28,42,.6)}
.hero__title{font-size:clamp(66px,11.2vw,172px);line-height:.9;letter-spacing:-.04em;font-weight:700;margin:14px 0 18px}
.hero__title .ln{display:block;overflow:hidden;padding:.08em .1em .18em;margin:-.08em -.1em -.18em}
.hero__title .c{display:inline-block;text-shadow:0 6px 28px rgba(4,28,42,.35)}
.js .hero__title .c{transform:translate3d(0,112%,0) rotate(7deg);opacity:0;transition:transform 1.05s var(--ease-out),opacity .7s var(--ease-out);transition-delay:calc(var(--i) * 42ms + 140ms)}
.js .hero__text.is-active .hero__title .c{transform:none;opacity:1}
.js .hero__text.is-leaving .hero__title .c{transform:translate3d(0,-70%,0) rotate(-4deg);opacity:0;transition:transform .7s var(--ease-io),opacity .5s var(--ease-io);transition-delay:calc(var(--i) * 22ms)}
.hero__line{max-width:46ch;font-size:clamp(16.5px,1.35vw,19.5px);line-height:1.55;color:rgba(255,255,255,.95);text-shadow:0 1px 14px rgba(4,28,42,.75)}
.hero__link{margin-top:22px;display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700;font-size:15.5px;padding:10px 12px 10px 18px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background-color .35s}
.hero__link:hover{background:rgba(255,255,255,.26)}
.hero__link i{width:30px;height:30px;border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center}
.hero__link svg{width:15px;height:15px;transition:transform .45s var(--ease-out)}
.hero__link:hover svg{transform:translateX(3px)}
.js .hero__kicker,.js .hero__line,.js .hero__link{opacity:0;transform:translate3d(0,18px,0);transition:opacity .8s var(--ease-out),transform 1s var(--ease-out)}
.js .hero__text.is-active .hero__kicker{opacity:1;transform:none;transition-delay:.05s}
.js .hero__text.is-active .hero__line{opacity:1;transform:none;transition-delay:.5s}
.js .hero__text.is-active .hero__link{opacity:1;transform:none;transition-delay:.66s}
.js .hero__text.is-leaving .hero__kicker,.js .hero__text.is-leaving .hero__line,.js .hero__text.is-leaving .hero__link{opacity:0;transform:translate3d(0,-12px,0);transition-duration:.45s;transition-delay:0s}

.hero__nav{position:absolute;z-index:5;left:50%;bottom:112px;transform:translateX(-50%);width:min(1060px,100% - var(--gutter)*2);display:flex;align-items:flex-end;gap:14px}
.hn{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:9px;background:none;border:0;padding:10px 2px 8px;color:#fff;text-align:left;opacity:.66;transition:opacity .4s}
.hn:hover,.hn.is-active{opacity:1}
.hn__top{display:flex;align-items:baseline;gap:8px;font-weight:700;font-size:14.5px;letter-spacing:.04em;text-shadow:0 1px 10px rgba(4,28,42,.6)}
.hn__num{font-size:12px;letter-spacing:.1em;opacity:.85}
.hn__bar{position:relative;display:block;width:100%;height:3px;border-radius:3px;background:rgba(255,255,255,.3);overflow:hidden}
.hn__bar i{position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left}
.hero__pause{flex:none;width:42px;height:42px;margin-bottom:2px;border-radius:50%;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;display:grid;place-items:center;transition:background-color .3s}
.hero__pause:hover{background:rgba(255,255,255,.26)}
.hero__pause svg{width:16px;height:16px}
.hero__pause .i-play{display:none}
.hero__pause[aria-pressed="true"] .i-play{display:block}
.hero__pause[aria-pressed="true"] .i-pause{display:none}

/* ---------- trip finder (straddles the hero edge) ---------- */
.finder-wrap{position:relative;z-index:10;margin-top:-92px;padding:0 var(--gutter)}
.js .finder{animation:finderIn 1.1s var(--ease-out) .55s both}
@keyframes finderIn{from{opacity:0;transform:translate3d(0,34px,0)}}
.finder{max-width:1060px;margin:0 auto;background:rgba(255,255,255,.97);border:1px solid rgba(214,228,236,.9);border-radius:30px;padding:14px;box-shadow:0 40px 70px -36px rgba(6,40,58,.55),0 2px 6px rgba(6,40,58,.06)}
.finder__types{display:flex;gap:4px;flex-wrap:wrap;padding:2px 4px 12px;border:0;margin:0;min-width:0}
.finder__types legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ft{position:relative;display:inline-flex}
.ft input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ft span{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:999px;font-weight:700;font-size:14.5px;color:var(--text-2);cursor:pointer;transition:background-color .35s,color .35s}
.ft span svg{width:18px;height:18px}
.ft span:hover{color:var(--navy);background:var(--ice)}
.ft input:checked + span{background:var(--navy);color:#fff}
.ft input:focus-visible + span{outline:3px solid var(--orange);outline-offset:2px}
.finder__bar{display:grid;grid-template-columns:1.35fr 1fr .95fr auto;align-items:stretch;background:var(--canvas);border:1px solid var(--line);border-radius:22px;padding:6px}
.field{position:relative;display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:16px;min-width:0;transition:background-color .3s}
.field:hover,.field:focus-within{background:#fff}
.field + .field::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:1px;background:var(--line-2)}
.field__ic{width:42px;height:42px;flex:none;border-radius:13px;background:#fff;display:grid;place-items:center;color:var(--blue);box-shadow:0 6px 14px -8px rgba(6,40,58,.35)}
.field__ic svg{width:20px;height:20px}
.field__body{display:flex;flex-direction:column;min-width:0;flex:1}
.field__label{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.field select{appearance:none;-webkit-appearance:none;border:0;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23043E59' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 0 center/16px;padding:2px 24px 2px 0;font-weight:700;font-size:16.5px;color:var(--ink);width:100%;cursor:pointer;text-overflow:ellipsis}
.field select:focus{outline:none}
.field:focus-within{box-shadow:0 0 0 2px var(--orange)}
.stepper{display:flex;align-items:center;gap:10px;margin-top:2px}
.stepper button{width:30px;height:30px;border-radius:50%;border:1px solid var(--line-2);background:#fff;display:grid;place-items:center;color:var(--navy);transition:background-color .25s,border-color .25s,transform .25s var(--ease-spring)}
.stepper button:hover{border-color:var(--navy)}
.stepper button:active{transform:scale(.9)}
.stepper button svg{width:14px;height:14px}
.stepper output{min-width:2.2ch;text-align:center;font-weight:700;font-size:17px}
.stepper span{font-size:14px;color:var(--text-2);font-weight:700}
.finder__go{--mx:0px;--my:0px;transform:translate3d(var(--mx),var(--my),0);position:relative;display:inline-flex;align-items:center;gap:12px;border:0;border-radius:18px;padding:0 26px 0 22px;min-height:66px;font-weight:700;font-size:16.5px;color:var(--ink);background:linear-gradient(180deg,var(--orange-2),var(--orange) 60%,#F28A0D);box-shadow:0 14px 28px -14px rgba(233,122,6,.8),inset 0 1px 0 rgba(255,255,255,.5);overflow:hidden;isolation:isolate;transition:transform .4s var(--ease-out),box-shadow .4s}
.finder__go::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 66%);transform:translateX(-130%);transition:transform .9s var(--ease-out)}
.finder__go:hover::after{transform:translateX(130%)}
.finder__go:hover{box-shadow:0 18px 34px -14px rgba(233,122,6,.9),inset 0 1px 0 rgba(255,255,255,.5)}
.finder__go:active{transform:translate3d(var(--mx),var(--my),0) scale(.97)}
.finder__go i{width:38px;height:38px;border-radius:12px;background:var(--navy);color:#fff;display:grid;place-items:center}
.finder__go svg{width:18px;height:18px}
.finder__note{display:flex;align-items:center;gap:8px;justify-content:center;margin-top:12px;font-size:14px;color:var(--text-2)}
.finder__note svg{width:16px;height:16px;color:#1FA855;flex:none}

/* ---------- promise strip ---------- */
.promise{padding:clamp(56px,7vw,100px) 0 clamp(40px,5vw,70px)}
.promise__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,44px)}
.pr{text-align:center;padding:8px 10px}
.pr__art{width:104px;height:104px;margin:0 auto 20px;position:relative}
.pr__art svg{width:100%;height:100%;overflow:visible}
.pr h3{font-size:clamp(20px,1.7vw,23px);margin-bottom:10px;letter-spacing:-.015em}
.pr p{color:var(--text-2);font-size:16.5px;max-width:32ch;margin:0 auto}
.pr .float{animation:floaty 6s ease-in-out infinite}
.pr:nth-child(2) .float{animation-delay:-2s}
.pr:nth-child(3) .float{animation-delay:-4s}
@keyframes floaty{50%{transform:translateY(-5px)}}

/* ---------- inset panels ---------- */
.panel{margin-inline:clamp(8px,1.6vw,24px);border-radius:var(--r-xl);padding-block:var(--section)}
.panel--ice{background:rgba(232,241,247,.86)}
.panel--white{background:rgba(255,255,255,.92);box-shadow:var(--shadow-1)}
.section{padding-block:var(--section)}

/* ---------- season favourites ---------- */
.fav__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,26px)}
.fcard{position:relative;display:block;aspect-ratio:3/4;border-radius:28px;overflow:hidden;color:#fff;text-decoration:none;isolation:isolate;box-shadow:var(--shadow-2);transform:translateZ(0)}
.fcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.fcard:hover img{transform:scale(1.07)}
.fcard::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(4,28,42,.18) 0%,rgba(4,28,42,0) 30%,rgba(4,28,42,.2) 52%,rgba(4,28,42,.8) 100%)}
.fcard__top{position:absolute;z-index:2;left:18px;top:18px;right:18px;display:flex;justify-content:space-between;align-items:center}
.fcard__season{font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3)}
.fcard__body{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:26px 22px 26px;text-align:center;display:flex;flex-direction:column;align-items:center}
.fcard__name{font-size:clamp(48px,5.4vw,78px);line-height:.88;letter-spacing:-.04em;font-weight:700;text-transform:lowercase;transition:transform .9s var(--ease-out)}
.fcard__sub{margin-top:10px;font-size:13.5px;letter-spacing:.46em;text-transform:uppercase;font-weight:700;padding-left:.46em;opacity:.92}
.fcard__cta{margin-top:18px;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 8px 0 18px;border-radius:999px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-weight:700;font-size:14.5px;transition:background-color .4s,color .4s}
.fcard__cta i{width:28px;height:28px;border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center;transition:transform .5s var(--ease-spring)}
.fcard__cta svg{width:14px;height:14px}
.fcard:hover .fcard__name{transform:translateY(-6px)}
.fcard:hover .fcard__cta{background:#fff;color:var(--navy)}
.fcard:hover .fcard__cta i{background:var(--orange);transform:rotate(-45deg)}

/* ---------- packages ---------- */
.pk__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;margin-bottom:clamp(26px,3vw,40px)}
.pk__head .h2{margin-top:14px}
.pk__head p{margin-top:12px;max-width:52ch}
.tabs{position:relative;display:inline-flex;gap:4px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-1);flex:none}
.tab{position:relative;z-index:1;height:44px;padding:0 20px;border:0;border-radius:999px;background:transparent;font-weight:700;font-size:15px;color:var(--text-2);transition:color .4s}
.tab:hover{color:var(--navy)}
.tab[aria-selected="true"]{color:#fff}
.tab__count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-left:8px;border-radius:999px;background:rgba(4,62,89,.08);font-size:12px;transition:background-color .4s}
.tab[aria-selected="true"] .tab__count{background:rgba(255,255,255,.2)}
.tabs__pill.no-anim{transition:none}
.tabs__pill{position:absolute;z-index:0;top:6px;left:6px;height:44px;width:0;border-radius:999px;background:var(--navy);transition:transform .6s var(--ease-out),width .6s var(--ease-out)}
.pk__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.pk__item{display:flex;min-width:0}
.pk__item[hidden]{display:none}
.pk__item.is-entering{animation:cardIn .7s var(--ease-out) both;animation-delay:calc(var(--n,0) * 70ms)}
@keyframes cardIn{from{opacity:0;transform:translate3d(0,24px,0) scale(.98)}to{opacity:1;transform:none}}
.pcard{position:relative;flex:1;display:flex;flex-direction:column;background:#fff;border:1px solid rgba(4,62,89,.08);border-radius:26px;padding:10px;box-shadow:var(--shadow-1);transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out)}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-2)}
.pcard__top{position:relative}
.pcard__media{position:relative;aspect-ratio:4/3;border-radius:19px;overflow:hidden;background:var(--ice)}
.pcard__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease-out)}
.pcard:hover .pcard__media img{transform:scale(1.07)}
.pcard__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,28,42,.28),rgba(4,28,42,0) 34%)}
.pcard__chips{position:absolute;z-index:1;left:12px;right:12px;top:12px;display:flex;justify-content:space-between;gap:8px}
.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:700;background:rgba(255,255,255,.92);color:var(--navy);box-shadow:0 4px 12px -6px rgba(4,28,42,.4)}
.chip svg{width:14px;height:14px}
.chip--dark{background:rgba(4,40,58,.55);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.pcard__price{position:absolute;z-index:2;right:8px;bottom:-24px;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:9px 14px 9px 26px;background:var(--orange);color:var(--ink);clip-path:polygon(12px 0,100% 0,100% 100%,12px 100%,0 calc(100% - 11px),0 11px);border-radius:0 10px 10px 0;transform-origin:10px 50%;transition:transform .6s var(--ease-spring);filter:drop-shadow(0 6px 10px rgba(233,122,6,.35))}
.pcard__price::before{content:"";position:absolute;left:9px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#fff;box-shadow:inset 0 1px 2px rgba(0,0,0,.3)}
.pcard__price small{font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1}
.pcard__price b{font-size:19px;line-height:1.1;letter-spacing:-.01em}
.pcard:hover .pcard__price{animation:tagSwing 1.1s var(--ease-out)}
@keyframes tagSwing{0%{transform:rotate(0)}25%{transform:rotate(-7deg)}50%{transform:rotate(4deg)}72%{transform:rotate(-2deg)}100%{transform:rotate(0)}}
.pcard__body{display:flex;flex-direction:column;flex:1;padding:24px 12px 8px}
.pcard__title{font-size:21px;line-height:1.2;letter-spacing:-.015em;padding-right:4px}
.pcard__link{text-decoration:none}
.pcard__link::after{content:"";position:absolute;inset:0;z-index:3;border-radius:26px}
.pcard__link:focus-visible{outline:none}
.pcard__link:focus-visible::after{outline:3px solid var(--orange);outline-offset:3px}
.pcard__route{display:flex;align-items:flex-start;gap:6px;margin-top:8px;font-size:15px;color:var(--text-2);line-height:1.4}
.pcard__route svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--blue)}
.pcard__line{margin-top:10px;font-size:15.5px;line-height:1.5;color:var(--ink)}
.pcard__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px}
.pcard__inc{display:flex;gap:6px}
.pcard__inc span{width:34px;height:34px;border-radius:10px;background:var(--ice);color:var(--navy);display:grid;place-items:center}
.pcard__inc svg{width:17px;height:17px}
.pcard__go{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:15px;color:var(--navy)}
.pcard__go i{width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;transition:transform .55s var(--ease-spring),background-color .4s,color .4s}
.pcard__go svg{width:17px;height:17px;transform:rotate(-45deg);transition:transform .55s var(--ease-out)}
.pcard:hover .pcard__go i{background:var(--orange);color:var(--ink);transform:scale(1.06)}
.pcard:hover .pcard__go svg{transform:rotate(0)}
.pk__note{margin-top:22px;text-align:center;font-size:14.5px;color:var(--text-2)}

/* custom-trip card (the dark card in the grid) */
.ccard{position:relative;flex:1;display:flex;flex-direction:column;justify-content:flex-end;min-height:420px;border-radius:26px;overflow:hidden;color:#fff;isolation:isolate;padding:clamp(24px,3vw,36px);box-shadow:var(--shadow-2)}
.ccard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.4s var(--ease-out)}
.ccard:hover img{transform:scale(1.05)}
.ccard::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,40,58,.1) 0%,rgba(4,40,58,.55) 45%,rgba(4,40,58,.94) 100%)}
.ccard h3{font-size:clamp(26px,2.6vw,34px);letter-spacing:-.02em;max-width:18ch}
.ccard p{margin-top:12px;color:rgba(255,255,255,.9);max-width:40ch}
.ccard .btn{margin-top:22px;align-self:flex-start}
.pk__item--custom[data-s3="2"]{grid-column:span 2}
.pk__item--custom[data-s3="3"]{grid-column:1/-1}
.pk__item--custom:is([data-s3="2"],[data-s3="3"]) .ccard{min-height:320px;justify-content:center}
.pk__item--custom:is([data-s3="2"],[data-s3="3"]) .ccard::before{background:linear-gradient(90deg,rgba(4,40,58,.95) 0%,rgba(4,40,58,.75) 42%,rgba(4,40,58,.15) 100%)}
.pk__item--custom:is([data-s3="2"],[data-s3="3"]) .ccard img{object-position:50% 40%}

/* ---------- package modal ---------- */
.pm{width:min(1020px,100% - 24px);max-width:none;max-height:min(92vh,880px);max-height:min(92dvh,880px);padding:0;border:0;border-radius:30px;background:#fff;color:var(--ink);box-shadow:0 50px 120px -40px rgba(4,28,42,.7);overflow:hidden}
.pm::backdrop{background:rgba(4,28,42,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.pm[open]{animation:pmIn .6s var(--ease-out)}
.pm[open]::backdrop{animation:fadeIn .4s ease}
.pm.is-closing{animation:pmOut .35s var(--ease-io) forwards}
@keyframes pmIn{from{opacity:0;transform:translate3d(0,30px,0) scale(.97)}to{opacity:1;transform:none}}
@keyframes pmOut{to{opacity:0;transform:translate3d(0,20px,0) scale(.98)}}
@keyframes fadeIn{from{opacity:0}}
.pm__grid{display:grid;grid-template-columns:1fr 1.12fr;height:min(92vh,880px);height:min(92dvh,880px);max-height:inherit}
.pm__media{position:relative;min-height:0;background:var(--ice)}
.pm__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pm__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,28,42,0) 50%,rgba(4,28,42,.7))}
.pm__mediacap{position:absolute;z-index:1;left:24px;right:24px;bottom:22px;color:#fff;display:flex;flex-wrap:wrap;gap:8px}
.pm__body{overflow-y:auto;padding:clamp(24px,3.5vw,44px);overscroll-behavior:contain}
.pm__close{position:absolute;z-index:3;right:16px;top:16px;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:var(--navy);display:grid;place-items:center;box-shadow:var(--shadow-1);transition:transform .5s var(--ease-spring),background-color .3s}
.pm__close:hover{transform:rotate(90deg);background:var(--orange)}
.pm__close svg{width:18px;height:18px}
.pm__place{color:var(--blue-text);font-weight:700;font-size:13px;letter-spacing:.18em;text-transform:uppercase}
.pm__title{font-size:clamp(28px,3vw,40px);letter-spacing:-.025em;margin-top:10px}
.pm__route{display:flex;gap:6px;align-items:flex-start;margin-top:10px;color:var(--text-2)}
.pm__route svg{width:17px;height:17px;flex:none;margin-top:4px;color:var(--blue)}
.pm__price{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-top:20px;padding:16px 18px;border-radius:18px;background:var(--canvas);border:1px dashed var(--line-2)}
.pm__price b{font-size:30px;letter-spacing:-.02em}
.pm__price span{color:var(--text-2);font-size:15px}
.pm h4{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-2);margin:26px 0 12px}
.pm__hl li{position:relative;display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.pm__hl li:last-child{border-bottom:0}
.pm__hl li i{width:24px;height:24px;flex:none;border-radius:50%;background:var(--orange);color:var(--ink);display:grid;place-items:center;margin-top:1px}
.pm__hl svg{width:13px;height:13px}
.pm__inc{display:flex;flex-wrap:wrap;gap:8px}
.pm__inc li{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:var(--ice);color:var(--navy);font-size:14.5px;font-weight:700}
.pm__inc svg{width:15px;height:15px}
.pm__best{display:flex;gap:10px;align-items:flex-start;margin-top:22px;color:var(--text-2);font-size:15.5px}
.pm__best svg{width:20px;height:20px;flex:none;color:var(--orange-deep);margin-top:2px}
.pm__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.pm__small{margin-top:16px;font-size:13.5px;color:var(--text-2)}

/* ---------- pack the bag (the one interactive moment) ---------- */
.pack__panel{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(24px,5vw,80px);align-items:center;padding-inline:clamp(22px,5vw,80px);position:relative;overflow:hidden}
.pack__art{position:relative;width:100%;max-width:430px;margin:0 auto}
.pack__art svg{width:100%;height:auto;overflow:visible}
.pack__art .bag-body{transform-origin:200px 400px}
.pack.is-packed .bag-body{animation:bagHop .9s var(--ease-spring)}
@keyframes bagHop{0%{transform:scale(1,1)}30%{transform:scale(1.04,.94)}60%{transform:scale(.98,1.04) translateY(-8px)}100%{transform:none}}
.pack__art .bag-tag{transform-origin:292px 176px}
.pack.is-packed .bag-tag{animation:tagSwing 1.4s var(--ease-out) .2s}
.pack__art .item{transform-box:view-box}
.pack__art .face{opacity:0;transition:opacity .5s var(--ease-out)}
.pack.is-packed .face{opacity:1}
.pack__art .orbit{stroke-dasharray:6 10;opacity:0;transition:opacity .6s}
.pack.is-packed .orbit{opacity:1;animation:dash 18s linear infinite}
@keyframes dash{to{stroke-dashoffset:-320}}
.pack__art .spark{opacity:0;transform-box:fill-box;transform-origin:center}
.pack.is-packed .spark{animation:spark 1.2s var(--ease-out) both}
.pack.is-packed .spark:nth-of-type(2){animation-delay:.12s}
.pack.is-packed .spark:nth-of-type(3){animation-delay:.24s}
@keyframes spark{0%{opacity:0;transform:scale(.4)}40%{opacity:1}100%{opacity:0;transform:scale(1.3)}}
.pack__copy .h2{margin-top:14px}
.pack__copy .lede{margin-top:16px;max-width:46ch}
.pack__list{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:4px 22px}
.pack__list li{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line-2);color:var(--text-2);font-weight:700;font-size:15.5px;line-height:1.3;transition:color .5s}
.pack__list .tick{width:28px;height:28px;flex:none;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;color:var(--ink);transition:background-color .45s,border-color .45s,transform .55s var(--ease-spring)}
.pack__list .tick svg{width:14px;height:14px;opacity:0;transform:scale(.4);transition:opacity .3s,transform .5s var(--ease-spring)}
.pack__list li.on{color:var(--ink)}
.pack__list li.on .tick{background:var(--orange);border-color:var(--orange);transform:scale(1.08)}
.pack__list li.on .tick svg{opacity:1;transform:none}
.pack__ctrl{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:30px}
.hold{--p:0;position:relative;display:inline-flex;align-items:center;gap:14px;height:62px;padding:0 10px 0 28px;border:0;border-radius:999px;background:var(--navy);color:#fff;font-weight:700;font-size:16.5px;overflow:hidden;isolation:isolate;user-select:none;-webkit-user-select:none;touch-action:none;box-shadow:0 16px 30px -16px rgba(4,62,89,.8);transition:transform .4s var(--ease-out)}
.hold__fill{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--orange-2),var(--orange));transform:scaleX(var(--p));transform-origin:left}
.hold.is-holding{transform:scale(.98)}
.hold__label{position:relative;min-width:12ch;text-align:left}
.hold__bub{width:44px;height:44px;border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center;flex:none}
.hold__bub svg{width:20px;height:20px}
.hold.is-deep{color:var(--ink)}
.pack__hint{font-size:14.5px;color:var(--text-2)}
.pack__done{display:none;align-items:center;gap:14px;flex-wrap:wrap}
.pack.is-packed .pack__done{display:flex;animation:cardIn .7s var(--ease-out) both}
.pack.is-packed .hold,.pack.is-packed .pack__hint{display:none}
.pack__again{background:none;border:0;padding:8px 4px;font-weight:700;color:var(--blue-text);text-decoration:underline;text-underline-offset:4px}

/* ---------- route: how it works ---------- */
.route__steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,32px);margin-top:10px}
.route__path{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.route__path path.trail{fill:none;stroke:var(--orange);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:2 9}
.route__path path.draw{fill:none;stroke:var(--canvas);stroke-width:8;stroke-linecap:round}
.route__plane{position:absolute;z-index:2;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;color:var(--orange-deep);opacity:0;will-change:transform;filter:drop-shadow(0 4px 6px rgba(224,122,6,.35))}
.step{position:relative;padding-top:0}
.step__pin{position:relative;z-index:1;width:74px;height:74px;border-radius:24px;background:#fff;display:grid;place-items:center;color:var(--navy);box-shadow:var(--shadow-1);border:1px solid var(--line);margin-bottom:22px}
.step:nth-child(odd) .step__pin{margin-top:36px}
.step__pin svg{width:32px;height:32px}
.step__pin b{position:absolute;right:-8px;top:-8px;width:28px;height:28px;border-radius:50%;background:var(--orange);color:var(--ink);font-size:13px;display:grid;place-items:center;box-shadow:0 0 0 4px var(--canvas)}
.step h3{font-size:21px;letter-spacing:-.015em}
.step p{margin-top:8px;color:var(--text-2);font-size:16px;max-width:30ch}

/* ---------- reels coverflow ---------- */
.cf{position:relative;height:clamp(440px,48vw,590px);perspective:1500px;touch-action:pan-y;user-select:none;-webkit-user-select:none;outline:none}
.cf__track{position:absolute;inset:0;transform-style:preserve-3d}
.cf__card{--w:clamp(236px,23vw,318px);position:absolute;left:50%;top:10px;width:var(--w);margin-left:calc(var(--w) / -2);aspect-ratio:9/15;border-radius:28px;overflow:hidden;background:#0B3148;color:#fff;box-shadow:0 30px 60px -30px rgba(4,28,42,.65);transition:transform .9s var(--ease-out),opacity .9s var(--ease-out);will-change:transform;cursor:pointer;isolation:isolate}
.cf__card img,.cf__card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cf__card video{opacity:0;transition:opacity .6s}
.cf__card video.is-on{opacity:1}
.cf__card::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(4,28,42,.15) 0%,rgba(4,28,42,0) 30%,rgba(4,28,42,.1) 55%,rgba(4,28,42,.82) 100%)}
.cf__card::after{content:"";position:absolute;inset:0;z-index:2;background:rgba(6,40,58,.55);opacity:var(--dim,0);transition:opacity .9s var(--ease-out);pointer-events:none}
.cf__meta{position:absolute;z-index:3;left:0;right:0;bottom:0;padding:22px 20px;transition:opacity .6s var(--ease-out),transform .8s var(--ease-out)}
.cf__card:not(.is-center) .cf__meta{opacity:0;transform:translate3d(0,10px,0)}
.cf__meta h3{font-size:clamp(26px,2.4vw,32px);letter-spacing:-.02em}
.cf__meta p{font-size:14.5px;opacity:.92;margin-top:4px}
.cf__play{position:absolute;z-index:3;right:14px;top:14px;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:999px;background:rgba(4,28,42,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:12.5px;font-weight:700;letter-spacing:.06em}
.cf__play i{width:7px;height:7px;border-radius:50%;background:#FF5A4F}
.cf__card.is-center .cf__play i{animation:rec 1.6s ease-in-out infinite}
@keyframes rec{50%{opacity:.25}}
.cf__ui{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:clamp(18px,2vw,30px)}
.cf__arrow{width:52px;height:52px;border-radius:50%;border:1px solid var(--line-2);background:#fff;color:var(--navy);display:grid;place-items:center;box-shadow:var(--shadow-1);transition:transform .45s var(--ease-spring),background-color .3s,color .3s}
.cf__arrow:hover{background:var(--navy);color:#fff;transform:scale(1.06)}
.cf__arrow svg{width:20px;height:20px}
.cf__dots{display:flex;gap:8px}
.cf__dots button{width:9px;height:9px;padding:0;border:0;border-radius:99px;background:var(--line-2);transition:width .5s var(--ease-out),background-color .4s}
.cf__dots button[aria-current="true"]{width:30px;background:var(--navy)}
@media (pointer:coarse){.cf__dots button{position:relative}.cf__dots button::after{content:"";position:absolute;inset:-12px -4px}}

/* ---------- banner ---------- */
.banner__card{position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:clamp(360px,36vw,480px);display:flex;align-items:center;color:#fff;isolation:isolate;box-shadow:var(--shadow-2)}
.banner__card > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.banner__card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,40,58,.86) 0%,rgba(4,40,58,.6) 38%,rgba(4,40,58,.05) 72%)}
.banner__copy{padding:clamp(28px,5vw,72px);max-width:680px}
.banner__copy .h2{color:#fff}
.banner__copy .h2 em{color:var(--sky)}
.banner__copy p{margin-top:16px;font-size:clamp(16.5px,1.3vw,19px);color:rgba(255,255,255,.92);max-width:44ch}
.banner__copy .btn{margin-top:28px}
.banner__stamp{position:absolute;right:clamp(18px,4vw,56px);bottom:clamp(18px,4vw,48px);width:clamp(96px,11vw,136px);height:auto;color:#fff;opacity:.9}
.live-on .spin{animation:spin 28s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- FAQ ---------- */
.faq__grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(28px,5vw,80px);align-items:start}
.faq__side{position:sticky;top:120px}
.faq__side .h2{margin-top:14px}
.faq__side .lede{margin-top:16px;max-width:40ch}
.help{margin-top:30px;padding:24px;border-radius:26px;background:var(--navy);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.help::before{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(closest-side,rgba(60,195,221,.45),rgba(60,195,221,0));z-index:-1}
.help__row{display:flex;align-items:center;gap:14px}
.help__av{width:52px;height:52px;border-radius:50%;background:linear-gradient(145deg,var(--cyan),var(--blue));display:grid;place-items:center;flex:none;position:relative}
.help__av svg{width:26px;height:26px}
.help__av::after{content:"";position:absolute;right:0;bottom:2px;width:12px;height:12px;border-radius:50%;background:#2BC46B;border:2px solid var(--navy)}
.help h3{font-size:19px}
.help p{color:rgba(255,255,255,.82);font-size:15px;margin-top:2px}
.help__btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.faq__list{display:grid;gap:14px}
.qa{position:relative;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 1px 2px rgba(6,40,58,.04);transition:border-color .45s,box-shadow .5s var(--ease-out),transform .5s var(--ease-out);overflow:hidden}
.qa:hover{border-color:var(--line-2);box-shadow:var(--shadow-1)}
.qa::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--orange),var(--cyan));transform:scaleY(0);transform-origin:top;transition:transform .6s var(--ease-out)}
.qa.is-open{border-color:rgba(4,62,89,.12);box-shadow:var(--shadow-2)}
.qa.is-open::before{transform:scaleY(1)}
.qa h3{margin:0;font-size:inherit;letter-spacing:0}
.qa__q{width:100%;display:flex;align-items:center;gap:16px;padding:22px 20px 22px 24px;background:none;border:0;text-align:left;font-weight:700;font-size:clamp(17px,1.35vw,19px);line-height:1.35;color:var(--ink);border-radius:24px}
.qa__num{flex:none;width:30px;font-size:13px;letter-spacing:.08em;color:var(--orange-text)}
.qa__icon{margin-left:auto;flex:none;width:42px;height:42px;border-radius:50%;background:var(--ice);color:var(--navy);display:grid;place-items:center;transition:background-color .45s,transform .6s var(--ease-spring),color .45s}
.qa__icon svg{width:16px;height:16px}
.qa:hover .qa__icon{background:var(--ice-2)}
.qa.is-open .qa__icon{background:var(--orange);color:var(--ink);transform:rotate(135deg)}
.qa__a{display:grid;grid-template-rows:1fr;transition:grid-template-rows .6s var(--ease-out)}
.js .qa:not(.is-open) .qa__a{grid-template-rows:0fr}
.qa__a > div{overflow:hidden;min-height:0}
.qa__a p{padding:0 24px 24px 70px;color:var(--text-2);font-size:16.5px;max-width:66ch;transition:opacity .45s,transform .6s var(--ease-out);transition-delay:.12s}
.js .qa:not(.is-open) .qa__a p{opacity:0;transform:translate3d(0,-6px,0);transition-delay:0s}

/* ---------- boarding pass enquiry ---------- */
.pass{display:grid;grid-template-columns:1fr 310px;max-width:1120px;margin:0 auto;border-radius:32px;box-shadow:var(--shadow-2);position:relative;isolation:isolate}
.pass__main{background:#fff;border-radius:32px 0 0 32px;padding:clamp(24px,4vw,48px)}
.pass__brand{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px dashed var(--line-2);margin-bottom:24px;flex-wrap:wrap}
.pass__brand img{height:40px;width:auto}
.pass__brand span{font-size:12.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--text-2)}
.pass__main .h2{font-size:clamp(28px,3.2vw,42px)}
.pass__main .lede{margin-top:10px;font-size:16.5px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;margin-top:26px}
.form .full{grid-column:1/-1}
.fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.fld label,.fld .lbl{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.fld input,.fld select,.fld textarea{width:100%;border:1.5px solid var(--line);background:var(--canvas);border-radius:14px;padding:13px 14px;font-size:16.5px;color:var(--ink);transition:border-color .3s,background-color .3s,box-shadow .3s;appearance:none;-webkit-appearance:none}
.fld select{background:var(--canvas) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23043E59' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center/16px;padding-right:40px}
.fld textarea{min-height:96px;resize:vertical}
.fld input::placeholder,.fld textarea::placeholder{color:#7A909C}
.fld input:hover,.fld select:hover,.fld textarea:hover{border-color:var(--line-2)}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--orange);background:#fff;box-shadow:0 0 0 4px rgba(247,147,26,.18)}
.fld.is-bad input{border-color:#D6453D}
.fld .err{font-size:13.5px;color:#B3261E;font-weight:700;display:none}
.fld.is-bad .err{display:block}
.form__foot{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:14px 20px;margin-top:6px}
.form__foot small{color:var(--text-2);font-size:14px;max-width:40ch}
.form__ok{grid-column:1/-1;display:none;align-items:flex-start;gap:14px;padding:16px 18px;border-radius:18px;background:#E9F8EF;border:1px solid #B8E5C9;color:#0E4E2B}
.form__ok svg{width:24px;height:24px;flex:none;color:#1FA855}
.form__ok b{display:block}
.form.is-sent .form__ok{display:flex;animation:cardIn .6s var(--ease-out) both}
.pass__stub{position:relative;background:linear-gradient(170deg,#0A5378,#043E59 55%,#06283A);color:#fff;border-radius:0 32px 32px 0;padding:34px 28px;display:flex;flex-direction:column;gap:20px;overflow:hidden}
.pass__stub::before{content:"";position:absolute;left:-1px;top:26px;bottom:26px;width:2px;background:repeating-linear-gradient(180deg,rgba(255,255,255,.55) 0 7px,transparent 7px 15px)}
.pass__notch{position:absolute;left:-16px;width:32px;height:32px;border-radius:50%;background:var(--canvas);z-index:2}
.pass__notch--t{top:-16px}
.pass__notch--b{bottom:-16px}
.stub__row{display:flex;justify-content:space-between;gap:12px}
.stub__k{font-size:11.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.stub__v{font-size:17px;font-weight:700;margin-top:2px}
.stub__route{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0}
.stub__code{font-size:44px;font-weight:700;letter-spacing:-.02em;line-height:1}
.stub__code small{display:block;font-size:12.5px;letter-spacing:.08em;font-weight:700;opacity:.75;margin-top:6px}
.stub__route svg{width:34px;height:34px;color:var(--orange);flex:none}
.stub__route .stub__code:last-child{text-align:right}
.stub__bar{margin-top:auto;height:58px;border-radius:8px;background:repeating-linear-gradient(90deg,#fff 0 2px,transparent 2px 5px,#fff 5px 6px,transparent 6px 10px,#fff 10px 13px,transparent 13px 15px);opacity:.9}
.stub__tag{align-self:flex-start}

/* ---------- inner page hero ---------- */
.phero{position:relative;min-height:clamp(440px,64vh,640px);display:flex;align-items:flex-end;color:#fff;border-radius:0 0 var(--r-xl) var(--r-xl);overflow:hidden;isolation:isolate;padding:calc(var(--nav-h) + 90px) 0 clamp(44px,6vw,84px);background:#0B3148}
.phero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;animation:pheroZoom 16s var(--ease-out) both}
@keyframes pheroZoom{from{transform:scale(1.1)}to{transform:scale(1)}}
.phero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,28,42,.62) 0%,rgba(4,28,42,.12) 30%,rgba(4,28,42,.2) 55%,rgba(4,28,42,.85) 100%)}
.crumbs{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:700;color:rgba(255,255,255,.85);margin-bottom:18px}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs svg{width:14px;height:14px;opacity:.7}
.phero h1{font-size:clamp(46px,7.4vw,108px);letter-spacing:-.04em;line-height:.95;max-width:14ch}
.phero h1 em{color:var(--sky);font-weight:700}
.phero p{margin-top:18px;font-size:clamp(17px,1.4vw,20px);color:rgba(255,255,255,.93);max-width:52ch;text-shadow:0 1px 14px rgba(4,28,42,.6)}
.phero__row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px}

/* split word reveal for headings */
.sw .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.02em .04em .16em;margin:-.02em -.04em -.16em}
.sw .w > span{display:inline-block}
.js .sw .w > span{transform:translate3d(0,108%,0);transition:transform 1.1s var(--ease-out);transition-delay:calc(var(--wi) * 55ms + var(--sd,0ms))}
.js .sw.in .w > span{transform:none}

/* generic reveal */
.js [data-rv]{opacity:0;transform:translate3d(0,30px,0);transition:opacity 1s var(--ease-out),transform 1.1s var(--ease-out);transition-delay:calc(var(--d,0) * 90ms)}
.js [data-rv="fade"]{transform:none}
.js [data-rv="left"]{transform:translate3d(-40px,0,0)}
.js [data-rv="right"]{transform:translate3d(40px,0,0)}
.js [data-rv="zoom"]{transform:scale(.94)}
.js [data-rv].in{opacity:1;transform:none}
.js [data-rv].in.done{transition-delay:0s}
.js .qa[data-rv]{transition:opacity 1s var(--ease-out),transform 1.1s var(--ease-out),border-color .45s,box-shadow .5s var(--ease-out);transition-delay:calc(var(--d,0) * 90ms)}
.js .qa[data-rv].in.done{transition-delay:0s}
.rv-fallback [data-rv],.rv-fallback .sw .w > span,.rv-fallback .hero__title .c,.rv-fallback .hero__kicker,.rv-fallback .hero__line,.rv-fallback .hero__link{opacity:1!important;transform:none!important}

/* ---------- about page ---------- */
.story{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,6vw,96px);align-items:center}
.story__copy .h2{margin-top:14px}
.story__copy p{margin-top:18px;color:var(--text-2);font-size:clamp(16.5px,1.3vw,18.5px);max-width:54ch}
.story__copy p strong{color:var(--ink)}
.story__sign{display:flex;align-items:center;gap:14px;margin-top:28px}
.story__sign img{height:46px;width:auto}
.story__sign span{font-size:15px;color:var(--text-2)}
.story__art{position:relative;min-height:560px}
.story__art figure{position:absolute;border-radius:28px;overflow:hidden;box-shadow:var(--shadow-2)}
.story__art figure img{width:100%;height:100%;object-fit:cover}
.story__art .f1{left:0;top:0;width:62%;height:78%}
.story__art .f2{right:0;bottom:0;width:50%;height:58%;border:8px solid var(--canvas)}
.story__art .stamp{position:absolute;right:6%;top:4%;width:132px;height:132px;color:var(--navy)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,2vw,24px)}
.fact{background:#fff;border-radius:26px;padding:26px 24px;box-shadow:var(--shadow-1);border:1px solid rgba(4,62,89,.06)}
.fact b{display:block;font-size:clamp(38px,4vw,54px);letter-spacing:-.03em;line-height:1;color:var(--navy)}
.fact b sup{font-size:.5em;vertical-align:top;margin-left:2px;color:var(--orange-deep)}
.fact span{display:block;margin-top:10px;color:var(--text-2);font-size:15.5px}
.svc__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px)}
.svc{position:relative;border-radius:26px;overflow:hidden;min-height:340px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;isolation:isolate;box-shadow:var(--shadow-1)}
.svc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.3s var(--ease-out)}
.svc:hover img{transform:scale(1.06)}
.svc::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,28,42,0) 30%,rgba(4,28,42,.86))}
.svc h3{font-size:24px;letter-spacing:-.02em}
.svc p{margin-top:6px;font-size:15.5px;color:rgba(255,255,255,.9);max-width:34ch}
.svc__ic{position:absolute;left:20px;top:20px;width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.35);display:grid;place-items:center}
.svc__ic svg{width:22px;height:22px}
.vows{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,2vw,24px)}
.vow{background:#fff;border-radius:26px;padding:28px 24px;box-shadow:var(--shadow-1);border:1px solid rgba(4,62,89,.06);transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out)}
.vow:hover{transform:translateY(-6px);box-shadow:var(--shadow-2)}
.vow__ic{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:var(--ice);color:var(--navy);margin-bottom:20px}
.vow__ic svg{width:26px;height:26px}
.vow:nth-child(2) .vow__ic{background:#FFF1DF;color:var(--orange-text)}
.vow:nth-child(3) .vow__ic{background:#E3F7FB;color:var(--blue-text)}
.vow:nth-child(4) .vow__ic{background:#FDE9E3;color:#A7401F}
.vow h3{font-size:20px;letter-spacing:-.015em}
.vow p{margin-top:8px;color:var(--text-2);font-size:15.5px}
.mosaic{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(110px,12vw,170px);gap:clamp(10px,1.4vw,18px)}
.mosaic figure{position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--shadow-1)}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease-out)}
.mosaic figure:hover img{transform:scale(1.06)}
.mosaic figcaption{position:absolute;left:12px;bottom:12px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--navy);font-size:13.5px;font-weight:700}
.mosaic .m1{grid-column:span 2;grid-row:span 2}
.mosaic .m2{grid-column:span 2;grid-row:span 1}
.mosaic .m3{grid-column:span 2;grid-row:span 2}
.mosaic .m4{grid-column:span 2;grid-row:span 1}
.mosaic .m5{grid-column:span 3;grid-row:span 1}
.mosaic .m6{grid-column:span 3;grid-row:span 1}
.cta-band{display:flex;align-items:center;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;padding:clamp(28px,4vw,56px);border-radius:var(--r-xl);background:linear-gradient(120deg,#0A5378,#043E59 60%,#06283A);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.cta-band::after{content:"";position:absolute;right:-80px;bottom:-120px;width:360px;height:360px;border-radius:50%;background:radial-gradient(closest-side,rgba(247,147,26,.35),rgba(247,147,26,0));z-index:-1}
.cta-band h2{font-size:clamp(28px,3.4vw,44px);letter-spacing:-.025em;max-width:20ch}
.cta-band p{margin-top:10px;color:rgba(255,255,255,.86);max-width:48ch}
.cta-band__btns{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- packages page ---------- */
.pkx__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.search{position:relative;display:flex;align-items:center;flex:1;max-width:380px;min-width:240px}
.search svg{position:absolute;left:16px;width:18px;height:18px;color:var(--text-2);pointer-events:none}
.search input{width:100%;height:56px;border-radius:999px;border:1.5px solid var(--line);background:#fff;padding:0 18px 0 46px;font-size:16px;box-shadow:var(--shadow-1);transition:border-color .3s,box-shadow .3s}
.search input:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 4px rgba(247,147,26,.18)}
.empty{display:none;text-align:center;padding:40px 20px;color:var(--text-2)}
.empty.is-on{display:block}
.incl{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.incl li{background:#fff;border-radius:22px;padding:22px 18px;box-shadow:var(--shadow-1);border:1px solid rgba(4,62,89,.06)}
.incl i{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:var(--ice);color:var(--navy);margin-bottom:14px}
.incl svg{width:22px;height:22px}
.incl b{display:block;font-size:17px}
.incl span{display:block;margin-top:4px;font-size:14.5px;color:var(--text-2)}

/* ---------- contact page ---------- */
.phero--contact{padding-bottom:clamp(120px,13vw,170px)}
.ways{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.8vw,22px);margin-top:clamp(-96px,-7vw,-60px);position:relative;z-index:5}
.ways > div{display:flex}
.ways .way{flex:1}
.way{position:relative;display:flex;flex-direction:column;background:#fff;border-radius:26px;padding:24px;box-shadow:var(--shadow-2);text-decoration:none;border:1px solid rgba(4,62,89,.06);transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out);overflow:hidden;isolation:isolate}
a.way:hover{transform:translateY(-6px)}
.way__ic{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;margin-bottom:18px}
.way__ic svg{width:26px;height:26px}
.way--wa .way__ic{background:#DCF8E7;color:#0E7A40}
.way--call .way__ic{background:var(--ice);color:var(--navy)}
.way--mail .way__ic{background:#FFF1DF;color:var(--orange-text)}
.way--city .way__ic{background:#E3F7FB;color:var(--blue-text)}
.way small{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-2)}
.way b{display:block;font-size:19px;margin-top:4px;word-break:break-word}
.way__txt{display:block;margin-top:6px;color:var(--text-2);font-size:15px}
.way--mail b{font-size:17px}
.way__go{margin-top:18px;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:var(--blue-text)}
.way__go svg{width:16px;height:16px;transition:transform .45s var(--ease-out)}
a.way:hover .way__go svg{transform:translateX(4px)}
.voice{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(18px,3vw,36px);padding:clamp(24px,4vw,44px);border-radius:var(--r-xl);background:#fff;box-shadow:var(--shadow-1);border:1px solid rgba(4,62,89,.06)}
.voice__orb{position:relative;width:clamp(96px,10vw,128px);height:clamp(96px,10vw,128px);border-radius:50%;background:radial-gradient(circle at 35% 30%,#7FE0F0,var(--blue) 55%,var(--navy));display:grid;place-items:center;color:#fff;box-shadow:0 20px 40px -18px rgba(7,128,179,.7)}
.voice__orb svg{width:44%;height:44%}
.voice__orb::before,.voice__orb::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:2px solid rgba(60,195,221,.45);opacity:0}
.live-on .voice__orb::before{animation:ripple 3.2s var(--ease-out) infinite}
.live-on .voice__orb::after{animation:ripple 3.2s var(--ease-out) -1.6s infinite}
@keyframes ripple{0%{opacity:.8;transform:scale(.9)}100%{opacity:0;transform:scale(1.35)}}
.voice h2{font-size:clamp(26px,3vw,38px);letter-spacing:-.025em}
.voice h2 em{color:var(--blue)}
.voice .eyebrow{margin-bottom:12px}
.voice p{margin-top:8px;color:var(--text-2);max-width:52ch}

/* ---------- footer ---------- */
.foot{position:relative;margin-top:var(--section);background:#062F45;color:#CFE0EA;border-radius:var(--r-xl) var(--r-xl) 0 0;padding:clamp(56px,7vw,90px) 0 calc(28px + env(safe-area-inset-bottom));overflow:hidden;isolation:isolate}
.foot::before{content:"";position:absolute;left:-10%;top:-40%;width:60%;height:120%;background:radial-gradient(closest-side,rgba(60,195,221,.16),rgba(60,195,221,0));z-index:-1}
.foot__top{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:clamp(24px,4vw,56px)}
.foot__brand img{height:48px;width:auto}
.foot__brand .foot__logo{display:flex;align-items:center;gap:8px}
.foot__brand .foot__logo img:first-child{height:62px}
.foot__brand p{margin-top:18px;max-width:34ch;color:#B9CFDB;font-size:16px}
.foot h4{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.foot ul{display:grid;gap:10px}
.foot a{color:#CFE0EA;text-decoration:none;transition:color .3s}
.foot a:hover{color:var(--orange-2)}
.foot__contact li{display:flex;gap:10px;align-items:flex-start}
.foot__contact svg{width:18px;height:18px;flex:none;margin-top:4px;color:var(--cyan)}
.foot__big{margin-top:clamp(40px,6vw,72px);font-size:clamp(64px,15vw,230px);font-weight:700;letter-spacing:-.05em;line-height:.8;color:transparent;-webkit-text-stroke:1.5px rgba(207,224,234,.18);white-space:nowrap;user-select:none;text-align:center}
.foot__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:28px;padding-top:22px;border-top:1px solid rgba(207,224,234,.14);font-size:14.5px;color:#9FB9C7}

/* ---------- floating actions: voice expert + WhatsApp ---------- */
.fab{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
body.menu-open .fab{opacity:0;visibility:hidden}
.fab{transition:opacity .4s,visibility 0s}
.fab__btn{position:relative;display:flex;align-items:center;justify-content:flex-end;width:60px;height:60px;border:0;padding:0;border-radius:50%;background:none;text-decoration:none;transition:transform .5s var(--ease-spring)}
.fab__btn:hover{transform:translateY(-3px) scale(1.04)}
.fab__btn:active{transform:scale(.95)}
.fab__ic{position:relative;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;flex:none;box-shadow:0 16px 30px -12px rgba(4,28,42,.55)}
.fab__ic svg{width:28px;height:28px}
.fab__label{position:absolute;right:72px;top:50%;display:flex;flex-direction:column;white-space:nowrap;background:#fff;color:var(--ink);font-weight:700;font-size:14.5px;line-height:1.25;padding:10px 14px;border-radius:16px;box-shadow:var(--shadow-2);opacity:0;transform:translate3d(10px,-50%,0);pointer-events:none;transition:opacity .4s var(--ease-out),transform .5s var(--ease-out)}
.fab__label small{font-size:12px;color:var(--text-2);font-weight:700;letter-spacing:.04em}
.fab__label::after{content:"";position:absolute;right:-6px;top:50%;width:12px;height:12px;margin-top:-6px;background:#fff;transform:rotate(45deg);border-radius:2px}
.fab__btn:hover .fab__label,.fab__btn:focus-visible .fab__label,.fab.is-intro .fab__voice .fab__label{opacity:1;transform:translate3d(0,-50%,0)}
.fab__voice .fab__ic{background:linear-gradient(145deg,#0A6A96,#043E59);color:#fff}
.fab__voice .fab__ic::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(60,195,221,.8);animation:ripple 2.8s var(--ease-out) infinite}
.fab__badge{position:absolute;right:-4px;top:-4px;min-width:30px;height:20px;padding:0 5px;border-radius:999px;background:var(--orange);color:var(--ink);font-size:11px;font-weight:700;display:grid;place-items:center;box-shadow:0 0 0 2px #fff}
.fab__eq{position:absolute;bottom:13px;left:50%;display:flex;gap:2px;transform:translateX(-50%);height:8px;align-items:flex-end}
.fab__eq i{width:2.5px;height:8px;border-radius:2px;background:var(--cyan);transform-origin:bottom;animation:eq 1.1s ease-in-out infinite}
.fab__eq i:nth-child(2){animation-delay:-.35s}
.fab__eq i:nth-child(3){animation-delay:-.7s}
@keyframes eq{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.fab__voice .fab__ic svg{margin-top:-6px;width:25px;height:25px}
.fab__wa .fab__ic{background:var(--wa);color:#fff}
.fab__wa .fab__ic svg{width:31px;height:31px}

/* ---------- the Happy Bag cursor (fine pointers only) ---------- */
.bagc{position:fixed;left:0;top:0;z-index:120;width:26px;height:36px;transform-origin:13px 3px;pointer-events:none;opacity:0;transition:opacity .35s;will-change:transform}
.bagc.is-on{opacity:1}
.bagc__in{width:100%;height:100%;transform-origin:50% 8%;transition:transform .45s var(--ease-spring)}
.bagc.is-hover .bagc__in{transform:scale(1.32)}
.bagc.is-down .bagc__in{transform:scale(1.15,.82)}
.bagc svg{width:100%;height:100%;overflow:visible}
.bagc .smile-big{opacity:0}
.bagc.is-hover .smile-big{opacity:1}
.bagc.is-hover .smile-small{opacity:0}
@media (hover:none),(pointer:coarse){.bagc{display:none}}

/* ---------- pausing loops ---------- */
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1240px){
  .nav__call{display:none}
}
@media (max-width:1060px){
  .nav__links{display:none}
  .nav__burger{display:block}
  .nav__cta{margin-left:auto}
  .finder__bar{grid-template-columns:1fr 1fr;gap:4px}
  .field + .field::before{display:none}
  .finder__go{grid-column:1/-1;justify-content:center;min-height:60px}
  .pk__grid{grid-template-columns:repeat(2,1fr)}
  .pk__item--custom[data-s3]{grid-column:auto}
  .pk__item--custom[data-s2="2"]{grid-column:1/-1}
  .pk__item--custom[data-s3] .ccard{min-height:420px;justify-content:flex-end}
  .pk__item--custom[data-s3] .ccard::before{background:linear-gradient(180deg,rgba(4,40,58,.1) 0%,rgba(4,40,58,.55) 45%,rgba(4,40,58,.94) 100%)}
  .pk__item--custom[data-s2="2"] .ccard{min-height:320px;justify-content:center}
  .pk__item--custom[data-s2="2"] .ccard::before{background:linear-gradient(90deg,rgba(4,40,58,.95) 0%,rgba(4,40,58,.75) 42%,rgba(4,40,58,.15) 100%)}
  .facts,.vows{grid-template-columns:repeat(2,1fr)}
  .incl{grid-template-columns:repeat(3,1fr)}
  .ways{grid-template-columns:repeat(2,1fr)}
  .foot__top{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .promise__grid{grid-template-columns:1fr;max-width:520px;margin-inline:auto;gap:12px}
  .pr{display:grid;grid-template-columns:84px 1fr;gap:6px 18px;text-align:left;align-items:center;padding:14px 0;border-bottom:1px dashed var(--line-2)}
  .pr:last-child{border-bottom:0}
  .pr__art{width:84px;height:84px;margin:0;grid-row:span 2}
  .pr p{margin:0}
  .fav__grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(78%,340px);overflow-x:auto;scroll-snap-type:x mandatory;padding:4px var(--gutter) 20px;margin-inline:calc(var(--gutter) * -1);scrollbar-width:none}
  .fav__grid::-webkit-scrollbar{display:none}
  .fav__grid > *{scroll-snap-align:center}
  .pack__panel{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .pack__copy{display:contents}
  .pack__copy > .eyebrow{order:1}
  .pack__copy > .h2{order:2}
  .pack__copy > .lede{order:3}
  .pack__art{order:4;max-width:300px;margin:26px auto 0}
  .pack__ctrl{order:5;justify-content:center;margin-top:18px}
  .pack__list{order:6;margin-top:26px}
  .pack__hint{width:100%;text-align:center}
  .route__steps{grid-template-columns:1fr 1fr;row-gap:36px}
  .step:nth-child(odd) .step__pin{margin-top:0}
  .route__path,.route__plane{display:none}
  .faq__grid{grid-template-columns:1fr}
  .faq__side{position:static}
  .pass{grid-template-columns:1fr}
  .pass__main{border-radius:32px 32px 0 0}
  .pass__stub{border-radius:0 0 32px 32px;display:grid;grid-template-columns:1fr 1fr;align-items:center}
  .pass__stub::before{left:26px;right:26px;top:-1px;bottom:auto;width:auto;height:2px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.55) 0 7px,transparent 7px 15px)}
  .pass__notch{top:-16px;left:auto}
  .pass__notch--t{left:-16px}
  .pass__notch--b{right:-16px;bottom:auto}
  .stub__route{grid-column:1/-1}
  .stub__bar{grid-column:1/-1}
  .story{grid-template-columns:1fr}
  .story__art{min-height:440px}
  .svc__grid{grid-template-columns:1fr 1fr}
  .mosaic{grid-template-columns:repeat(4,1fr)}
  .mosaic .m1,.mosaic .m3{grid-column:span 2;grid-row:span 2}
  .mosaic .m2,.mosaic .m4,.mosaic .m5,.mosaic .m6{grid-column:span 2;grid-row:span 1}
  .voice{grid-template-columns:auto 1fr}
  .voice .btn{grid-column:1/-1;justify-self:start}
  .pm__grid{grid-template-columns:1fr;height:auto;max-height:min(92vh,880px);max-height:min(92dvh,880px);overflow-y:auto}
  .pm__media{height:240px;min-height:240px}
  .pm__body{overflow:visible}
}
@media (max-width:720px){
  :root{--nav-h:64px}
  .nav{padding-top:10px}
  .nav__bar{border-radius:20px;padding:0 8px 0 10px;gap:8px}
  .brand__mark{height:44px}
  .brand__word{height:28px}
  .nav__cta .btn{display:none}
  .hero{min-height:max(620px,100svh)}
  .hero__inner{align-items:flex-start;text-align:left;justify-content:flex-end;padding:calc(var(--nav-h) + 40px) var(--gutter) 176px}
  .hero__eyebrow{font-size:11.5px;letter-spacing:.2em;margin-bottom:14px}
  .hero__eyebrow::after{display:none}
  .hero__eyebrow::before{width:20px}
  .hero__text{align-items:flex-start}
  .hero__kicker{font-size:12.5px;gap:10px;letter-spacing:.1em}
  .hero__title{font-size:clamp(58px,17.5vw,96px);margin:12px 0 14px}
  .hero__line{font-size:16px;max-width:34ch}
  .hero__link{margin-top:18px}
  .hero__scrim{background:linear-gradient(180deg,rgba(4,28,42,.62) 0%,rgba(4,28,42,.12) 20%,rgba(4,28,42,.3) 38%,rgba(4,28,42,.72) 60%,rgba(4,28,42,.92) 100%)}
  .hero__scrim::after{background:linear-gradient(180deg,rgba(4,28,42,0) 18%,rgba(4,28,42,.5) 40%,rgba(4,28,42,.6) 100%)}
  .hero__nav{bottom:96px;gap:8px;left:var(--gutter);transform:none;width:calc(100% - var(--gutter) - 80px)}
  .hn{padding:6px 0}
  .hn{flex:1 1 0}
  .hn.is-active{flex:2.6 1 0}
  .hn__top{font-size:0;gap:0}
  .hn__top .hn__num{font-size:11px}
  .hn.is-active .hn__top{font-size:12.5px}
  .hn.is-active .hn__num{display:none}
  .hero__pause{width:38px;height:38px}
  .finder-wrap{margin-top:-74px}
  .finder{border-radius:26px;padding:12px}
  .finder__types{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -12px;padding:2px 12px 12px}
  .finder__types::-webkit-scrollbar{display:none}
  .ft span{white-space:nowrap}
  .finder__bar{grid-template-columns:1fr;padding:4px}
  .field{padding:10px 12px}
  .field + .field{border-top:1px solid var(--line)}
  .field:focus-within{box-shadow:inset 0 0 0 2px var(--orange)}
  .pk__head{align-items:flex-start}
  .tabs{width:100%;justify-content:space-between}
  .tab{flex:1;padding:0 10px}
  .tab__count{display:none}
  .pk__grid{grid-template-columns:1fr}
  .pk__item--custom[data-s2]{grid-column:auto}
  .pk__item--custom[data-s2] .ccard{min-height:380px;justify-content:flex-end}
  .pk__item--custom[data-s2] .ccard::before{background:linear-gradient(180deg,rgba(4,40,58,.1) 0%,rgba(4,40,58,.55) 45%,rgba(4,40,58,.94) 100%)}
  .pcard__title{padding-right:0;margin-top:14px}
  .ccard{min-height:360px}
  .pack__list{grid-template-columns:1fr}
  .route__steps{grid-template-columns:1fr;row-gap:26px}
  .step{display:grid;grid-template-columns:64px 1fr;gap:4px 18px}
  .step__pin{width:64px;height:64px;border-radius:20px;margin:0;grid-row:span 2}
  .cf__card{--w:min(68vw,280px)}
  .cf{height:auto;aspect-ratio:auto;min-height:calc(min(68vw,280px) * 15 / 9 + 30px)}
  .banner__card{align-items:flex-end;min-height:520px}
  .banner__card::before{background:linear-gradient(180deg,rgba(4,40,58,.1) 0%,rgba(4,40,58,.5) 40%,rgba(4,40,58,.92) 100%)}
  .banner__stamp{top:18px;bottom:auto;width:92px}
  .qa__q{padding:18px 16px 18px 18px;gap:12px}
  .qa__num{width:24px}
  .qa__a p{padding:0 18px 20px 54px}
  .form{grid-template-columns:1fr}
  .pass__stub{grid-template-columns:1fr 1fr;padding:26px 22px}
  .phero{min-height:clamp(440px,74svh,600px)}
  .facts{grid-template-columns:1fr 1fr}
  .fact{padding:20px 18px}
  .svc__grid{grid-template-columns:1fr}
  .svc{min-height:280px}
  .vows{grid-template-columns:1fr}
  .mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:140px}
  .mosaic .m1,.mosaic .m3{grid-column:span 1;grid-row:span 2}
  .mosaic .m2,.mosaic .m4{grid-column:span 1;grid-row:span 1}
  .mosaic .m5,.mosaic .m6{grid-column:span 2;grid-row:span 1}
  .incl{grid-template-columns:1fr 1fr}
  .ways{grid-template-columns:1fr;margin-top:-64px}
  .voice{grid-template-columns:1fr;text-align:left}
  .story__art{min-height:380px}
  .story__art .stamp{width:96px;height:96px}
  .foot__top{grid-template-columns:1fr 1fr;gap:28px 20px}
  .foot__brand,.foot__top > div:last-child{grid-column:1/-1}
  .fab{gap:10px;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}
  .fab__btn,.fab__ic{width:50px;height:50px}
  .fab__ic svg{width:24px;height:24px}
  .fab__wa .fab__ic svg{width:27px;height:27px}
  .fab__eq{bottom:10px}
  .fab__label{display:none}
  .cta-band{padding:28px 22px}
  .cta-band__btns{width:100%}
}
@media (max-width:420px){
  .finder__go{font-size:16px}
  .stub__code{font-size:36px}
  .pass__stub{grid-template-columns:1fr}
}
@media (max-height:560px) and (min-width:721px){
  .hero__nav{display:none}
  .hero__inner{padding-bottom:140px}
}
@media (pointer:coarse){
  .btn{min-height:48px}
  .tab{min-height:44px}
  .stepper button{width:44px;height:44px}
  .hn{min-height:44px;justify-content:flex-end}
  .hero__pause{width:44px;height:44px}
  .pack__again{min-height:44px}
  .ft span{height:44px}
  .crumbs a{padding:12px 0}
}

/* ---------- reduced motion: final states, nothing moves ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .env i{animation:none!important}
  .js [data-rv],.js .sw .w > span{opacity:1;transform:none}
  .js .hero__text.is-active .hero__title .c,.js .hero__text.is-active .hero__kicker,.js .hero__text.is-active .hero__line,.js .hero__text.is-active .hero__link{opacity:1;transform:none}
  .slide.is-active .slide__zoom,.slide.is-prev .slide__zoom{animation:none;transform:none}
  .phero__img{animation:none}
  .fab__voice .fab__ic::before,.fab__eq i{animation:none}
}
