/* Shared size containment, then phone/tablet layouts. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,main,header{width:100%;min-width:0}
main{overflow-wrap:anywhere}
img,iframe,video{max-width:100%}
.dashboard>*,.rightcol>*,.overview>*,.twocol>*,.watch-first>*,.quickfacts>*,.guide-heading>*,.video-grid>*,.feature>*,.show-grid>*,.prep-grid>*,.aqua-entry>*,.special>*,.booking>span{min-width:0}
.booking img,.place img,.stepicon{flex-shrink:0}
.tablewrap{max-width:100%;overscroll-behavior-x:contain}
.dialogbar>span{min-width:0;overflow-wrap:anywhere}
.dialogbar button{flex:0 0 44px;min-height:44px}
dialog{max-width:calc(100% - 24px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
#video-player{width:100%;min-width:0}
@media(max-width:900px){
 header{padding:12px 18px;flex-wrap:wrap;gap:6px 12px;min-height:64px}
 header .wordmark{font-size:23px;line-height:1.25;letter-spacing:0;flex:1;min-width:0}
 header .quiet{font-size:14px;min-height:44px;display:inline-flex;align-items:center;justify-content:flex-end;padding:8px;max-width:140px}
 header .header-note{display:none}
 main{margin-bottom:0;box-shadow:none}
 .dashboard{display:flex;flex-direction:column;grid-template-rows:none}
 .dashboard>section,.dashboard>aside{width:100%;border-right:0}
 .destination{order:0;min-height:340px}
 .title{padding:24px}
 .title h1{font-size:clamp(42px,8vw,58px);line-height:1;letter-spacing:-1px;margin:10px 0 14px}
 .title>p:last-child{font-size:20px;line-height:1.3;margin:0;max-width:300px}
 .title .eyebrow{font-size:12px;letter-spacing:1px}
 .photofoot{left:24px;right:24px;bottom:17px;font-size:11px;letter-spacing:.8px;gap:10px;flex-wrap:wrap}
 .itinerary{order:1;padding:18px 20px}
 .smallhead{flex-wrap:wrap;align-items:center;gap:6px 12px}
 .smallhead h2{font-size:27px}
 .smallhead .micro{font-size:12px;max-width:none;text-align:left}
 .smallhead .quiet{min-height:44px;font-size:14px}
 .daystrip{display:flex;gap:10px;overflow-x:auto;max-width:100%;padding:2px 0 10px;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:thin}
 .daycard{flex:0 0 128px;padding:8px;border:1px solid var(--line);scroll-snap-align:start}
 .daycard .date{font-size:12px;letter-spacing:.2px}
 .daycard strong{font-size:14px;line-height:1.4;white-space:normal;min-height:40px;margin:4px 0}
 .daycard img{height:78px}
 .daily{order:2;padding:22px 24px;border-top:1px solid var(--line)}
 .day-nav{gap:10px;flex-wrap:wrap}
 .day-nav .eyebrow{font-size:12px;letter-spacing:.8px;margin:0}
 .day-nav>div{display:flex;gap:8px}
 .arrow{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;padding:0}
 #daydetail h3{font-size:clamp(32px,8vw,42px);line-height:1.1;letter-spacing:0}
 .dayintro,.step p{font-size:16px;line-height:1.6}
 .daydate{font-size:14px}
 .step{grid-template-columns:34px minmax(0,1fr);gap:12px;margin-bottom:26px}
 .step strong{font-size:24px;line-height:1.2}
 .step time{font-size:12px;line-height:1.5}
 .handwritten{font-size:27px;line-height:1.15;transform:none;margin:16px 0 5px}
 .rightcol{order:3;display:flex;flex-direction:column;padding:24px;gap:25px;border-top:1px solid var(--line)}
 .rightcol .mapsection{margin:0}
 .rightcol iframe{height:240px;display:block}
 .booking{padding:12px;gap:12px;align-items:center}
 .booking img{width:76px;height:82px}
 .booking strong{font-size:24px;line-height:1.2}
 .booking small{font-size:14px;line-height:1.5}
 .booking em{font-size:12px;line-height:1.5;white-space:normal}
 .mapplaces{display:grid;grid-template-columns:1fr;gap:0;margin-top:8px}
 .mapplaces a{font-size:14px;min-height:44px;display:flex;align-items:center}
 .saved{order:4;padding:24px}
 .packing{order:5;padding:24px}
 .place{gap:12px;min-height:48px}
 .place>a{font-size:16px;line-height:1.4;min-height:44px;display:flex;align-items:center}
 .place img{width:38px;height:38px}
 .heart{width:44px;min-height:44px;flex-shrink:0;font-size:25px}
 #packing-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin-top:10px}
 #packing-list label{font-size:16px;min-height:48px;align-items:center;gap:9px;line-height:1.4}
 input[type=checkbox]{width:20px;height:20px;flex-shrink:0}
 .aqua-entry,.special{grid-template-columns:minmax(0,1fr);gap:24px;padding:26px 24px}
 .aqua-entry>img{height:220px}
 .aqua-entry h2,.special h2{font-size:36px;line-height:1.15}
 .speciallabel{min-height:230px;padding:22px}
 .special p,.aqua-entry p,.card p,.feature p,.note li{font-size:16px;line-height:1.65}
 .special .story{font-size:27px;line-height:1.3}
 .action,.lightbutton{font-size:16px;min-height:48px;padding:12px 18px;line-height:1.5;max-width:100%}
 .links{align-items:flex-start;flex-direction:column;gap:10px;margin:22px 0 14px}
 .links>a{min-height:44px;display:inline-flex;align-items:center;font-size:16px}
 footer{display:block;padding:25px 24px}
 footer details{margin-top:20px;font-size:14px;max-width:100%}
 footer summary{font-size:16px;min-height:44px;padding:10px 0}
 .fine,.special small{font-size:12px;line-height:1.6}
 dialog{width:calc(100% - 24px);padding:20px;max-height:calc(100dvh - 24px)}
 dialog h2,.feature h3,.panelintro h3{font-size:32px;line-height:1.15}
 .dialogbar{gap:12px;margin-bottom:18px}
 .feature,.cards{grid-template-columns:minmax(0,1fr);gap:18px}
 .note{padding:20px}
 .filters{gap:8px;max-width:100%}
 .filters button{min-height:44px;font-size:14px;padding:9px 14px;line-height:1.5;white-space:normal}
 .card a,.textlink{font-size:14px;display:inline-flex;align-items:center;min-height:44px}
 /* Ship guide uses one content column on phones and small tablets. */
 .ship-page header .wordmark{font-size:22px}
 .ship-page header .quiet{font-size:14px}
 .shiphero{min-height:350px}
 .shiphero>div{padding:25px 24px;width:100%}
 .shiphero h1{font-size:clamp(46px,10vw,62px);line-height:1;letter-spacing:-1px;margin:15px 0}
 .shiphero p:not(.eyebrow){font-size:21px;line-height:1.35;margin:0 0 20px}
 .guide-nav{position:relative;top:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;padding:14px 20px;overflow:visible;justify-content:normal}
 .guide-nav a{display:flex;align-items:center;min-height:44px;font-size:14px;padding:8px 10px;white-space:normal;line-height:1.4;border:1px solid var(--line);border-radius:3px}
 .guide-nav a:last-child{grid-column:1 / -1}
 .guide-section{padding:32px 24px;scroll-margin-top:18px}
 .guide-section h2{font-size:clamp(32px,8vw,40px);line-height:1.1;margin:12px 0 20px}
 .guide-section h3{font-size:28px;line-height:1.2}
 .overview,.twocol,.watch-first,.activity-grid,.show-grid,.prep-grid,.video-grid{grid-template-columns:minmax(0,1fr);gap:22px}
 .guide-heading{display:block}
 .guide-note{display:none}
 .guide-section p,.activity>p,.activity details p,.show-grid p,.prep-grid p,.video-info p{font-size:16px;line-height:1.65}
 .activity{padding:22px}
 .activity .cat{font-size:12px;letter-spacing:.7px}
 .activity summary,.expanded summary{font-size:16px;line-height:1.5;min-height:44px;padding:8px 0}
 .videolink,.source,.video-info a{font-size:14px;min-height:44px;display:inline-flex;align-items:center;line-height:1.5}
 .quickfacts{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .quickfacts b{font-size:24px;line-height:1.25;margin-bottom:6px}
 .quickfacts span{font-size:12px;line-height:1.5}
 .inline-watch{display:flex;flex-direction:column;gap:12px}
 .first-buttons button,.inline-watch button{font-size:16px;min-height:48px;padding:14px 16px;width:100%}
 .tablewrap{overflow:visible;background:transparent;border:0}
 .tablewrap table,.tablewrap tbody,.tablewrap tr,.tablewrap td{display:block;width:100%;min-width:0}
 .tablewrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .tablewrap tbody tr{border:1px solid var(--line);margin-bottom:14px;background:#fbfaf5;border-radius:4px;overflow:hidden}
 .tablewrap td{padding:12px 16px;border-bottom:1px solid var(--line);font-size:16px;line-height:1.6}
 .tablewrap td:last-child{border-bottom:0}
 .tablewrap td:before{content:attr(data-label);display:block;font-size:12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--olive);margin-bottom:4px}
 .tablewrap td:first-child{background:#e9ecdd;font-size:18px}
 .sea-day{padding:22px}
 .pill{font-size:12px;letter-spacing:.5px;white-space:normal}
 .video-art{height:90px;padding:18px;gap:16px}
 .video-art>span{flex-shrink:0}
 .video-info{padding:20px}
 .video-info small{font-size:12px}
 #video-modal{width:calc(100% - 16px);max-width:calc(100% - 16px);padding:14px;max-height:calc(100dvh - 20px)}
 #video-title{font-size:14px;line-height:1.5}
 #youtube-link{display:inline-flex;align-items:center;min-height:48px;font-size:16px}
}
@media(max-width:380px){
 header .wordmark,.ship-page header .wordmark{font-size:20px}
 .title{padding:22px 20px}
 .daily,.rightcol,.saved,.packing,.special,.aqua-entry,.guide-section,footer{padding-left:20px;padding-right:20px}
 .booking{gap:10px;padding:10px}.booking img{width:60px;height:76px}.booking strong{font-size:22px}
 #packing-list{grid-template-columns:minmax(0,1fr)}
 .quickfacts{grid-template-columns:minmax(0,1fr);gap:16px}
 .quickfacts span{display:flex;justify-content:space-between;align-items:center;gap:15px}
 .quickfacts b{margin:0;font-size:24px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Confirmed cruise itinerary: preserve swipe navigation at every width. */
.daystrip{display:flex;gap:10px;overflow-x:auto;max-width:100%;padding-bottom:10px;scroll-snap-type:x proximity;scrollbar-width:thin}
.daycard{flex:0 0 116px;scroll-snap-align:start;border:1px solid var(--line)}
.daycard .date{font-size:12px}.daycard strong{font-size:14px;min-height:40px;line-height:1.4}
.day-guide{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
.port-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0}
.port-card{min-width:0;padding:26px;border:1px solid var(--line);background:#ffffff45}
.port-card .port-deck{font:600 25px/1.2 'Cormorant Garamond',Georgia,serif;color:var(--rust)}
.port-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.port-links a,.port-links button{min-height:44px;display:inline-flex;align-items:center;font-size:14px;text-align:left}
.sea-day-pair{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
@media(max-width:900px){.port-grid{grid-template-columns:minmax(0,1fr)}.port-card{padding:20px}.daycard{flex-basis:128px}.guide-nav a:last-child{grid-column:auto}}
/* Keep every hero headline and subtitle on an opaque reading surface. */
:root{--rust:#8b4935}
.destination .title{background:var(--paper);color:#283226;margin:24px;padding:26px;max-width:calc(100% - 48px)}
.destination .title h1{line-height:1.08;letter-spacing:-1px}
.destination .title>p:last-child{color:#374132;line-height:1.45}
.shiphero>div{background:var(--paper);color:#283226;margin:32px;padding:32px;width:min(490px,calc(100% - 64px))}
.shiphero h1{font-size:clamp(46px,5.5vw,76px);line-height:1.08;letter-spacing:-1px}
.shiphero p:not(.eyebrow){color:#374132;line-height:1.45}
.title .eyebrow,.shiphero .eyebrow{color:#8b4935;line-height:1.5}
h1,h2,h3,h4{overflow-wrap:break-word}
header .wordmark{display:inline-flex;align-items:center;gap:8px}
header .wordmark span{flex-shrink:0;margin-left:0}
.speciallabel>span:first-child,.speciallabel small{background:#20332e;padding:8px 10px;color:#fff;align-self:flex-start}
@media(max-width:900px){
 .destination,.shiphero{display:flex;flex-direction:column;min-height:0;overflow:visible;background:var(--paper)}
 .destination:after,.shiphero:after{display:none}
 .destination .title,.shiphero>div{order:0;position:relative;margin:0;width:100%;max-width:none;padding:28px 24px;background:var(--paper)}
 .destination .title h1{font-size:clamp(42px,10vw,58px);line-height:1.1;margin:14px 0 20px}
 .destination .title>p:last-child{font-size:22px;max-width:100%;line-height:1.45}
 .shiphero h1{font-size:clamp(44px,10vw,62px);line-height:1.1}
 .shiphero p:not(.eyebrow){font-size:22px;line-height:1.45}
 .destination>img,.shiphero>img{order:1;position:static;display:block;width:100%;height:240px;object-fit:cover}
 .destination>img{object-position:center 65%}
 .shiphero>img{height:auto;aspect-ratio:1270/662;object-fit:contain}
 .photofoot{order:2;position:static;background:#20332e;color:white;padding:12px 24px;gap:8px 18px;line-height:1.5}
}

/* Real destination thumbnails, with labels kept above the image. */
.daycard img{width:100%;height:90px;object-fit:cover;display:block;border-radius:2px}
