/*
Theme Name:   Britain Day Trips
Theme URI:    https://britaindaytrips.com/
Author:       Britain Day Trips
Description:  The Britain Day Trips front end. Carries the stylesheet from the original static site unchanged, so the WordPress build renders identically to britaindaytrips.com. Requires the BDT Core plugin for the tour post types and the /zh/ URL structure.
Version:      1.0.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
License:      GPL-2.0-or-later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  bdt
Tags:         travel, custom-colors, custom-menu, responsive-layout
*/

/* ---------------------------------------------------------------------------
   Everything below this line is the stylesheet from the static site, copied
   without edits. Keeping it byte-identical is what makes the WordPress pages
   indistinguishable from the pages Google has already indexed, and it means a
   CSS fix made in one place still applies to both while the two run side by
   side. WordPress-specific rules go in wp.css, enqueued after this file.
   --------------------------------------------------------------------------- */

:root{
  --chalk:#F6F8F9; --paper:#FFFFFF; --ink:#0F1E2B; --muted:#586775; --rule:#DCE3E8;
  --channel:#0B2A44; --downs:#2F6E4E; --downs-soft:#E3F0E8; --pier:#D2452F; --pier-dark:#B23522; --sun:#F4C542;
  --display:"Archivo","Arial Narrow",system-ui,sans-serif;
  --body:"Instrument Sans","Segoe UI",system-ui,sans-serif;
  --cn:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --r:14px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--chalk);color:var(--ink);font:16px/1.6 var(--body);margin:0}
img{display:block;max-width:100%}
a{color:inherit}
.gut{padding-inline:16px}
.wrap{max-width:1180px;margin:0 auto}
h1,h2,h3{font-family:var(--display);font-stretch:112%;line-height:1.05;margin:0;text-wrap:balance;letter-spacing:-.01em}
h2{font-size:clamp(1.6rem,3.2vw,2.3rem);font-weight:800}
h3{font-size:1.15rem;font-weight:700;font-stretch:100%}
p{margin:0}
.eyebrow{font:700 .74rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--downs)}
:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* top bar */
.bar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.bar .wrap{display:flex;align-items:center;gap:20px;min-height:64px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font:800 1.12rem/1 var(--display);font-stretch:118%;color:var(--channel)}
.logo svg{width:34px;height:34px;flex:none}
.nav{display:flex;gap:18px;margin-left:auto;font-weight:600;font-size:.94rem}
.nav a{text-decoration:none;color:var(--muted);white-space:nowrap}
.nav a[aria-current="page"],.nav a:hover{color:var(--channel)}
.lang{border:1px solid var(--rule);border-radius:99px;padding:6px 12px;font:600 .85rem var(--body);text-decoration:none}
@media (max-width:720px){.nav .hide-s{display:none}.nav{gap:12px}.bar .wrap{gap:10px}.logo{font-size:1rem}}
/* The nav carries different labels in each language, and Chinese runs shorter or
   longer than the English. Rather than tune it per label, let the bar itself
   scroll: whatever is in it, the page never goes sideways. */
