/* Cabin charter page (/cabin-charter/). Gallery grid, summary row, photo tour/viewer and the
   'Check availability' drawer are ported from .net assets/css/yacht-detail-v2.css (see FORK.md);
   the rest is UK layout. Loaded only on this page via $extra_css. */
.yd-v2, .yd-trip, .yd-pt, .yd-pv { --navy: #0f2a43; --gold: #fdbf18; --line: #e5e7eb; --muted: #5b6673; --soft: #f6f8fa; --green: #0b6b40; }
html.yd-lock, html.yd-lock body { overflow: hidden !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.yd-dots { display: inline-flex; gap: 2px; }
.yd-dots i { width: 9px; height: 9px; border-radius: 50%; background: #00aa6c; }

/* ---------- Summary row (desktop) ---------- */

.yd-sum { display: none; }
@media (min-width: 992px) {
   .yd-sum { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 10px 0; }
   .yd-sum__r { display: flex; align-items: center; gap: 14px; flex-wrap: nowrap; }
   .yd-share { padding: 6px 12px; border: 1px solid #d6dde4; border-radius: 999px; background: #fff; color: var(--navy); font-weight: 700; font-size: 13px; cursor: pointer; }
   .yd-share:hover { border-color: var(--navy); }
   .yd-sum__ta { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: #1f2937; text-decoration: none; font-size: 12.5px; white-space: nowrap; }
   .yd-sum__ta:hover { color: #1f2937; text-decoration: none; border-color: #00aa6c; }
   .yd-sum__ta img { height: 15px; width: auto; }
   .yd-sum__price { font-size: 14px; color: #374151; white-space: nowrap; }
   .yd-sum__price b { font-size: 18px; color: var(--navy); }
   .yd-sum__price span { color: var(--muted); font-size: 13px; }
   .yd-sum__cta { padding: 8px 16px; border: 0; border-radius: 10px; background: var(--gold); color: var(--navy); font-weight: 800; font-size: 14px; cursor: pointer; white-space: nowrap; }
   .yd-sum__cta:hover { filter: brightness(.97); }
}

/* ---------- Gallery: 5-photo grid on desktop, swipe strip on mobile ---------- */
@media (min-width: 992px) and (max-width: 1199px) { .yd-sum__l { display: none; } .yd-sum { justify-content: flex-end; } .yd-sum__price span { display: none; } }


.yd-ggrid { display: none; }
.yd-gallery__tour-btn { display: none; }
@media (min-width: 992px) {
   .yd-v2 .yd-gallery__main, .yd-v2 .yd-gallery__thumbs, .yd-v2 .yd-gallery__counter { display: none !important; }
   .yd-ggrid { display: grid; position: relative; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 200px 200px; gap: 8px; border-radius: 18px; overflow: hidden; }
   .yd-ggrid--3 { grid-template-columns: 2fr 1fr; }
   .yd-ggrid--4 { grid-template-columns: 2fr 1fr 1fr; }
   .yd-ggrid--4 .yd-ggrid__cell--3 { grid-column: 2 / span 2; }
   .yd-ggrid__cell { display: block; overflow: hidden; background: var(--line); }
   .yd-ggrid__cell img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
   .yd-ggrid__cell:hover img { transform: scale(1.03); }
   .yd-ggrid__cell--0 { grid-row: 1 / span 2; }
   .yd-ggrid__all { position: absolute; right: 14px; bottom: 14px; padding: 9px 14px; border: 1px solid var(--navy); border-radius: 10px; background: #fff; color: var(--navy); font-weight: 700; font-size: 14px; cursor: pointer; }
   .yd-ggrid__all:hover { background: var(--soft); }
}
@media (max-width: 991px) {
   .yd-v2 .yd-gallery__main { position: relative; border-radius: 0; }
   .yd-v2 .yd-gallery__tour-btn { display: inline-flex; align-items: center; gap: 6px; position: absolute; z-index: 3; left: 12px; bottom: 12px; padding: 6px 10px; border: 0; border-radius: 999px; background: rgba(15, 42, 67, .78); color: #fff; font-size: 13px; font-weight: 700; }
}

/* ---------- Guest quote ---------- */
.yd-person { display: flex; gap: 14px; align-items: center; margin: 8px 0 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.yd-person img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--gold); }
.yd-person blockquote { margin: 0 0 4px; font-size: 14.5px; font-style: italic; color: #1f2937; line-height: 1.5; }
.yd-person figcaption { font-size: 12.5px; color: var(--muted); }
.yd-person figcaption a { color: var(--navy); font-weight: 700; }

/* ---------- Photo tour + full-screen viewer ---------- */
.yd-pt { position: fixed; inset: 0; z-index: 100003; display: none; background: #fff; color: #1f2937; }
.yd-pt.open { display: flex; flex-direction: column; }
.yd-pt__bar { display: flex; align-items: center; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--line); background: #fff; }
.yd-pt__back { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: #fff; font-size: 20px; cursor: pointer; flex: 0 0 auto; color: #1f2937; }
.yd-pt__title { flex: 1; min-width: 0; }
.yd-pt__title b { display: block; font-size: 16px; color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.yd-pt__title small { font-size: 12.5px; color: var(--muted); }
.yd-pt__share { padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-weight: 700; font-size: 13px; color: var(--navy); cursor: pointer; white-space: nowrap; }
.yd-pt__cta { padding: 10px 16px; border: 0; border-radius: 10px; background: var(--gold); color: var(--navy); font-weight: 800; font-size: 14px; cursor: pointer; white-space: nowrap; }
.yd-pt__cta small { font-weight: 600; margin-right: 6px; font-size: 13px; }
.yd-pt__scroll { flex: 1; overflow: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.yd-pt__grid { max-width: 900px; margin: 0 auto; padding: 18px 16px 40px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.yd-pt__grid button { display: block; padding: 0; border: 0; background: var(--line); border-radius: 12px; overflow: hidden; cursor: zoom-in; position: relative; aspect-ratio: 4 / 3; }
.yd-pt__grid button:nth-child(3n+1) { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
.yd-pt__grid img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.yd-pt__grid button:hover img { transform: scale(1.02); }
.yd-pt__play { position: absolute; left: 10px; bottom: 10px; padding: 6px 10px; border-radius: 999px; background: rgba(0, 0, 0, .7); color: #fff; font-size: 12px; font-weight: 700; }
.yd-pv { position: fixed; inset: 0; z-index: 100004; display: none; background: #0b1118; color: #fff; }
.yd-pv.open { display: flex; flex-direction: column; }
.yd-pv__top { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; gap: 10px; }
.yd-pv__x { width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .12); color: #fff; font-size: 22px; cursor: pointer; }
.yd-pv__count { font-size: 14px; font-weight: 700; color: #cbd5e1; }
.yd-pv__grid { padding: 8px 12px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 10px; background: none; color: #fff; font-weight: 700; font-size: 13px; cursor: pointer; }
.yd-pv__stage { flex: 1; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; touch-action: pan-y pinch-zoom; min-height: 0; }
.yd-pv__img { max-width: 100%; max-height: 100%; object-fit: contain; user-select: none; -webkit-user-drag: none; }
.yd-pv__video { position: relative; display: flex; align-items: center; justify-content: center; max-width: 100%; max-height: 100%; }
.yd-pv__video img { max-width: 100%; max-height: 70vh; object-fit: contain; opacity: .55; }
.yd-pv__video button { position: absolute; padding: 14px 20px; border: 0; border-radius: 12px; background: var(--gold); color: var(--navy); font-weight: 800; font-size: 16px; cursor: pointer; }
.yd-pv__frame { width: min(960px, 100%); aspect-ratio: 16 / 9; }
.yd-pv__frame iframe { width: 100%; height: 100%; border: 0; }
.yd-pv__nav { position: absolute; z-index: 2; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .92); color: var(--navy); font-size: 26px; font-weight: 800; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, .3); line-height: 1; }
.yd-pv__prev { left: 16px; }
.yd-pv__next { right: 16px; }
.yd-pv__progress { height: 3px; background: rgba(255, 255, 255, .12); }
.yd-pv__progress span { display: block; height: 100%; width: 0; background: var(--gold); transition: width .2s; }
.yd-pv__thumbs { display: flex; gap: 6px; overflow-x: auto; padding: 8px 16px; scrollbar-width: none; }
.yd-pv__thumbs::-webkit-scrollbar { display: none; }
.yd-pv__thumbs button { flex: 0 0 auto; width: 72px; height: 52px; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; opacity: .55; cursor: pointer; background: #1f2937; }
.yd-pv__thumbs button.on { border-color: var(--gold); opacity: 1; }
.yd-pv__thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.yd-pv__bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid rgba(255, 255, 255, .1); }
.yd-pv__bottom p { margin: 0; font-size: 14px; color: #e2e8f0; }
.yd-pv__bottom p b { color: #fff; font-size: 17px; }
.yd-pv__bottom button { padding: 12px 18px; border: 0; border-radius: 12px; background: var(--gold); color: var(--navy); font-weight: 800; font-size: 15px; cursor: pointer; white-space: nowrap; }
.yd-pv__hint { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: rgba(15, 42, 67, .85); color: #fff; font-size: 14px; font-weight: 700; white-space: nowrap; pointer-events: none; }
.yd-pv__hint[hidden] { display: none; }
.yd-pv__hand { display: inline-block; font-size: 18px; }
@media (prefers-reduced-motion: no-preference) {
   .yd-pv__hand { animation: ydHand 1.2s ease-in-out infinite; }
   @keyframes ydHand { 0%, 100% { transform: translateX(8px); } 50% { transform: translateX(-8px); } }
   .yd-pv__nudge { animation: ydNudge 1s ease-in-out .35s 1; }
   @keyframes ydNudge { 0%, 100% { transform: translateX(0); } 40% { transform: translateX(-46px); } 70% { transform: translateX(6px); } }
}
@media (max-width: 767px) {
   .yd-pt__share { display: none; }
   .yd-pt__cta small { display: none; }
   .yd-pt__grid { gap: 4px; padding: 8px 4px 90px; }
   .yd-pt__grid button { border-radius: 6px; }
   
   .yd-pv__nav { display: none !important; }
   .yd-pv__thumbs { display: none; }
   .yd-pv__bottom p span { display: none; }
}
@media (prefers-reduced-motion: reduce) { .yd-pt__grid img { transition: none; } .yd-pv__progress span { transition: none; } }
/* ---------- Mobile rating row (under the gallery) ---------- */
.yd-msum { display: none; }
@media (max-width: 991px) {
   .yd-msum { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 10px 0 2px; }
   .yd-msum__ta { display: inline-flex; align-items: center; gap: 6px; color: #1f2937; font-size: 13px; text-decoration: none; white-space: nowrap; min-width: 0; }
   .yd-msum__ta:hover, .yd-msum__ta:focus { color: #1f2937; text-decoration: none; }
   .yd-msum__ta img { height: 15px; width: auto; }
   .yd-msum__ta .yd-dots i { width: 8px; height: 8px; }
   .yd-msum__ta span:last-child { color: var(--muted); }
   .yd-msum__share { flex: 0 0 auto; width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--navy); }
}

/* ======================= UK cabin page layout ======================= */
.page-hero--cabin h1{text-transform:none;font-size:clamp(26px,3.4vw,40px);max-width:24em}
.cb-page{padding-top:26px}
.cb-page .yd-v2{color:var(--ink)}
/* Mobile gallery strip: native scroll-snap (no Swiper on UK) */
.yd-gallery__main{position:relative;margin:0 -20px}
.yd-gallery__main .swiper-wrapper{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.yd-gallery__main .swiper-wrapper::-webkit-scrollbar{display:none}
.yd-gallery__slide{flex:0 0 100%;scroll-snap-align:start}
.yd-gallery__media-btn{display:block}
.yd-gallery__image{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--navy-2)}
.yd-gallery__counter{position:absolute;right:12px;bottom:12px;padding:4px 10px;border-radius:999px;background:rgba(11,29,46,.78);color:#fff;font-size:13px;font-weight:700}
.yd-ggrid__all{font-family:inherit}
@media (min-width:992px){.yd-ggrid{grid-template-rows:220px 220px}}
.yd-sum__ta b,.yd-msum__ta b{color:var(--navy)}

.cb-layout{margin-top:22px}
@media (min-width:992px){.cb-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:32px;align-items:start}.cb-rail{position:sticky;top:96px}}
@media (max-width:991px){.cb-rail{display:none}}
.cb-main{min-width:0}
.cb-block{margin:0 0 34px}
.cb-main [id]{scroll-margin-top:100px}
.cb-h2{font-size:clamp(21px,2.4vw,26px);font-weight:800;margin:0 0 10px}
.cb-lede{color:var(--muted);margin:-2px 0 12px}
.cb-answer{font-size:17px;margin:0 0 4px}
.cb-glance{margin-top:14px}
@media (min-width:992px){.cb-glance{grid-template-columns:repeat(3,minmax(0,1fr))}}
.cb-cross{margin:12px 0 0;font-size:16px}
.cb-cross a{font-weight:700}
.cb-cross--m{display:none}
@media (max-width:991px){.cb-cross--d{display:none}.cb-cross--m{display:block;margin:0 0 20px}}
.cb-nextdep{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin-top:12px;padding:12px 16px;border:1px solid var(--gold);background:#fffbee;border-radius:12px;color:var(--navy);text-decoration:none;font-size:15px}
.cb-nextdep span{display:inline-flex;align-items:center;gap:8px}
.cb-nextdep strong{white-space:nowrap}
.cb-nextdep:hover{background:#fff5d1;color:var(--navy)}
@media (min-width:992px){.cb-nextdep{display:none}}

.cb-cabintabs{display:flex;gap:8px;margin-bottom:12px}
.cb-cabintab{flex:1;border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px;font-weight:800;color:var(--navy);font-size:15px;font-family:inherit}
.cb-cabintab.is-active{background:var(--navy);color:#fff;border-color:var(--navy)}
.cb-cabinpanel{display:none}
.cb-cabinpanel.is-open{display:block}
.cb-cabinpanel img{display:block;width:100%;height:300px;object-fit:cover;border-radius:14px;background:var(--paper)}
@media (max-width:680px){.cb-cabinpanel img{height:220px}}
.cb-chips,.cb-pills{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0;padding:0;list-style:none}
.cb-chips li{font-size:13px;font-weight:700;background:#f1f5f9;color:var(--navy);padding:4px 11px;border-radius:999px}
.cb-pills li{font-size:13.5px;font-weight:700;background:#fffbee;border:1px solid #f3dd8f;color:var(--navy);padding:5px 12px;border-radius:999px}
.cb-cabinp{margin:0}
.cb-cabinprice{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0 0;padding:10px 14px;background:var(--paper);border-radius:12px}
.cb-cabinprice span{font-size:13px;color:var(--muted);line-height:1.3}
.cb-cabinprice strong{font-family:Marcellus,Georgia,serif;font-weight:400;font-size:22px;color:var(--navy);white-space:nowrap}

.cb-daychips{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:10px;scrollbar-width:thin}
.cb-daychips a{flex:0 0 auto;min-height:44px;display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--navy);font-weight:700;font-size:14px;text-decoration:none}
.cb-daychips a:hover{border-color:var(--gold)}
.cb-dayacc{border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:#fff;overflow:hidden}
.cb-dayacc__head{display:flex;align-items:center;gap:12px;width:100%;border:0;background:#fff;padding:8px 12px;text-align:left;font-family:inherit;min-height:56px}
.cb-dayacc__num{flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:var(--gold);color:var(--navy);font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.cb-dayacc__title{flex:1 1 auto;font-weight:700;color:var(--navy);font-size:16px}
.cb-dayacc__thumb{flex:0 0 auto;width:84px;height:56px;object-fit:cover;border-radius:8px}
.cb-dayacc__chev{flex:0 0 auto;color:var(--gold-d);font-size:24px;line-height:1;transition:transform .25s ease}
.cb-dayacc__head[aria-expanded="true"] .cb-dayacc__chev{transform:rotate(90deg)}
.cb-dayacc__head[aria-expanded="true"] .cb-dayacc__thumb{display:none}
.cb-dayacc__panel{display:none;padding:0 12px 14px}
.cb-dayacc__panel.is-open{display:block}
.cb-dayacc__body{display:flex;gap:12px;align-items:flex-start}
.cb-dayacc__body img{flex:0 0 auto;width:180px;height:120px;object-fit:cover;border-radius:10px}
.cb-dayacc__body p{margin:0}
@media (max-width:680px){.cb-dayacc__body{flex-direction:column}.cb-dayacc__body a{width:100%}.cb-dayacc__body img{width:100%;height:180px}}
.cb-credit{font-size:12.5px;color:var(--muted);margin:6px 0 0}
.cb-map{margin:0 0 12px}
.cb-map img{display:block;width:100%;height:auto;border-radius:14px}
.cb-map figcaption{font-size:13.5px;color:var(--muted);margin-top:6px}

.cb-deptable{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.cb-deptable h2{font-size:18px;font-weight:800;margin:0;padding:12px 16px;background:var(--navy);color:#fff}
.cb-deplist{font-size:15px;color:#42566a;margin:12px 16px}
.cb-months{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.cb-month{display:inline-flex;flex-direction:column;align-items:center;min-width:70px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:13px;color:var(--navy);font-family:inherit;line-height:1.25}
.cb-month strong{font-size:15px}
.cb-month small{color:var(--muted);font-size:12px}
.cb-month:hover{border-color:var(--gold)}
.cb-month.is-active{border-color:var(--navy);background:var(--navy);color:#fff}
.cb-month.is-active small{color:#c8d3dd}
.cb-weeks{margin-top:10px}
.cb-weeks p{font-size:13px;font-weight:700;margin:0 0 6px}
.cb-weeks__list{display:flex;flex-wrap:wrap;gap:6px}
.cb-weekchip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;font-size:13.5px;font-weight:700;color:var(--navy);font-family:inherit}
.cb-weekchip:hover{border-color:var(--gold)}
.cb-weekchip.is-active{background:var(--gold);border-color:var(--gold)}
.cb-mpick{padding:12px 16px 14px}
.cb-mpick>p{font-size:14px;color:#42566a;margin:0}
.cb-mpick .cb-months{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.cb-mpick .cb-month{min-width:0}
@media (min-width:992px){.cb-mpick{display:none}.cb-depsel{display:none!important}}
@media (max-width:991px){.cb-deplist{display:none}}
.cb-depsel{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 16px 14px;padding:10px 12px;background:#fffbee;border:1px solid var(--gold);border-radius:12px;font-size:15px;font-weight:700;color:var(--navy)}
.cb-depsel__cta{border:0;background:var(--gold);color:var(--navy);font-weight:800;padding:9px 16px;border-radius:999px;font-family:inherit}
.cb-deptbl{border-top:1px solid #eef2f6}
.cb-deptbl summary{cursor:pointer;padding:12px 16px;font-size:15px;font-weight:700;color:var(--navy);min-height:44px}
.cb-deptbl table{width:100%;border-collapse:collapse;font-size:14.5px}
.cb-deptbl caption{caption-side:top;text-align:left;font-size:13px;color:var(--muted);padding:0 16px 8px}
.cb-deptbl th,.cb-deptbl td{text-align:left;padding:8px 16px;border-top:1px solid #eef2f6}
.cb-deptbl thead th{background:#f7fafc;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.cb-deptbl tbody tr:nth-child(even){background:#fafcfd}

.cb-fly{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;list-style:none}
.cb-fly li{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.cb-fly b{display:block;color:var(--navy)}
.cb-fly span{display:block;font-size:15px;color:#42566a;line-height:1.5}
@media (max-width:680px){.cb-fly{grid-template-columns:1fr}}

.cb-steplist{position:relative;margin:0;padding:0;list-style:none;counter-reset:cbs}
.cb-steplist::before{content:"";position:absolute;left:20px;top:14px;bottom:14px;width:2px;background:#f0e0b0}
.cb-steplist li{position:relative;padding:0 0 18px 60px;counter-increment:cbs}
.cb-steplist li:last-child{padding-bottom:0}
.cb-steplist li::before{content:counter(cbs);position:absolute;left:0;top:0;width:42px;height:42px;border-radius:50%;background:var(--gold);color:var(--navy);font-weight:800;font-size:17px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 5px #fff}
.cb-steplist b{display:block;color:var(--navy);font-size:17px;padding-top:8px}
.cb-steplist span{display:block;color:#4f5f70;font-size:15.5px}

.cb-faqcta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:var(--navy);color:#fff;border-radius:12px;padding:14px 18px;margin-top:14px}
.cb-faqcta p{margin:0;flex:1 1 220px}
.cb-faqcta a{color:#fff;background:#177a3e;font-weight:800;padding:9px 18px;border-radius:999px;text-decoration:none;white-space:nowrap}
.cb-faqcta a:hover{color:#fff;background:#145e2f}
.cb-gb{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.cb-gb__media img{display:block;width:100%;height:170px;object-fit:cover;border-radius:10px}
.cb-gb__txt h2{font-size:20px;margin:0 0 6px}
.cb-gb__txt p{margin:0}
.cb-gb__txt .kicker{margin:0 0 4px}
@media (max-width:680px){.cb-gb{grid-template-columns:1fr}}
.cb-tech summary h2{font-size:18px;margin:0;color:var(--navy)}
.cb-fresh{margin:0}

/* Rail card */
.cb-railcard{border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 10px 24px rgba(16,39,62,.08);padding:18px}
.cb-railprice small{color:var(--muted);font-size:13px;font-weight:600}
.cb-railprice strong{display:block;font-family:Marcellus,Georgia,serif;font-weight:400;font-size:34px;color:var(--navy);line-height:1.1}
.cb-occ{display:flex;margin:12px 0 4px;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.cb-occbtn{flex:1;border:0;background:#fff;padding:9px 6px;font-size:13.5px;font-weight:700;color:var(--navy);font-family:inherit}
.cb-occbtn.is-active{background:var(--navy);color:#fff}
.cb-railhint{font-size:13px;font-weight:700;margin:12px 0 0}
.cb-rail .cb-months{gap:6px}
.cb-rail .cb-month{min-width:0;flex:1 1 52px;padding:7px 4px}
.cb-railsel{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:12px 0 0;padding:8px 12px;background:#f7fafc;border-radius:10px}
.cb-railsel small{font-size:12px;color:var(--muted)}
.cb-railsel strong{font-size:15px;color:var(--navy)}
.cb-railcta{display:block;width:100%;margin-top:14px;padding:13px;border:0;border-radius:10px;background:var(--gold);color:var(--navy);font-weight:800;font-size:16px;font-family:inherit}
.cb-railcta:hover{background:#ffc928}
.cb-railnote{font-size:13px;color:#0b6b40;font-weight:600;margin:8px 0 0;text-align:center}
.cb-railperson{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:14px;line-height:1.35}
.cb-railperson img{width:40px;height:40px;border-radius:50%;object-fit:cover;object-position:50% 20%;flex:0 0 auto}
.cb-railperson span{display:block;font-size:12.5px;color:var(--muted)}
.cb-railta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--navy)}
.cb-railta img{height:16px;width:auto}

/* Mobile bar */
.cb-mbar{display:none}
@media (max-width:991px){
  .cb-mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:110;align-items:center;gap:10px;background:#fff;border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -6px 18px rgba(16,39,62,.12);transition:transform .2s ease-out}
  .cb-mbar.is-off{transform:translateY(110%)}
  .cb-mbar__price{flex:1;min-width:0;line-height:1.15}
  .cb-mbar__price small{display:block;font-size:12px;color:var(--muted)}
  .cb-mbar__price strong{font-size:19px;color:var(--navy);margin-right:4px}
  .cb-mbar__price span{font-size:12px;color:var(--muted)}
  .cb-mbar__wa{flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:#177a3e;color:#fff;display:inline-flex;align-items:center;justify-content:center}
  .cb-mbar__cta{flex:0 0 auto;border:0;border-radius:10px;background:var(--gold);color:var(--navy);font-weight:800;font-size:14.5px;padding:12px 14px;font-family:inherit}
  body[data-page="cabin"] .whatsapp-float{display:none}
}

/* Lightbox */
.cb-lb{position:fixed;inset:0;z-index:100005;display:none;align-items:center;justify-content:center;background:rgba(8,14,22,.94)}
.cb-lb.open{display:flex}
.cb-lb img{max-width:min(1200px,94vw);max-height:84vh;object-fit:contain;border-radius:6px}
.cb-lb__x{position:absolute;top:14px;right:14px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:26px;line-height:1}
.cb-lb__nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#10273e;font-size:28px;font-weight:800;line-height:1}
.cb-lb__prev{left:14px}
.cb-lb__next{right:14px}
.cb-lb__count{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:#cbd5e1;font-size:14px;font-weight:700}
@media (max-width:680px){.cb-lb__nav{display:none}}

/* Desktop order: cabins and the guest quote climb (mobile order = DOM order) */
@media (min-width:992px){
  .cb-main{display:flex;flex-direction:column}
  .cb-main>*{order:30}
  #cb-glance{order:1}#boat-wrap{order:2}#book-form{order:3}#cbx-why{order:4}#book{order:5}#route{order:6}#program{order:7}#departures-sec{order:8}#flights{order:9}#amenities-wrap{order:10}#good-to-know{order:11}#steps{order:12}#faq{order:13}#technical-wrap{order:14}#cbx-links{order:15}
}
.table-scroll{overflow-x:auto}
