:root{
  --ivory:#F4EEE1; --paper:#FCF9F2; --ink:#10302A; --ink2:#0A211C; --ink3:#06140F;
  --gold:#BE9B45; --gold-2:#DAC084; --gold-3:#F0E2BE; --terra:#AE542E; --terra-2:#C46A3E;
  --text:#26241F; --muted:#6E695E; --line:rgba(16,48,42,.13); --line-2:rgba(16,48,42,.08);
  --shadow:0 30px 70px -34px rgba(10,33,28,.5); --shadow-sm:0 12px 30px -16px rgba(10,33,28,.4);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;color:var(--text);background:var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased}
body.noscroll{overflow:hidden}
.abn-hold-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(8,24,20,.58);opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s}
.abn-hold-modal.is-open{opacity:1;visibility:visible}
.abn-hold-dialog{width:min(430px,100%);padding:32px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px rgba(0,0,0,.24);text-align:center;transform:translateY(12px);transition:transform .18s}
.abn-hold-modal.is-open .abn-hold-dialog{transform:none}
.abn-hold-icon{width:48px;height:48px;margin:0 auto 14px;display:grid;place-items:center;background:var(--ivory);border:1px solid rgba(190,155,69,.4);border-radius:50%;font-size:1.25rem}
.abn-hold-dialog h2{font-family:'Fraunces',serif;font-size:1.65rem;font-weight:400;color:var(--ink);margin:0 0 8px}
.abn-hold-dialog p{color:var(--muted);font-size:.9rem;line-height:1.55;margin:0 auto;max-width:34ch}
.abn-hold-actions{display:flex;gap:10px;justify-content:center;margin-top:24px}
.abn-hold-actions button{padding:12px 18px;border-radius:3px;font:600 .7rem 'Inter',sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.abn-hold-no{color:var(--ink);background:transparent;border:1px solid var(--line)}
.abn-hold-no:hover{background:var(--ivory)}
.abn-hold-yes{color:#1c1407;background:var(--gold);border:1px solid var(--gold)}
.abn-hold-yes:hover{background:var(--gold-2);border-color:var(--gold-2)}
.abn-hold-actions button:disabled{opacity:.55;cursor:wait}
.abn-hold-spinner{display:inline-block;width:13px;height:13px;margin-right:6px;border:2px solid rgba(28,20,7,.28);border-top-color:#1c1407;border-radius:50%;vertical-align:-2px;animation:abnHoldSpin .8s linear infinite}
@keyframes abnHoldSpin{to{transform:rotate(360deg)}}
@media(max-width:520px){.abn-hold-actions{flex-direction:column-reverse}.abn-hold-actions button{width:100%}}
h1,h2,h3,h4{font-family:'Fraunces',serif;font-weight:400;line-height:1.07;letter-spacing:-.012em}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.serif{font-family:'Fraunces',serif}
.italic{font-style:italic}
.eyebrow{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;font-weight:600;color:var(--gold)}
.wrap{max-width:1240px;margin:0 auto;padding:0 36px}
.wrap-n{max-width:1080px;margin:0 auto;padding:0 36px}
.btn{display:inline-flex;align-items:center;gap:.55em;padding:15px 32px;border-radius:2px;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;cursor:pointer;border:1px solid transparent;transition:.28s cubic-bezier(.2,.7,.3,1);font-family:'Inter',sans-serif;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn-gold{background:var(--gold);color:#1c1407}.btn-gold:hover{background:var(--gold-2);box-shadow:0 10px 26px -12px rgba(190,155,69,.8)}
.btn-ghost{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.5);color:#fff;backdrop-filter:blur(4px)}.btn-ghost:hover{background:rgba(255,255,255,.16);border-color:#fff}
.btn-ink{background:var(--ink);color:var(--ivory)}.btn-ink:hover{background:var(--ink2)}
.btn-outline{background:transparent;border-color:var(--ink);color:var(--ink)}.btn-outline:hover{background:var(--ink);color:var(--ivory)}
.btn-lg{padding:18px 40px;font-size:.8rem}
.btn-sm{padding:10px 20px;font-size:.68rem}
.btn.disabled,.btn:disabled{opacity:.4!important;cursor:not-allowed!important;pointer-events:none!important}
.view{display:none}.view.active{display:block}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}
.cap{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--muted)}

/* ============ ANNOUNCEMENT BAR ============ */
.announce{background:linear-gradient(90deg,var(--ink3),var(--ink2));color:var(--gold-3);font-size:.74rem;letter-spacing:.04em;position:relative;z-index:60}
.announce .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:40px;padding:8px 24px}
.announce b{color:#fff;font-weight:600}
.ann-mid{flex:1;text-align:center}
.ann-util{color:var(--gold-2);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:.64rem;cursor:pointer;white-space:nowrap}
.ann-util:hover{color:#fff}
.announce .x{cursor:pointer;opacity:.6;font-size:1.05rem;line-height:1}
.announce .x:hover{opacity:1}
@media(max-width:640px){.announce .wrap{font-size:.66rem;padding:8px 16px}.ann-util{display:none}}

/* ============ HEADER ============ */
header.nav{position:sticky;top:0;z-index:55;background:rgba(252,249,242,.86);backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid var(--line);transition:.3s}
header.nav.solid{background:rgba(252,249,242,.98);box-shadow:0 8px 30px -22px rgba(10,33,28,.5)}
.nav .bar{display:flex;align-items:center;gap:24px;height:84px;transition:height .3s}
header.nav.solid .bar{height:72px}
.logo{cursor:pointer;display:flex;align-items:center;gap:12px;flex-shrink:0}
.logo .crest{width:38px;height:38px;border:1.5px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:'Fraunces',serif;font-size:1rem;flex-shrink:0}
.logo .lg-1{font-family:'Fraunces',serif;font-size:1.08rem;letter-spacing:.02em;color:var(--ink);line-height:1.05;white-space:nowrap}
.logo .lg-2{font-size:.52rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:4px;white-space:nowrap}
.mainnav{display:flex;gap:22px;align-items:center;flex:1;justify-content:center}
.mainnav>li{list-style:none;position:relative}
.mainnav>li>a{font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;font-weight:500;color:var(--ink);position:relative;padding:30px 0;cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.mainnav>li>a .ch{font-size:.6rem;opacity:.6;transition:.3s}
.mainnav>li:hover>a .ch{transform:rotate(180deg)}
.mainnav>li>a:after{content:'';position:absolute;left:0;right:0;bottom:26px;height:1.5px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:.28s}
.mainnav>li:hover>a:after,.mainnav>li>a.on:after{transform:scaleX(1)}
.nav-cta{display:flex;align-items:center;gap:16px;flex-shrink:0}
.nav-phone{text-align:right;line-height:1.15;white-space:nowrap}
.nav-phone b{font-size:.88rem;font-weight:600;color:var(--ink);display:block}
.nav-phone span{font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.nav-login{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--ink);padding:10px 18px;background:transparent;border:1px solid var(--line);border-radius:2px;transition:.25s;white-space:nowrap}
.nav-login:hover{border-color:var(--gold);color:var(--gold)}
.nav-login svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.nav-account-wrap{position:relative}
.nav-account{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:600;color:var(--ink);padding:6px 12px;border:1px solid var(--line);border-radius:4px;transition:.2s;white-space:nowrap;background:transparent;cursor:pointer;font-family:inherit}
.nav-account:hover{background:var(--ivory);border-color:var(--gold)}
.nav-account-icon{font-size:1rem}
.nav-account-name{max-width:80px;overflow:hidden;text-overflow:ellipsis}
.nav-account-chevron{transition:.2s;margin-left:2px}
.nav-account-wrap.open .nav-account-chevron{transform:rotate(180deg)}
.nav-account-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;background:var(--paper);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow-sm);opacity:0;visibility:hidden;transform:translateY(-6px);transition:.2s;z-index:100;overflow:hidden}
.nav-account-wrap.open .nav-account-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.nav-account-dropdown a{display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:.85rem;color:var(--text);transition:.15s}
.nav-account-dropdown a:hover{background:var(--ivory);color:var(--ink)}
.nav-account-dropdown a svg{stroke:var(--muted)}
.nav-account-dropdown a:hover svg{stroke:var(--ink)}
.nav-account-dropdown .nav-logout{border-top:1px solid var(--line);color:var(--terra)}
.nav-account-dropdown .nav-logout svg{stroke:var(--terra)}
.agentlink{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);cursor:pointer;font-weight:600;border-right:1px solid var(--line);padding-right:18px;transition:.2s}
.agentlink:hover{color:var(--ink)}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;margin-left:auto}
.burger span{width:24px;height:2px;background:var(--ink);transition:.3s}
/* mega menu */
.mega{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);min-width:560px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:4px;padding:28px;opacity:0;visibility:hidden;transition:.28s;display:grid;grid-template-columns:1fr 1fr;gap:8px 30px}
.mainnav>li:hover .mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.mega .mcol h6{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;font-weight:600;font-family:'Inter'}
.mega a{display:block;padding:8px 10px;border-radius:3px;font-size:.9rem;color:var(--text);transition:.18s;cursor:pointer}
.mega a:hover{background:var(--ivory);color:var(--ink);padding-left:16px}
.mega a small{display:block;font-size:.72rem;color:var(--muted)}
.mega.single{grid-template-columns:1fr;min-width:280px}
@media(max-width:1080px){
  .mainnav,.nav-cta{display:none}
  .burger{display:flex}
  .nav .bar{height:70px}
}
/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:70;background:var(--ink);color:var(--ivory);transform:translateX(100%);transition:.4s cubic-bezier(.2,.7,.3,1);padding:90px 36px 36px;display:flex;flex-direction:column;gap:6px;overflow:auto}
.drawer.open{transform:none}
.drawer a{font-family:'Fraunces',serif;font-size:1.5rem;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1);cursor:pointer}
.drawer .dx{position:absolute;top:26px;right:30px;font-size:2rem;cursor:pointer;color:var(--gold-2)}
.drawer .dphone{margin-top:24px;color:var(--gold-2);font-size:1.1rem}

