:root{--navy:#0b2a4a;--sea:#1b6b8f;--foam:#f4f8fb;--sand:#f2c14e;--ink:#1d2733;--muted:#5b6b7b;--warn:#b3261e;--line:#dbe4ec}
*{box-sizing:border-box}body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--foam)}
a{color:var(--sea)}.wrap{max-width:1100px;margin:0 auto;padding:0 1rem}.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem}
header.site{background:var(--navy);color:#fff;border-bottom:4px solid var(--sand)}.bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem}
.brand{display:flex;gap:.5rem;align-items:center;color:#fff;text-decoration:none;font-weight:800;font-size:1.2rem;letter-spacing:.02em}.brand svg{color:var(--sand)}
nav a{white-space:nowrap;color:#dbe9f5;text-decoration:none;margin-left:1rem;font-size:.95rem}nav a:hover,nav a[aria-current]{color:var(--sand)}
.hero{background:linear-gradient(135deg,var(--navy),var(--sea));color:#fff;border-radius:0 0 14px 14px;padding:2rem 1.5rem;margin:0 -1rem 1.5rem}
.hero h1{margin:0 0 .5rem;font-size:clamp(1.7rem,4vw,2.6rem)}.lede{font-size:1.1rem;max-width:60ch}
.stats{display:flex;flex-wrap:wrap;gap:1rem;list-style:none;padding:0;margin:1rem 0 0}.stats li{background:rgba(255,255,255,.12);padding:.4rem .8rem;border-radius:8px}
.filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;background:#fff;border:1px solid var(--line);border-radius:10px;padding:1rem;margin-bottom:1rem}
.filters label{display:flex;flex-direction:column;font-size:.85rem;color:var(--muted);font-weight:600}.filters .chk{flex-direction:row;gap:.4rem;align-items:center}
select{font:inherit;padding:.4rem;border:1px solid var(--line);border-radius:6px;min-width:12rem}#cnt{margin-left:auto;color:var(--muted)}
.note,.flag{background:#fff8e6;border-left:4px solid var(--sand);padding:.75rem 1rem;border-radius:6px}
table.sched{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;margin:1rem 0;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.sched th,.sched td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.sched thead th{background:var(--navy);color:#fff;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}
.mrow th{background:#e8f1f7;color:var(--navy);font-size:1rem}.sched small{display:block;color:var(--muted)}
.warn{display:inline-block;background:#fdecea;color:var(--warn);font-weight:600;font-size:.82rem;padding:.1rem .45rem;border-radius:4px;margin:0 .3rem .2rem 0}
.src{font-size:.8rem;color:var(--muted)}.cite{font-size:.85rem;color:var(--muted)}
.aff-slot{border:2px dashed #9fb3c4;background:#fff;color:var(--muted);padding:.8rem 1rem;border-radius:8px;margin:1.25rem 0;font-size:.9rem}
.prose{background:#fff;border:1px solid var(--line);border-radius:10px;padding:1.5rem 2rem;margin:1.5rem 0;max-width:800px}.prose h1{color:var(--navy);margin-top:.2rem}.prose h2{color:var(--sea)}
.crumb{font-size:.85rem;color:var(--muted)}.center{text-align:center;margin:3rem auto}.btn{display:inline-block;background:var(--navy);color:#fff;padding:.7rem 1.2rem;border-radius:8px;text-decoration:none}
footer.site{background:var(--navy);color:#c9d8e6;margin-top:2rem;padding:1rem 0;font-size:.9rem}footer a{color:var(--sand)}
@media (max-width:700px){nav a{margin:0 .8rem 0 0}.sched thead{display:none}.sched tr{display:block;border-bottom:2px solid var(--line);padding:.4rem 0}
.sched td{display:flex;gap:.5rem;border:0;padding:.2rem .75rem}.sched td::before{content:attr(data-l);min-width:5.5rem;font-weight:700;color:var(--muted);font-size:.8rem}
.sched .mrow{display:block}.sched .mrow th{display:block}.prose{padding:1rem}}
/* cruise + itinerary */
.sched td.cr{min-width:15rem;max-width:26rem}.ct{color:var(--navy);display:block;line-height:1.3}
.nopub{color:var(--muted);font-style:italic}.nopub.big{font-size:1.1rem}
.more{display:inline-block;font-size:.8rem;margin-top:.15rem}
.itd{margin:.3rem 0 .1rem}.itd summary{cursor:pointer;font-size:.85rem;font-weight:600;color:var(--sea);list-style:none;display:flex;gap:.35rem;align-items:baseline}
.itd summary::-webkit-details-marker{display:none}.itd summary::before{content:"▸";transition:transform .15s;display:inline-block}.itd[open] summary::before{transform:rotate(90deg)}
.itd .ports{font-weight:400;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.itd[open] .ports{white-space:normal}
.itin{list-style:none;margin:.5rem 0;padding:0;border-left:3px solid var(--line)}
.itin li{display:grid;grid-template-columns:5.2rem 1fr;column-gap:.6rem;padding:.35rem 0 .35rem .7rem;position:relative;font-size:.9rem;line-height:1.35}
.itin li::before{content:"";position:absolute;left:-7px;top:.6rem;width:11px;height:11px;border-radius:50%;background:var(--sea);border:2px solid #fff}
.itin li.sea::before{background:#9fc3d6}.itin li.embark::before,.itin li.debark::before{background:var(--sand)}
.itin .dd{grid-row:span 2;font-weight:700;color:var(--navy);font-size:.82rem}.itin .dd small{display:inline;color:var(--muted);font-weight:500}
.itin .pp{font-weight:600}.itin li.sea .pp{color:var(--muted);font-weight:500;font-style:italic}.itin .tt{grid-column:2;color:var(--muted);font-size:.8rem}
.isrc{font-size:.75rem;color:var(--muted);margin:.2rem 0}.agg{background:#eef2f6;border-radius:4px;padding:0 .3rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;background:var(--foam);border-radius:8px;padding:1rem;margin:1rem 0}
.facts dt{font-weight:700;color:var(--muted);font-size:.85rem}.facts dd{margin:0}
.sail .itin li{font-size:1rem;padding:.55rem 0 .55rem .9rem;grid-template-columns:7rem 1fr}.sail .itin .dd{font-size:.9rem}
p.warn{display:block;padding:.5rem .75rem;font-size:.9rem}
@media (max-width:700px){.sched td.cr{display:block;max-width:none;padding:.3rem .75rem}.sched td.cr::before{display:block;margin-bottom:.1rem}
.facts{grid-template-columns:1fr}.facts dd{margin-bottom:.4rem}.sail .itin li{grid-template-columns:5.4rem 1fr}}
@media (max-width:700px){table.sched,.sched tbody{display:block;width:100%}.sched td{flex-wrap:wrap;min-width:0}.sched td>*{min-width:0;max-width:100%}
.sched td small{flex-basis:100%;padding-left:6rem;margin-top:-.2rem}.sched td.cr small{padding-left:0;margin:0}.itd summary{flex-wrap:nowrap}.itd .ports{flex:1}}
@media (max-width:700px){header.site nav{display:flex;overflow-x:auto;max-width:100%;padding-bottom:.25rem;-webkit-overflow-scrolling:touch}}
/* filter actions */
.fact{display:flex;align-items:center;gap:.75rem}
.btn-apply{font:inherit;font-weight:700;background:var(--navy);color:#fff;border:0;border-radius:8px;padding:.6rem 1.3rem;cursor:pointer;box-shadow:0 2px 0 var(--sand)}
.btn-apply:hover,.btn-apply:focus-visible{background:var(--sea)}
.lnk{font:inherit;font-size:.9rem;background:none;border:0;color:var(--sea);text-decoration:underline;cursor:pointer;padding:.3rem}
#cnt{margin:0 0 0 auto;color:var(--navy);font-size:1rem;background:#e8f1f7;border-radius:999px;padding:.3rem .9rem}#cnt b{font-size:1.15rem}
#departures{scroll-margin-top:.75rem}
@media (max-width:700px){.filters{flex-direction:column;align-items:stretch}.filters select{width:100%;min-width:0}
.fact{flex-direction:column;align-items:stretch;gap:.25rem}.btn-apply{width:100%;padding:.85rem;font-size:1.05rem}.lnk{align-self:center}#cnt{margin:0;text-align:center}}
/* robust hiding: [hidden] must beat the mobile card layout's display:block */
[hidden]{display:none!important}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem}
.chip{display:inline-block;padding:.35rem .8rem;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--navy);text-decoration:none;font-size:.9rem;font-weight:600}
.chip:hover{border-color:var(--sea)}.chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.hero-crumb a{color:#dbe9f5}.hero-crumb{color:#c9d8e6;margin:0 0 .3rem}
@media (max-width:700px){.chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.3rem;-webkit-overflow-scrolling:touch}.chip{white-space:nowrap}}