@media (max-width:560px){
  .nav{gap:10px;font-size:.88rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;
       -webkit-overflow-scrolling:touch;max-width:100%}
  .nav::-webkit-scrollbar{display:none}
  .lang{padding:6px 10px;flex:0 0 auto}
}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--pier);color:#fff;border:0;border-radius:10px;padding:14px 22px;font:700 1rem var(--body);text-decoration:none;cursor:pointer;transition:background .15s,transform .15s}
.btn:hover{background:var(--pier-dark);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--channel);border:1.5px solid var(--channel)}
.btn.ghost:hover{background:var(--channel);color:#fff}
.btn.block{width:100%}

/* views */

/* home hero */
.hero{position:relative;color:#fff;background:var(--channel)}
.hero img{width:100%;height:clamp(420px,62vw,640px);object-fit:cover;object-position:center 60%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(8,26,44,.86) 0%,rgba(8,26,44,.55) 42%,rgba(8,26,44,0) 72%)}
.hero .copy{position:absolute;inset:0;z-index:1;display:flex;align-items:center}
.hero .copy .wrap{width:100%}
.hero .inner{max-width:600px;display:grid;gap:18px}
.hero h1{font-size:clamp(2.3rem,6vw,4.4rem);font-weight:800;font-stretch:118%}
.hero h1 em{font-style:normal;color:var(--sun)}
.hero .lede{font-size:1.12rem;color:#DDE8F0;max-width:46ch}
.hero .eyebrow{color:var(--sun)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.hero .btn.ghost{color:#fff;border-color:rgba(255,255,255,.7)}
.proof{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.9rem;color:#DDE8F0}
.proof span::before{content:"✓ ";color:var(--sun);font-weight:700}

section.band{padding-block:64px}
.head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px;margin-bottom:26px}
.head p{color:var(--muted);max-width:52ch}

/* tour cards */
.cards{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.card{background:var(--paper);border-radius:var(--r);overflow:hidden;border:1px solid var(--rule);display:flex;flex-direction:column;text-decoration:none;transition:transform .2s,box-shadow .2s}
a.card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -16px rgba(11,42,68,.35)}
.card .ph{aspect-ratio:4/3;position:relative;background:var(--downs-soft)}
.card .ph{overflow:hidden}.card .ph img,.card .ph svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card .ph .tag{position:absolute;left:12px;top:12px}
.card .bd{padding:16px 18px 18px;display:grid;gap:8px;flex:1;align-content:start}
.card .meta{font-size:.85rem;color:var(--muted)}
.card .ft{display:flex;align-items:baseline;justify-content:space-between;margin-top:auto;padding-top:10px;border-top:1px solid var(--rule)}
.price{font:800 1.35rem/1 var(--display)}
.price small{font:500 .78rem var(--body);color:var(--muted);margin-right:4px}
.tag{display:inline-block;font:700 .72rem/1 var(--body);padding:6px 10px;border-radius:99px;background:var(--paper);color:var(--channel)}
.tag.live{background:var(--sun);color:var(--channel)}
.soon .ph{display:grid;place-items:center}
.soon .ph svg{opacity:.95}
.soon .price{color:var(--muted);font-size:1rem}

/* why */
.why{background:var(--channel);color:#fff}
.why .grid3{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.why h2{color:#fff}
.why .item{display:grid;gap:8px;border-top:2px solid var(--sun);padding-top:16px}
.why .item p{color:#C9D7E2}
.why .num{font:800 2.4rem/1 var(--display);font-stretch:118%;color:var(--sun)}

/* operator */
.split{display:grid;gap:36px;grid-template-columns:1.1fr 1fr;align-items:center}
@media (max-width:820px){.split{grid-template-columns:1fr}}
.split img{border-radius:var(--r);width:100%;aspect-ratio:16/10;object-fit:cover}
.split .txt{display:grid;gap:14px}
.split .txt p{color:var(--muted)}

/* guides */
.guides{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.guide{background:var(--paper);border:1px solid var(--rule);border-radius:12px;padding:18px;display:grid;gap:6px;text-decoration:none}
.guide:hover{border-color:var(--downs)}
.guide .k{font:600 .78rem var(--body);color:var(--downs)}

/* faq */
details{border-bottom:1px solid var(--rule);padding-block:14px}
summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:12px}
summary::after{content:"+";font:700 1.3rem/1 var(--display);color:var(--downs)}
details[open] summary::after{content:"–"}
details p{margin-top:8px;color:var(--muted);max-width:70ch}

footer{background:#081A2C;color:#A9BBCB;padding-block:44px 90px;font-size:.9rem}
footer .cols{display:grid;gap:26px;grid-template-columns:2fr 1fr 1fr}
@media (max-width:720px){footer .cols{grid-template-columns:1fr}}
footer h4{color:#fff;margin:0 0 8px;font:700 .95rem var(--body)}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
footer a{text-decoration:none}
.disclose{margin-top:26px;padding-top:18px;border-top:1px solid #1D3550;font-size:.82rem;max-width:90ch}

/* tour page */
.crumbs{font-size:.85rem;color:var(--muted);padding-block:18px 8px}
.crumbs a{text-decoration:none}
.tour-h{display:grid;gap:12px;padding-bottom:18px}
.tour-h h1{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:800}
.facts{display:flex;flex-wrap:wrap;gap:8px}
.fact{display:inline-flex;align-items:center;gap:6px;background:var(--paper);border:1px solid var(--rule);border-radius:99px;padding:6px 12px;font-size:.88rem;font-weight:600}
.fact svg{width:16px;height:16px;color:var(--downs)}
.gallery{display:grid;gap:8px;grid-template-columns:2fr 1fr 1fr;grid-template-rows:200px 200px;border-radius:var(--r);overflow:hidden}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery .g1{grid-row:span 2}
.gallery .g4{grid-column:span 2}
@media (max-width:720px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:220px 130px 130px}.gallery .g1{grid-column:span 2;grid-row:auto}.gallery .g4{grid-column:span 2}}
.cap{font-size:.78rem;color:var(--muted);margin-top:6px}
.layout{display:grid;gap:40px;grid-template-columns:minmax(0,1fr) 340px;padding-block:32px 60px;align-items:start}
@media (max-width:920px){.layout{grid-template-columns:1fr}}
.content{display:grid;gap:40px}
.content section{display:grid;gap:14px}
.content h2{font-size:1.55rem}
.hl{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.hl li{display:grid;grid-template-columns:24px 1fr;gap:10px}
.hl li::before{content:"";width:22px;height:22px;border-radius:50%;background:var(--downs-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F6E4E' stroke-width='3'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center/14px no-repeat;margin-top:2px}
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:62px;top:8px;bottom:8px;width:2px;background:var(--rule)}
.timeline li{display:grid;grid-template-columns:52px 20px 1fr;gap:10px;padding-block:10px}
.timeline time{font:700 .9rem var(--display);font-variant-numeric:tabular-nums;color:var(--channel);padding-top:1px}
.timeline .dot{width:14px;height:14px;border-radius:50%;background:var(--paper);border:3px solid var(--downs);margin-top:4px;position:relative;z-index:1;justify-self:center}
.timeline .stop .dot{background:var(--downs)}
.timeline b{display:block}
.timeline span{color:var(--muted);font-size:.93rem}
.inc{display:grid;gap:18px;grid-template-columns:1fr 1fr}
@media (max-width:560px){.inc{grid-template-columns:1fr}}
.inc ul{margin:0;padding-left:1.1rem}
.inc .no li::marker{content:"✕  ";color:var(--pier)}
.inc .yes li::marker{content:"✓  ";color:var(--downs)}
.meet{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:18px;display:grid;gap:6px}
.todo{background:#FFF4D6;border-radius:6px;padding:1px 6px;font-size:.85em;font-weight:600;color:#7A5300}
.newtour{background:var(--downs-soft);border-radius:var(--r);padding:18px;display:grid;gap:6px}

.book{position:sticky;top:84px;background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:22px;display:grid;gap:14px;box-shadow:0 20px 40px -28px rgba(11,42,68,.45)}
.book .price{font-size:2.2rem}
.book ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.9rem}
.book li::before{content:"✓ ";color:var(--downs);font-weight:700}
.book .small{font-size:.78rem;color:var(--muted)}
.book .op{display:flex;gap:10px;align-items:center;border-top:1px solid var(--rule);padding-top:12px}
.book .op img{width:62px;height:44px;object-fit:cover;border-radius:6px}
@media (max-width:920px){.book{position:static}}

.mbar{display:none}
@media (max-width:920px){
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--paper);border-top:1px solid var(--rule);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -8px 24px -18px rgba(0,0,0,.4)}
  .mbar .price{font-size:1.4rem}
}
.cnp,.cnp h1,.cnp h2,.cnp h3{font-family:var(--cn)}
.cnp h1{font-stretch:100%;font-weight:900;letter-spacing:0}
.cnp h2{font-stretch:100%;font-weight:700}

.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:var(--channel);color:#fff;padding:12px 18px;border-radius:10px;font-size:.92rem;max-width:calc(100% - 32px);z-index:40;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.preview-note{background:#FFF4D6;color:#5C4000;font-size:.84rem;text-align:center;padding:8px 16px}

.logo img{width:34px;height:34px;flex:none}
.prose{max-width:720px;display:grid;gap:16px}
.prose h2{font-size:1.5rem;margin-top:14px}
.prose h3{margin-top:6px}
.prose ul,.prose ol{margin:0;padding-left:1.2rem;display:grid;gap:6px}
.prose table{border-collapse:collapse;width:100%;font-size:.95rem}
.prose th,.prose td{border-bottom:1px solid var(--rule);padding:8px 10px;text-align:left;vertical-align:top}
.tablewrap{overflow-x:auto}
.page-h{padding-block:28px 10px;display:grid;gap:12px}
.page-h h1{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:800}
.page-h p{color:var(--muted);max-width:62ch;font-size:1.08rem}
.figure{margin:0;display:grid;gap:6px}
.figure img{border-radius:var(--r);width:100%;height:auto}
.callout{background:var(--downs-soft);border-radius:var(--r);padding:18px;display:grid;gap:10px}
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:50;max-width:560px;margin-left:auto;background:var(--paper);border:1px solid var(--rule);border-radius:12px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.18);display:grid;gap:10px;font-size:.9rem}
.consent .row{display:flex;gap:10px;flex-wrap:wrap}
.consent .btn{padding:10px 16px;font-size:.9rem}
@media (max-width:920px){.consent{bottom:84px}}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:8px;z-index:99;background:#fff;padding:8px}
[hidden]{display:none!important}
.figure img{max-height:480px;object-fit:cover}
.enquiry{display:grid;gap:14px;background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:20px}
.enquiry label{display:grid;gap:6px;font-weight:600;font-size:.92rem;align-content:start}
.enquiry input,.enquiry textarea{font:inherit;font-weight:400;padding:10px 12px;border:1px solid var(--rule);border-radius:8px;background:var(--chalk);color:var(--ink);width:100%}
.enquiry .row2{display:grid;gap:14px;grid-template-columns:1fr 1fr}
@media (max-width:560px){.enquiry .row2{grid-template-columns:1fr}}
.enquiry button{justify-self:start}
.prose table .tag,.tablewrap .tag{background:var(--downs-soft);color:var(--channel);margin-bottom:6px}
.tablewrap table td:last-child{white-space:nowrap}
.tablewrap table td{min-width:88px}

/* ---------- phone tuning: readable text sizes and finger-friendly links ---------- */
@media (max-width:760px){
  .eyebrow{font-size:.8rem}
  .tag{font-size:.78rem;padding:6px 11px}
  .cap,.card .meta,.book .small,figcaption.cap{font-size:.85rem}
  .todo{font-size:.9em;padding:2px 7px}
  .crumbs{font-size:.9rem;line-height:2}
  .crumbs a{display:inline-block;padding-block:6px}
  footer{font-size:.95rem}
  footer ul li{margin:.1rem 0}
  footer ul a,footer .disclose a{display:inline-block;padding-block:8px;min-height:24px}
  .nav a{padding-block:10px}
  .lang{padding:10px 14px}
  .logo{gap:8px}
  .prose a,.content a,.guide,.pill{word-break:break-word}
  .prose p a,.content p a{padding-block:4px;display:inline-block}
  .hl li{line-height:1.7}
  .btn{padding:15px 22px;width:auto}
  .cta-row .btn{flex:1 1 auto;justify-content:center}
  .timeline::before{left:52px}
  .timeline li{grid-template-columns:44px 18px 1fr;gap:8px}
  .facts{gap:6px}
  .fact{font-size:.85rem}
  details summary{padding-block:4px}
  .enquiry input,.enquiry textarea{font-size:16px} /* stops iPhone zooming on focus */
  .mbar .btn{padding:14px 20px}
  .hero .lede{font-size:1.05rem}
  .book{padding:18px}
}
@media (max-width:420px){
  .gallery{grid-template-rows:200px 120px 120px}
  .hero img{height:clamp(380px,86vw,520px)}
}
@media (max-width:760px){
  footer .logo{display:inline-flex;align-items:center;min-height:44px}
  .tablewrap a{display:inline-block;padding-block:9px}
  .prose p a,.prose li a,.content p a,.content li a,.enquiry a{padding-block:8px}
}

/* ---------- phone: stack the hero, and give wide tables room to scroll ---------- */
@media (max-width:760px){
  .hero{background:var(--channel)}
  .hero::after{display:none}
  .hero img{height:clamp(240px,58vw,320px)}
  .hero .copy{position:static;padding-block:24px 30px}
  .hero .copy .wrap{width:100%}
  .hero .inner{max-width:none;gap:14px}
  .hero h1{font-size:clamp(2rem,8.4vw,2.6rem)}
  .hero .lede{max-width:none}
  .hero .proof{gap:6px 14px;font-size:.92rem}
  .tablewrap table{min-width:860px}
  .tablewrap{position:relative}
  .tablewrap::after{content:"Swipe to see the whole table →";display:block;font-size:.8rem;color:var(--muted);padding-top:6px}
}

/* ---------- coach fleet gallery ---------- */
.fleet{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start}
.fleet-card{margin:0;background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.fleet-card img{width:100%;height:230px;object-fit:cover;display:block}
@media (max-width:760px){.fleet-card img{height:200px}}
.fleet-card figcaption{padding:14px 16px;display:grid;gap:4px}
.fleet-card figcaption b{font:700 1rem/1.3 var(--body)}
.fleet-card figcaption span{font-size:.9rem;color:var(--muted)}

/* ---------- booking page ---------- */
.booking{display:grid;grid-template-columns:1fr 320px;gap:26px;align-items:start;padding-bottom:64px}
.booking .enquiry{max-width:none}
.booking h2{font-size:1.05rem;margin:22px 0 2px;padding-top:14px;border-top:1px solid var(--line)}
.booking h2:first-of-type{border-top:0;padding-top:0;margin-top:0}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.enquiry label.check{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-weight:400;font-size:.92rem}
.enquiry label.check input{width:20px;height:20px;margin-top:2px}
.enquiry .cap{font-weight:400;margin:4px 0 0}
.bsum{position:sticky;top:84px}
.bsum .sum-trip{font-weight:700;line-height:1.3;margin-bottom:10px}
dl.sum{display:grid;gap:8px;margin:0 0 12px}
dl.sum div{display:flex;justify-content:space-between;gap:12px;font-size:.9rem}
dl.sum dt{color:var(--muted);margin:0}
dl.sum dd{margin:0;text-align:right;font-weight:600}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);padding-top:12px;font-size:1.05rem}
.sum-total b{font-size:1.5rem}
@media (max-width:860px){.booking{grid-template-columns:1fr}.bsum{position:static;order:-1}.row3{grid-template-columns:1fr 1fr}}
.enquiry select{font:inherit;font-weight:400;padding:10px 12px;border:1px solid var(--rule);border-radius:8px;background:var(--chalk);color:var(--ink);width:100%}
.enquiry label>input,.enquiry label>select,.enquiry label>textarea{align-self:start}
#f-wheelchairs{max-width:180px}
@media (max-width:560px){.enquiry select{font-size:16px}}
.pax{display:grid;gap:6px}
.pax>b{font-size:.92rem}
.pax-row{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;font-weight:400;font-size:.9rem;margin-top:6px}
.pax-row span{color:var(--muted)}
.pax-row input.ro{background:var(--downs-soft);color:var(--muted)}
@media (max-width:560px){.pax-row{grid-template-columns:1fr;gap:4px}}

/* ---- destination video in the gallery ---------------------------------- */
.gallery .gvid{position:relative;overflow:hidden;background:var(--channel);min-height:0}
.gallery .gvid video{width:100%;height:100%;object-fit:cover;display:block}
.gvid-tag{position:absolute;left:10px;top:10px;z-index:2;
  display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;
  font:700 .68rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:#fff;
  background:rgba(11,42,68,.55);border:1px solid rgba(255,255,255,.3);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.gvid-btn{position:absolute;right:10px;bottom:10px;z-index:2;width:38px;height:38px;
  display:grid;place-items:center;border-radius:50%;cursor:pointer;color:#fff;
  background:rgba(11,42,68,.5);border:1px solid rgba(255,255,255,.34);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .15s}
.gvid-btn:hover{background:rgba(11,42,68,.78)}
.gvid-btn svg{width:17px;height:17px}
.gvid-btn .i-pause{display:none}
.gvid.is-playing .gvid-btn .i-play{display:none}
.gvid.is-playing .gvid-btn .i-pause{display:block}
@media (max-width:720px){.gvid-tag{left:8px;top:8px}.gvid-btn{right:8px;bottom:8px;width:34px;height:34px}}

/* ---- adaptive gallery (fewer than four images) -------------------------- */
.gallery.gal-1{grid-template-columns:1fr;grid-template-rows:clamp(260px,38vw,420px)}
.gallery.gal-1 .g1{grid-row:auto}
.gallery.gal-2{grid-template-columns:2fr 1fr;grid-template-rows:clamp(240px,32vw,400px)}
.gallery.gal-2 .g1{grid-row:auto}
.gallery.gal-3{grid-template-columns:2fr 1fr;grid-template-rows:170px 170px}
.gallery.gal-3 .g1{grid-row:span 2}
@media (max-width:720px){
  .gallery.gal-2,.gallery.gal-3{grid-template-columns:1fr 1fr;grid-template-rows:220px 130px}
  .gallery.gal-2 .g1,.gallery.gal-3 .g1{grid-column:span 2;grid-row:auto}
  .gallery.gal-1{grid-template-rows:230px}
}

/* ---- home hero slider --------------------------------------------------- */
.hs{position:relative;background:var(--channel);overflow:hidden}
.hs::after{content:none}
.hs-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}
.hs-track::-webkit-scrollbar{display:none}
.hs-slide{position:relative;flex:0 0 100%;min-width:100%;scroll-snap-align:start;scroll-snap-stop:always;color:#fff}
.hs-slide img{width:100%;height:clamp(440px,62vw,640px);object-fit:cover;object-position:center 52%;display:block}
.hs-slide::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(8,26,44,.90) 0%,rgba(8,26,44,.62) 44%,rgba(8,26,44,.08) 78%)}
.hs-slide .copy{position:absolute;inset:0;z-index:1;display:flex;align-items:center}
.hs-slide .copy .wrap{width:100%}
.hs-slide .inner{max-width:620px;display:grid;gap:16px}
.hs-slide h1,.hs-slide .h1{font-size:clamp(2.05rem,5vw,3.7rem);font-weight:800;font-stretch:118%;line-height:1.04;margin:0}
.hs-slide h1 em,.hs-slide .h1 em{font-style:normal;color:var(--sun)}
.hs-slide .lede{font-size:1.06rem;color:#DDE8F0;max-width:44ch}
.hs-slide .eyebrow{color:var(--sun)}
.hs-slide .btn.ghost{color:#fff;border-color:rgba(255,255,255,.7)}
.hs-price{display:inline-flex;align-items:baseline;gap:6px;font:800 1.5rem/1 var(--display);color:#fff}
.hs-price small{font:600 .78rem/1 var(--body);color:#C9DAE6;text-transform:uppercase;letter-spacing:.06em}
.hs-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.88rem;color:#C9DAE6}
.hs-meta span::before{content:"✓ ";color:var(--sun);font-weight:700}
.hs-ui{position:absolute;left:0;right:0;bottom:18px;z-index:3;pointer-events:none}
.hs-ui .wrap{display:flex;align-items:center;justify-content:space-between;gap:14px}
.hs-dots{display:flex;gap:7px;pointer-events:auto}
.hs-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.42);transition:background .2s,width .2s}
.hs-dots button[aria-current="true"]{background:var(--sun);width:26px;border-radius:5px}
.hs-arrows{display:flex;gap:8px;pointer-events:auto}
.hs-arrows button{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.45);
  background:rgba(8,26,44,.45);color:#fff;display:grid;place-items:center;cursor:pointer;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s}
.hs-arrows button:hover{background:rgba(8,26,44,.75)}
.hs-arrows svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.2}
.hs:focus-within .hs-arrows button,.hs-arrows button:focus-visible{outline:2px solid var(--sun);outline-offset:2px}
@media (max-width:720px){
  .hs-slide img{height:clamp(520px,118vw,620px);object-position:center 42%}
  .hs-slide h1,.hs-slide .h1{font-size:clamp(1.75rem,7.2vw,2.35rem)}
  .hs-slide .lede{font-size:.98rem;max-width:none}
  .hs-slide .inner{max-width:none;gap:11px}
  .hs-meta{gap:5px 14px;font-size:.84rem}
  .hs-slide::after{background:linear-gradient(to top,rgba(8,26,44,.94) 8%,rgba(8,26,44,.60) 52%,rgba(8,26,44,.22) 100%)}
  .hs-slide .copy{align-items:flex-end;padding-bottom:62px}
  .hs-arrows{display:none}
  .hs-ui .wrap{justify-content:center}
}
@media (prefers-reduced-motion:reduce){.hs-track{scroll-behavior:auto}}

/* ---- "photo coming" placeholder: better than a picture of somewhere else --- */
.ph-soon{display:grid;place-items:center;align-content:center;gap:7px;width:100%;height:100%;
  min-height:170px;padding:18px;text-align:center;color:var(--muted);
  background:linear-gradient(135deg,#E9F0F4 0%,#DCE6ED 60%,#D3E0E8 100%)}
.ph-soon b{font:700 1rem/1.25 var(--display);color:var(--channel)}
.ph-soon span{font-size:.74rem;letter-spacing:.04em;text-transform:uppercase}
.ph-soon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.5;opacity:.55}
.gallery .ph-soon{min-height:0}

/* ---- package gallery (big + four thumbs, like the marketplaces) ---------- */
.pgal{display:grid;gap:8px;grid-template-columns:2fr 1fr 1fr;grid-template-rows:190px 190px;
  border-radius:var(--r);overflow:hidden;position:relative}
.pgal button{padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden;display:block}
.pgal img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.pgal button:hover img{transform:scale(1.04)}
.pgal .pg1{grid-row:span 2}
.pgal .more{position:absolute;right:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:7px;
  font:600 .84rem var(--body);background:rgba(255,255,255,.94);color:var(--channel);
  border:1px solid rgba(11,42,68,.14);border-radius:999px;padding:8px 14px;cursor:pointer;
  box-shadow:0 2px 10px rgba(11,29,48,.16)}
.pgal .more:hover{background:#fff}
.pgal .more svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
@media (max-width:760px){
  .pgal{grid-template-columns:1fr 1fr;grid-template-rows:200px 110px}
  .pgal .pg1{grid-column:span 2;grid-row:auto}
  .pgal .pg4,.pgal .pg5{display:none}
}
.lbox{position:fixed;inset:0;z-index:80;background:rgba(6,16,26,.93);display:none;
  grid-template-rows:auto 1fr;padding:14px}
.lbox[open],.lbox.on{display:grid}
.lbox .lb-top{display:flex;justify-content:space-between;align-items:center;color:#fff;gap:12px}
.lbox .lb-top span{font:600 .88rem var(--body);color:#C9DAE6}
.lbox .lb-x{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.4);
  background:transparent;color:#fff;font-size:1.1rem;line-height:1;cursor:pointer}
.lbox .lb-body{display:grid;place-items:center;min-height:0;position:relative}
.lbox .lb-body img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.lbox .lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;
  border:1px solid rgba(255,255,255,.4);background:rgba(8,26,44,.6);color:#fff;cursor:pointer;
  display:grid;place-items:center}
.lbox .lb-prev{left:6px}.lbox .lb-next{right:6px}
.lbox .lb-nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2}

/* ---- marketplace-style package detail blocks ---------------------------- */
.qfacts{display:grid;gap:14px 26px;grid-template-columns:1fr 1fr;padding:20px 0;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-block:22px}
.qfacts .qf{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start}
.qfacts .ic{width:38px;height:38px;border-radius:10px;background:var(--downs-soft);
  display:grid;place-items:center;color:var(--downs)}
.qfacts .ic svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8}
.qfacts b{display:block;font-size:.95rem}
.qfacts span{font-size:.86rem;color:var(--muted)}
@media (max-width:620px){.qfacts{grid-template-columns:1fr}}

.itin2{list-style:none;margin:0;padding:0;position:relative}
.itin2 li{display:grid;grid-template-columns:26px 1fr;gap:14px;padding-bottom:18px;position:relative}
.itin2 li::before{content:"";position:absolute;left:12px;top:24px;bottom:-2px;width:2px;background:var(--rule)}
.itin2 li:last-child::before{display:none}
.itin2 .pin{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  background:var(--paper);border:2px solid var(--rule);color:var(--muted);z-index:1}
.itin2 .pin svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2}
.itin2 .main .pin{background:var(--downs);border-color:var(--downs);color:#fff}
.itin2 .main::before{background:var(--downs);width:3px;left:11.5px}
.itin2 .travel .pin{border-style:dashed}
.itin2 b{display:block;font-size:.98rem;line-height:1.35}
.itin2 .sub{font-size:.87rem;color:var(--muted)}
.itin2 time{font:700 .82rem var(--display);color:var(--channel);font-variant-numeric:tabular-nums;
  display:inline-block;margin-right:8px}
.itin-key{display:flex;align-items:center;gap:7px;font-size:.8rem;color:var(--muted);margin-top:4px}
.itin-key i{width:13px;height:13px;border-radius:50%;background:var(--downs);display:inline-block}

.meet{display:grid;gap:18px;grid-template-columns:1fr 1fr;align-items:start}
@media (max-width:760px){.meet{grid-template-columns:1fr}}
.meet .addr{display:grid;gap:8px;align-content:start}
.meet .addr p{margin:0}
.meet-map{display:block;border-radius:var(--r);overflow:hidden;border:1px solid var(--rule);
  background:var(--wash);padding:20px;text-decoration:none;color:inherit;display:grid;gap:8px;
  place-items:center;text-align:center;min-height:150px;align-content:center}
.meet-map:hover{border-color:var(--downs)}
.meet-map svg{width:30px;height:30px;fill:none;stroke:var(--downs);stroke-width:1.6}
.meet-map b{font-size:.92rem}
.meet-map span{font-size:.82rem;color:var(--muted)}

.trust{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.trust .t{display:grid;gap:6px;padding:18px;border:1px solid var(--rule);border-radius:var(--r);
  background:var(--card)}
.trust .t svg{width:22px;height:22px;fill:none;stroke:var(--downs);stroke-width:1.7}
.trust .t b{font-size:.96rem}
.trust .t span{font-size:.87rem;color:var(--muted)}

.ticketing{display:flex;flex-wrap:wrap;gap:12px 28px}
.ticketing .tk{display:flex;align-items:center;gap:9px;font-size:.92rem;font-weight:600}
.ticketing .tk svg{width:19px;height:19px;fill:none;stroke:var(--downs);stroke-width:1.8;flex:none}

.provider{font-size:.85rem;color:var(--muted);border-top:1px solid var(--rule);padding-top:16px;
  display:grid;gap:4px}
.provider b{color:var(--ink);font-weight:600}