/* ============ HERO ============ */
.hero{position:relative;min-height:92vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;
  background:radial-gradient(120% 90% at 78% 16%,#f6cc72 0%,#e8a14e 16%,#c2622f 36%,#7a3b30 58%,#1e302d 80%,#0a1f1a 100%)}
.hero .ph{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;z-index:0;opacity:.94;animation:kb 22s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.12)}}
.hero .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,20,15,.34) 0%,rgba(8,20,15,0) 30%,rgba(8,20,15,.12) 55%,rgba(6,16,12,.82) 100%)}
.hero .sun{position:absolute;right:15%;top:18%;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(255,247,224,.92),rgba(255,221,150,.45) 45%,transparent 70%);z-index:1;filter:blur(2px)}
.hero-hills{position:absolute;left:0;right:0;bottom:0;z-index:2}
.hero .wrap{position:relative;z-index:3;padding-bottom:96px;width:100%}
.hero .eyebrow{color:var(--gold-2)}
.hero h1{font-size:clamp(2.7rem,6.2vw,5.4rem);font-weight:300;max-width:15ch;margin:20px 0 0;text-shadow:0 2px 40px rgba(0,0,0,.35)}
.hero h1 em{font-style:italic;color:var(--gold-2)}
.hero p.lede{max-width:48ch;margin-top:24px;font-size:1.1rem;font-weight:300;color:#f1ece1}
.hero-btns{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap}
.scrollcue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:4;color:rgba(255,255,255,.7);font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;text-align:center}
.scrollcue .line{width:1px;height:40px;background:rgba(255,255,255,.5);margin:8px auto 0;position:relative;overflow:hidden}
.scrollcue .line:after{content:'';position:absolute;top:-40px;left:0;width:1px;height:40px;background:var(--gold-2);animation:cue 2.2s ease-in-out infinite}
@keyframes cue{to{top:40px}}
/* search */
.searchbar{position:relative;z-index:5;margin:-46px auto 0;max-width:1040px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:5px;display:grid;grid-template-columns:1fr 1fr 1fr auto}
.searchbar .field{padding:18px 26px;border-right:1px solid var(--line);cursor:pointer;transition:.2s}
.searchbar .field:hover{background:var(--ivory)}
.searchbar .field label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;display:block}
.searchbar .field .val{font-family:'Fraunces',serif;font-size:1.16rem;color:var(--ink);margin-top:5px;display:flex;align-items:center;justify-content:space-between}
.searchbar .field .val:after{content:'⌄';color:var(--muted);font-size:1rem;margin-left:10px;transform:translateY(-3px)}
.searchbar .go{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 40px;background:var(--ink);color:var(--ivory);font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:.25s}
.searchbar .go:hover{background:var(--ink2)}
@media(max-width:820px){.searchbar{grid-template-columns:1fr 1fr;margin-top:24px}.searchbar .go{grid-column:1/3;padding:16px}.searchbar .field:nth-child(2){border-right:none}.searchbar .field:nth-child(3){border-bottom:1px solid var(--line)}}

