/* ============================================================
   BaliMate · "Departure Board" design system
   One file styles the app shell, every page, the booking flows,
   the AI planner, the toolkit and the server-rendered guides.
   ============================================================ */
@font-face{font-family:'Bricolage';src:url(/fonts/bricolage.woff2) format('woff2');font-weight:200 800;font-display:swap}
:root{--ink:#10213A;--ink2:#1C2F4D;--sub:#5B6B82;--line:#E3E9F2;--paper:#F8F3E9;--card:#fff;--amber:#FFC53D;--amber2:#FFB300;--teal:#12B8A6;--tomato:#FF5A3C;--blue:#2F7BFF;--violet:#7B5CF6;--mint:#1DB36B;--board:#13233B;--r:28px;--ease:cubic-bezier(.2,1,.3,1);--spring:cubic-bezier(.3,1.6,.5,1);--w:1240px}
*{box-sizing:border-box;margin:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{font-family:'Bricolage',system-ui,sans-serif;color:var(--ink);background:linear-gradient(180deg,#BFE0FF 0%,#E6F3FF 360px,var(--paper) 760px);min-height:100vh;-webkit-font-smoothing:antialiased;padding-bottom:110px}
a{color:inherit}button{font:inherit}img{max-width:100%}
h1,h2,h3{letter-spacing:-.03em;line-height:1.05}
.ic{width:1em;height:1em;display:inline-block;vertical-align:middle;flex:none}
.ic.e{width:1.3em;height:1.3em;vertical-align:-.3em}
.ei{width:1.3em;height:1.3em;vertical-align:-.3em}
.muted{color:var(--sub)}.err{color:#C92A2A;font-weight:700;min-height:1.2em}.small,small{font-size:.85em}
.spin{width:34px;height:34px;border:4px solid #10213A1a;border-top-color:var(--amber2);border-radius:50%;animation:spin 1s linear infinite;margin:30px auto}@keyframes spin{to{transform:rotate(360deg)}}
.guest-only{display:none}body:not(.authed) .guest-only{display:flex}body.authed .auth-only{display:flex}.auth-only{display:none}
[hidden]{display:none!important}

/* ---------- living sky ---------- */
.sky{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.sunglow{position:absolute;left:-10vw;top:-26vh;width:60vw;height:60vw;min-width:420px;min-height:420px;border-radius:50%;background:radial-gradient(circle,#FFE9A8 0%,#FFD86B33 35%,transparent 62%);animation:breathe 7s ease-in-out infinite}
@keyframes breathe{50%{transform:scale(1.08);opacity:.85}}
.grain{position:absolute;inset:0;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}
.bgplane{position:absolute;top:13%;left:-8%;width:46px;height:46px;opacity:.5;animation:bgfly 28s linear infinite}@keyframes bgfly{to{transform:translate(120vw,-12vh)}}
.cloud{position:absolute;height:30px;border-radius:30px;background:#fff;opacity:.7;animation:drift 60s linear infinite}
.cloud:before,.cloud:after{content:'';position:absolute;background:#fff;border-radius:50%}.cloud:before{width:44px;height:44px;left:18px;top:-20px}.cloud:after{width:30px;height:30px;left:58px;top:-10px}
.c1{top:9%;width:120px;animation-duration:70s}.c2{top:20%;width:80px;animation-duration:50s;animation-delay:-25s}.c3{top:30%;width:100px;animation-duration:85s;animation-delay:-50s}
@keyframes drift{from{transform:translateX(-220px)}to{transform:translateX(110vw)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- app bar ---------- */
.ab{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:14px 20px;max-width:var(--w);margin:0 auto;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.ab:before{content:'';position:absolute;inset:0;background:linear-gradient(#CFE6FFee,#CFE6FF00);z-index:-1}
.ab-logo img{width:46px;height:46px;border-radius:14px;box-shadow:0 6px 14px #10213A22;display:block;transition:transform .5s var(--spring)}.ab-logo:hover img{transform:rotate(-8deg) scale(1.06)}
.ab-text{min-width:0;flex:1}.ab-text b,.ab-text small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ab-text b{font-size:19px;letter-spacing:-.4px}.ab-text small{color:var(--sub);font-weight:700;font-size:12.5px}
.ab-sp{flex:1}
.ab-round{width:46px;height:46px;border-radius:50%;background:#fff;border:0;display:grid;place-items:center;box-shadow:0 6px 16px #10213A1a;cursor:pointer;text-decoration:none;transition:transform .35s var(--spring)}.ab-round:hover{transform:translateY(-2px) scale(1.05)}.ab-round .ic{width:30px;height:30px}

/* ---------- layout ---------- */
#view{max-width:var(--w);margin:0 auto;padding:6px 20px 40px;display:flex;flex-direction:column;gap:16px}
.hgrid{display:grid;grid-template-columns:1fr 1.45fr;gap:16px}
@media(max-width:900px){.hgrid{grid-template-columns:1fr}}
[data-in]{opacity:0;transform:translateY(22px) scale(.985);animation:in .7s var(--spring) forwards;animation-delay:calc(var(--d,0)*.07s)}
@keyframes in{to{opacity:1;transform:none}}
.sec{display:flex;align-items:end;justify-content:space-between;margin:14px 4px 0}.sec h2{font-size:24px}.sec a{font-weight:800;color:var(--blue);font-size:14px;text-decoration:none}
.lead{font-size:18px;font-weight:600;color:#3E4E66;max-width:760px;padding:0 4px}
.lbl{font-size:11px;letter-spacing:2.5px;font-weight:800;color:var(--sub)}
.kicker{font-size:11px;letter-spacing:2.5px;font-weight:800;color:var(--sub);text-transform:uppercase}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.row.center{justify-content:center}
.grid{display:grid;gap:14px}.grid.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:900px){.grid4{grid-template-columns:1fr 1fr}}@media(max-width:560px){.grid4{grid-template-columns:1fr}}
.wrap{display:flex;flex-direction:column;gap:14px}.wrap.narrow{max-width:520px;margin:0 auto;width:100%}.wrap h1{font-size:32px}

/* ---------- cards ---------- */
.card,.panel{background:var(--card);border-radius:var(--r);padding:18px;box-shadow:0 24px 50px -28px #10213A66,inset 0 1px 0 #fff;position:relative;overflow:hidden}
.card.dark{background:var(--ink);color:#fff}.card.dark .lbl{color:var(--amber)}
.feat{display:flex;flex-direction:column;gap:6px}.feat .ic{width:54px;height:54px}.feat b{font-size:17px}.feat p{color:var(--sub);font-size:14px;line-height:1.45}
.get{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;background:radial-gradient(90% 120% at 100% 0%,#1C3254,var(--ink) 60%)!important}
.get h2{font-size:30px;margin:6px 0 8px}.get p{color:#C9D7EA;max-width:560px;line-height:1.5;margin-bottom:14px}.get img{width:180px;filter:drop-shadow(0 20px 30px #0008);animation:bob 4s ease-in-out infinite}
@media(max-width:700px){.get{grid-template-columns:1fr}.get img{width:140px;justify-self:center}}
.partner-cta{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;background:linear-gradient(120deg,#FFF6D6,#fff)!important}.partner-cta .ic{width:64px;height:64px}.partner-cta h3{font-size:20px}.partner-cta p{color:var(--sub);font-size:14px}
@media(max-width:700px){.partner-cta{grid-template-columns:1fr}}
.money{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:center}.money h2{font-size:28px;margin:6px 0 8px}.money p{color:var(--sub);line-height:1.5}
.split{display:flex;border-radius:18px;overflow:hidden;font-weight:800;color:#fff;height:88px}.split span{display:flex;flex-direction:column;justify-content:center;padding:0 16px;font-size:13px}.split span:first-child{background:var(--teal)}.split span:last-child{background:var(--tomato);align-items:flex-end;text-align:right}.split b{font-size:26px}
@media(max-width:700px){.money{grid-template-columns:1fr}}

/* ---------- buttons ---------- */
.btn,.mbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 22px;border-radius:16px;font-weight:900;font-size:16px;text-decoration:none;border:0;cursor:pointer;background:var(--amber);color:var(--ink);box-shadow:0 5px 0 #D89B10;transition:transform .35s var(--spring),box-shadow .2s;white-space:nowrap}
.btn:hover,.mbtn:hover{transform:translateY(-2px)}.btn:active,.mbtn:active{transform:translateY(2px);box-shadow:0 2px 0 #D89B10}
.btn.ghost,.mbtn.ghost,.btn-ghost{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}.btn.ghost:active,.btn-ghost:active{box-shadow:inset 0 0 0 2px var(--line)}
.btn.big{padding:18px 30px;font-size:19px}.btn.wide,.mbtn.wide{width:100%}.btn.sm,.mbtn.sm{padding:10px 16px;font-size:14px;box-shadow:0 3px 0 #D89B10}
.btn-gold{background:var(--amber);color:var(--ink)}.btn-blue{background:var(--blue);color:#fff;box-shadow:0 5px 0 #1E5CCB}.btn-sos{background:var(--tomato);color:#fff;box-shadow:0 5px 0 #C23E25}
.mbtn.primary{background:var(--ink);color:#fff;box-shadow:0 5px 0 #000814}.mbtn.primary:active{box-shadow:0 2px 0 #000814}
.ai-cta{background:linear-gradient(120deg,var(--violet),var(--blue))!important;color:#fff!important;box-shadow:0 5px 0 #4E39B3!important}
.mbtn span{display:contents}
.input,input.input,select.input{width:100%;font:600 16px 'Bricolage',sans-serif;padding:14px 16px;border-radius:16px;border:2px solid var(--line);background:#FBFCFE;color:var(--ink);outline:0;transition:border .2s}.input:focus{border-color:var(--amber)}
input,select,textarea{font:inherit}
.tabs-row{display:flex;gap:6px;background:#F1F4F9;border-radius:16px;padding:5px;margin-bottom:12px}.tabs-row button{flex:1;border:0;background:none;padding:10px;border-radius:12px;font-weight:800;color:var(--sub);cursor:pointer;transition:.25s}.tabs-row button.on{background:#fff;color:var(--ink);box-shadow:0 4px 12px #10213A1a}

/* ---------- split-flap board ---------- */
.board{background:radial-gradient(120% 90% at 20% 0%,#1C3254,#0F1D33 60%);color:#fff;padding:16px 14px 10px;box-shadow:0 30px 60px -30px #10213Acc,inset 0 0 0 1px #2B4166}
.board:after{content:'';position:absolute;left:-30%;top:0;bottom:0;width:30%;background:linear-gradient(100deg,transparent,#FFC53D14 50%,transparent);animation:sweep 5.6s ease-in-out infinite;pointer-events:none}@keyframes sweep{0%,55%{left:-30%}100%{left:130%}}
.board .lbl{color:#7F96B6;display:flex;justify-content:space-between;align-items:center;padding:0 4px 10px}
.live{color:#4FE3D2!important;letter-spacing:2px}.live:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--teal);margin-right:6px;animation:pulse 1.4s infinite;vertical-align:middle}@keyframes pulse{50%{opacity:.25}}
.rows{display:flex;flex-direction:column;gap:6px}
.r{display:flex;align-items:center;gap:3px;padding:4px;border-radius:12px;cursor:pointer;transition:background .2s,transform .2s;overflow:hidden;position:relative;text-decoration:none;color:#fff}
.r:hover{background:#ffffff10}.r:active{transform:scale(.985)}.r .gap{width:10px;flex:none}
.r em{font-style:normal;font-size:10px;letter-spacing:1.5px;font-weight:800;margin-left:auto;padding:5px 9px;border-radius:999px;background:#12B8A622;color:#4FE3D2;white-space:nowrap}.r em.w{background:#FFC53D22;color:var(--amber)}.r em.b{background:#2F7BFF33;color:#9CC2FF}
.f{position:relative;width:26px;height:40px;perspective:120px;font-weight:800;font-size:23px;color:#FFF6E5;flex:none}
.f.s{width:22px;font-size:18px;color:#C9D7EA}.f.g{width:32px;font-size:27px;color:var(--amber)}
.f .h{position:absolute;left:0;right:0;height:50%;overflow:hidden;background:#1D2F4B;display:flex;justify-content:center;box-shadow:inset 0 0 0 .5px #ffffff10}
.f .t{top:0;border-radius:6px 6px 0 0;align-items:flex-end;background:linear-gradient(#22375A,#1D2F4B)}.f .b{bottom:0;border-radius:0 0 6px 6px;align-items:flex-start;background:linear-gradient(#18273F,#152338)}
.f .h span{display:block;line-height:40px;height:40px;text-shadow:0 0 10px #ffffff33}.f .t span{transform:translateY(50%)}.f .b span{transform:translateY(-50%)}
.f .ft{transform-origin:bottom;z-index:2;backface-visibility:hidden}.f .fb{transform-origin:top;z-index:2;transform:rotateX(90deg);backface-visibility:hidden}
.f.flip .ft{animation:ft .08s ease-in forwards}.f.flip .fb{animation:fb .08s ease-out .08s forwards}
@keyframes ft{to{transform:rotateX(-90deg)}}@keyframes fb{to{transform:rotateX(0)}}
.f:after{content:'';position:absolute;left:0;right:0;top:50%;height:1.5px;background:#0A1424;z-index:3}
/* big light tiles (countdown) */
.flap{display:flex;gap:4px}
.f.xl{width:46px;height:64px;font-size:40px;color:var(--ink)}.f.xl .h{background:#fff}.f.xl .t{background:linear-gradient(#fff,#F2F5FA)}.f.xl .b{background:linear-gradient(#EEF2F8,#fff)}.f.xl .h span{line-height:64px;height:64px;text-shadow:none}.f.xl:after{background:#D5DCE7}
.board.bh{padding-bottom:12px}.board.bh .rows .r{cursor:default}.board.bh .r:hover{background:none}
@media(max-width:860px){.f{width:18px;height:32px;font-size:16px}.f .h span{line-height:32px;height:32px}.f.s{width:15px;font-size:13px}.f.g{width:23px;font-size:19px}.r em{display:none}.r .gap{width:4px}.r{gap:2px}.board{padding:14px 10px 8px}.f.xl{width:40px;height:56px;font-size:34px}.f.xl .h span{line-height:56px;height:56px}}

/* ---------- route card ---------- */
.route{background:linear-gradient(160deg,var(--blue),var(--teal));color:#fff;min-height:250px}
.route:before{content:'';position:absolute;inset:-40%;background:conic-gradient(from 0deg,#2F7BFF,#5AA9FF,#12B8A6,#3FD6C5,#2F7BFF);animation:spinbg 14s linear infinite;filter:blur(30px);opacity:.9}
.route>*{position:relative}@keyframes spinbg{to{transform:rotate(360deg)}}
.route .lbl{color:#ffffffb0}
.rt-svg{width:100%;height:120px;margin-top:6px;overflow:visible;display:block}
.rt-plane{position:absolute;left:18px;top:62px;width:34px;height:34px;offset-path:path('M20 95 C 120 -10, 260 -10, 380 95');offset-rotate:auto;animation:fly 6s ease-in-out infinite}
@keyframes fly{0%{offset-distance:0%}70%,100%{offset-distance:100%}}
.dst{animation:ping 1.8s ease-out infinite;transform-origin:center;transform-box:fill-box}@keyframes ping{0%{transform:scale(1);opacity:1}100%{transform:scale(3.4);opacity:0}}
.ends{display:flex;justify-content:space-between;font-weight:900;font-size:28px;letter-spacing:-1px;margin-top:-8px}.ends small{display:block;font-size:12px;letter-spacing:1px;opacity:.8;font-weight:700}.ends .r{text-align:right;padding:0;cursor:default;background:none!important;display:block;transform:none!important}
.cd{display:flex;align-items:center;gap:10px;margin-top:12px}.cd em{font-style:normal;font-weight:800;font-size:15px;opacity:.95;line-height:1.2}
.wx{position:absolute;right:16px;top:14px;background:#ffffff2e;backdrop-filter:blur(10px);border:1px solid #ffffff55;border-radius:999px;padding:6px 12px 6px 6px;display:flex;align-items:center;gap:6px;font-weight:800;font-size:13px}.wx .ic{width:26px;height:26px}
.roo-peek{position:absolute;right:-18px;bottom:-30px;width:120px;transform:rotate(-10deg);filter:drop-shadow(0 10px 14px #0005);animation:peek 5s ease-in-out infinite;pointer-events:none}@keyframes peek{0%,100%{transform:rotate(-10deg) translateY(0)}50%{transform:rotate(-4deg) translateY(-10px)}}

/* ---------- tickets ---------- */
.deck{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 4px 20px;scrollbar-width:none;margin:0 -4px}.deck::-webkit-scrollbar{display:none}
.tk{flex:none;width:300px;scroll-snap-align:start;background:#fff;border-radius:20px;display:flex;position:relative;height:126px;box-shadow:0 16px 30px -18px #10213A66;transition:transform .4s var(--spring),box-shadow .3s;cursor:pointer;text-decoration:none;color:var(--ink)}
.tk:hover{transform:translateY(-8px) rotate(-1.2deg) scale(1.02);box-shadow:0 26px 40px -18px #10213A88}.tk:active{transform:scale(.97)}
.tk .m{flex:1;padding:15px 16px;min-width:0}.tk small{font-size:10px;letter-spacing:2.5px;font-weight:800;color:var(--c)}.tk h3{font-size:22px;letter-spacing:-.8px;margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tk p{font-size:12px;font-weight:600;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk .s{width:88px;flex:none;border-left:3px dashed #10213A22;display:grid;place-items:center;background:var(--c);border-radius:0 20px 20px 0}.tk .s .ic{width:54px;height:54px;filter:drop-shadow(0 6px 8px #0003);animation:bob 3s ease-in-out infinite}
.tk:before,.tk:after{content:'';position:absolute;right:76px;width:22px;height:22px;border-radius:50%;background:var(--paper);z-index:2}.tk:before{top:-11px}.tk:after{bottom:-11px}
.tk .shine{position:absolute;inset:0;border-radius:20px;background:linear-gradient(110deg,transparent 30%,#ffffff80 50%,transparent 70%);transform:translateX(-120%);pointer-events:none}.tk:hover .shine{animation:shine .9s ease forwards}@keyframes shine{to{transform:translateX(120%)}}
.bc{display:block;height:16px;margin-top:6px;width:130px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 8px);opacity:.8}
@keyframes bob{50%{transform:translateY(-5px) rotate(-4deg)}}
.tlist{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tk.wide{width:auto;height:auto;min-height:126px}.tk.wide h3,.tk.wide p{white-space:normal}
@media(max-width:860px){.tlist{grid-template-columns:1fr}}
.tk:before,.tk:after{background:#EDF1F6}

/* ---------- quick tiles ---------- */
.quick{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.q{background:#fff;border-radius:22px;padding:14px 6px;text-align:center;font-weight:800;font-size:12.5px;box-shadow:0 12px 24px -18px #10213A66;cursor:pointer;transition:transform .3s var(--spring),box-shadow .3s;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:6px}
.q:hover{transform:translateY(-5px) scale(1.05);box-shadow:0 18px 30px -16px #2F7BFF88,0 0 0 3px var(--amber)}.q .ic{width:48px;height:48px}
@media(max-width:900px){.quick{grid-template-columns:repeat(4,1fr)}}@media(max-width:520px){.quick{grid-template-columns:repeat(3,1fr)}}

/* ---------- tab bar ---------- */
.tabs{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:4px;padding:8px;border-radius:28px;background:#ffffffe6;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 18px 40px -10px #10213A55;z-index:40}
.tabs a{position:relative;width:72px;padding:6px 0 4px;text-align:center;font-weight:800;font-size:11px;color:var(--sub);text-decoration:none;z-index:1;transition:color .3s}
.tabs a .ic{width:34px;height:34px;display:block;margin:0 auto 2px;transition:transform .4s var(--spring)}
.tabs a.on{color:var(--ink)}.tabs a.on .ic{transform:translateY(-3px) scale(1.15)}
.ind{position:absolute;top:8px;bottom:8px;left:8px;width:72px;transition:left .5s var(--spring),width .5s var(--spring);border-radius:22px;background:linear-gradient(160deg,#FFE08A,#FFC53D);box-shadow:0 8px 18px -8px #FFB300;transition:left .5s var(--spring);z-index:0}
@media(max-width:420px){.tabs a{width:62px}.ind{width:62px}}

/* ---------- sheet + modal ---------- */
.dim{position:fixed;inset:0;background:#10213A55;backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:.3s;z-index:50}
.sheet{position:fixed;left:50%;bottom:0;width:min(600px,100vw);max-height:88vh;overflow:auto;transform:translate(-50%,105%);transition:transform .55s cubic-bezier(.2,1.2,.3,1);z-index:51;background:var(--paper);border-radius:30px 30px 0 0;padding:12px 18px 30px;scrollbar-width:none}
body.open .dim{opacity:1;pointer-events:auto}body.open .sheet{transform:translate(-50%,0)}
.grab{width:46px;height:5px;border-radius:5px;background:#10213A33;margin:0 auto 14px}
.modal{position:fixed;inset:0;background:#10213A66;backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;z-index:60;overflow:auto}
.modal .panel{width:min(560px,100%);max-height:90vh;overflow:auto;animation:in .5s var(--spring)}
.modal h2,.modal h3{margin-bottom:6px}
/* menu sheet */
.menu .sec{margin:8px 4px 10px}.menu .sec h2{font-size:18px}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.mgrid a{background:#fff;border-radius:20px;padding:12px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;font-weight:800;font-size:12px;text-decoration:none;box-shadow:0 10px 20px -16px #10213A66}.mgrid .ic{width:44px;height:44px}
.mlist{display:flex;flex-direction:column;gap:8px}.mlist a{display:flex;align-items:center;gap:12px;background:#fff;border-radius:18px;padding:10px 12px;text-decoration:none;box-shadow:0 10px 20px -16px #10213A66}.mlist .ic{width:40px;height:40px}.mlist b{display:block;font-size:15px}.mlist small{color:var(--sub);font-weight:600}
.legal{color:var(--sub);font-size:12px;margin-top:14px;text-align:center;font-weight:600}
/* boarding pass */
.pass{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 20px 40px -24px #10213A88}
.pass .ph{background:linear-gradient(140deg,var(--c,#2F7BFF),#12B8A6);color:#fff;padding:18px 20px;display:flex;align-items:center;gap:12px}.pass .ph .ic,.pass .ph img{width:56px;height:56px;border-radius:14px}.pass .ph small{letter-spacing:2px;font-weight:800;font-size:11px;opacity:.85}.pass .ph b{font-size:22px;letter-spacing:-.6px;display:block}
.pass .bd{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px 20px}.pass .bd small{display:block;font-size:10px;letter-spacing:2px;font-weight:800;color:var(--sub)}.pass .bd b{font-size:18px}
.pass .pb{padding:18px 20px}.pass .pq{border-top:3px dashed #10213A1f;padding:14px 20px;display:flex;align-items:center;gap:14px;color:var(--sub);font-weight:600;font-size:13px}
.qrg{width:96px;height:96px;border-radius:12px;background:#fff;background-image:linear-gradient(90deg,#10213A 50%,transparent 0),linear-gradient(#10213A 50%,transparent 0);background-size:12px 12px;background-blend-mode:difference;box-shadow:inset 0 0 0 7px #fff,0 0 0 2px #E8ECF2;position:relative;overflow:hidden;flex:none}
.qrg:after{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--teal);box-shadow:0 0 12px var(--teal);animation:scan 1.6s ease-in-out infinite}@keyframes scan{50%{top:93px}}
.auth{display:grid;place-items:center;padding:10px 0}.auth .pass{width:min(460px,100%)}.auth form{display:flex;flex-direction:column;gap:10px}

/* ---------- booking widget (home + service pages) ---------- */
.bw{background:#fff;border-radius:var(--r);padding:12px;box-shadow:0 24px 50px -28px #10213A66}
.bw-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-bottom:8px}.bw-tabs::-webkit-scrollbar{display:none}
.bw-tabs button{flex:none;display:flex;align-items:center;gap:8px;border:0;background:#F1F4F9;border-radius:16px;padding:10px 14px;font-weight:800;color:var(--sub);cursor:pointer;transition:.25s}.bw-tabs button .ic{width:30px;height:30px}.bw-tabs button.on{background:var(--ink);color:#fff}
.bw-form{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;align-items:end}
.bw-form label{display:flex;flex-direction:column;gap:4px;background:#F7F9FC;border-radius:16px;padding:8px 12px;border:2px solid transparent;transition:.2s}.bw-form label:focus-within{border-color:var(--amber)}
.bw-form label span{font-size:10px;letter-spacing:2px;font-weight:800;color:var(--sub)}
.bw-form input,.bw-form select{border:0;background:none;font:700 16px 'Bricolage',sans-serif;color:var(--ink);outline:0;width:100%;padding:4px 0}
.bw-form .wide{grid-column:span 2}.bw-form .xl{grid-column:span 5}.bw-form .sm{grid-column:span 1}
.bw-go{grid-column:span 1;height:64px}.bw-note{grid-column:span 5;display:flex;flex-direction:column;gap:2px;padding:8px 4px}.bw-note b{font-size:18px}.bw-note span{color:var(--sub);font-weight:600}
@media(max-width:860px){.bw-form{grid-template-columns:1fr 1fr}.bw-form .wide,.bw-form .xl,.bw-go,.bw-note{grid-column:span 2}.bw-go{height:56px}}

/* ---------- service pages ---------- */
.sv-hero{background:radial-gradient(120% 90% at 20% 0%,#1C3254,#0F1D33 60%);color:#fff;border-radius:var(--r);padding:22px 22px 18px;position:relative;overflow:hidden;box-shadow:0 30px 60px -30px #10213Acc,inset 0 0 0 1px #2B4166;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}
.sv-hero:before{content:'';position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--c1,#2F7BFF),var(--c2,#12B8A6))}
.sv-hero:after{content:'';position:absolute;left:-30%;top:0;bottom:0;width:30%;background:linear-gradient(100deg,transparent,#FFC53D14 50%,transparent);animation:sweep 5.6s ease-in-out infinite;pointer-events:none}
.sv-inner{position:relative;z-index:1;min-width:0}.sv-hero .kicker{color:#7F96B6}.sv-hero .kicker:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c1,#12B8A6);margin-right:8px;animation:pulse 1.4s infinite;vertical-align:middle}
.sv-title,.sv-hero h1{font-size:clamp(28px,4.6vw,46px);margin:8px 0 6px;letter-spacing:-.04em}.sv-title em,.sv-hero h1 em{font-style:normal;color:var(--amber)}
.sv-lead{color:#C9D7EA;font-weight:600;max-width:620px;line-height:1.45;font-size:15px}
.sv-emoji{position:relative;z-index:1;width:112px;height:112px;border-radius:28px;background:#ffffff10;display:grid;place-items:center;box-shadow:inset 0 0 0 1px #ffffff22}.sv-emoji .ic{width:84px;height:84px;animation:bob 4s ease-in-out infinite;filter:drop-shadow(0 12px 16px #0006)}
.sv-widget{margin-top:-6px}.sv-results{display:flex;flex-direction:column;gap:12px}
.sv-loading{text-align:center;padding:30px;color:var(--sub);font-weight:700}.sv-empty{text-align:center;padding:26px;color:var(--sub);font-weight:600}.sv-empty span{display:block;margin-bottom:6px}.sv-empty .ic{width:64px;height:64px}
@media(max-width:700px){.sv-hero{grid-template-columns:1fr}.sv-emoji{display:none}}
.rs-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:8px 4px 0;flex-wrap:wrap}.rs-head h2{font-size:24px}
.rs-list{display:flex;flex-direction:column;gap:12px}.rs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.rc{background:#fff;border-radius:22px;padding:16px;box-shadow:0 16px 36px -24px #10213A66;animation:in .6s var(--spring) both;animation-delay:calc(var(--i,0)*.05s)}
.fl{display:grid;grid-template-columns:150px 1fr 170px;gap:16px;align-items:center}.fl-air{display:flex;align-items:center;gap:10px;font-weight:800}.fl-air img{height:30px}
.fl-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:6px 0}.fl-row b{font-size:20px;display:block}.fl-row span{color:var(--sub);font-weight:700;font-size:13px}
.fl-mid{display:flex;flex-direction:column;align-items:center;font-size:12px;font-weight:800;color:var(--sub)}.fl-mid i{width:100%;height:2px;background:#DDE4EE;margin:4px 0;position:relative}.fl-mid i:after{content:'';position:absolute;right:-6px;top:-11px;width:22px;height:22px;background:url(/icons/flight.svg) center/contain no-repeat}.fl-mid .ok{color:var(--mint)}.fl-mid .stop{color:var(--tomato)}
.fl-buy{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}.fl-buy b{font-size:26px}.fl-buy small{color:var(--sub);font-weight:700}
@media(max-width:860px){.fl{grid-template-columns:1fr}.fl-buy{align-items:flex-start;text-align:left}}
.ht{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:center}.ht img{width:110px;height:90px;object-fit:cover;border-radius:16px;background:#E6EEF8}.ht h3{font-size:18px}.ht-b{display:flex;justify-content:space-between;align-items:end;margin-top:6px}.ht-b b{font-size:22px}
.pc{display:flex;flex-direction:column;gap:8px}.pc img{width:100%;height:150px;object-fit:cover;border-radius:16px;background:#E6EEF8}.pc-em{height:150px;border-radius:16px;background:linear-gradient(140deg,#E6EEF8,#F7F9FC);display:grid;place-items:center}.pc-em .ic{width:70px;height:70px}.pc h3{font-size:18px}.pc-note{color:var(--sub);font-size:13px;line-height:1.45}.pc-link{color:var(--blue);font-weight:800;text-decoration:none}
.mf{display:flex;flex-direction:column;gap:10px}.mf fieldset{border:2px solid var(--line);border-radius:18px;padding:12px;display:flex;flex-direction:column;gap:8px}.mf legend{font-weight:800;padding:0 6px;color:var(--sub);font-size:13px}
.mf input,.mf select,.mf textarea{width:100%;font:600 15px 'Bricolage',sans-serif;padding:12px 14px;border-radius:14px;border:2px solid var(--line);background:#FBFCFE;outline:0}.mf input:focus,.mf select:focus,.mf textarea:focus{border-color:var(--amber)}
.mf-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mf-l{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:13px;color:var(--sub)}
.ideas{display:flex;flex-direction:column;gap:12px;margin-top:8px}.id-head{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:0 4px}.id-head h2{font-size:26px}.id-head h2 em{font-style:normal;color:var(--blue)}.id-head p{color:var(--sub);font-weight:600;font-size:14px}
.id-rail{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.idc{position:relative;overflow:hidden;text-align:left;border:0;cursor:pointer;min-height:150px;border-radius:24px;padding:18px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;background:radial-gradient(circle at 85% 15%,#ffffff40,transparent 45%),linear-gradient(140deg,var(--a),var(--b));box-shadow:0 20px 40px -24px var(--a);transition:transform .45s var(--spring),box-shadow .3s;text-decoration:none;font:inherit}
.idc:hover{transform:translateY(-6px) rotate(-1deg) scale(1.02)}.idc b{font-size:19px;letter-spacing:-.02em;line-height:1.1;max-width:72%}.idc small{font-weight:600;opacity:.9;font-size:13px}
.idc i{position:absolute;right:16px;bottom:16px;font-style:normal;width:36px;height:36px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;font-weight:800;transition:transform .4s}.idc:hover i{transform:translateX(3px) rotate(-45deg)}
.idc-e{position:absolute;right:14px;top:12px}.idc-e .ic,.idc-i{width:62px;height:62px;filter:drop-shadow(0 10px 14px #0003);transition:transform .6s var(--spring)}.idc:hover .idc-e .ic,.idc:hover .idc-i{transform:scale(1.15) rotate(8deg)}
@media(max-width:860px){.id-rail{grid-template-columns:1fr 1fr}}@media(max-width:520px){.id-rail{grid-template-columns:1fr}.idc{min-height:120px}}
.cc{display:inline-grid;place-items:center;min-width:1.9em;height:1.9em;padding:0 .3em;border-radius:.6em;font:800 .62em/1 'Bricolage',sans-serif;letter-spacing:.04em;color:#fff;background:linear-gradient(135deg,var(--blue),var(--teal));vertical-align:middle}

/* ---------- plans / esims / family / order ---------- */
.search-card{display:flex;flex-direction:column;gap:4px}
.card .top{display:flex;align-items:center;gap:10px;font-weight:800;font-size:16px}.card .flag{font-size:22px}
.card .row{justify-content:space-between;margin:8px 0}.gb{font-size:26px;font-weight:900;letter-spacing:-1px}.price{font-size:22px;font-weight:900;color:var(--blue)}
.card .btn{margin-top:10px;width:100%}.card .btn.sm{width:auto;margin:0}
.badge{display:inline-block;padding:4px 10px;border-radius:999px;background:#E6F7F4;color:#0B7F72;font-weight:800;font-size:12px;letter-spacing:.5px}.badge.gold{background:#FFF1C2;color:#8A5A00}
.bar{height:10px;border-radius:10px;background:#EEF2F8;overflow:hidden;margin:8px 0}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--blue));border-radius:10px}
.qr{display:grid;place-items:center;padding:10px;background:#fff;border-radius:18px}.qr canvas{max-width:100%;height:auto}
.member{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.member:last-child{border:0}
.av{width:42px;height:42px;border-radius:50%;background:conic-gradient(var(--amber),var(--tomato),var(--blue),var(--teal),var(--amber));display:grid;place-items:center;color:#fff;font-weight:900}
.filter{display:flex;gap:6px;flex-wrap:wrap}

/* ---------- how it works ---------- */
.phases{display:flex;flex-direction:column;gap:14px;counter-reset:ph}
.g-phase{background:#fff;border-radius:var(--r);padding:18px;box-shadow:0 24px 50px -28px #10213A66}
.g-ph{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-bottom:12px}.g-ph b{width:46px;height:46px;border-radius:14px;background:var(--ink);color:var(--amber);display:grid;place-items:center;font-size:18px}.g-ph h3{font-size:22px}.g-ph span{color:var(--sub);font-weight:700;font-size:13px}
.g-phase ul{list-style:none;display:flex;flex-direction:column;gap:10px}.g-phase li{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start}
.g-dot{width:12px;height:12px;border-radius:50%;background:var(--teal);margin-top:6px;box-shadow:0 0 0 4px #12B8A622}.g-phase li b{font-size:16px}.g-phase li p{color:var(--sub);font-size:14px;line-height:1.45;margin:2px 0 4px}.g-phase li a{color:var(--blue);font-weight:800;text-decoration:none;font-size:13px}
.g-cost{font-style:normal;font-size:11px;font-weight:800;background:#FFF1C2;color:#8A5A00;padding:2px 8px;border-radius:999px;margin-left:6px;vertical-align:middle}
.faq{display:flex;flex-direction:column;gap:10px}.faq details{background:#fff;border-radius:22px;box-shadow:0 16px 36px -28px #10213A66;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:18px 20px;font-weight:800;font-size:16px;display:flex;justify-content:space-between;gap:14px;align-items:center}.faq summary::-webkit-details-marker{display:none}
.faq summary i{width:30px;height:30px;flex:none;border-radius:50%;background:#FFF1C2;position:relative;transition:transform .35s}.faq summary i:before,.faq summary i:after{content:'';position:absolute;left:50%;top:50%;width:14px;height:3px;background:var(--ink);transform:translate(-50%,-50%);border-radius:2px}.faq summary i:after{transform:translate(-50%,-50%) rotate(90deg)}
.faq details[open] summary i{transform:rotate(45deg);background:var(--amber)}.faq details p{padding:0 20px 18px;color:#3E4E66;line-height:1.55}

/* ---------- AI planner ---------- */
.pl-wrap{display:flex;flex-direction:column;gap:14px}
.pl-progress{height:8px;border-radius:8px;background:#10213A14;overflow:hidden}.pl-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--blue));transform-origin:left;transform:scaleX(.25);transition:transform .8s var(--spring)}
.pl-steps{display:flex;flex-direction:column;gap:12px}
.pl-step{background:#fff;border-radius:var(--r);padding:22px;box-shadow:0 24px 50px -28px #10213A66;transition:.45s var(--ease)}
.pl-step:not(.on){opacity:.6;cursor:pointer;padding:14px 22px}.pl-step:not(.on):not(.done){display:none}.pl-step:not(.on)>:not(h2):not(.pl-n){display:none}.pl-step:not(.on) h2{font-size:16px}.pl-step.done h2:after{content:' ✓';color:var(--mint)}
.pl-n{font-weight:800;font-size:11px;letter-spacing:2.5px;color:var(--blue)}.pl-step h2{font-size:clamp(22px,3.4vw,32px);margin:6px 0 16px}
.pl-note{color:var(--sub);font-weight:600;margin:-6px 0 12px}.pl-note.shake{animation:shake .4s;color:var(--tomato)}@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.pl-loc{display:grid;grid-template-columns:auto 1fr;gap:0 12px;align-items:center;text-align:left;width:100%;padding:14px 16px;border-radius:20px;border:2px dashed var(--blue);background:#F0F6FF;cursor:pointer;margin-bottom:12px;font:inherit}.pl-loc .ic{grid-row:span 2;width:44px;height:44px}.pl-loc b{font-size:16px}.pl-loc small{color:var(--sub)}
.pl-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-bottom:16px}
.pl-chips button,.pl-vibes button{border:3px solid transparent;background:#F4F7FB;border-radius:20px;padding:14px 8px;cursor:pointer;font:inherit;display:flex;flex-direction:column;align-items:center;gap:4px;font-weight:800;transition:transform .35s var(--spring),background .2s,border-color .2s,box-shadow .3s}
.pl-chips button:hover,.pl-vibes button:hover{transform:translateY(-4px) rotate(-1.5deg)}
.pl-chips button.on,.pl-vibes button.on{background:#FFFBEA;border-color:var(--amber);transform:translateY(-6px) rotate(-1.5deg) scale(1.03);box-shadow:0 18px 30px -16px #FFB30088}
.pl-chips small{color:var(--sub);font-weight:700}.pl-chips.nights{grid-template-columns:repeat(4,1fr)}.pl-chips.nights b{font-size:28px}
.pl-steppers{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.pl-stepper{flex:1;min-width:220px;display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:10px;background:#F4F7FB;border-radius:22px;padding:12px 14px}.pl-stepper span .ic{width:40px;height:40px}.pl-stepper output{font-size:24px;font-weight:900;min-width:1.4em;text-align:center}
.pl-stepper button{width:44px;height:44px;border-radius:50%;border:0;background:var(--ink);color:#fff;font-size:22px;cursor:pointer}
.pl-date{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-weight:800}.pl-date input{font:800 18px 'Bricolage',sans-serif;padding:14px;border-radius:16px;border:2px solid var(--line);background:#FBFCFE}
.pl-vibes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.pl-vibes button{padding:16px 8px}.pl-vibes span .ic{width:52px;height:52px}
.pl-build{width:100%;font-size:18px}
.pl-loading{padding:16px 6px;text-align:center}.pl-loading h2{font-size:24px;margin:16px 0 6px}.pl-loading p{color:var(--sub);min-height:1.5em;font-weight:600}
.pl-orbit{position:relative;width:180px;height:180px;margin:0 auto}.pl-orbit img{position:absolute;inset:40px;width:100px;filter:drop-shadow(0 10px 20px #0004);animation:bob 2s ease-in-out infinite}
.pl-orbit i{position:absolute;left:50%;top:50%;margin:-17px;animation:orbit 3.2s linear infinite}.pl-orbit i .ic{width:34px;height:34px}.pl-orbit i:nth-of-type(2){animation-delay:-.8s}.pl-orbit i:nth-of-type(3){animation-delay:-1.6s}.pl-orbit i:nth-of-type(4){animation-delay:-2.4s}
@keyframes orbit{from{transform:rotate(0) translateX(84px) rotate(0)}to{transform:rotate(1turn) translateX(84px) rotate(-1turn)}}
.pl-bar{height:6px;border-radius:6px;background:#10213A14;overflow:hidden;margin-top:16px}.pl-bar i{display:block;height:100%;width:40%;background:linear-gradient(90deg,var(--teal),var(--blue));animation:indet 1.4s ease-in-out infinite}@keyframes indet{from{transform:translateX(-100%)}to{transform:translateX(250%)}}
.pl-demo{background:#FFF1C2;border:2px dashed var(--amber2);color:#7a4b00;font-weight:700;border-radius:16px;padding:10px 16px;text-align:center}
.pk-wrap{display:flex;flex-direction:column;gap:14px}.pk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
.pk{position:relative;background:#fff;border-radius:var(--r);padding:20px;box-shadow:0 24px 50px -28px #10213A66;display:flex;flex-direction:column;gap:12px;border:3px solid transparent;animation:in .7s var(--spring) both;animation-delay:calc(var(--i,0)*.1s)}
.pk.sweet{border-color:var(--amber)}.pk.luxe{background:radial-gradient(120% 90% at 20% 0%,#1C3254,#0F1D33 60%);color:#fff}.pk.luxe .pk-sec{background:#ffffff10}.pk.luxe .pk-items small,.pk.luxe .pk-price small,.pk.luxe header p,.pk.luxe .pk-days p{color:#C9D7EA}
.pk-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--amber);color:var(--ink);font-weight:800;font-size:11px;letter-spacing:2px;padding:6px 14px;border-radius:999px;white-space:nowrap}
.pk header{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center}.pk header h3{font-size:22px}.pk header p{grid-column:1/-1;color:var(--sub);line-height:1.4;font-size:14px}.pk-emoji .ic{width:48px;height:48px}
.pk-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.pk-price b{font-size:40px;letter-spacing:-2px;color:var(--blue)}.pk.luxe .pk-price b{color:var(--amber)}.pk-price span{font-weight:700}.pk-price small{flex-basis:100%;color:var(--sub);font-weight:600}
.pk-sec{background:#F4F7FB;border-radius:18px;padding:12px 14px}.pk-sec h4{font-size:14px;margin-bottom:8px;display:flex;align-items:center;gap:8px}.pk-sec h4 .ic{width:26px;height:26px}
.pk-fl{display:grid;grid-template-columns:auto auto 1fr auto auto;gap:8px;align-items:center;font-size:13px;padding:4px 0}.pk-fl i{height:2px;background:currentColor;opacity:.25;position:relative}.pk-fl i em{position:absolute;left:50%;top:-18px;transform:translateX(-50%);font-style:normal;font-size:10px;font-weight:800;color:var(--mint);opacity:1}.pk-fl i.stop em{color:var(--tomato)}
.pk-stay{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pk-stay img{width:52px;height:52px;border-radius:14px;object-fit:cover}.pk-stay span{color:var(--amber2)}
.pk-items{list-style:none;display:flex;flex-direction:column;gap:8px}.pk-items li{display:grid;grid-template-columns:auto 1fr;gap:0 10px;font-weight:700;font-size:14px}.pk-items li span{grid-row:span 2}.pk-items li span .ic{width:30px;height:30px}.pk-items small{color:var(--sub);font-weight:600}
.pk-days-btn{border:0;background:none;font:inherit;font-weight:800;color:var(--blue);cursor:pointer;text-align:left;padding:0}
.pk-days{display:none;list-style:none;border-left:3px dashed #2F7BFF55;margin-left:6px;padding-left:14px}.pk.open .pk-days{display:flex;flex-direction:column;gap:10px}.pk-days b{font-size:10px;letter-spacing:2px;color:var(--blue)}.pk-days strong{display:block}.pk-days p{font-size:13px;color:var(--sub);line-height:1.45}
.pk-book{width:100%;margin-top:auto}.pk.luxe .pk-book{background:var(--amber)!important;color:var(--ink)!important;box-shadow:0 5px 0 #D89B10!important}
.pk-hold{text-align:center;color:var(--sub);font-weight:600}.pk-hold a{color:var(--blue);font-weight:800}
.pk-extra{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pk-alert{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;align-items:start;background:linear-gradient(140deg,var(--teal),var(--blue));color:#fff;border-radius:var(--r);padding:20px}.pk-alert>span{grid-row:span 2}.pk-alert>span .ic{width:44px;height:44px}.pk-alert p{opacity:.9;margin-top:4px;font-size:14px}.pk-alert .mbtn{grid-column:2;justify-self:start;background:#fff!important;color:var(--ink)!important;box-shadow:none!important}
.pk-pack{background:#fff;border-radius:var(--r);padding:20px;box-shadow:0 24px 50px -28px #10213A66}.pk-pack h3{margin-bottom:10px;display:flex;align-items:center;gap:8px}.pk-pack ul,#tk-list{list-style:none;columns:2;gap:16px;padding:0}.pk-pack li,#tk-list li{break-inside:avoid;padding:5px 0}.pk-pack label,#tk-list label{display:flex;gap:8px;align-items:flex-start;cursor:pointer;font-size:14px;font-weight:600}.pk-pack input:checked+span,#tk-list input:checked+span{text-decoration:line-through;opacity:.5}
@media(max-width:980px){.pk-grid{grid-template-columns:1fr}.pk.sweet{order:-1}.pk-extra{grid-template-columns:1fr}.pl-vibes{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.pk-pack ul,#tk-list{columns:1}.pl-chips{grid-template-columns:repeat(3,1fr)}}

/* ---------- toolkit ---------- */
.tk-wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:16px;align-items:start}
.tk-card{background:#fff;border-radius:var(--r);padding:22px;box-shadow:0 24px 50px -28px #10213A66}.tk-card h2{font-size:24px;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.tk-in{display:flex;align-items:center;gap:10px;background:#F4F7FB;border-radius:18px;padding:6px 16px;font-weight:800;font-size:20px}.tk-in input{flex:1;border:0;background:none;font:800 30px 'Bricolage',sans-serif;padding:8px 0;width:100%;outline:0}
.tk-out{display:flex;align-items:baseline;justify-content:space-between;margin:14px 4px}.tk-out b{font-size:42px;letter-spacing:-2px;color:var(--blue)}.tk-out small{color:var(--sub);font-weight:700}
.tk-sel{display:flex;flex-direction:column;gap:6px;font-weight:700}.tk-sel select{font:600 15px 'Bricolage',sans-serif;padding:12px;border-radius:14px;border:2px solid var(--line);background:#FBFCFE}
.tk-verdict{margin-top:12px;border-radius:18px;display:flex;flex-direction:column;gap:2px;transition:.3s}.tk-verdict b{font-size:17px}.tk-verdict.ok,.tk-verdict.cheap{background:#E3F8EC;padding:14px 16px;color:#17663f}.tk-verdict.meh{background:#FFF1C2;padding:14px 16px;color:#7a4b00}.tk-verdict.bad{background:#FFE4DE;padding:14px 16px;color:#a3281a}
.tk-note{font-size:12px;color:var(--sub);margin-top:12px}
.tk-tags{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 16px}.tk-tags button{border:2px solid var(--line);background:#F4F7FB;border-radius:999px;padding:8px 14px;font:700 14px 'Bricolage',sans-serif;cursor:pointer;text-transform:capitalize}.tk-tags button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
@media(max-width:860px){.tk-wrap{grid-template-columns:1fr}}

/* ---------- server-rendered guide pages ---------- */
.pg{display:flex;flex-direction:column;gap:14px;counter-reset:step}
.pg>h2,.pg-faq h2{font-size:clamp(24px,3.6vw,34px);margin:22px 4px 2px}.pg>h2 small{display:block;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--blue);margin-bottom:4px;font-weight:800}.pg h2 em,.pg-faq h2 em{font-style:normal;color:var(--blue)}
.pg-crumbs{font-size:12px;font-weight:700;color:#7F96B6;margin-bottom:8px}.pg-crumbs a{color:#C9D7EA;text-decoration:none}.pg-crumbs i{font-style:normal;margin:0 6px}
.pg-ctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.pg-note{background:#FFF1C2;border:2px dashed var(--amber2);color:#7a4b00;border-radius:16px;padding:12px 16px;font-weight:700}.pg-note a{color:inherit}
.pg-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pg-facts div{background:#fff;border-radius:22px;padding:16px;box-shadow:0 20px 40px -28px #10213A66}.pg-facts span{display:block;font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:800;color:var(--sub)}.pg-facts b{font-size:19px}
.pg-go{display:flex;gap:10px;flex-wrap:wrap}
.pg-steps{list-style:none;display:flex;flex-direction:column;gap:10px;padding:0;position:relative}
.pg-steps li{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:start}
.pg-n{counter-increment:step;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-weight:900;font-size:18px;color:var(--amber);background:var(--ink)}.pg-n:before{content:counter(step,decimal-leading-zero)}
.pg-steps li>div{background:#fff;border-radius:22px;padding:16px 18px;box-shadow:0 20px 40px -28px #10213A66;transition:transform .4s var(--spring)}.pg-steps li:hover>div{transform:translateX(5px)}
.pg-steps h3{font-size:17px;margin-bottom:4px}.pg-steps p{color:#3E4E66;line-height:1.5;font-size:14px}
.pg-cost{font-style:normal;font-size:11px;font-weight:800;background:#FFF1C2;color:#8A5A00;padding:2px 8px;border-radius:999px;margin-left:6px;vertical-align:middle}
.pg-ext{display:inline-block;margin-top:6px;font-weight:800;color:var(--blue);text-decoration:none;font-size:13px}
.pg-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 20px 40px -28px #10213A66}.pg-table th{background:var(--ink);color:#fff;text-align:left;padding:12px 16px;font-size:11px;letter-spacing:2px;text-transform:uppercase}.pg-table td{padding:12px 16px;border-top:1px solid var(--line)}.pg-table tr:nth-child(even) td{background:#F7F9FC}.pg-table a{color:var(--tomato);text-decoration:none}
.pg-tick{list-style:none;columns:2;gap:20px;padding:0}.pg-tick li{break-inside:avoid;padding:7px 0 7px 32px;position:relative;line-height:1.4;font-weight:600}.pg-tick li:before{content:'';position:absolute;left:0;top:6px;width:22px;height:22px;border-radius:7px;background:var(--mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 12 4 4 8-9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.pg-cap{text-transform:capitalize;font-size:18px;margin:14px 4px 0}
.pg-faq details{background:#fff;border-radius:22px;margin-bottom:8px;box-shadow:0 16px 36px -28px #10213A66;overflow:hidden}.pg-faq summary{list-style:none;cursor:pointer;padding:16px 20px;font-weight:800;font-size:15px;display:flex;justify-content:space-between;gap:14px;align-items:center}.pg-faq summary::-webkit-details-marker{display:none}
.pg-faq summary i{font-style:normal;width:28px;height:28px;flex:none;border-radius:50%;background:#FFF1C2;display:grid;place-items:center;font-size:18px;transition:transform .35s}.pg-faq details[open] summary i{transform:rotate(45deg);background:var(--amber)}.pg-faq details p{padding:0 20px 16px;color:#3E4E66;line-height:1.55;font-size:14px}
.pg-cta{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:24px;border-radius:var(--r);color:#fff;background:radial-gradient(90% 120% at 100% 0%,#1C3254,var(--ink) 60%);margin-top:10px}.pg-cta h2{font-size:24px;margin-bottom:4px}.pg-cta h2 em{color:var(--amber)!important}.pg-cta p{color:#C9D7EA;max-width:520px;font-size:14px}.pg-cta-ico .ic{width:70px;height:70px;animation:bob 4s ease-in-out infinite}
.pg-hub{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px;background:#fff;border-radius:var(--r);padding:20px;box-shadow:0 24px 50px -28px #10213A66}.pg-hub b{display:block;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--blue);margin-bottom:8px}.pg-hub a{display:block;color:var(--ink);text-decoration:none;font-weight:600;padding:4px 0;font-size:14px;transition:transform .3s,color .2s}.pg-hub a:hover{color:var(--blue);transform:translateX(4px)}
.pg-legal{max-width:760px;background:#fff;border-radius:var(--r);padding:26px 30px;box-shadow:0 24px 50px -28px #10213A66}.pg-legal h2{font-size:19px;margin:18px 0 6px}.pg-legal h2:first-child{margin-top:0}.pg-legal p{line-height:1.6;color:#3E4E66;margin-bottom:8px;font-size:15px}
@media(max-width:860px){.pg-facts{grid-template-columns:1fr}.pg-cta{grid-template-columns:1fr}.pg-hub{grid-template-columns:1fr 1fr}.pg-tick{columns:1}}

/* partner cards */
.pc .ph{height:150px;border-radius:16px;background:#E6EEF8 center/cover no-repeat;display:grid;place-items:center;position:relative;overflow:hidden}.pc .ph .ic{width:64px;height:64px;opacity:.9}
.pc .feat{position:absolute;top:10px;left:10px;background:var(--amber);color:var(--ink);font-style:normal;font-weight:800;font-size:11px;letter-spacing:1.5px;padding:4px 10px;border-radius:999px}
.pc .ht-b{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0}.pc .ht-b>b{font-size:18px;letter-spacing:-.02em}.pc .ht-b>span{font-size:13px}.pc .ht-b p{color:var(--sub);font-size:14px;line-height:1.45}.pc .ht-b p b{color:var(--ink);font-size:18px}
.new{background:#E6F7F4;color:#0B7F72;font-weight:800;font-size:11px;padding:2px 8px;border-radius:999px}
@media(max-width:600px){.ab{gap:8px;padding:12px 14px}.ab-sp{display:none}.ab-text{flex:1 1 auto}.ab-text b{font-size:17px}.ab-round{width:42px;height:42px}.ab-round .ic{width:26px;height:26px}}

/* desktop: the tab bar lives in the app bar, centred, instead of floating over content */
@media(min-width:901px){
  body{padding-bottom:40px}
  .ab{min-height:76px}
  .tabs{top:14px;bottom:auto;padding:5px;border-radius:24px;gap:2px;background:#ffffffcc;border:1px solid #10213A14;box-shadow:0 10px 30px -14px #10213A55}
  .tabs a{display:flex;align-items:center;gap:7px;width:auto;padding:7px 14px 7px 9px;font-size:13px;border-radius:20px}
  .tabs a .ic{width:28px;height:28px;margin:0}
  .tabs a.on .ic{transform:scale(1.08)}
  .ind{top:5px;bottom:5px;left:5px;border-radius:20px}
}

/* keyboard focus + hover lift */
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:12px}
.tk,.q,.rc{transition:transform .35s var(--spring),box-shadow .35s}
@media(hover:hover){.tk:hover,.q:hover{transform:translateY(-4px)}.rc:hover{transform:translateY(-3px);box-shadow:0 24px 40px -18px #10213A55}}

.cur-toggle{display:inline-flex;gap:3px;margin-top:12px;padding:3px;border-radius:14px;background:#ffffff1f;border:1px solid #ffffff2e}
.cur-toggle button{border:0;background:none;color:#fff;font-weight:800;font-size:12px;padding:6px 12px;border-radius:11px;cursor:pointer;letter-spacing:.5px}.cur-toggle button.on{background:var(--amber);color:var(--ink)}
.pk-share{margin-top:8px}.link{background:none;border:0;color:var(--blue);font-weight:800;cursor:pointer;padding:8px 0;font-size:14px}

/* insurance */
.ins-wrap{display:flex;flex-direction:column;gap:16px}.ins-card{padding:0;overflow:hidden;min-height:220px}
.ins-frame{height:min(78vh,860px)}.ins-frame iframe{width:100%;height:100%;border:0;display:block;background:#fff}
.ins-soon{display:flex;gap:16px;align-items:flex-start;padding:22px}.ins-soon>.ic{width:64px;height:64px;flex:none}.ins-soon h3{margin:0 0 6px}.ins-soon .mbtn{margin-top:12px}
.ins-why .panel{display:flex;flex-direction:column;gap:8px}.ins-why .ic{width:40px;height:40px}.ins-why h3{margin:0}
.ins-legal{font-size:12px;padding:0 6px}
.ins-nudge{display:flex;gap:12px;align-items:center;background:#E4F8EC;border:1.5px solid #1DB36B;border-radius:18px;padding:12px 14px;margin:14px 0;text-align:left}.ins-nudge>.ic{width:44px;height:44px;flex:none}.ins-nudge div{flex:1}.ins-nudge p{margin:2px 0 0;font-size:13px}
.ins-pol{display:flex;gap:12px;align-items:center}.ins-pol>.ic{width:48px;height:48px;flex:none}
@media(max-width:700px){.ins-soon{flex-direction:column}.ins-nudge{flex-wrap:wrap}}

/* flight fares + extras */
.fl-fares{display:flex;gap:8px;flex-wrap:wrap;padding:10px 0 2px}.fl-fare{border:2px solid #E3E9F2;background:#fff;border-radius:14px;padding:8px 12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;min-width:120px;transition:.2s}.fl-fare b{font-size:13px}.fl-fare span{color:var(--blue);font-weight:800;font-size:13px}.fl-fare small{color:var(--sub);font-size:11px}.fl-fare.on{border-color:var(--amber);background:#FFF6DB}
.xwrap{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto;padding:4px 2px}.xwrap h3{margin:10px 0 2px;font-size:15px;letter-spacing:1px;text-transform:uppercase;color:var(--sub)}
.xr{display:flex;align-items:center;gap:12px;background:#F6F8FC;border-radius:14px;padding:10px 12px}.xr>div:first-child{flex:1;display:flex;flex-direction:column}.xr small{color:var(--sub);font-size:12px}.xr input{width:22px;height:22px;accent-color:var(--amber2)}
.xq{display:flex;align-items:center;gap:8px}.xq button{width:32px;height:32px;border-radius:50%;border:0;background:var(--ink);color:#fff;font-weight:900;cursor:pointer}.xq span{min-width:16px;text-align:center;font-weight:800}
.xseat h4{margin:6px 0}.xgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}.xs{height:38px;border-radius:9px;border:2px solid #E3E9F2;background:#fff;font-weight:800;font-size:12px;cursor:pointer}.xs.taken{background:#E3E9F2;color:#9AA8BC;cursor:not-allowed}.xs.on{background:var(--amber);border-color:var(--amber2)}
.xtotal{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;flex-wrap:wrap}.xtotal span{font-weight:700;color:var(--sub)}.xtotal b{color:var(--ink)}

/* nearby map */
.nb{display:flex;flex-direction:column;gap:14px}.nb-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.nb-types{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1;padding:2px}.nb-types::-webkit-scrollbar{display:none}
.nb-t{flex:none;display:flex;align-items:center;gap:6px;border:2px solid #E3E9F2;background:#fff;border-radius:20px;padding:6px 12px 6px 8px;font-weight:800;font-size:13px;cursor:pointer}.nb-t .ic{width:24px;height:24px}.nb-t.on{background:var(--amber);border-color:var(--amber2)}
.nb-map{padding:0;overflow:hidden;height:min(56vh,560px)}#nb-map{height:100%;width:100%}.leaflet-container{font-family:inherit;background:#E6F3FF}
.nb-pin{background:none;border:0}.nb-pin .ic{width:100%;height:100%;filter:drop-shadow(0 6px 10px #10213A66);transition:transform .25s var(--spring)}.nb-pin:hover .ic{transform:scale(1.15) translateY(-3px)}
.nb-me{background:none}.nb-me i{display:block;width:22px;height:22px;border-radius:50%;background:var(--blue);border:4px solid #fff;box-shadow:0 0 0 8px #2F7BFF33;animation:nbp 2s infinite}@keyframes nbp{0%{box-shadow:0 0 0 0 #2F7BFF55}100%{box-shadow:0 0 0 18px #2F7BFF00}}
.nb-noph{display:grid;place-items:center;background:linear-gradient(135deg,#BFE0FF,#E6F3FF)}.nb-noph .ic{width:64px;height:64px}
@media(max-width:700px){.nb-map{height:46vh}}
.nb-sec{display:flex;align-items:baseline;gap:10px;margin-top:6px}.nb-list{display:flex;flex-direction:column;gap:14px}
.leaflet-control-layers{border:0!important;border-radius:14px!important;box-shadow:0 10px 24px -10px #10213A66!important;font-weight:800;padding:6px 10px!important}.leaflet-control-layers label{margin:2px 0}.leaflet-control-attribution{font-size:10px;background:#ffffffcc!important}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 14px;border-radius:12px;z-index:100;font-weight:800}.skip:focus{left:8px}
.lbl h1{font:inherit;font-size:inherit;letter-spacing:inherit;margin:0;color:inherit}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}h1.as-h2{font-size:1.6rem;margin:0 0 6px}
