/* shared extras: trip finder, FAQ, destination popup, footer, floating buttons. Themed by --x-* / --f-* vars from each design */
.xbar{position:fixed;top:0;left:0;right:0;height:3px;background:var(--x-acc);transform:scaleX(0);transform-origin:0 50%;z-index:90}
.xwa,.xtop{position:fixed;right:18px;z-index:80;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.28);border:0;cursor:pointer;transition:transform .2s,opacity .3s}
.xwa{bottom:18px;background:#25D366}.xwa:hover,.xtop:hover{transform:scale(1.08)}
.xtop{bottom:84px;background:var(--x-acc);color:var(--x-acc-ink);font-size:22px;opacity:0;pointer-events:none}.xtop.show{opacity:1;pointer-events:auto}
.xp{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(24px,4vw,56px);margin-top:48px;align-items:start}
.xp-ctl{display:grid;gap:22px;background:var(--x-alt);border:1px solid var(--x-line);border-radius:var(--x-r);padding:clamp(22px,3vw,34px)}
.xg{display:grid;gap:10px;font-size:14px;color:var(--x-mute)}.xg b{color:var(--x-ink)}
.xg select{font:inherit;color:var(--x-ink);background:var(--x-bg);border:1px solid var(--x-line);border-radius:10px;padding:12px 14px}
.xg select option{color:#000}.xg input[type=range]{accent-color:var(--x-acc);width:100%}
.xchips{display:flex;flex-wrap:wrap;gap:8px}.xchips button{font:500 14px var(--x-font),system-ui;color:var(--x-ink);background:transparent;border:1px solid var(--x-line);padding:9px 18px;border-radius:99px;cursor:pointer;transition:.2s}
.xchips button:hover{border-color:var(--x-acc)}.xchips button.on{background:var(--x-acc);color:var(--x-acc-ink);border-color:var(--x-acc)}
.xp-out{display:grid;gap:18px}#xsum{margin:0;font-size:clamp(17px,1.6vw,20px);color:var(--x-ink);line-height:1.5}
.xres{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.xr{display:flex;gap:12px;align-items:center;text-align:left;background:var(--x-alt);border:1px solid var(--x-line);border-radius:calc(var(--x-r) * .7);padding:8px;cursor:pointer;color:var(--x-ink);font:inherit;transition:.25s;animation:xin .4s both}
.xr:hover{border-color:var(--x-acc);transform:translateY(-3px)}.xr img{width:58px;height:58px;object-fit:cover;border-radius:10px;flex:none}.xr b{display:block;font-size:16px}.xr small{display:block;font-size:12px;color:var(--x-mute);line-height:1.35}
.xp-out .btn{justify-self:start}@keyframes xin{from{opacity:0;transform:translateY(10px)}}
.xf{margin-top:44px;max-width:860px;border-top:1px solid var(--x-line)}.xf details{border-bottom:1px solid var(--x-line)}
.xf summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-size:clamp(17px,1.8vw,21px);font-weight:600;color:var(--x-ink)}.xf summary::-webkit-details-marker{display:none}
.xf i{flex:none;width:20px;height:20px;position:relative}.xf i::before,.xf i::after{content:"";position:absolute;left:2px;right:2px;top:9px;height:2px;background:var(--x-acc);transition:.3s}.xf i::after{transform:rotate(90deg)}.xf details[open] i::after{transform:none}
.xf p{margin:0;padding:0 0 24px;max-width:62ch;color:var(--x-mute)}
#dm{width:min(880px,92vw);max-height:90vh;padding:0;border:0;border-radius:var(--x-r);background:var(--x-bg);color:var(--x-ink);overflow:hidden;font-family:var(--x-font),system-ui,sans-serif}
#dm[open]{display:grid;grid-template-columns:1fr 1.1fr;animation:xpop .35s cubic-bezier(.2,.8,.2,1)}
#dm::backdrop{background:rgba(5,10,20,.72);backdrop-filter:blur(4px)}@keyframes xpop{from{opacity:0;transform:translateY(20px) scale(.97)}}
#dm img{width:100%;height:100%;min-height:320px;object-fit:cover}.dm-b{padding:clamp(22px,3vw,40px);display:grid;gap:14px;align-content:center}
.dm-b h3{margin:0;font-size:clamp(28px,3.4vw,42px);line-height:1.05;color:var(--x-ink)}.dm-b p{margin:0;color:var(--x-mute)}
.dm-b dl{margin:0;display:grid;gap:10px}.dm-b dl div{display:flex;gap:14px;border-top:1px solid var(--x-line);padding-top:10px;font-size:15px}.dm-b dt{flex:0 0 90px;color:var(--x-mute)}.dm-b dd{margin:0;color:var(--x-ink)}
.dm-b .btn{justify-self:start;margin-top:6px}
.dm-x{position:absolute;top:10px;right:12px;z-index:2;width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:24px;line-height:1;cursor:pointer}
footer.ft{display:block;padding:clamp(56px,7vw,90px) 5vw 26px;border:0;background:var(--f-bg,#0A2236);color:#b9c4d4;font-size:15px}
.ft-in{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.4fr;gap:clamp(24px,4vw,56px)}
.ft img{height:56px;width:auto;margin-bottom:16px}.ft p{margin:0}.ft-brand p{max-width:34ch;line-height:1.65}
.ft h4{margin:0 0 16px;color:#fff;font-size:16px}.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.ft a{margin:0;transition:color .2s}.ft a:hover{color:var(--x-acc)}
.ft-soc{display:flex;gap:10px;margin-top:20px}.ft-soc a{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.25);display:grid;place-items:center;font-weight:600;font-size:14px;color:#fff}.ft-soc a:hover{background:var(--x-acc);color:var(--x-acc-ink);border-color:var(--x-acc)}
.ft-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:clamp(36px,5vw,64px);padding-top:22px;border-top:1px solid rgba(255,255,255,.14);font-size:13.5px}
@media(max-width:900px){.xp,#dm[open]{grid-template-columns:1fr}#dm img{min-height:0;height:220px}.ft-in{grid-template-columns:1fr 1fr}.ft-brand{grid-column:1/-1}}
@media(max-width:520px){.ft-in{grid-template-columns:1fr}}
.x-sub{margin:16px 0 0;color:var(--x-mute);max-width:56ch}
.it{display:grid;grid-template-columns:.8fr 1.4fr;gap:clamp(24px,4vw,56px);margin-top:44px;align-items:start}
.it-tabs{display:grid;gap:12px;position:sticky;top:90px}
.it-tabs button{display:flex;gap:14px;align-items:center;text-align:left;padding:10px;background:var(--x-alt);border:1px solid var(--x-line);border-radius:calc(var(--x-r) * .8);color:var(--x-ink);font:inherit;cursor:pointer;transition:.25s}
.it-tabs button:hover{border-color:var(--x-acc);transform:translateX(4px)}.it-tabs button.on{background:var(--x-acc);color:var(--x-acc-ink);border-color:var(--x-acc);transform:translateX(8px)}
.it-tabs img{width:64px;height:64px;object-fit:cover;border-radius:12px;flex:none}.it-tabs b{display:block;font-size:17px}.it-tabs small{opacity:.8;font-size:13px}
.it-panel{display:none}.it-panel.on{display:block;animation:xin .45s both}
.it-hero{height:clamp(160px,22vw,240px);border-radius:var(--x-r);background:center/cover;position:relative;overflow:hidden}
.it-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(5,10,20,.8))}
.it-hero h3{position:absolute;z-index:1;left:22px;bottom:18px;margin:0;color:#fff;font-size:clamp(24px,3vw,36px);line-height:1.1}
.it-days{list-style:none;margin:28px 0 26px;padding:0 0 0 6px;position:relative}.it-days::before{content:"";position:absolute;left:23px;top:10px;bottom:10px;border-left:2px dashed var(--x-line)}
.it-days li{display:flex;gap:18px;padding:0 0 22px;position:relative;animation:xin .5s both;animation-delay:calc(var(--k) * 90ms)}
.it-days i{flex:none;width:36px;height:36px;border-radius:50%;background:var(--x-acc);color:var(--x-acc-ink);display:grid;place-items:center;font-style:normal;font-weight:700;font-size:14px;z-index:1;transition:transform .2s}
.it-days li:hover i{transform:scale(1.18)}.it-days b{display:block;color:var(--x-ink);font-size:18px;margin-top:5px}.it-days p{margin:2px 0 0;color:var(--x-mute);max-width:52ch}
.gl{columns:3 240px;column-gap:14px;margin-top:44px}
.gl button{display:block;width:100%;margin:0 0 14px;padding:0;border:0;border-radius:var(--x-r);overflow:hidden;position:relative;cursor:zoom-in;break-inside:avoid;background:var(--x-alt)}
.gl img{width:100%;height:auto;transition:transform .7s}.gl button:hover img{transform:scale(1.06)}
.gl span{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;color:#fff;font:600 16px var(--x-font),system-ui;text-align:left;background:linear-gradient(transparent,rgba(5,10,20,.82));transform:translateY(100%);transition:transform .35s}.gl button:hover span,.gl button:focus-visible span{transform:none}
#lb{width:100vw;height:100vh;max-width:none;max-height:none;border:0;padding:0;background:rgba(5,8,16,.94);color:#fff}
#lb[open]{display:grid;place-items:center;animation:xin .3s both}#lb figure{margin:0;display:grid;gap:12px;justify-items:center;padding:0 70px}
#lb img{max-width:min(92vw,1100px);max-height:80vh;object-fit:contain;border-radius:calc(var(--x-r) * .6)}#lb figcaption{font-size:18px}
#lb button{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;width:48px;height:48px;border-radius:50%;font-size:30px;line-height:1;cursor:pointer}#lb button:hover{background:var(--x-acc);color:var(--x-acc-ink)}
.lb-x{top:18px;right:18px}.lb-p{left:16px;top:50%}.lb-n{right:16px;top:50%}
@media(max-width:900px){.it{grid-template-columns:1fr}.it-tabs{position:static;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scrollbar-width:none}.it-tabs button.on,.it-tabs button:hover{transform:none}#lb figure{padding:0 12px}.lb-p,.lb-n{top:auto;bottom:18px}}

html,body{overflow-x:clip}
/* why us */
.wy{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:46px}
.wy-c{position:relative;overflow:hidden;background:var(--x-alt);border:1px solid var(--x-line);border-radius:var(--x-r);padding:30px 28px;transition:transform .3s,border-color .3s}
.wy-c::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .3s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--x-acc) 24%,transparent),transparent 70%);pointer-events:none}
.wy-c:hover{transform:translateY(-5px);border-color:var(--x-acc)}.wy-c:hover::before{opacity:1}
.wy-i{display:grid;place-items:center;width:48px;height:48px;border-radius:calc(var(--x-r) * .6);background:var(--x-acc);color:var(--x-acc-ink);font-size:22px;margin-bottom:20px;position:relative}
.wy-c h3{margin:0 0 8px;font-size:21px;color:var(--x-ink);position:relative}.wy-c p{margin:0;color:var(--x-mute);position:relative}
.wy-s{list-style:none;margin:40px 0 0;padding:28px 0 0;border-top:1px solid var(--x-line);display:grid;grid-template-columns:repeat(4,1fr);gap:20px;color:var(--x-mute);font-size:15px}
.wy-s b{display:block;font-size:clamp(34px,4.4vw,56px);line-height:1;letter-spacing:-.03em;color:var(--x-acc);margin-bottom:6px}.wy-s li:last-child b{font-size:clamp(26px,3vw,38px);padding-top:10px}
/* reviews */
.tm-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}.tm-meta{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.tm-avg{margin:0;color:var(--x-mute)}.tm-avg b{font-size:34px;color:var(--x-ink)}.tm-avg span{color:var(--x-acc);letter-spacing:2px}
.tm-note{padding:8px 14px;border:1px dashed var(--x-line);border-radius:10px;display:inline-block;font-size:14px}
.tm{margin-top:36px}.tm-view{overflow:hidden;margin:0 -10px}.tm-track{display:flex;transition:transform .6s cubic-bezier(.3,.8,.2,1);touch-action:pan-y}
.tm-s{flex:0 0 calc(100% / var(--per,1));margin:0;padding:0 10px}
.tm-card{height:100%;background:var(--x-alt);border:1px solid var(--x-line);border-radius:var(--x-r);padding:clamp(24px,3vw,38px);display:flex;flex-direction:column;gap:18px;position:relative}
.tm-card::before{content:"\201C";position:absolute;right:24px;top:6px;font:700 96px/1 Georgia,serif;color:var(--x-acc);opacity:.25}
.tm-st{color:var(--x-acc);letter-spacing:3px;font-size:18px}.tm-card blockquote{margin:0;font-size:clamp(17px,1.7vw,21px);line-height:1.55;color:var(--x-ink);flex:1}
.tm-card figcaption{display:flex;gap:14px;align-items:center}.tm-card figcaption b{display:block;color:var(--x-ink)}.tm-card small{color:var(--x-mute);font-size:14px}
.tm-av{width:46px;height:46px;border-radius:50%;background:var(--x-acc);color:var(--x-acc-ink);display:grid;place-items:center;font-weight:700;flex:none}
.tm-ctl{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:26px}
.tm-ctl>button{width:46px;height:46px;border-radius:50%;border:1px solid var(--x-line);background:transparent;color:var(--x-ink);font-size:20px;cursor:pointer;transition:.2s}.tm-ctl>button:hover{background:var(--x-acc);color:var(--x-acc-ink);border-color:var(--x-acc)}
.tm-dots{display:flex;gap:8px}.tm-dots button{width:9px;height:9px;padding:0;border:0;border-radius:99px;background:var(--x-line);cursor:pointer;transition:.3s}.tm-dots button.on{width:28px;background:var(--x-acc)}
#rvd{width:min(520px,92vw);padding:0;border:0;border-radius:var(--x-r);background:var(--x-bg);color:var(--x-ink);font-family:var(--x-font),system-ui,sans-serif}#rvd[open]{animation:xpop .35s both}#rvd::backdrop{background:rgba(5,10,20,.72);backdrop-filter:blur(4px)}
.rvf{display:grid;gap:14px;padding:clamp(22px,3vw,34px)}.rvf h3{margin:0;font-size:26px;color:var(--x-ink)}.rvf label{display:grid;gap:6px;font-size:14px;color:var(--x-mute)}
.rvf input,.rvf select,.rvf textarea{font:inherit;color:var(--x-ink);background:var(--x-alt);border:1px solid var(--x-line);border-radius:10px;padding:12px 14px}.rvf select option{color:#000}
.rvf input:focus,.rvf select:focus,.rvf textarea:focus{outline:2px solid var(--x-acc);border-color:transparent}.rvf .btn{justify-self:start}
.rv-st{display:flex;gap:4px}.rv-st button{background:none;border:0;font-size:32px;line-height:1;color:var(--x-line);cursor:pointer;padding:0 2px;transition:transform .15s,color .15s}.rv-st button:hover{transform:scale(1.2)}.rv-st button.on{color:var(--x-acc)}
@media(max-width:900px){.wy{grid-template-columns:1fr 1fr}.wy-s{grid-template-columns:1fr 1fr}}@media(max-width:560px){.wy{grid-template-columns:1fr}}
/* about us */
.xab{background:var(--x-alt)}
.ab{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,6vw,90px);align-items:center}
.ab-media{position:relative}.ab-main{position:relative;aspect-ratio:4/4.6;border-radius:var(--x-r);overflow:hidden;background:var(--x-bg)}
.ab-main img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .8s,transform 1.4s}.ab-main img.on{opacity:1;transform:none}
.ab-badge{position:absolute;right:-18px;bottom:28px;background:var(--x-acc);color:var(--x-acc-ink);padding:16px 22px;border-radius:calc(var(--x-r) * .7);box-shadow:0 14px 34px rgba(0,0,0,.28);display:grid;gap:2px;max-width:190px}
.ab-badge b{font-size:44px;line-height:1;letter-spacing:-.03em}.ab-badge span{font-size:13px;line-height:1.3}
.ab-intro{margin:18px 0 26px;color:var(--x-mute);max-width:52ch;font-size:clamp(16px,1.5vw,19px)}
.ab-tabs{display:flex;gap:8px;flex-wrap:wrap}.ab-tabs button{font:500 15px var(--x-font),system-ui;color:var(--x-ink);background:transparent;border:1px solid var(--x-line);padding:10px 20px;border-radius:99px;cursor:pointer;transition:.2s}
.ab-tabs button:hover{border-color:var(--x-acc)}.ab-tabs button.on{background:var(--x-acc);color:var(--x-acc-ink);border-color:var(--x-acc)}
.ab-panels{margin-top:24px;min-height:230px}.ab-p{display:none}.ab-p.on{display:block;animation:xin .45s both}
.ab-p>p{margin:0 0 14px;color:var(--x-ink);font-size:clamp(17px,1.6vw,20px);line-height:1.55;max-width:54ch}
.ab-l{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:10px;color:var(--x-mute)}.ab-l li{position:relative;padding-left:26px}
.ab-l li::before{content:"";position:absolute;left:0;top:.62em;width:12px;height:2px;background:var(--x-acc)}.ab-l a{color:var(--x-ink);border-bottom:1px solid var(--x-acc)}
.ab-bar{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;margin-top:clamp(40px,6vw,76px);padding-top:30px;border-top:1px solid var(--x-line)}
.ab-f{list-style:none;margin:0;padding:0;display:flex;gap:clamp(24px,5vw,64px);color:var(--x-mute);font-size:15px}
.ab-f b{display:block;font-size:clamp(36px,4.4vw,56px);line-height:1;letter-spacing:-.03em;color:var(--x-acc);margin-bottom:6px}
.ab-who{display:flex;gap:14px;align-items:center;background:var(--x-bg);border:1px solid var(--x-line);border-radius:var(--x-r);padding:14px 22px 14px 14px}
.ab-av{width:52px;height:52px;border-radius:50%;background:var(--x-acc);color:var(--x-acc-ink);display:grid;place-items:center;font-weight:700;font-size:20px}
.ab-who b{display:block;color:var(--x-ink)}.ab-who a{color:var(--x-mute)}.ab-who a:hover{color:var(--x-acc)}
@media(max-width:900px){.ab{grid-template-columns:1fr}.ab-main{aspect-ratio:16/11}.ab-badge{right:12px;bottom:-18px}.ab-panels{min-height:0}}