/* ============ MARQUEE / PRESS ============ */
.press{padding:46px 0;border-bottom:1px solid var(--line-2)}
.press .wrap{display:flex;align-items:center;justify-content:center;gap:54px;flex-wrap:wrap}
.press .lbl{font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.press .name{font-family:'Fraunces',serif;font-size:1.32rem;color:var(--ink);opacity:.62;transition:.3s}
.press .name:hover{opacity:1}
@media(max-width:760px){.press .wrap{gap:30px}.press .name{font-size:1.05rem}}

/* ============ SECTION SHELLS ============ */
section.band{padding:104px 0}
section.band.tight{padding:78px 0}
.sec-head{text-align:center;max-width:680px;margin:0 auto 60px}
.sec-head.left{text-align:left;margin-left:0}
.sec-head h2{font-size:clamp(2.1rem,4.2vw,3.2rem);margin:16px 0;color:var(--ink)}
.sec-head p{color:var(--muted);font-size:1.08rem}
.ink-band{background:var(--ink);color:var(--ivory);position:relative;overflow:hidden}
.ink-band h2,.ink-band h3,.ink-band h4{color:var(--ivory)}
.ink-band .sec-head p{color:#bccabc}
.ink-band .eyebrow{color:var(--gold-2)}
.deco-wave{position:absolute;inset:0;opacity:.05;z-index:0;pointer-events:none}
.ink-band .wrap{position:relative;z-index:1}

/* two rivers */
.rivers{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.river-card{position:relative;min-height:480px;border-radius:5px;overflow:hidden;display:flex;align-items:flex-end;color:#fff;cursor:pointer}
.river-card .ph{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;z-index:0;transition:.7s cubic-bezier(.2,.7,.3,1)}
.river-card:hover .ph{transform:scale(1.07)}
.river-card .ov{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,33,28,.05) 30%,rgba(8,20,15,.88))}
.river-card.r1{background:linear-gradient(160deg,#caa24f,#9c5a2f 55%,#13302a)}
.river-card.r2{background:linear-gradient(160deg,#7fb0c4,#3f6f80 50%,#10302a)}
.river-card .ct{position:relative;z-index:2;padding:44px}
.river-card .ct h3{font-size:2.3rem;font-weight:300}
.river-card .ct .sub{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-2);font-weight:600}
.river-card .ct p{color:#ece7da;font-size:.97rem;margin:12px 0 18px;max-width:42ch}
.river-card .ct .more{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;border-bottom:1px solid var(--gold);padding-bottom:4px}
.river-card .rstat{display:flex;gap:24px;margin-top:18px}
.river-card .rstat div{font-size:.74rem;color:#d8d2c4}
.river-card .rstat b{display:block;font-family:'Fraunces';font-size:1.5rem;color:#fff;font-weight:400}
@media(max-width:820px){.rivers{grid-template-columns:1fr}}

/* voyage filter + cards */
.vfilter{display:flex;justify-content:center;gap:8px;margin-bottom:40px;flex-wrap:wrap}
.vfilter button{background:transparent;border:1px solid var(--line);color:var(--muted);padding:10px 22px;border-radius:40px;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:.2s;font-family:'Inter'}
.vfilter button.on,.vfilter button:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.voyages{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.vcard{background:var(--paper);border:1px solid var(--line);border-radius:5px;overflow:hidden;display:flex;flex-direction:column;transition:.35s cubic-bezier(.2,.7,.3,1);cursor:pointer}
.vcard:hover{transform:translateY(-7px);box-shadow:var(--shadow)}
.vcard.hide{display:none}
.vcard .top{position:relative;height:220px;overflow:hidden;display:flex;align-items:flex-start;justify-content:space-between;padding:16px}
.vcard .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:.6s}
.vcard:hover .ph{transform:scale(1.07)}
.vcard .top:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,20,15,.32),rgba(8,20,15,.05) 45%,rgba(8,20,15,.42))}
.vcard .top.g1{background:linear-gradient(150deg,#cf9f4f,#8a4f2c)}
.vcard .top.g2{background:linear-gradient(150deg,#5f8f5a,#1f4a36)}
.vcard .top.g3{background:linear-gradient(150deg,#d8a85d,#9c5a2f)}
.vcard .top.g4{background:linear-gradient(150deg,#8a98a8,#3a4a52)}
.vcard .top.g5{background:linear-gradient(150deg,#7fa6bb,#3f6175)}
.vcard .top.g6{background:linear-gradient(150deg,#c98f6a,#7a3f31)}
.vcard .badge{position:relative;z-index:2;background:var(--gold);color:#1c1407;font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;padding:6px 12px;border-radius:2px;height:fit-content}
.vcard .nights{position:relative;z-index:2;background:rgba(8,20,15,.7);color:#fff;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;padding:6px 12px;border-radius:2px;backdrop-filter:blur(4px)}
.vcard .body{padding:26px;flex:1;display:flex;flex-direction:column}
.vcard .rt{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600}
.vcard h3{font-size:1.46rem;color:var(--ink);margin:9px 0}
.vcard .meta{font-size:.82rem;color:var(--muted);margin-bottom:5px;display:flex;align-items:center;gap:7px}
.vcard .ship{font-size:.78rem;color:var(--muted);font-style:italic;margin-bottom:16px}
.vcard .foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:18px;border-top:1px solid var(--line)}
.vcard .price{font-family:'Fraunces',serif;color:var(--ink);font-size:1.2rem}
.vcard .price span{display:block;font-family:'Inter';font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.vcard .vmore{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--terra);display:inline-flex;gap:5px;align-items:center;transition:.2s}
.vcard:hover .vmore{gap:9px}
@media(max-width:980px){.voyages{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.voyages{grid-template-columns:1fr}}

/* difference */
.diff{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin-top:24px}
.diff .item{text-align:center}
.diff .ic{width:58px;height:58px;margin:0 auto 18px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold-2);font-size:1.3rem}
.diff h4{font-size:1.22rem;margin-bottom:9px}
.diff p{font-size:.9rem;color:#bccabc}
@media(max-width:860px){.diff{grid-template-columns:1fr 1fr;gap:32px}}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.stats .n{font-family:'Fraunces',serif;font-size:3rem;color:var(--gold-2);font-weight:300}
.stats .l{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:#bccabc;margin-top:6px}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr;gap:36px}}

/* fleet */
.fleet{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.shipcard{border:1px solid var(--line);border-radius:5px;overflow:hidden;background:var(--paper);cursor:pointer;transition:.35s}
.shipcard:hover{box-shadow:var(--shadow);transform:translateY(-5px)}
.shipcard .sh{position:relative;height:280px;overflow:hidden;background:linear-gradient(150deg,#c79a55,#7a3f31)}
.shipcard.s2 .sh{background:linear-gradient(150deg,#5f87a0,#27414e)}
.shipcard .sh .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.6s}
.shipcard:hover .sh .ph{transform:scale(1.06)}
.shipcard .sh .tag{position:absolute;top:18px;left:18px;z-index:2;background:rgba(8,20,15,.66);color:#fff;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;padding:7px 13px;border-radius:2px;backdrop-filter:blur(4px)}
.shipcard .sb{padding:30px}
.shipcard .sb h3{font-size:1.7rem;color:var(--ink)}
.shipcard .sb .rv{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:6px}
.shipcard .sb p{color:var(--muted);font-size:.92rem;margin:10px 0 16px}
.shipspecs{display:flex;gap:26px;padding-top:16px;border-top:1px solid var(--line)}
.shipspecs div{font-size:.72rem;color:var(--muted)}
.shipspecs b{display:block;font-family:'Fraunces';font-size:1.3rem;color:var(--ink);font-weight:400}
@media(max-width:820px){.fleet{grid-template-columns:1fr}}

/* life on board tabs */
.tabs{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-bottom:44px}
.tabs button{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:12px 22px;font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:.2s;font-family:'Inter'}
.tabs button.on{color:var(--ink);border-color:var(--gold)}
.tabpane{display:none}.tabpane.on{display:grid;grid-template-columns:1.05fr .95fr;gap:0;align-items:stretch;border:1px solid var(--line);border-radius:6px;overflow:hidden;animation:fade .5s}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
.tabpane .media{position:relative;min-height:460px;background:linear-gradient(150deg,#caa24f,#7a3f31)}
.tabpane.t-din .media{background:linear-gradient(150deg,#b5703e,#5a2f24)}
.tabpane.t-deck .media{background:linear-gradient(150deg,#6f9aa8,#2c4a52)}
.tabpane.t-exc .media{background:linear-gradient(150deg,#5f8f5a,#1f4a36)}
.tabpane .media .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tabpane .tc{padding:60px 56px;background:var(--ivory);display:flex;flex-direction:column;justify-content:center}
.tabpane .tc h3{font-size:1.9rem;color:var(--ink);margin:12px 0 14px}
.tabpane .tc p{color:var(--text);margin-bottom:14px}
.tabpane .tc ul{list-style:none;margin-top:8px}
.tabpane .tc li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.92rem;display:flex;gap:11px}
.tabpane .tc li:before{content:'✦';color:var(--gold)}
@media(max-width:880px){.tabpane.on{grid-template-columns:1fr}.tabpane .tc{padding:44px 30px}.tabpane .media{min-height:300px}}

/* immersion split */
.immerse{display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch}
.immerse.rev{direction:rtl}.immerse.rev>*{direction:ltr}
.immerse .media{position:relative;min-height:560px;background:linear-gradient(150deg,#4f7d4a,#16382b 70%);overflow:hidden}
.immerse .media .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.immerse .media .float{position:absolute;bottom:26px;left:26px;right:26px;z-index:2;background:rgba(252,249,242,.94);backdrop-filter:blur(6px);padding:20px 24px;border-radius:4px;box-shadow:var(--shadow-sm)}
.immerse .media .float .cap{color:var(--gold)}
.immerse .media .float b{font-family:'Fraunces';font-size:1.2rem;color:var(--ink);display:block;margin-top:3px}
.immerse .copy{padding:90px 70px;background:var(--paper);display:flex;flex-direction:column;justify-content:center}
.immerse .copy h2{font-size:clamp(1.9rem,3.2vw,2.7rem);color:var(--ink);margin:16px 0 20px}
.immerse .copy p{color:var(--text);margin-bottom:16px}
.immerse ul{list-style:none;margin:18px 0 26px}
.immerse li{padding:13px 0;border-bottom:1px solid var(--line);font-size:.95rem;display:flex;gap:13px}
.immerse li b{color:var(--ink);font-weight:600}
.immerse li:before{content:'';width:7px;height:7px;border-radius:50%;background:var(--gold);margin-top:9px;flex-shrink:0}
@media(max-width:880px){.immerse,.immerse.rev{grid-template-columns:1fr;direction:ltr}.immerse .copy{padding:56px 32px}.immerse .media{min-height:360px}}

/* journey steps */
.jsteps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;counter-reset:js}
.jstep{text-align:center;padding:0 16px;position:relative}
.jstep .num{counter-increment:js;width:64px;height:64px;border-radius:50%;border:1px solid var(--gold);color:var(--gold-2);font-family:'Fraunces';font-size:1.6rem;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}
.jstep .num:before{content:counter(js)}
.jstep h4{font-size:1.3rem;margin-bottom:10px}
.jstep p{color:#bccabc;font-size:.92rem}
.jstep:not(:last-child):after{content:'⟶';position:absolute;top:24px;right:-22px;color:var(--gold);opacity:.4;font-size:1.2rem}
@media(max-width:760px){.jsteps{grid-template-columns:1fr;gap:40px}.jstep:after{display:none}}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:14px}
.gcell{position:relative;overflow:hidden;border-radius:4px;background:linear-gradient(150deg,#caa24f,#7a3f31);cursor:pointer}
.gcell .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.6s}
.gcell:hover .ph{transform:scale(1.09)}
.gcell:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,20,15,.5));opacity:0;transition:.3s}
.gcell:hover:after{opacity:1}
.gcell .glabel{position:absolute;left:16px;bottom:14px;z-index:2;color:#fff;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;opacity:0;transform:translateY(8px);transition:.3s}
.gcell:hover .glabel{opacity:1;transform:none}
.gcell.big{grid-column:span 2;grid-row:span 2}
.gcell.wide{grid-column:span 2}
.gcell.g2{background:linear-gradient(150deg,#5f8f5a,#1f4a36)}.gcell.g3{background:linear-gradient(150deg,#7fa6bb,#3f6175)}
.gcell.g4{background:linear-gradient(150deg,#c98f6a,#7a3f31)}.gcell.g5{background:linear-gradient(150deg,#8a98a8,#3a4a52)}.gcell.g6{background:linear-gradient(150deg,#d8a85d,#9c5a2f)}
@media(max-width:860px){.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}.gcell.big{grid-column:span 2;grid-row:span 1}}

/* extensions */
.exts{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.ext{border:1px solid var(--line);border-radius:5px;overflow:hidden;background:var(--paper);transition:.3s;cursor:pointer}
.ext:hover{box-shadow:var(--shadow-sm);transform:translateY(-4px)}
.ext .eh{height:150px;position:relative;background:linear-gradient(150deg,#8a98a8,#3a4a52)}
.ext .eh .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ext.e1 .eh{background:linear-gradient(150deg,#7d97a8,#2f4a55)}.ext.e2 .eh{background:linear-gradient(150deg,#caa24f,#7a3f31)}
.ext.e3 .eh{background:linear-gradient(150deg,#5f8f5a,#244c38)}.ext.e4 .eh{background:linear-gradient(150deg,#b87a5a,#5a2f24)}
.ext .eb{padding:20px}
.ext .eb .nn{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600}
.ext .eb h4{font-size:1.18rem;color:var(--ink);margin:6px 0 8px}
.ext .eb p{font-size:.84rem;color:var(--muted)}
@media(max-width:980px){.exts{grid-template-columns:1fr 1fr}}@media(max-width:560px){.exts{grid-template-columns:1fr}}

/* testimonials rotator */
.testi{max-width:840px;margin:0 auto;text-align:center;position:relative;min-height:240px}
.tslide{display:none}.tslide.on{display:block;animation:fade .6s}
.testi .stars{color:var(--gold-2);letter-spacing:.34em;margin-bottom:24px}
.testi q{font-family:'Fraunces',serif;font-style:italic;font-size:clamp(1.45rem,2.8vw,2.05rem);color:var(--ivory);line-height:1.42;font-weight:300}
.testi .who{margin-top:28px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2);font-weight:600}
.tdots{display:flex;justify-content:center;gap:9px;margin-top:36px}
.tdots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.28);cursor:pointer;transition:.2s}
.tdots span.on{background:var(--gold-2);width:24px;border-radius:4px}

/* seasons */
.seasons{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.season{padding:34px 28px;border-right:1px solid var(--line)}
.season:last-child{border-right:none}
.season .mo{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700}
.season h4{font-size:1.3rem;color:var(--ink);margin:8px 0 10px}
.season p{font-size:.86rem;color:var(--muted)}
.season .bar{height:5px;border-radius:3px;margin-top:16px}
.season.best .bar{background:var(--gold)}.season.good .bar{background:var(--gold-3)}.season.closed .bar{background:var(--line)}
.season .tagm{font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-top:10px;display:inline-block}
.season.best .tagm{color:var(--gold)}.season.good .tagm{color:var(--terra)}.season.closed .tagm{color:var(--muted)}
@media(max-width:760px){.seasons{grid-template-columns:1fr 1fr}.season{border-bottom:1px solid var(--line)}}

/* FAQ */
.faq{max-width:840px;margin:0 auto}
.faq .q{border-bottom:1px solid var(--line)}
.faq .qh{padding:24px 0;display:flex;justify-content:space-between;align-items:center;cursor:pointer;gap:20px}
.faq .qh h4{font-size:1.15rem;color:var(--ink)}
.faq .qh .pm{font-size:1.4rem;color:var(--gold);transition:.3s;flex-shrink:0}
.faq .q.open .qh .pm{transform:rotate(45deg)}
.faq .qa{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq .qa p{padding:0 0 24px;color:var(--muted);font-size:.95rem}
.faq .q.open .qa{max-height:240px}

/* brochure cta */
.broch{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.broch .l{padding:64px;background:var(--ivory)}
.broch .r{padding:64px;background:var(--ink);color:var(--ivory)}
.broch h3{font-size:2rem;margin-bottom:14px}.broch .l h3{color:var(--ink)}
.broch p{color:var(--muted);margin-bottom:24px}.broch .r p{color:#bccabc}
.broch .ip{display:flex;gap:10px;flex-wrap:wrap}
.broch input{flex:1;min-width:180px;padding:15px 16px;border:1px solid var(--line);background:var(--paper);font-family:inherit;font-size:.9rem;border-radius:2px}
.broch .phone{font-family:'Fraunces';font-size:1.9rem;color:var(--gold-2);margin-top:4px}
@media(max-width:760px){.broch{grid-template-columns:1fr}.broch .l,.broch .r{padding:42px 28px}}

/* footer */
footer{background:var(--ink2);color:#a9b4ab;padding:78px 0 32px;font-size:.88rem}
.fgrid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:44px}
footer h5{font-family:'Inter';font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;font-weight:600}
footer .logo{pointer-events:none}footer .logo .lg-1{color:#fff}footer .logo .crest{border-color:var(--gold)}
footer a{display:block;padding:6px 0;color:#a9b4ab;cursor:pointer}footer a:hover{color:#fff}
footer .tag{margin:16px 0;max-width:36ch;color:#8c968d}
.fsoc{display:flex;gap:12px;margin-top:18px}
.fsoc span{width:34px;height:34px;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;cursor:pointer;transition:.2s}
.fsoc span:hover{background:var(--gold);color:var(--ink2);border-color:var(--gold)}
.fbar{border-top:1px solid rgba(255,255,255,.1);margin-top:54px;padding-top:26px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.78rem;color:#7e887f}
@media(max-width:820px){.fgrid{grid-template-columns:1fr 1fr}}

/* ============ ITINERARY DETAIL ============ */
.ihero{position:relative;min-height:68vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;
  background:radial-gradient(120% 100% at 70% 18%,#e8a94e,#b4632f 45%,#1c302c 85%)}
.ihero .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.92}
.ihero .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,20,15,.3),rgba(8,20,15,0) 40%,rgba(6,16,12,.85))}
.ihero .wrap{position:relative;z-index:2;padding-bottom:52px}
.crumbs{font-size:.74rem;letter-spacing:.08em;color:#e5dcc9;margin-bottom:18px}
.crumbs span{color:var(--gold-2);cursor:pointer}
.ihero h1{font-size:clamp(2.5rem,5.2vw,4.2rem);font-weight:300;max-width:16ch}
.ihero .imeta{display:flex;gap:30px;margin-top:20px;font-size:.84rem;letter-spacing:.05em;flex-wrap:wrap}
.ihero .imeta b{color:var(--gold-2);display:block;font-family:'Fraunces';font-size:1.15rem;font-weight:400}
.ihero .imeta .cap{color:#cfc7b6}
/* facts subnav */
.subnav{position:sticky;top:72px;z-index:40;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm)}
.subnav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:20px}
.subnav .slinks{display:flex;gap:28px}
.subnav .slinks a{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;cursor:pointer;transition:.2s}
.subnav .slinks a:hover{color:var(--ink)}
.subnav .sright{display:flex;align-items:center;gap:18px}
.subnav .sprice{font-family:'Fraunces';color:var(--ink);font-size:1.05rem}
.subnav .sprice small{color:var(--muted);font-family:'Inter';font-size:.64rem;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:880px){.subnav .slinks{display:none}}
.idetail{display:grid;grid-template-columns:1fr 372px;gap:58px;padding:78px 0}
.idetail h2{font-size:1.95rem;color:var(--ink);margin:0 0 18px}
.idetail h3.sub{font-size:1.4rem;color:var(--ink);margin:50px 0 18px}
.idetail p.lead{font-size:1.08rem;color:var(--text)}
.pullstat{display:flex;gap:36px;margin:26px 0;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pullstat div .n{font-family:'Fraunces';font-size:2rem;color:var(--ink)}
.pullstat div .l{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.hl{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0}
.hl li{display:flex;gap:11px;font-size:.95rem;padding:9px 0}
.hl li:before{content:'✦';color:var(--gold)}
.tl{margin-top:12px;border-left:2px solid var(--line)}
.tl .day{position:relative;padding:0 0 32px 36px}
.tl .day:last-child{padding-bottom:0}
.tl .day:before{content:'';position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px var(--paper)}
.tl .dn{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700}
.tl h4{font-size:1.18rem;color:var(--ink);margin:5px 0 7px}
.tl p{font-size:.92rem;color:var(--muted)}
.tl .dtag{display:inline-block;margin-top:8px;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--terra);border:1px solid var(--line);padding:3px 9px;border-radius:20px}
.routemap{background:var(--ivory);border:1px solid var(--line);border-radius:5px;padding:28px;margin:30px 0}
.routemap .rml{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:16px}
/* fares table */
.fares{width:100%;border-collapse:collapse;margin-top:8px;font-size:.92rem}
.fares th{text-align:left;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:12px 14px;border-bottom:1px solid var(--line)}
.fares td{padding:16px 14px;border-bottom:1px solid var(--line)}
.fares tr:hover td{background:var(--ivory)}
.fares .cn{font-family:'Fraunces';font-size:1.08rem;color:var(--ink)}
.fares .cd{font-size:.78rem;color:var(--muted)}
.fares .cp{font-family:'Fraunces';color:var(--ink);font-size:1.05rem;text-align:right}
.fares .cbtn{text-align:right}
/* inc/exc */
.incexc{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:10px}
.incexc ul{list-style:none}
.incexc li{padding:11px 0;border-bottom:1px solid var(--line);font-size:.92rem;display:flex;gap:11px}
.incexc .inc li:before{content:'✓';color:#4a7a3f;font-weight:700}
.incexc .exc li:before{content:'✕';color:var(--muted);font-weight:700}
.incexc h4{font-size:1.1rem;color:var(--ink);margin-bottom:8px}
@media(max-width:620px){.incexc{grid-template-columns:1fr}}
/* departures table */
.deptable{border:1px solid var(--line);border-radius:5px;overflow:hidden}
.deprow{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;align-items:center;gap:16px;padding:18px 22px;border-bottom:1px solid var(--line);transition:.2s}
.deprow:last-child{border-bottom:none}
.deprow:hover{background:var(--ivory)}
.deprow .dd{font-family:'Fraunces';font-size:1.1rem;color:var(--ink)}
.deprow .ds{font-size:.78rem;color:var(--muted)}
.deprow .dp{font-family:'Fraunces';color:var(--ink)}
.deprow .dav{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:4px 10px;border-radius:20px;width:fit-content}
.dav.ok{background:#e3ecd9;color:#46682f}.dav.few{background:#f3e3d6;color:var(--terra)}
@media(max-width:680px){.deprow{grid-template-columns:1fr 1fr;gap:8px}.deprow .cbtn{grid-column:1/3}}
/* mini reviews */
.mrev{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.mrev .rc{border:1px solid var(--line);border-radius:5px;padding:28px;background:var(--paper)}
.mrev .stars{color:var(--gold);letter-spacing:.2em;font-size:.8rem;margin-bottom:14px}
.mrev q{font-family:'Fraunces';font-style:italic;font-size:1.1rem;color:var(--ink);line-height:1.5}
.mrev .who{margin-top:16px;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
@media(max-width:680px){.mrev{grid-template-columns:1fr}}
/* sticky booking card */
.bookcard{position:sticky;top:152px;background:var(--paper);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow);overflow:hidden;align-self:start}
.bookcard .bh{background:var(--ink);color:#fff;padding:26px}
.bookcard .bh .from{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2)}
.bookcard .bh .pr{font-family:'Fraunces',serif;font-size:2.2rem;margin:3px 0;font-weight:300}
.bookcard .bh .pp{font-size:.74rem;color:#bccabc}
.bookcard .bb{padding:26px}
.bookcard .row{display:flex;justify-content:space-between;font-size:.86rem;padding:10px 0;border-bottom:1px solid var(--line)}
.bookcard .row span:first-child{color:var(--muted)}
.bookcard .row b{color:var(--ink);font-weight:600}
.bookcard .btn{width:100%;justify-content:center;margin-top:20px}
.bookcard .assure{margin-top:16px;font-size:.72rem;color:var(--muted);text-align:center;line-height:1.6}
@media(max-width:920px){.idetail{grid-template-columns:1fr}.bookcard{position:relative;top:0}.hl{grid-template-columns:1fr}}
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:880px){.related{grid-template-columns:1fr}}

/* ============ SHIP VIEW ============ */
.shero{position:relative;min-height:72vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:radial-gradient(120% 100% at 30% 20%,#dcb46a,#9c5a2f 45%,#16302a 85%)}
.shero .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.9}
.shero .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,20,15,.28),rgba(8,20,15,0) 42%,rgba(6,16,12,.85))}
.shero .wrap{position:relative;z-index:2;padding-bottom:54px}
.shero h1{font-size:clamp(2.6rem,5.4vw,4.6rem);font-weight:300}
.shintro{display:grid;grid-template-columns:1fr 360px;gap:54px;padding:80px 0}
.shintro p.lead{font-size:1.1rem;color:var(--text)}
.shintro p{color:var(--text);margin-bottom:16px}
.specsbox{background:var(--ivory);border:1px solid var(--line);border-radius:6px;padding:30px;align-self:start}
.specsbox h4{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.specsbox .sr{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.specsbox .sr:last-child{border:none}
.specsbox .sr span{color:var(--muted)}.specsbox .sr b{color:var(--ink);font-family:'Fraunces';font-weight:400;font-size:1.05rem}
/* cabin categories */
.cabins{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.cabin{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--paper)}
.cabin .ch{height:200px;position:relative;background:linear-gradient(150deg,#caa24f,#7a3f31)}
.cabin.c2 .ch{background:linear-gradient(150deg,#b5854a,#6a3a28)}.cabin.c3 .ch{background:linear-gradient(150deg,#a06a3e,#4a2a20)}
.cabin .ch .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cabin .cb{padding:26px}
.cabin h4{font-size:1.3rem;color:var(--ink)}
.cabin .csize{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:10px}
.cabin p{font-size:.86rem;color:var(--muted);margin-bottom:14px}
.cabin .cp{font-family:'Fraunces';font-size:1.2rem;color:var(--ink);padding-top:14px;border-top:1px solid var(--line)}
.cabin .cp small{font-family:'Inter';font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block}
@media(max-width:880px){.shintro{grid-template-columns:1fr}.cabins{grid-template-columns:1fr}}
/* deck plan */
.deckplan{background:var(--ivory);border:1px solid var(--line);border-radius:6px;padding:40px}

/* ============ BOOKING FLOW ============ */
.bkhead{background:var(--ink);color:#fff;padding:54px 0 34px;text-align:center;position:relative;overflow:hidden}
.bkhead .wrap{position:relative;z-index:1}
.bkhead h1{font-size:clamp(2rem,4vw,2.9rem);font-weight:300}
.bkhead p{color:#bccabc;margin-top:8px}
.steps{display:flex;justify-content:center;margin:42px auto 0;max-width:920px}
.step{flex:1;text-align:center;position:relative;cursor:pointer}
.step:before{content:'';position:absolute;top:18px;left:-50%;width:100%;height:2px;background:rgba(255,255,255,.16);z-index:0}
.step:first-child:before{display:none}
.step .dot{position:relative;z-index:1;width:38px;height:38px;border-radius:50%;margin:0 auto;background:#1c413a;border:2px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:600;color:#bccabc;transition:.3s}
.step .sl{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:#8fa097;margin-top:11px;font-weight:600}
.step.active .dot{background:var(--gold);border-color:var(--gold);color:#1c1407;box-shadow:0 0 0 6px rgba(190,155,69,.18)}
.step.active .sl{color:#fff}
.step.done .dot{background:#2c5b50;border-color:var(--gold);color:var(--gold-2)}
.step.done:before,.step.active:before{background:var(--gold)}
@media(max-width:720px){.step .sl{display:none}.steps{max-width:340px}}
.bkbody{padding:62px 0 96px;background:var(--paper)}
.bkgrid{display:grid;grid-template-columns:1fr 372px;gap:50px}
.bkpanel{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:42px}
.bkpanel h2{font-size:1.7rem;color:var(--ink);margin-bottom:6px}
.bkpanel .ph2{color:var(--muted);font-size:.93rem;margin-bottom:28px}
.bkstep{display:none}.bkstep.on{display:block;animation:fade .4s}
.opt{display:flex;align-items:center;gap:18px;border:1px solid var(--line);border-radius:5px;padding:18px;margin-bottom:14px;cursor:pointer;transition:.2s;background:#fff}
.opt:hover{border-color:var(--gold)}
.opt.sel{border-color:var(--gold);box-shadow:0 0 0 2px rgba(190,155,69,.3);background:var(--ivory)}
.opt .thumb{width:84px;height:62px;border-radius:4px;flex-shrink:0;position:relative;overflow:hidden;background:linear-gradient(150deg,#cf9f4f,#8a4f2c)}
.opt .thumb .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.opt .thumb.t2{background:linear-gradient(150deg,#5f8f5a,#1f4a36)}.opt .thumb.t3{background:linear-gradient(150deg,#d8a85d,#9c5a2f)}
.opt .thumb.t4{background:linear-gradient(150deg,#8a98a8,#3a4a52)}.opt .thumb.t5{background:linear-gradient(150deg,#7fa6bb,#3f6175)}.opt .thumb.t6{background:linear-gradient(150deg,#c98f6a,#7a3f31)}
.opt .oc{flex:1}
.opt .oc h4{font-size:1.1rem;color:var(--ink);margin-bottom:3px}
.opt .oc small{color:var(--muted);font-size:.8rem}
.opt .oc .cabin-status{display:inline-block;font-size:.65rem;padding:2px 8px;border-radius:10px;margin-left:8px;text-transform:uppercase;letter-spacing:.05em}
.opt .oc .cabin-status.booked{background:#f3e8e8;color:#b3261e}
.opt .oc .cabin-status.available{background:#e8f3e8;color:#1e7b34}
.opt .op{text-align:right;font-family:'Fraunces',serif;color:var(--ink);font-size:1.08rem;white-space:nowrap;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.opt .op .price-label{font-family:'Inter';font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.opt .op .voyage-price{font-family:'Fraunces',serif;font-size:1.08rem;color:var(--ink);min-width:50px;transition:opacity .2s}
.opt .op .voyage-price:empty{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px;height:1.2em}
.opt .op .voyage-price:empty::before{content:'';display:block}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.opt .radio{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);flex-shrink:0;position:relative}
.opt.sel .radio{border-color:var(--gold)}
.opt.sel .radio:after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--gold)}
.opt .check{width:22px;height:22px;border-radius:5px;border:2px solid var(--line);flex-shrink:0;position:relative}
.opt.sel .check{border-color:var(--gold);background:var(--gold)}
.opt.sel .check:after{content:'✓';position:absolute;inset:0;color:#1c1407;font-size:.8rem;display:flex;align-items:center;justify-content:center;font-weight:700}
.deps{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dep{border:1px solid var(--line);border-radius:5px;padding:16px 18px;cursor:pointer;transition:.2s;background:#fff;display:flex;justify-content:space-between;align-items:center}
.dep:hover{border-color:var(--gold)}
.dep.sel{border-color:var(--gold);background:var(--ivory);box-shadow:0 0 0 2px rgba(190,155,69,.3)}
.dep .dd{font-family:'Fraunces',serif;font-size:1.1rem;color:var(--ink)}
.dep .ds{font-size:.74rem;color:var(--muted)}
.dep .dv{font-size:.7rem;color:var(--gold);font-weight:600;margin-top:3px;letter-spacing:.02em}
.dep .dpr{font-size:.78rem;color:var(--terra);font-weight:600;margin-top:3px}
.dep .tag{font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:3px 8px;border-radius:2px}
.dep .tag.few{background:#f3e3d6;color:var(--terra)}.dep .tag.ok{background:#e3ecd9;color:#46682f}.dep .tag.wait{background:#f0e0e0;color:#8a3b3b}
@media(max-width:520px){.deps{grid-template-columns:1fr}}
.frm{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.frm .f{display:flex;flex-direction:column}.frm .f.full{grid-column:1/3}
.frm label{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:7px}
.frm input,.frm select,.frm textarea{padding:14px 14px;border:1px solid var(--line);border-radius:3px;background:#fff;font-family:inherit;font-size:.92rem;line-height:1.45;color:var(--text);transition:.2s;box-sizing:border-box}
.frm textarea{min-height:96px;resize:vertical}
.frm input:focus,.frm select:focus,.frm textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(190,155,69,.16)}
@media(max-width:520px){.frm{grid-template-columns:1fr}.frm .f.full{grid-column:1}}
.rev{border:1px solid var(--line);border-radius:5px;overflow:hidden}
.rev .rr{display:flex;justify-content:space-between;padding:15px 22px;border-bottom:1px solid var(--line);font-size:.92rem}
.rev .rr:last-child{border-bottom:none}
.rev .rr span{color:var(--muted)}.rev .rr b{color:var(--ink)}
.rev .cabin-row{align-items:flex-start;gap:24px}
.rev .cabin-row b{flex:1;min-width:0;text-align:right;line-height:1.45;overflow-wrap:anywhere}
.rev .tot{background:var(--ink);color:#fff}.rev .tot span{color:#bccabc}.rev .tot b{color:var(--gold-2);font-family:'Fraunces';font-size:1.25rem}
.depositnote{margin-top:20px;background:var(--ivory);border:1px solid var(--line);border-radius:5px;padding:20px;font-size:.86rem;color:var(--muted)}
.depositnote b{color:var(--ink)}
.guest-details{display:block;margin-top:24px;padding:22px;border:1px solid var(--line);border-radius:6px;background:rgba(244,238,225,.42)}
.guest-details-heading{margin-bottom:18px}
.guest-details-heading h3{font-family:'Fraunces',serif;font-size:1.35rem;font-weight:400;color:var(--ink);margin:0 0 4px}
.guest-details-heading p{color:var(--muted);font-size:.84rem;margin:0}
.guest-cabin-card{margin-top:16px;border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden}
.guest-cabin-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line)}
.guest-cabin-head h4{font-family:'Inter',sans-serif;font-size:.88rem;font-weight:600;line-height:1.35;color:var(--ink);letter-spacing:0}
.guest-cabin-head span{flex:0 0 auto;padding:4px 10px;border-radius:12px;background:#dceafb;color:#24558f;font-size:.7rem;font-weight:700;white-space:nowrap}
.guest-cabin-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:14px 18px 18px}
.guest-name-field{display:flex;flex-direction:column;gap:7px;margin:0}
.guest-name-field label{color:var(--muted);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.guest-name-field input{width:100%;min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--ink);font:inherit;font-size:.88rem;box-sizing:border-box;transition:border-color .2s,box-shadow .2s}
.guest-name-field input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(190,155,69,.16)}
@media(max-width:520px){.guest-details{padding:18px}.guest-cabin-fields{grid-template-columns:1fr;padding:14px}.guest-cabin-head{padding:13px 14px;align-items:flex-start;flex-direction:column;gap:8px}}

/* Step 5 Booking Progress & Error */
.book-progress{margin-top:16px;padding:14px 18px;background:linear-gradient(135deg,#f8f6f0,#f0ede5);border:1px solid var(--line);border-radius:6px;font-size:.88rem;color:var(--ink)}
.book-progress .progress-step{display:flex;align-items:center;gap:10px}
.book-progress .step-num{background:var(--ink);color:#fff;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:600}
.book-error{margin-top:16px;padding:16px 20px;background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;font-size:.88rem;color:#991b1b;line-height:1.5}
.book-error strong{display:block;margin-bottom:4px}
.terms-label{display:flex;gap:12px;align-items:flex-start;margin-top:20px;font-size:.86rem;color:var(--muted);cursor:pointer}
.terms-label input{margin-top:3px;width:18px;height:18px;accent-color:var(--ink)}
.terms-label a{color:var(--ink);border-bottom:1px solid var(--line)}
.terms-label a:hover{border-color:var(--ink)}
.payment-buttons{display:flex;gap:12px;margin-top:20px}
.payment-buttons .btn{flex:1;justify-content:center}
.bank-transfer-note{text-align:center;margin-top:14px;font-size:.82rem;color:var(--muted)}
.bank-transfer-note a{color:var(--ink);border-bottom:1px solid;cursor:pointer}
.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 0.8s ease infinite;vertical-align:middle;margin-right:6px}
.spinner-small{display:inline-block;width:14px;height:14px;border:2px solid rgba(190,155,69,.3);border-radius:50%;border-top-color:var(--gold);animation:spin 0.8s ease infinite;vertical-align:middle;margin-right:6px}
@keyframes spin{to{transform:rotate(360deg)}}

/* Hold Banner - Cabin reservation timer */
.hold-banner{padding:14px 18px;border-radius:6px;margin-bottom:14px;font-size:.88rem;display:flex;align-items:center;gap:10px}
.hold-banner .hold-status{display:flex;align-items:center;gap:8px;width:100%}
.hold-banner .hold-icon{font-size:1.1rem}
.hold-banner .hold-timer{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;color:var(--ink);margin-left:auto}
.hold-banner .spinner-small{border-color:rgba(190,155,69,.3);border-top-color:var(--gold)}
.hold-banner.active,.hold-banner:not(.warning):not(.expired):not(.error){background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:1px solid #81c784;color:#2e7d32}
.hold-banner.warning{background:linear-gradient(135deg,#fff8e1,#ffecb3);border:1px solid #ffc107;color:#f57c00;animation:holdPulse 1s ease infinite}
.hold-banner.expired{background:linear-gradient(135deg,#ffebee,#ffcdd2);border:1px solid #ef9a9a;color:#c62828}
.hold-banner.error{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border:1px solid #ffb74d;color:#e65100}
.hold-banner-small{position:fixed;top:90px;right:20px;z-index:100;background:#fff;border:1px solid var(--line);border-radius:20px;padding:8px 16px;font-size:.78rem;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-sm)}
.hold-banner-small .hold-icon{font-size:.9rem}
.hold-banner-small .hold-timer{font-weight:600;color:var(--ink)}
.hold-banner-small.warning{border-color:#ffc107;background:#fff8e1;animation:holdPulse 1s ease infinite}
.hold-banner-small.expired{border-color:#ef9a9a;background:#ffebee;color:#c62828}
.hold-timer.urgent{color:#c62828!important;animation:urgentPulse .5s ease infinite}
@keyframes holdPulse{0%,100%{opacity:1}50%{opacity:.7}}
@keyframes urgentPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}

/* API Loading Overlay */
.loadable{position:relative;min-height:80px}
.loader-overlay{position:absolute;inset:0;background:rgba(255,255,255,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:10;border-radius:5px;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.loadable.loading .loader-overlay{opacity:1;visibility:visible}
.loader-overlay .spinner{width:32px;height:32px;border:3px solid var(--line);border-top-color:var(--gold);margin:0}
.loader-overlay span{font-size:.82rem;color:var(--muted);letter-spacing:.04em}

@media(max-width:520px){.payment-buttons{flex-direction:column}}

.bknav{display:flex;justify-content:space-between;margin-top:32px;gap:12px}
.bksum{position:sticky;top:96px;align-self:start}
.bksum .card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:var(--shadow)}
.bksum .card{position:relative}
.summary-loader{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:10px;background:rgba(255,255,255,.86);color:var(--ink);font-size:.78rem;letter-spacing:.04em;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.bksum.is-loading .summary-loader{opacity:1!important;visibility:visible!important}
.summary-loader .spinner{width:20px;height:20px;border:2px solid rgba(190,155,69,.28);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite;margin:0}
.bksum .top{position:relative;height:140px;background:linear-gradient(150deg,#cf9f4f,#8a4f2c);display:flex;align-items:flex-end;padding:18px;color:#fff}
.bksum .top .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.92}
.bksum .top:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(8,20,15,.6))}
.bksum .top b{position:relative;z-index:1;font-family:'Fraunces';font-size:1.3rem;font-weight:400}
.bksum .in{padding:24px}
.bksum .row{display:flex;justify-content:space-between;font-size:.86rem;padding:9px 0;border-bottom:1px solid var(--line)}
.bksum .row:last-of-type{border:none}
.bksum .row span{color:var(--muted)}.bksum .row b{color:var(--ink);text-align:right}
.bksum .row.pp-row{background:var(--ivory);margin:0 -24px;padding:12px 24px;border-bottom:none;align-items:baseline}
.bksum .row.pp-row b{font-family:'Fraunces';font-size:1.3rem;color:var(--ink)}
.bksum .row.pp-row small{font-size:.7rem;color:var(--muted);margin-left:4px;text-transform:uppercase;letter-spacing:.05em}
.bksum .grand{display:flex;justify-content:space-between;align-items:baseline;padding-top:16px;margin-top:6px;border-top:2px solid var(--ink);flex-wrap:wrap;gap:4px}
.bksum .grand .guest-note{font-size:.7rem;color:var(--muted);font-weight:400}
.bksum .grand b{font-family:'Fraunces';font-size:1.5rem;color:var(--ink)}
.bksum b.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px;min-width:60px;min-height:1.2em;display:inline-block}
.bksum .assure{margin-top:18px;padding:18px;background:var(--ivory);border-radius:4px;font-size:.74rem;color:var(--muted)}
.bksum .assure div{display:flex;gap:9px;padding:4px 0}.bksum .assure div:before{content:'✓';color:#4a7a3f;font-weight:700}
.help{margin-top:18px;text-align:center;font-size:.82rem;color:var(--muted)}
.help b{display:block;font-family:'Fraunces';font-size:1.3rem;color:var(--ink)}
@media(max-width:920px){.bkgrid{grid-template-columns:1fr}.bksum{position:relative;top:0}}

/* ========== STEP 1 REDESIGN: River → Ship → Voyage ========== */
.s1{margin-top:30px;padding-top:26px;border-top:1px solid var(--line);scroll-margin-top:20px}
.s1:first-child{margin-top:0;padding-top:0;border-top:none}
.s1.locked{display:none}
.s1-h{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.s1-h h3{font-size:1.3rem;display:flex;align-items:baseline;gap:10px}
.s1-h h3 .num{font-family:'Fraunces';color:var(--gold);font-size:.86rem;letter-spacing:.06em}
.s1-h .sub{color:var(--muted);font-size:.9rem;margin-top:5px;max-width:60ch}
.s1-h .chg{font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:var(--terra);cursor:pointer;white-space:nowrap;border-bottom:1px solid var(--terra);padding-bottom:2px}
/* choice cards */
.s1-cards{display:grid;gap:14px}
.s1-cards.two{grid-template-columns:1fr 1fr}
.s1-cards.three{grid-template-columns:repeat(auto-fit,minmax(228px,1fr))}
@media(max-width:700px){.s1-cards.two{grid-template-columns:1fr}}
.s1-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;cursor:pointer;transition:.2s;display:flex;flex-direction:column;position:relative}
.s1-card:hover{border-color:var(--gold);box-shadow:var(--shadow-sm)}
.s1-card.sel{border-color:var(--gold);box-shadow:0 0 0 3px rgba(190,155,69,.16)}
.s1-card .im{height:132px;background:var(--ink);overflow:hidden}
.s1-card .im img{width:100%;height:100%;object-fit:cover;transition:.5s}
.s1-card:hover .im img{transform:scale(1.04)}
.s1-card .b{padding:15px 17px 17px;display:flex;flex-direction:column;flex:1}
.s1-card .k{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--gold)}
.s1-card h4{font-size:1.22rem;margin:5px 0 6px}
.s1-card p{font-size:.85rem;color:var(--muted);line-height:1.5;flex:1}
.s1-card .facts{display:flex;gap:16px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line);font-size:.76rem;color:var(--muted)}
.s1-card .facts b{color:var(--ink);font-weight:600}
.s1-card .radio{position:absolute;top:12px;right:12px;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.92);border:1.5px solid rgba(16,48,42,.25);transition:.2s}
.s1-card.sel .radio{background:var(--gold);border-color:var(--gold)}
.s1-card.sel .radio:after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#231a06;font-size:.78rem;font-weight:700}
/* "not sure yet" row */
.s1-any{grid-column:1/-1;border:1px dashed var(--line);border-radius:10px;padding:14px;text-align:center;font-size:.86rem;color:var(--muted);cursor:pointer;transition:.2s;background:#fff}
.s1-any:hover{border-color:var(--gold);color:var(--ink)}
.s1-any.sel{border-style:solid;border-color:var(--gold);background:#FDFAF2;color:var(--ink)}
/* voyage rows */
.s1-thumb{width:96px;height:70px;border-radius:7px;overflow:hidden;flex-shrink:0;background:var(--ink)}
.s1-thumb img{width:100%;height:100%;object-fit:cover}
.s1-info{flex:1;min-width:0}
.s1-info h4{font-size:1.08rem;font-weight:400}
.s1-info h4 .code{font-size:.66rem;letter-spacing:.08em;color:var(--gold);font-weight:700;font-family:'Inter';margin-left:7px}
.s1-info .rt{font-size:.84rem;color:var(--muted);margin-top:3px}
.s1-info .more{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--terra);margin-top:8px;border-bottom:1px solid rgba(174,84,46,.4);padding-bottom:2px}
.s1-price{text-align:right;flex-shrink:0;padding-left:6px}
.s1-price .lbl{font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:block}
.s1-price .amt{font-family:'Fraunces';font-size:1.24rem;color:var(--ink);display:block;margin-top:1px}
.s1-price .amt.loading{display:flex;align-items:center;justify-content:flex-end;min-height:1.35em}
.s1-price .pp{font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.price-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(16,48,42,.2);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}
/* skeleton loaders */
.s1-skel{background:linear-gradient(90deg,#eee 25%,#f7f7f7 37%,#eee 63%);background-size:400% 100%;animation:s1sk 1.3s ease infinite;border-radius:8px}
@keyframes s1sk{0%{background-position:100% 50%}100%{background-position:0 50%}}
.s1-skrow{display:flex;gap:16px;align-items:center;padding:13px;margin-bottom:11px;border:1px solid var(--line);border-radius:10px}
.s1-skrow .a{width:96px;height:70px;flex-shrink:0}
.s1-skrow .b{flex:1}.s1-skrow .b div{height:11px;margin-bottom:8px}
/* voyage detail modal */
.s1-modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:26px}
.s1-modal.on{display:flex}
.s1-modal .veil{position:absolute;inset:0;background:rgba(6,20,15,.62);backdrop-filter:blur(2px)}
.s1-mbox{position:relative;background:#fff;border-radius:14px;max-width:720px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 40px 90px -30px rgba(6,20,15,.6)}
.s1-mbox .mim{height:210px;background:var(--ink);position:relative;overflow:hidden}
.s1-mbox .mim img{width:100%;height:100%;object-fit:cover}
.s1-mbox .mim .cap{position:absolute;left:0;right:0;bottom:0;padding:20px 26px;background:linear-gradient(transparent,rgba(6,20,15,.9));color:#fff}
.s1-mbox .mim .cap .k{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-2);font-weight:700}
.s1-mbox .mim .cap h3{color:#fff;font-size:1.72rem;margin-top:5px}
.s1-mbox .x{position:absolute;top:14px;right:14px;z-index:3;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.9);border:none;font-size:1.1rem;cursor:pointer;color:var(--ink);line-height:34px}
.s1-mbox .mb{padding:24px 26px 26px}
.s1-mfacts{display:flex;gap:0;flex-wrap:wrap;border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:18px}
.s1-mfacts div{flex:1;min-width:120px;padding:12px 14px;border-right:1px solid var(--line)}
.s1-mfacts div:last-child{border-right:none}
.s1-mfacts .l{font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.s1-mfacts .v{font-family:'Fraunces';font-size:1.02rem;color:var(--ink);margin-top:2px}
.s1-mbox p.ov{font-size:.94rem;color:var(--text);line-height:1.65}
.s1-mbox h5{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:18px 0 9px}
.s1-mhl{list-style:none;display:grid;gap:8px}
.s1-mhl li{display:flex;gap:10px;font-size:.9rem;color:var(--text)}
.s1-mhl li:before{content:'✦';color:var(--gold);flex-shrink:0}
.s1-mact{display:flex;gap:11px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);align-items:center}
.s1-mact .fp{margin-left:auto;text-align:right}
.s1-mact .fp .l{font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.s1-mact .fp .v{font-family:'Fraunces';font-size:1.3rem;color:var(--ink)}
@media(max-width:620px){.s1-mact .fp{margin-left:0;text-align:left;width:100%}}

/* confirmation */
.confirm{text-align:center;max-width:680px;margin:0 auto;padding:40px 0}
.confirm .tick{width:88px;height:88px;border-radius:50%;background:var(--ink);color:var(--gold-2);display:flex;align-items:center;justify-content:center;font-size:2.4rem;margin:0 auto 28px}
.confirm h1{font-size:clamp(2rem,4vw,2.8rem);color:var(--ink);font-weight:300}
.confirm p{color:var(--muted);margin:14px auto 0;max-width:46ch}
.confirm .ref{display:inline-block;margin-top:24px;background:var(--ivory);border:1px solid var(--line);border-radius:4px;padding:14px 26px;font-family:'Fraunces';font-size:1.2rem;color:var(--ink)}
.confirm .nextsteps{text-align:left;border:1px solid var(--line);border-radius:6px;padding:30px;margin-top:36px;background:var(--paper)}
.confirm .nextsteps h4{font-size:1.1rem;color:var(--ink);margin-bottom:14px}
.confirm .nextsteps li{list-style:none;padding:10px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;font-size:.92rem;color:var(--muted)}
.confirm .nextsteps li:last-child{border:none}.confirm .nextsteps li:before{content:'→';color:var(--gold)}

.renderpill{position:fixed;left:18px;bottom:18px;z-index:80;background:var(--ink);color:var(--gold-3);font-size:.66rem;letter-spacing:.06em;padding:9px 15px;border-radius:30px;box-shadow:var(--shadow-sm);opacity:.92;max-width:240px;line-height:1.4}
.renderpill b{color:#fff}
@media(max-width:600px){.renderpill{display:none}}

/* ============ RIVER PAGE ============ */
.rhero{position:relative;min-height:94vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:radial-gradient(120% 100% at 30% 24%,#e9b86a,#b9763a 38%,#3f6a63 70%,#0a1f1a 92%)}
.rhero .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.95;animation:kb 24s ease-in-out infinite alternate}
.rhero .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,20,15,.36),rgba(8,20,15,0) 34%,rgba(8,20,15,.2) 60%,rgba(6,16,12,.86))}
.rhero .wrap{position:relative;z-index:2;padding-bottom:70px;width:100%}
.rhero .eyebrow{color:var(--gold-2)}
.rhero h1{font-size:clamp(3rem,8vw,6.4rem);font-weight:300;margin:14px 0 0;text-shadow:0 2px 40px rgba(0,0,0,.4)}
.rhero .sub{font-family:'Fraunces';font-style:italic;font-size:clamp(1.2rem,2.4vw,1.8rem);color:var(--gold-2);margin-top:6px}
.rhero p.lede{max-width:52ch;margin-top:22px;font-size:1.12rem;font-weight:300;color:#f1ece1}
.rribbon{position:relative;z-index:3;margin-top:38px;display:flex;gap:0;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.2);padding-top:24px;max-width:760px}
.rribbon div{padding-right:40px;margin-right:40px;border-right:1px solid rgba(255,255,255,.18)}
.rribbon div:last-child{border:none}
.rribbon b{font-family:'Fraunces';font-size:1.9rem;font-weight:400;color:#fff;display:block}
.rribbon span{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#cfc7b6}
@media(max-width:620px){.rribbon div{padding-right:24px;margin-right:24px}.rribbon b{font-size:1.4rem}}
/* quote band */
.quoteband{position:relative;padding:130px 0;color:#fff;text-align:center;overflow:hidden;background:linear-gradient(150deg,#2a4a44,#0a1f1a)}
.quoteband .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.32}
.quoteband .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,16,12,.7),rgba(6,16,12,.82));z-index:1}
.quoteband .wrap{position:relative;z-index:2}
.quoteband q{font-family:'Fraunces';font-style:italic;font-weight:300;font-size:clamp(1.8rem,4vw,3rem);line-height:1.32;color:#fff;max-width:18ch;margin:0 auto;display:block}
.quoteband cite{display:block;margin-top:26px;font-style:normal;font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-2);font-weight:600}
/* big map */
.bigmap{background:var(--ivory);border:1px solid var(--line);border-radius:8px;padding:48px 40px}
.bigmap .stops{display:flex;justify-content:space-between;margin-top:18px;flex-wrap:wrap;gap:16px}
.bigmap .stops div{text-align:center;flex:1;min-width:90px}
.bigmap .stops .sn{font-family:'Fraunces';color:var(--ink);font-size:1.05rem}
.bigmap .stops .sd{font-size:.68rem;color:var(--muted);letter-spacing:.04em}
/* wildlife cards */
.wildgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.wildcard{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--paper);transition:.3s}
.wildcard:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm)}
.wildcard .wh{height:190px;position:relative;overflow:hidden;background:linear-gradient(150deg,#5f8f5a,#1f4a36)}
.wildcard .wh .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.6s}
.wildcard:hover .wh .ph{transform:scale(1.08)}
.wildcard .wb{padding:22px}
.wildcard h4{font-size:1.18rem;color:var(--ink);margin-bottom:7px}
.wildcard p{font-size:.85rem;color:var(--muted)}
.wildcard .wt{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700}
@media(max-width:980px){.wildgrid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.wildgrid{grid-template-columns:1fr}}
/* river stops */
.rstops{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rstop{position:relative;border-radius:6px;overflow:hidden;min-height:340px;display:flex;align-items:flex-end;color:#fff}
.rstop .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:.7s}
.rstop:hover .ph{transform:scale(1.07)}
.rstop .ov{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,20,15,.05) 35%,rgba(6,16,12,.9))}
.rstop .ct{position:relative;z-index:2;padding:28px}
.rstop .marker{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2);font-weight:700}
.rstop h4{font-size:1.5rem;font-weight:400;margin:6px 0 8px}
.rstop p{font-size:.88rem;color:#e4ddcf;line-height:1.55}
@media(max-width:880px){.rstops{grid-template-columns:1fr 1fr}}@media(max-width:560px){.rstops{grid-template-columns:1fr}}
/* highlights checklist */
.bhl{columns:2;column-gap:40px;list-style:none;max-width:860px;margin:0 auto}
.bhl li{break-inside:avoid;padding:13px 0;border-bottom:1px solid var(--line);font-size:.96rem;display:flex;gap:12px}
.bhl li:before{content:'✦';color:var(--gold)}
@media(max-width:640px){.bhl{columns:1}}

/* ============ AGENT PORTAL ============ */
.agate{display:grid;grid-template-columns:1.04fr .96fr;min-height:calc(100vh - 128px)}
.agate .gleft{position:relative;padding:80px 64px;display:flex;flex-direction:column;justify-content:center;color:#fff;overflow:hidden;background:linear-gradient(160deg,#16382e,#0a1f1a)}
.agate .gleft .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.26;z-index:0}
.agate .gleft:after{content:'';position:absolute;inset:0;background:linear-gradient(160deg,rgba(16,48,42,.7),rgba(8,20,15,.88));z-index:1}
.agate .gleft .gin{position:relative;z-index:2;max-width:460px}
.agate .gleft h2{color:#fff;font-size:clamp(2rem,3.4vw,2.9rem);font-weight:300;margin:14px 0 18px}
.agate .gleft p{color:#cdd7ce;margin-bottom:22px}
.aben{list-style:none}
.aben li{display:flex;gap:13px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:.96rem;color:#e8ede8}
.aben li:before{content:'✓';color:var(--gold-2);font-weight:700}
.agate .gright{background:var(--paper);padding:64px 56px;display:flex;align-items:center;justify-content:center}
.acard{width:100%;max-width:430px}
.acard .acrest{width:42px;height:42px;border:1.5px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:'Fraunces';margin:0 auto 12px;font-size:1.1rem}
.acard .atitle{text-align:center;font-family:'Fraunces';font-size:1.7rem;font-weight:300;color:var(--ink)}
.acard .asub{text-align:center;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-top:4px}
.atabs{display:flex;background:var(--ivory);border:1px solid var(--line);border-radius:6px;padding:5px;margin:24px 0}
.atabs button{flex:1;border:none;background:transparent;color:var(--muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;padding:11px;border-radius:4px;cursor:pointer;font-family:inherit;transition:.2s}
.atabs button.on{background:var(--ink);color:var(--ivory)}
.apane{display:none}.apane.on{display:block;animation:fade .4s}
.ainfo{background:rgba(190,155,69,.1);border:1px solid rgba(190,155,69,.3);border-radius:6px;padding:12px 14px;font-size:.78rem;color:#7a5e1c;margin-bottom:18px}
.alink{color:var(--terra);cursor:pointer;font-weight:600}
.aforgot{float:right;font-size:.7rem;color:var(--terra);cursor:pointer;font-weight:600}
.afoot{text-align:center;font-size:.8rem;color:var(--muted);margin-top:20px}
.regsteps{display:flex;gap:6px;margin-bottom:20px}
.regsteps div{flex:1;height:4px;border-radius:3px;background:var(--line)}
.regsteps div.on{background:var(--gold)}
.asubmitted{text-align:center;padding:20px 0}
.asubmitted .tick{width:74px;height:74px;border-radius:50%;background:var(--ink);color:var(--gold-2);display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 22px}
.asubmitted h3{font-size:1.6rem;color:var(--ink);font-weight:300}
.asubmitted p{color:var(--muted);font-size:.92rem;margin:12px 0 0}
@media(max-width:860px){.agate{grid-template-columns:1fr}.agate .gleft{display:none}.agate .gright{padding:48px 28px}}

/* agent dashboard */
.adash{background:var(--ivory);min-height:100vh;padding:40px 0 90px}
.adhead{background:var(--ink);color:#fff;border-radius:10px;padding:32px 36px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;box-shadow:var(--shadow)}
.adhead .eyebrow{color:var(--gold-2)}
.adhead h1{font-size:1.9rem;font-weight:300;color:#fff;margin-top:6px}
.adhead .right{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.adhead .tierbadge{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);padding:9px 16px;border-radius:30px;font-size:.76rem;color:var(--gold-2)}
.akpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:24px 0}
.akpi{border:1px solid var(--line);border-radius:8px;padding:24px;background:#fff}
.akpi .n{font-family:'Fraunces';font-size:2.1rem;color:var(--ink)}
.akpi .l{font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.akpi .d{font-size:.7rem;color:#4a7a3f;margin-top:6px}
@media(max-width:680px){.akpis{grid-template-columns:1fr 1fr}}
.acols{display:grid;grid-template-columns:1.45fr .9fr;gap:24px}
@media(max-width:880px){.acols{grid-template-columns:1fr}}
.abox{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.abox .ah{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.abox .ah h3{font-size:1.2rem;color:var(--ink)}
.abox .ah .seeall{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--terra);font-weight:600;cursor:pointer}
.abk{display:grid;grid-template-columns:1fr auto;gap:6px 14px;padding:16px 22px;border-bottom:1px solid var(--line)}
.abk:last-child{border-bottom:none}
.abk .cl{font-family:'Fraunces';font-size:1.08rem;color:var(--ink)}
.abk .meta{font-size:.8rem;color:var(--muted)}
.abk .stat{font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:4px 11px;border-radius:20px;height:fit-content;align-self:center}
.abk .stat.due{background:#f3e3d6;color:var(--terra)}.abk .stat.ok{background:#e3ecd9;color:#46682f}
.abk .comm{font-size:.8rem;color:var(--muted)}.abk .comm b{color:var(--ink)}
.aquick{display:flex;flex-direction:column;gap:10px;padding:22px}
.aquick .qbtn{display:flex;align-items:center;gap:13px;padding:15px 16px;border:1px solid var(--line);border-radius:6px;cursor:pointer;transition:.2s;background:#fff}
.aquick .qbtn:hover{border-color:var(--gold);background:var(--ivory)}
.aquick .qbtn .qi{width:38px;height:38px;border-radius:8px;background:var(--ink);color:var(--gold-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.aquick .qbtn b{display:block;color:var(--ink);font-size:.92rem}
.aquick .qbtn span{font-size:.76rem;color:var(--muted)}
.ares a{display:flex;align-items:center;gap:12px;padding:14px 22px;border-bottom:1px solid var(--line);cursor:pointer;transition:.2s;font-size:.9rem;color:var(--text)}
.ares a:last-child{border-bottom:none}.ares a:hover{background:var(--ivory);color:var(--ink)}
.ares a:before{content:'↓';color:var(--gold);font-weight:700}
.agentbanner{background:linear-gradient(90deg,#1c413a,#0a211c);color:var(--gold-2);text-align:center;font-size:.82rem;padding:11px;letter-spacing:.02em;border-bottom:1px solid rgba(255,255,255,.12)}
.agentbanner b{color:#fff}
.commrow{background:rgba(190,155,69,.12)!important}
.commrow span{color:#7a5e1c!important}.commrow b{color:var(--terra)!important}
/* booking step 1 — river filter + expandable voyage detail */
.bkfilter{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap}
.bkfilter button{background:transparent;border:1px solid var(--line);color:var(--muted);padding:9px 18px;border-radius:30px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:.2s;font-family:'Inter'}
.bkfilter button.on,.bkfilter button:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
#voyageList .opt.hide{display:none}
.vdetail{margin-top:22px;border:1px solid var(--gold);border-radius:6px;overflow:hidden;background:var(--ivory);display:none;grid-template-columns:300px 1fr;box-shadow:0 0 0 3px rgba(190,155,69,.12);animation:fade .4s}
.vdetail .vimg{position:relative;min-height:240px;background:linear-gradient(150deg,#caa24f,#7a3f31)}
.vdetail .vimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vdetail .vbody{padding:26px}
.vdetail .vcode{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700}
.vdetail h3{font-size:1.5rem;color:var(--ink);margin:4px 0 6px}
.vdetail .vmeta{font-size:.84rem;color:var(--muted);margin-bottom:12px}
.vdetail p{font-size:.92rem;color:var(--text);margin-bottom:14px}
.vdetail .vhl{list-style:none;margin:0 0 18px}
.vdetail .vhl li{font-size:.88rem;padding:5px 0;display:flex;gap:9px}
.vdetail .vhl li:before{content:'\2726';color:var(--gold)}
.vdetail .vbtns{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.vdetail .vprice{margin-left:auto;font-family:'Fraunces';font-size:1.3rem;color:var(--ink)}
@media(max-width:620px){.vdetail{grid-template-columns:1fr}.vdetail .vimg{min-height:180px}.vdetail .vprice{margin-left:0}}
.routestrip{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;position:relative;padding:14px 0 4px}
.routestrip:before{content:'';position:absolute;top:20px;left:7%;right:7%;height:2px;background:repeating-linear-gradient(90deg,var(--gold) 0 3px,transparent 3px 9px)}
.routestrip .rs{text-align:center;flex:1;position:relative;z-index:1;min-width:0}
.routestrip .rs .dot{width:12px;height:12px;border-radius:50%;background:var(--terra);margin:0 auto 8px;box-shadow:0 0 0 4px var(--ivory)}
.routestrip .rs:first-child .dot,.routestrip .rs:last-child .dot{background:var(--ink)}
.routestrip .rs .nm{font-family:'Fraunces';font-size:.9rem;color:var(--ink);line-height:1.2}
@media(max-width:620px){.routestrip .rs .nm{font-size:.7rem}}
.logomark{height:46px;width:auto;display:block;flex-shrink:0}
.logomark.dark{filter:brightness(0) saturate(100%) invert(15%) sepia(20%) saturate(900%) hue-rotate(110deg)}
/* ---------------------------------------------------------------------
   Contact Form 7 — restyle the plugin's default markup so every embedded
   form (brochure capture, specialist callback) reads as part of this
   design system rather than a generic WordPress form.
   --------------------------------------------------------------------- */
.wpcf7 form .frm{margin:0}
.wpcf7-form-control-wrap{display:block}
.wpcf7 input:not([type=submit]):not([type=checkbox]),
.wpcf7 textarea{width:100%;padding:14px;border:1px solid var(--line);border-radius:3px;background:#fff;font-family:inherit;font-size:.92rem;transition:.2s}
.wpcf7 input:not([type=submit]):focus,.wpcf7 textarea:focus{outline:none;border-color:var(--gold)}
.wpcf7 textarea{min-height:96px;resize:vertical}
.wpcf7-submit{display:inline-flex;align-items:center;gap:.55em;padding:15px 32px;border-radius:2px;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;cursor:pointer;border:1px solid transparent;font-family:'Inter',sans-serif;white-space:nowrap;background:var(--gold);color:#1c1407}
.wpcf7-submit:hover{background:var(--gold-2)}
.wpcf7-spinner{margin:0 0 0 10px}
.wpcf7-response-output{border-radius:5px!important;margin:14px 0 0!important;font-size:.82rem!important;padding:12px 16px!important}
.wpcf7-not-valid-tip{color:#e35b5b;font-size:.76rem;margin-top:4px}
.wpcf7-form.invalid .wpcf7-response-output{border-color:#e35b5b!important;color:#e35b5b!important}
.wpcf7-form.sent .wpcf7-response-output{border-color:#4a7a3f!important;color:#4a7a3f!important}

/* Brochure inline capture: keep the original .ip flex layout even though
   the direct child is now the CF7 wrapper, not a bare <input>. */
#brochureForm.ip{align-items:flex-start}
#brochureForm .wpcf7,#brochureForm .wpcf7-form{display:flex;gap:10px;flex-wrap:wrap;width:100%}
#brochureForm .wpcf7-form-control-wrap{flex:1;min-width:180px}
#brochureForm input[type=email]{padding:15px 16px;border:1px solid var(--line);background:var(--paper);font-size:.9rem}
#brochureForm .wpcf7-response-output{width:100%}

/* Specialist callback: dark band context (.broch .r), so inputs need to
   read on a dark background rather than the light defaults above. */
#specialistForm{margin-top:18px}
#specialistForm input:not([type=submit]){background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.3);color:#fff}
#specialistForm input::placeholder{color:#bccabc}
#specialistForm .wpcf7-response-output{color:#bccabc!important;border-color:rgba(255,255,255,.3)!important}

/* ============ API VOYAGE TABS & CARDS ============ */
.api-voyage-tabs{margin:40px 0}
.api-tab-buttons{display:flex;gap:10px;justify-content:flex-start;flex-wrap:wrap;margin-bottom:30px}
.api-tab-btn{padding:12px 24px;border-radius:50px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--text);font-family:'Inter',sans-serif;transition:.28s cubic-bezier(.2,.7,.3,1)}
.api-tab-btn:hover{border-color:var(--ink);color:var(--ink)}
.api-tab-btn.active{background:var(--ink);border-color:var(--ink);color:var(--ivory)}

.api-voyage-list{display:flex;flex-direction:column;gap:0}
.api-vcard{display:grid;grid-template-columns:140px 1fr auto auto;align-items:center;gap:24px;padding:20px;border:1px solid var(--line);border-radius:6px;background:var(--paper);transition:.28s;margin-bottom:-1px}
.api-vcard:hover{box-shadow:var(--shadow-sm);z-index:2;border-color:var(--gold)}
.api-vcard:first-child{border-top-left-radius:6px;border-top-right-radius:6px}
.api-vcard:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}

.api-vcard-image{width:140px;height:95px;border-radius:4px;overflow:hidden;background:var(--ivory);flex-shrink:0}
.api-vcard-image img{width:100%;height:100%;object-fit:cover}
.api-vcard-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--ivory) 0%,var(--line) 100%)}

.api-vcard-content{flex:1;min-width:0}
.api-vcard-title h3{font-family:'Fraunces',serif;font-size:1.15rem;font-weight:400;color:var(--ink);margin:0;line-height:1.3}
.api-vcard-title .api-vcode{font-family:'Inter',sans-serif;font-size:.8rem;font-weight:500;color:var(--gold)}
.api-vcard-route{font-size:.85rem;color:var(--muted);margin:6px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.api-vcard-price{text-align:right;min-width:100px}
.api-vcard-price .price-amount{font-family:'Fraunces',serif;font-size:1.4rem;font-weight:400;color:var(--ink);display:block}
.api-vcard-price .price-label{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:500}

.api-vcard-action{display:flex;align-items:center;justify-content:center}
.vcard-circle{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--ink);display:flex;align-items:center;justify-content:center;transition:.28s}
.api-vcard:hover .vcard-circle{background:var(--gold);border-color:var(--gold)}

.api-error{color:#e35b5b;text-align:center;padding:40px;font-size:.92rem}
.no-voyages{color:var(--muted);text-align:center;padding:40px;font-size:.92rem}

@media(max-width:768px){
  .api-vcard{grid-template-columns:100px 1fr;gap:16px;padding:16px}
  .api-vcard-image{width:100px;height:68px}
  .api-vcard-price{grid-column:2;text-align:left}
  .api-vcard-price .price-amount{font-size:1.2rem}
  .api-vcard-action{display:none}
}
@media(max-width:480px){
  .api-tab-btn{padding:10px 18px;font-size:.66rem}
  .api-vcard{grid-template-columns:80px 1fr;gap:12px;padding:14px}
  .api-vcard-image{width:80px;height:54px}
  .api-vcard-title h3{font-size:1rem}
  .api-vcard-route{font-size:.78rem}
}

/* ════════════════════════════════════════════════════════════════════════
   BOOKING REDESIGN: Party size, cabin arrangements, per-cabin selection
   ════════════════════════════════════════════════════════════════════════ */

/* — party size stepper — */
.pty-size{display:flex;align-items:center;gap:14px;margin-top:6px}
.pty-size button{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:1.2rem;color:var(--ink);cursor:pointer;font-family:'Inter';line-height:1;transition:.2s}
.pty-size button:hover:not([disabled]){border-color:var(--gold);background:var(--ivory)}
.pty-size button[disabled]{opacity:.3;cursor:not-allowed}
.pty-size .val{font-family:'Fraunces';font-size:1.75rem;color:var(--ink);min-width:2.6ch;text-align:center}
.pty-size .cap{font-size:12.8px;color:var(--muted)}

/* — party rule (shown when cabin count is not self-evident) — */
.pty-rule{font-size:13.2px;color:var(--muted);margin:14px 0 0}
.pty-rule b{color:var(--ink);font-weight:600}

/* — accommodation arrangements — */
.arr{display:flex;align-items:center;gap:16px;padding:14px 18px;border:1px solid var(--line);border-radius:5px;margin-bottom:10px;cursor:pointer;background:#fff;transition:.2s}
.arr:hover{border-color:var(--gold)}
.arr.sel{background:var(--ivory);border-color:var(--gold);box-shadow:0 0 0 2px rgba(190,155,69,.3)}
.arr .glyphs{display:flex;gap:5px;flex-shrink:0}
.arr .cab{width:32px;height:38px;border-radius:3px;border:1px solid rgba(16,48,42,.22);background:#fff;display:flex;align-items:center;justify-content:center;gap:3px}
.arr.sel .cab{border-color:var(--gold);background:rgba(255,255,255,.75)}
.arr .cab i{width:7px;height:7px;border-radius:50%;background:var(--ink);display:block;opacity:.6}
.arr.sel .cab i{background:var(--gold);opacity:1}
.arr .ac{flex:1;min-width:0}
.arr .ac h4{font-family:'Fraunces';font-size:16.8px;color:var(--ink);letter-spacing:-.2px;line-height:1.2}
.arr .ac small{font-size:12.6px;color:var(--muted);display:block;margin-top:1px}
.arr .radio{margin-left:auto}
.arr .rec{font-size:9.28px;font-weight:700;letter-spacing:.7424px;text-transform:uppercase;padding:3px 8px;border-radius:2px;background:#E3ECD9;color:var(--green);margin-left:9px;white-space:nowrap;vertical-align:2px}

/* — per-cabin sections — */
.cabsec{border:1px solid var(--line);border-radius:6px;margin-bottom:18px;overflow:hidden;background:#fff}
.cabsec.done{border-color:rgba(190,155,69,.55)}
.cabsec > .hd{display:flex;align-items:center;gap:12px;padding:13px 18px;background:var(--ivory);border-bottom:1px solid var(--line)}
.cabsec > .hd .idx{font-size:9.6px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--gold);background:rgba(190,155,69,.14);border:1px solid rgba(190,155,69,.4);border-radius:2px;padding:3px 8px;white-space:nowrap}
.cabsec > .hd h3{font-family:'Fraunces';font-size:17.2px;color:var(--ink);letter-spacing:-.2px}
.cabsec > .hd .who{font-size:12.6px;color:var(--muted);margin-left:auto;white-space:nowrap}
.cabsec > .hd .tick{width:22px;height:22px;border-radius:50%;background:var(--gold);color:#1c1407;display:none;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.cabsec.done > .hd .tick{display:flex}
.cabsec > .bd{padding:18px 18px 6px}
.cabsec .opt{margin-bottom:12px}
.cabsec .opt:last-of-type{margin-bottom:6px}

/* name + availability badge */
.oc .nm{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.oc .nm .tag{display:inline-block;font-size:9.28px;font-weight:700;letter-spacing:.7424px;text-transform:uppercase;padding:3px 8px;border-radius:2px;white-space:nowrap;line-height:1.5}
.oc .nm .tag.few{background:#F3E3D6;color:var(--terra)}
.oc .nm .tag.ok{background:#E3ECD9;color:var(--green)}
.opt.sold{opacity:.45;cursor:not-allowed}
.opt.sold:hover{border-color:var(--line)}

/* — bed configuration — */
.bedrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 18px;border-top:1px solid var(--line);background:#FBF8F1}
.bedrow .lb{font-size:10.56px;font-weight:600;letter-spacing:1.2672px;text-transform:uppercase;color:var(--muted)}
.bedopt{padding:7px 15px;border:1px solid var(--line);border-radius:3px;background:#fff;font-size:12.8px;cursor:pointer;transition:.2s;font-family:'Inter';color:var(--text)}
.bedopt:hover{border-color:var(--gold)}
.bedopt.on{background:var(--ink);border-color:var(--ink);color:var(--ivory);font-weight:600}

/* — price breakdown panel — */
.pb{margin-top:10px;padding-top:14px;border-top:1px solid var(--line)}
.pb .pbl{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14.5px;padding:7px 0;color:var(--text)}
.pb .pbl b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.pb .pbl.free b{color:var(--green);font-weight:600}
.pb .pbl.pend b{color:var(--muted)}
.pb .pbs{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:15.5px;font-weight:600;color:var(--ink);padding:12px 0 7px;margin-top:6px;border-top:1px solid var(--line)}
.pb .pbs b{font-variant-numeric:tabular-nums;white-space:nowrap}

/* — payment breakdown — */
.paynow{background:var(--ink);color:#fff;border-radius:6px;padding:20px 22px;margin-top:18px}
.pnr{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.pnr span{color:#C7D2CC;font-size:15px}
.pnr b{color:#fff;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:19px}
.pnstage{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18)}
.pnstage + .pnstage{border-top:0;padding-top:0;margin-top:16px}
.pnstage .l{font-size:13.5px;letter-spacing:.01em}
.pnstage .v{font-variant-numeric:tabular-nums;line-height:1.15;margin-top:3px}
.pnstage.now .l{color:var(--gold-2)}
.pnstage.now .v{font-family:'Fraunces',serif;font-size:2.05rem;font-weight:400;color:var(--gold-2)}
.pnstage.later .l{color:#C7D2CC}
.pnstage.later .v{font-size:1.35rem;font-weight:600;color:#fff}

@media(max-width:720px){
  .arr{flex-wrap:wrap}
  .cabsec > .hd{flex-wrap:wrap}
  .cabsec > .hd .who{margin-left:0;width:100%}
}
