:root{--blue:#006ebc;--blue-dark:#005394;--navy:#10304d;--ink:#263743;--muted:#677c8d;--line:#dce4ea;--pale:#f4f7f9;--sky:#eaf4fb;--teal:#047e85;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--shadow:0 12px 40px rgba(12,40,66,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:#fff;font-family:var(--font);font-size:15px;color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,select,input{border:0;border-radius:0;background:none;color:inherit}button{cursor:pointer}select{-webkit-appearance:none;appearance:none;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #26a8e1;outline-offset:4px}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{color:var(--navy);line-height:1.17}img{max-width:100%;display:block}svg{display:block;flex-shrink:0}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon.tiny{width:15px;height:15px}.icon.reverse{transform:rotate(180deg)}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.container{width:min(1120px,calc(100% - 64px));margin-inline:auto}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:-70px;left:12px;padding:12px 18px;color:#fff;background:var(--navy)}.skip-link:focus{top:12px}.muted{color:var(--muted)}.full-width{width:100%}.smallprint{font-size:12px;line-height:1.65;color:var(--muted);margin-top:22px}.centered{text-align:center}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.9px;color:var(--blue);margin-bottom:12px}.eyebrow.light{color:#d8ebfa}.btn{min-height:42px;display:inline-flex;justify-content:center;align-items:center;gap:9px;border:1px solid transparent;border-radius:4px;padding:11px 18px;line-height:1.25;font-size:14px;font-weight:600;white-space:nowrap;transition:background .18s,box-shadow .18s,transform .18s}.btn:hover{text-decoration:none}.btn .icon{width:18px;height:18px}.btn-blue{background:var(--blue);color:white;border-color:var(--blue)}.btn-blue:hover:not(:disabled){background:var(--blue-dark);border-color:var(--blue-dark);box-shadow:0 3px 9px #006ebc22}.btn-outline{color:var(--blue);border-color:#99c2e1;background:#fff}.btn-outline:hover{background:var(--sky);border-color:var(--blue)}.text-button{color:var(--blue);font-size:14px;font-weight:600;display:inline-flex;gap:8px;align-items:center;padding:5px 0;white-space:nowrap}.text-button .icon{width:18px;height:18px}.text-button:hover{text-decoration:underline}.icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;flex-shrink:0;color:var(--blue)}.icon-button:hover:not(:disabled){background:var(--sky)}.utility-bar{background:#f3f6f8;border-bottom:1px solid #eef1f4;font-size:12px;color:#536b7d}.utility-inner{min-height:58px;display:flex;justify-content:space-between;align-items:center;gap:20px}.utility-inner>span{color:#516573}.utility-inner strong{font-weight:600;color:var(--blue)}.utility-right{display:flex;align-items:flex-end;flex-direction:column;gap:1px}.utility-right a{font-weight:600;display:inline-flex;gap:6px;align-items:center}.utility-right .icon{width:13px;height:13px}.site-header{position:relative;z-index:5;background:#fff;border-bottom:1px solid #eef2f5}.header-inner{height:86px;display:flex;align-items:center;gap:32px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);flex-shrink:0}.brand:hover{text-decoration:none}.brand--full{gap:0}.brand-logo{display:block;height:auto;width:220px;max-width:min(220px,41vw)}.footer-logo{width:196px;max-width:min(196px,56vw)}.wordmark{font-size:27px;line-height:1.1;letter-spacing:-1.2px;font-weight:600}.wordmark>span{color:var(--blue);margin-left:4px;font-weight:700}.wordmark small{display:block;font-size:7px;letter-spacing:1.3px;font-weight:600;color:#617589;margin-top:5px}.desktop-nav{display:flex;gap:25px;margin-left:18px;align-items:center}.desktop-nav a{font-size:13px;font-weight:600;color:#394750;white-space:nowrap}.desktop-nav a:hover{color:var(--blue);text-decoration:none}.header-actions{display:flex;gap:9px;margin-left:auto;align-items:center}.header-actions .btn{font-size:12px;padding-inline:15px;min-height:38px}.header-actions .saved-count{background:var(--blue);color:#fff;border-radius:50%;font-size:10px;line-height:17px;min-width:17px;text-align:center}.menu-toggle{display:none}.mobile-nav{padding:4px 24px 18px;border-top:1px solid var(--line)}.mobile-nav a{display:block;font-size:15px;padding:12px 0;color:var(--ink);border-bottom:1px solid #f0f3f5}
.hero{position:relative;isolation:isolate;background:#09345a;overflow:hidden}.hero-picture,.hero-picture img,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.hero-picture img{object-fit:cover;object-position:55% 50%}.hero-shade{z-index:0;background:linear-gradient(90deg,rgba(1,23,44,.74) 0%,rgba(1,29,53,.38) 47%,rgba(1,29,53,.04) 85%),linear-gradient(0deg,rgba(0,26,52,.5),transparent 55%)}.hero-content{position:relative;padding:52px 0 40px}.hero-text{max-width:615px;min-height:242px}.hero h1{font-size:56px;font-weight:600;line-height:1.075;letter-spacing:-1.6px;color:#fff}.hero-text>p:not(.eyebrow){font-size:17px;line-height:1.6;color:#e0eefa;margin-top:17px}.hero-link{color:#fff;display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;margin-top:20px}.hero-link .icon{width:18px;height:18px}.hero-bottom{display:flex;align-items:center;justify-content:space-between;margin:24px 0 17px;min-height:16px}.slide-controls{display:flex;gap:8px;align-items:center}.slide-dot{width:8px;height:8px;background:#c8dbea88;border:1px solid transparent;border-radius:50%;padding:0}.slide-dot.active{background:#fff}.hero-caption{color:#d9e7f0;font-size:9px;letter-spacing:1.8px;font-weight:600}.search-panel{position:relative;color:var(--ink);background:#fff;border:1px solid #dce5ec;border-radius:8px;padding:20px 26px 23px;box-shadow:var(--shadow);scroll-margin-top:28px}.search-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;gap:12px}.trip-types{display:flex;gap:23px;margin:0;padding:0;border:0}.trip-types label{display:flex;gap:7px;align-items:center;font-size:12px;cursor:pointer}.trip-types input{appearance:none;-webkit-appearance:none;width:14px;height:14px;border:1px solid #a6b6c3;border-radius:50%;margin:0;display:grid;place-content:center;background:#fff}.trip-types input:checked{border:1px solid var(--blue)}.trip-types input:checked:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue)}.trip-types input:checked+span{font-weight:600;color:var(--blue)}.coverage-note{display:flex;align-items:center;gap:6px;color:#778998;font-size:10px}.coverage-note .icon{width:13px;height:13px}.search-main{display:flex;gap:14px;align-items:stretch}.route-box{display:flex;flex:1;min-width:0;border:1px solid #bbcdda;border-radius:3px;align-items:center;background:#fff}.port-field{padding:12px 15px;flex:1;display:flex;align-items:center;gap:12px;min-width:0}.port-field>.icon{color:var(--blue);width:20px;height:20px}.port-field>span{display:block;min-width:0;flex:1}.port-field small{display:block;color:#6d8090;font-size:9px;letter-spacing:.75px;font-weight:600;margin-bottom:3px}.port-field select{display:block;font-size:15px;padding:0 0 1px;width:100%;outline-offset:5px;font-weight:500;letter-spacing:-.15px;line-height:1.5}.port-field>svg:last-child{color:#738b9e;width:12px;height:12px}.swap-button{flex-shrink:0;display:grid;place-items:center;height:30px;width:34px;background:#f2f7fa;border-radius:4px;color:var(--blue);border:1px solid #e1eaf0}.swap-button .icon{width:17px;height:17px}.swap-button:hover{background:#dfeef9}.search-submit{width:166px;font-size:15px;gap:16px;border-radius:3px}.search-filters{display:flex;align-items:center;gap:9px;margin-top:12px}.filter-label{font-size:11px;font-weight:600;color:#6a7986;white-space:nowrap;margin-right:6px}.filter-button{display:flex;align-items:center;gap:8px;min-height:49px;padding:7px 10px;border:1px solid #c6d7e3;border-radius:3px;text-align:left;background:#fff;min-width:0;color:var(--blue);transition:background .18s}.filter-button:hover{background:#f7fbfe;border-color:#8eb9d9}.filter-button>.icon{width:16px;height:16px}.filter-button .icon.tiny{width:11px;height:11px;margin-left:2px}.filter-button>span{display:block;min-width:0}.filter-button small{font-size:9px;color:#728596;display:block;font-weight:400;margin-bottom:2px}.filter-button b,.filter-button select{font-size:12px;font-weight:600;line-height:1.3;white-space:nowrap}.filter-button select{padding:0;width:100%}.operator-select{width:172px}.filter-footnote{font-size:9px;line-height:1.65;color:#80909d;text-align:right;margin-left:auto;white-space:nowrap}.filter-footnote strong{font-weight:500;color:#4f6679}.search-error{background:#fff4ed;border:1px solid #ffbd8e;color:#9e471d;font-size:13px;margin-top:12px;padding:10px 12px;border-radius:4px}.schedule-strip{background:#f7fafc;border-bottom:1px solid #e7edf2;padding:15px 0}.schedule-strip>.container{display:flex;align-items:center;gap:10px}.schedule-strip .icon{width:16px;height:16px;color:#607f95}.schedule-strip p{font-size:10px;line-height:1.6;color:#6b7e8b;flex:1}.schedule-strip strong{color:#496173;font-weight:600}.schedule-strip a{font-size:10px;display:flex;align-items:center;gap:6px;white-space:nowrap}.schedule-strip a .icon{width:12px;height:12px;color:var(--blue)}
.section{padding:64px 0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}.section-heading.centered{display:block}.section-heading .eyebrow{margin-bottom:10px}h2{font-size:31px;letter-spacing:-.7px;font-weight:600}h3{font-weight:600}.section-intro{color:var(--muted);margin-top:11px;font-size:14px;line-height:1.7}.benefits{padding-top:58px;padding-bottom:54px}.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:33px}.benefit-grid article{text-align:center;padding:0 12px}.benefit-icon{height:44px;width:44px;border-radius:50%;background:#edf6fd;color:var(--blue);margin:0 auto 17px;display:grid;place-items:center}.benefit-icon .icon{width:23px;height:23px}.benefit-grid h3{font-size:16px;letter-spacing:-.3px}.benefit-grid p{font-size:12px;color:var(--muted);line-height:1.7;margin-top:10px}.routes-section{background:#f5f8fa;border-block:1px solid #edf1f5;padding-top:51px;padding-bottom:56px}.route-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.route-card{background:#fff;border:1px solid #e1e8ee;border-radius:6px;overflow:hidden;text-align:left;padding:0;transition:box-shadow .2s,transform .2s}.route-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0b345716}.route-image{height:193px;position:relative;overflow:hidden}.route-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#00223c30,transparent)}.route-image img{width:100%;height:100%;object-fit:cover}.to-stt .route-image img{object-position:74% 54%;transform:scale(1.18);transform-origin:70% 50%;filter:saturate(1)}.to-bvi .route-image img{object-position:66% 54%;transform:scale(1.18);transform-origin:62% 54%}.route-chip{position:absolute;left:18px;top:18px;background:#fff;color:var(--blue);font-size:9px;font-weight:700;letter-spacing:1px;border-radius:3px;padding:6px 10px;z-index:1}.route-card-body{padding:23px;display:flex;align-items:center;justify-content:space-between;gap:16px}.route-card-body small{font-size:9px;letter-spacing:.65px;color:var(--muted)}.route-card-body h3{font-size:24px;letter-spacing:-.5px;margin-top:9px}.route-card-body p{font-size:12px;color:var(--muted);margin-top:7px}.circle-arrow{height:38px;width:38px;border:1px solid #cee1ef;color:var(--blue);border-radius:50%;display:grid;place-items:center;flex-shrink:0}.circle-arrow .icon{width:18px;height:18px}.calendar-layout{display:grid;grid-template-columns:1fr 298px;border:1px solid var(--line);border-radius:6px;overflow:hidden}.month-panel{padding:21px 24px}.calendar-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.month-navigation{display:flex;align-items:center;gap:10px}.month-navigation h3{font-size:18px;min-width:164px;text-align:center}.calendar-top>select{border:1px solid #c9dbe8;border-radius:4px;color:var(--blue);font-size:11px;font-weight:600;padding:8px 24px 8px 10px;background:linear-gradient(45deg,transparent 50%,var(--blue) 50%) calc(100% - 10px) center/4px 4px no-repeat,linear-gradient(135deg,var(--blue) 50%,transparent 50%) calc(100% - 6px) center/4px 4px no-repeat}.month-shortcuts{display:flex;gap:4px;border-bottom:1px solid #e7eef3;margin-top:14px;margin-bottom:10px}.month-shortcuts button{font-size:10px;color:#8393a0;padding:8px 11px 9px;border-bottom:2px solid transparent}.month-shortcuts button.active{color:var(--blue);border-color:var(--blue);font-weight:600}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.day-head{text-align:center;font-size:10px;color:#7b8c98;padding:10px 0}.cal-day{min-height:70px;position:relative;border-radius:4px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid transparent;background:#fafcfd}.cal-day strong{font-size:14px;font-weight:600;color:#284758}.cal-day small{font-size:8px;color:#82939f}.cal-day:hover{border-color:#8fc5e9;background:var(--sky)}.cal-day.selected{background:var(--blue);border-color:var(--blue)}.cal-day.selected strong,.cal-day.selected small{color:#fff}.cal-day.past:not(.selected){background:#fafafa}.cal-day.past:not(.selected) strong{color:#8c9ba6}.cal-day.today:not(.selected) strong{color:var(--blue)}.cal-day.today:after{content:"";position:absolute;top:6px;right:6px;width:4px;height:4px;border-radius:50%;background:var(--blue)}.cal-day.selected.today:after{background:#fff}.cal-day.special:not(.selected){background:#fff7e7;border-color:#f3d797}.cal-day .operator-dots{display:flex;gap:3px;height:6px;align-items:center}.operator-dots i{width:4px;height:4px;border-radius:50%}.cal-day.selected .operator-dots i{background:#fff}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.rtff{background:#0874b9;color:#fff}.native{background:#087968;color:#fff}.smiths{background:#6851b7;color:#fff}.calendar-legend{display:flex;gap:16px;align-items:center;justify-content:center;font-size:9px;color:#708592;flex-wrap:wrap;margin-top:19px}.calendar-legend span{white-space:nowrap}.day-panel{background:#f4f8fb;border-left:1px solid var(--line);padding:27px 22px;display:flex;flex-direction:column}.day-panel>.eyebrow{font-size:9px}.day-panel h3{font-size:22px;letter-spacing:-.4px}.day-panel>p.muted{font-size:11px;margin-top:8px;line-height:1.6}.day-panel #dayPanelSailings{margin-top:20px;margin-bottom:20px;flex:1}.day-sailing{padding:13px 0;border-bottom:1px solid #dfe8ef;display:flex;gap:10px;align-items:center}.day-sailing .op-square{height:31px;width:31px;font-size:8px}.day-sailing>div{display:flex;flex-direction:column}.day-sailing strong{font-size:16px;font-weight:600;color:var(--navy)}.day-sailing small{font-size:10px;color:#708596;margin-top:2px}.day-panel .btn{font-size:12px}.day-source{font-size:10px;display:block;text-align:center;margin-top:13px}.day-special{font-size:11px;padding:9px 10px;background:#fff2d6;border:1px solid #efd69c;color:#916719;border-radius:4px;margin-bottom:10px}.operators-section{background:#f9fbfc;border-block:1px solid #edf1f5}.operator-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.operator-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:27px 22px}.operator-card-head{display:flex;gap:12px;align-items:center}.op-square{width:41px;height:41px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;letter-spacing:-.2px;flex-shrink:0}.operator-card h3{font-size:16px;line-height:1.3}.operator-card p{font-size:11px;line-height:1.8;color:var(--muted);margin:17px 0}.operator-card .text-button{font-size:12px}.operator-links{display:flex;justify-content:space-between;gap:10px;align-items:center}.operator-links .icon-button{width:32px;height:32px;border:1px solid var(--line)}.operator-links .icon-button .icon{width:16px;height:16px}.info-layout{display:grid;grid-template-columns:1fr 1.65fr;gap:66px}.travel-info h2{font-size:33px}.faq-list details{border-bottom:1px solid var(--line)}.faq-list details:first-child{border-top:1px solid var(--line)}.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;font-size:14px;font-weight:600;padding:20px 0;color:var(--navy)}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary .icon{width:16px;height:16px;color:var(--blue)}.faq-list details[open] summary .icon{transform:rotate(180deg)}.faq-list details p{font-size:12px;color:var(--muted);line-height:1.85;padding-bottom:20px;padding-right:22px}.support-section{background:#eaf5fc;border-block:1px solid #d7e9f5;padding:39px 0}.support-inner{display:flex;align-items:center;gap:22px}.support-icon{height:53px;width:53px;display:grid;place-items:center;color:var(--blue);border:1px solid #b4d7ef;border-radius:50%;flex-shrink:0}.support-icon .icon{width:25px;height:25px}.support-copy{flex:1}.support-copy>.eyebrow{font-size:9px;margin-bottom:10px}.support-copy h2{font-size:22px;letter-spacing:-.3px}.support-copy p:last-child{font-size:12px;color:var(--muted);margin-top:9px}.tip-panel{width:297px;flex-shrink:0}.tip-amounts{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:9px}.tip-amounts button{height:34px;background:#fff;border:1px solid #adcde4;color:var(--blue);font-size:12px;border-radius:3px}.tip-amounts button.active{background:#d7ecfb;border-color:var(--blue);font-weight:600}.tip-panel>.btn{font-size:12px;min-height:38px}.tip-panel>p{font-size:9px;text-align:center;color:#73899b;margin-top:8px}.site-footer{padding:39px 0 20px;background:#fff}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-bottom:29px}.footer-main .wordmark{font-size:25px}.footer-links{display:flex;gap:21px;flex-wrap:wrap;justify-content:flex-end}.footer-links a{font-size:11px;color:#516b7e}.footer-bottom{border-top:1px solid #e6edf2;padding-top:17px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:9px;color:#8a9aa5}
.results-section{background:#f5f8fb;padding-top:48px;border-bottom:1px solid var(--line);scroll-margin-top:12px;outline:none}.results-section h2{font-size:28px}.results-section .section-intro{font-size:12px}.results-section .section-heading{margin-bottom:22px}.date-rail-wrap{display:flex;align-items:center;gap:10px;margin-bottom:22px}.date-rail{flex:1;display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.date-chip{border:1px solid var(--line);background:white;min-height:73px;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:8px}.date-chip span{font-size:10px;color:#7d8c98}.date-chip strong{font-size:14px;font-weight:600}.date-chip.active{border-color:var(--blue);box-shadow:inset 0 -2px var(--blue);background:#edf7ff}.date-chip.active strong{color:var(--blue)}.date-chip:hover{border-color:var(--blue)}.results-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:23px}.segment{display:flex;gap:0;padding:3px;background:#e6edf3;border-radius:5px}.segment button{padding:8px 15px;font-size:11px;border-radius:3px;color:#6b7d8c}.segment button.active{background:#fff;box-shadow:0 2px 5px #0c385414;color:var(--blue);font-weight:600}.results-toolbar .text-button{font-size:11px}.leg-heading{font-size:10px;font-weight:600;letter-spacing:1.2px;color:#607c91;margin-bottom:13px}.results-list{display:grid;gap:12px}.sailing-card{display:grid;grid-template-columns:175px 1fr 205px 163px;align-items:center;gap:24px;padding:23px 24px;border:1px solid var(--line);border-radius:5px;background:#fff;position:relative}.sailing-card.selected{border-color:var(--blue);box-shadow:inset 3px 0 var(--blue)}.sailing-card.past{background:#fbfcfd}.sailing-card.past .departure strong{color:#6e8292}.departure{display:flex;flex-direction:column}.departure small{font-size:9px;color:#6a8295;letter-spacing:.65px;text-transform:uppercase}.departure strong{font-size:29px;letter-spacing:-.9px;line-height:1.3;color:var(--navy);margin-top:3px;font-weight:600}.departure span{font-size:11px;color:#7a8c99;margin-top:3px}.route-graphic{display:flex;align-items:center;gap:8px;color:#648aab;max-width:190px;margin-bottom:8px}.route-graphic:before,.route-graphic:after{content:"";height:1px;background:#c3d9e9;flex:1}.route-graphic .icon{width:18px;height:18px}.arrival strong{display:block;font-size:14px;font-weight:600;color:#425c70}.arrival small{font-size:10px;color:#8695a1}.operator-mini{display:flex;align-items:center;gap:11px}.operator-mini strong{font-size:12px;line-height:1.4;color:#375164;display:block}.operator-mini small{font-size:10px;display:block;color:#7e909e;margin-top:4px}.sailing-card .btn{font-size:12px;width:100%;padding:11px}.booking-meta{font-size:9px;color:#8797a4;display:block;text-align:center;margin-top:6px}.special-tag{color:#93631e!important}.sailing-past-label{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:10px;font-size:12px;color:#82929f;background:#edf2f5;border-radius:4px}.return-section{margin-top:40px;scroll-margin-top:28px}.return-section h3{font-size:24px;letter-spacing:-.4px}.return-section>p{font-size:12px;margin-top:9px;margin-bottom:19px}.empty-state{background:#fff;border:1px solid var(--line);border-radius:5px;padding:38px;text-align:center}.empty-state>.icon{margin:0 auto 14px;color:#89a6bc;width:32px;height:32px}.empty-state h3{font-size:20px}.empty-state p{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.8}.empty-state .btn{margin-top:18px}.results-notice{border:1px solid #edd7ab;background:#fff8e9;color:#846626;padding:13px 15px;font-size:12px;border-radius:4px;margin-bottom:18px}.trip-bar{position:fixed;z-index:15;bottom:0;inset-inline:0;background:#fff;border-top:1px solid #ccdfed;box-shadow:0 -6px 24px #103c5614;padding:13px 0 max(13px,env(safe-area-inset-bottom))}.trip-bar>.container{display:flex;align-items:center;justify-content:space-between;gap:15px}.trip-bar strong{font-size:14px;color:var(--navy);display:block}.trip-bar small{font-size:10px;color:#7890a1}.trip-bar .btn{font-size:12px}
.app-dialog{width:min(540px,calc(100% - 32px));padding:0;border:0;border-radius:9px;max-height:calc(100dvh - 48px);box-shadow:0 24px 80px #001d3f40;color:var(--ink);background:#fff;overflow:auto}.app-dialog::backdrop{background:#08213980;backdrop-filter:blur(3px)}body.dialog-open{overflow:hidden}.dialog-header{padding:23px 25px 15px;display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid #edf2f6;position:sticky;top:0;background:white;z-index:2}.dialog-header h2{font-size:23px;letter-spacing:-.5px}.dialog-body{padding:22px 25px 26px}.dialog-intro{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:19px}.picker-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.picker-nav h3{font-size:18px}.picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.picker-day{height:46px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;border-radius:4px;font-size:14px;border:1px solid transparent}.picker-day small{font-size:8px;color:#8da0ac}.picker-day:hover:not(:disabled){background:var(--sky);border-color:#d3e6f5}.picker-day.selected{background:var(--blue);color:#fff}.picker-day.selected small{color:#d4ecff}.picker-day.today:not(.selected){border-color:var(--blue);color:var(--blue)}.picker-shortcuts{display:flex;gap:8px;align-items:center;border-top:1px solid #e8eef3;padding-top:18px;margin-top:15px}.picker-shortcuts button{border:1px solid #bdd7e9;color:var(--blue);padding:7px 12px;border-radius:4px;font-size:11px}.picker-shortcuts>span{margin-left:auto;font-size:10px;color:var(--muted)}.picker-coverage{margin-top:16px;font-size:10px;color:#7890a2;line-height:1.7}.traveler-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-block:1px solid #e8eef2;margin:18px 0 22px}.traveler-row strong{font-size:15px;color:var(--navy)}.traveler-row small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.stepper{display:flex;align-items:center;gap:20px}.stepper button{height:33px;width:33px;border:1px solid #a8cde6;border-radius:50%;color:var(--blue);font-size:21px}.stepper output{font-size:22px;font-weight:600;min-width:25px;text-align:center}.plan-notice{background:#f0f7fc;border:1px solid #dbeaf5;border-radius:5px;padding:12px 14px;font-size:11px;line-height:1.8;color:#526d82;margin-bottom:20px}.plan-card{border:1px solid var(--line);border-radius:6px;padding:17px;margin-bottom:13px}.plan-card .plan-leg{font-size:9px;letter-spacing:1px;color:#7b90a1;margin-bottom:12px;font-weight:600}.plan-card h3{font-size:17px;line-height:1.4}.plan-card .plan-time{font-size:24px;color:var(--navy);font-weight:600;margin-top:9px;letter-spacing:-.6px}.plan-card .plan-date{font-size:12px;color:var(--muted);margin-bottom:12px}.plan-card .operator-mini{padding-top:13px;border-top:1px solid #e8eef3}.plan-card .btn{margin-top:16px;font-size:12px;width:100%}.plan-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.plan-actions .btn{font-size:11px;flex:1}.plan-note{font-size:10px;line-height:1.8;color:var(--muted);margin-top:14px}.saved-plan{padding:17px 0;border-bottom:1px solid var(--line)}.saved-plan>div:first-child{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.saved-plan h3{font-size:15px;line-height:1.5}.saved-plan p{font-size:11px;color:var(--muted);margin-top:3px}.saved-plan .saved-actions{display:flex;gap:12px;margin-top:12px}.saved-actions .text-button{font-size:11px}.danger-button{color:#a24439!important}.copy-field{border:1px solid var(--line);background:#f7fafc;width:100%;padding:11px;font-size:11px;border-radius:4px;margin:12px 0}.toast{position:fixed;bottom:95px;left:50%;transform:translateX(-50%);background:#10334f;color:white;padding:13px 21px;border-radius:6px;box-shadow:var(--shadow);font-size:12px;z-index:50;max-width:calc(100% - 32px);text-align:center}.no-script{background:#fff6da;padding:20px;text-align:center}.source-main{padding:55px 0 70px;max-width:900px}.source-main h1{font-size:39px;letter-spacing:-1px;margin-bottom:18px}.source-main h2{font-size:23px;margin-top:32px;margin-bottom:13px}.source-main p{font-size:14px;line-height:1.9;color:#617b8e;margin-bottom:15px}.source-box{border:1px solid var(--line);border-radius:6px;padding:22px;margin:22px 0;background:#f9fbfd}.source-box h3{font-size:17px;margin-bottom:10px}.source-box p{font-size:12px}.source-box a{font-size:13px;font-weight:600}.source-main .source-list{display:grid;gap:8px;margin-top:20px}.source-list a{display:block;border:1px solid var(--line);border-radius:4px;padding:15px;color:var(--blue);font-size:13px}.source-list small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
@media(min-width:1500px){.container{width:min(1160px,calc(100% - 80px))}.hero h1{font-size:60px}.hero-content{padding-top:65px;padding-bottom:43px}.hero-text{min-height:260px}}
@media(max-width:1150px){.header-inner{gap:18px}.desktop-nav{gap:17px;margin-left:5px}.desktop-nav a{font-size:12px}.header-actions .btn{padding-inline:12px}.container{width:calc(100% - 48px)}.filter-footnote{display:none}.search-filters{gap:8px}.filter-button{flex:1}.filter-label{font-size:10px}.port-field select{font-size:14px}.sailing-card{grid-template-columns:140px 1fr 178px 140px;gap:18px}.calendar-layout{grid-template-columns:1fr 260px}.month-panel{padding:19px 17px}.benefit-grid{gap:15px}.operator-card{padding:23px 18px}}
@media(max-width:940px){.desktop-nav{display:none}.menu-toggle{display:inline-flex}.header-inner{height:77px}.header-actions .header-search{display:none}.hero h1{font-size:51px}.hero-content{padding-top:43px}.hero-text{min-height:235px}.search-panel{padding:18px}.port-field{padding:12px 10px;gap:8px}.port-field>.icon{display:none}.search-submit{width:142px;font-size:14px}.filter-label{display:none}.filter-button b,.filter-button select{font-size:11px}.coverage-note{font-size:9px}.sailing-card{grid-template-columns:125px 1fr 175px;gap:18px}.sailing-card .sailing-actions{grid-column:1/-1;display:flex;align-items:center;gap:18px;border-top:1px solid #edf2f6;padding-top:15px}.sailing-actions .btn{width:auto;margin-left:auto;order:2}.booking-meta{margin:0}.calendar-layout{grid-template-columns:1fr 240px}.calendar-top{flex-direction:column}.calendar-top>select{width:100%;padding:9px 12px}.calendar-legend{gap:10px;font-size:8px}.day-panel{padding:26px 18px}.cal-day{min-height:65px}.operator-grid{gap:12px}.operator-card-head{flex-direction:column;align-items:flex-start}.support-icon{display:none}.support-copy h2{font-size:22px;line-height:1.35}.info-layout{gap:36px}.footer-main{align-items:flex-start}.footer-links{column-gap:22px;row-gap:12px}.header-actions .saved-trigger{font-size:12px}.route-card-body h3{font-size:22px}.route-image{height:170px}}
@media(max-width:700px){.container{width:calc(100% - 36px)}.utility-inner{min-height:34px;font-size:10px;gap:8px}.utility-right>span{display:none}.utility-right a{font-size:9px}.utility-right a .icon{width:11px;height:11px}.header-inner{height:69px}.brand img{width:36px;height:36px}.wordmark{font-size:24px}.wordmark small{font-size:6px;letter-spacing:1.1px}.brand{gap:8px}.header-actions{gap:5px}.header-actions .saved-trigger{padding:8px 10px;min-height:33px;font-size:11px}.saved-trigger .icon{width:14px;height:14px}.menu-toggle{width:31px}.hero-content{padding:37px 0 24px}.hero-picture img{object-position:70% 48%}.hero-shade{background:linear-gradient(90deg,#002746c7,#002c4859),linear-gradient(0deg,#003153b3,transparent)}.hero h1{font-size:42px;line-height:1.09;letter-spacing:-1.4px}.hero-text{min-height:auto;max-width:100%;padding-left:4px}.hero-text .eyebrow{font-size:9px;letter-spacing:1.65px}.hero-text>p:not(.eyebrow){font-size:14px;line-height:1.65;margin-top:15px}.hero-link{font-size:12px;margin-top:17px}.hero-bottom{margin:23px 4px 17px}.hero-caption{font-size:7px;letter-spacing:1.2px}.slide-dot{width:7px;height:7px}.search-panel{padding:17px;border-radius:7px}.search-topline{margin-bottom:14px;gap:6px;align-items:flex-start}.trip-types{gap:17px}.trip-types label{font-size:11px;gap:5px}.coverage-note{font-size:8px;max-width:122px;line-height:1.6;text-align:right}.coverage-note .icon{display:none}.search-main{display:flex;flex-direction:column;gap:0}.route-box{flex-direction:column;position:relative;align-items:stretch;border-color:#b9cfdf}.port-field{padding:12px 14px;gap:12px;min-height:66px}.port-field>span{padding-right:22px}.port-field>.icon{display:block;width:17px;height:17px}.port-field:first-child{border-bottom:1px solid #e0eaf2}.port-field select{font-size:14px;letter-spacing:-.35px}.port-field small{font-size:8px}.port-field>svg:last-child{display:none}.swap-button{position:absolute;right:11px;top:50%;transform:translateY(-50%) rotate(90deg);background:#fff;width:28px;height:28px;border-radius:50%;z-index:1}.search-submit{width:100%;margin-top:12px;height:45px;font-size:13px;order:3}.search-panel{display:flex;flex-direction:column}.search-main{display:contents}.search-topline{order:0}.route-box{order:1}.search-filters{order:2;display:grid;grid-template-columns:1fr 1fr;margin-top:10px;gap:7px}.search-submit{order:3}.search-error{order:4}.filter-button{width:100%;padding:9px 10px;min-height:49px;gap:7px}.filter-button small{font-size:9px}.filter-button b,.filter-button select{font-size:11px}.filter-button>.icon{width:15px;height:15px}.filter-button .icon.tiny{margin-left:auto;width:10px}.operator-select{grid-column:1/-1;order:5;min-height:44px}.operator-select small{display:none}.operator-select select{font-size:11px;width:100%}.operator-select>span{flex:1}.search-filters:has(#returnButton:not([hidden])) .operator-select{grid-column:auto;order:0}.schedule-strip{padding:12px 0}.schedule-strip>.container{gap:8px;align-items:flex-start}.schedule-strip p{font-size:9px}.schedule-strip>.container>.icon{margin-top:2px;width:15px;height:15px}.schedule-strip a{display:none}.section{padding:42px 0}.section-heading{gap:14px;margin-bottom:23px;align-items:flex-start}.section-heading .eyebrow{font-size:9px;letter-spacing:1.4px}h2{font-size:27px;letter-spacing:-.7px}.section-intro{font-size:12px;margin-top:9px;line-height:1.75}.benefit-grid{grid-template-columns:repeat(2,1fr);gap:28px 10px;margin-top:28px}.benefit-grid article{padding-inline:8px}.benefit-grid h3{font-size:14px;line-height:1.35}.benefit-grid p{font-size:11px;line-height:1.7;margin-top:7px}.benefit-icon{width:38px;height:38px;margin-bottom:13px}.benefit-icon .icon{width:21px;height:21px}.route-cards{grid-template-columns:1fr;gap:18px}.routes-section .section-heading .text-button{display:none}.route-image{height:176px}.route-card-body{padding:20px}.route-card-body h3{font-size:23px}.route-card-body small{font-size:8px}.route-card-body p{font-size:11px}.calendar-section .section-heading{flex-direction:column;gap:10px}.calendar-section .section-heading>.text-button{font-size:11px}.calendar-layout{grid-template-columns:1fr}.calendar-top{flex-direction:row}.month-navigation{gap:1px}.month-navigation h3{min-width:133px;font-size:16px}.calendar-top>select{width:118px;font-size:9px;padding:8px 19px 8px 8px}.month-panel{padding:16px 12px}.calendar-top .icon-button{width:27px;height:32px}.calendar-top .icon-button .icon{width:17px;height:17px}.month-shortcuts{margin-top:10px;margin-bottom:4px}.month-shortcuts button{flex:1;font-size:10px;padding:8px 2px}.month-grid{gap:3px}.cal-day{min-height:60px;padding:6px 2px;gap:3px}.cal-day strong{font-size:13px}.cal-day small{font-size:7px}.cal-day .operator-dots i{width:3px;height:3px}.calendar-legend{font-size:8px;gap:10px;margin-top:14px}.calendar-legend span:last-child{display:none}.day-panel{border-top:1px solid var(--line);border-left:0;padding:21px}.day-panel h3{font-size:21px}.day-panel #dayPanelSailings{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin-block:13px 20px}.day-special{grid-column:1/-1}.day-sailing strong{font-size:15px}.day-sailing small{font-size:9px}.day-sailing .op-square{height:27px;width:27px;font-size:7px}.day-panel .btn{font-size:12px;min-height:43px}.day-source{font-size:10px}.operator-grid{grid-template-columns:1fr;gap:12px}.operator-card{padding:20px}.operator-card-head{flex-direction:row;align-items:center}.operator-card h3{font-size:16px}.operator-card p{font-size:11px;margin:13px 0}.operator-card .text-button{font-size:12px}.info-layout{grid-template-columns:1fr;gap:22px}.travel-info h2{font-size:28px}.travel-info h2 br{display:none}.faq-list summary{font-size:13px;padding:17px 0}.faq-list details p{font-size:11px;padding-right:0}.support-inner{flex-direction:column;align-items:stretch;gap:24px}.support-copy h2{font-size:24px;max-width:320px}.support-copy p:last-child{font-size:12px}.tip-panel{width:100%}.tip-amounts button{height:38px;font-size:13px}.tip-panel>.btn{min-height:43px;font-size:12px}.tip-panel>p{font-size:9px}.site-footer{padding-top:31px}.footer-main{display:block;margin-bottom:23px}.footer-links{margin-top:23px;justify-content:flex-start;gap:13px 20px}.footer-links a{font-size:10px}.footer-bottom{display:flex;flex-direction:column;font-size:9px;gap:9px}.results-section h2{font-size:24px}.results-section .section-heading{display:block}.results-section .section-heading>.btn{margin-top:16px;padding:8px 13px;min-height:36px;font-size:11px}.results-section .section-intro{font-size:11px}.date-rail-wrap{gap:0;margin-inline:-6px}.date-rail-wrap>.icon-button{width:24px}.date-rail-wrap>.icon-button .icon{width:16px}.date-rail{display:flex;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory;gap:5px;padding:2px}.date-rail::-webkit-scrollbar{display:none}.date-chip{flex:0 0 77px;min-height:69px;scroll-snap-align:center;padding:7px 3px}.date-chip strong{font-size:12px}.date-chip span{font-size:9px}.results-toolbar{flex-wrap:wrap;gap:15px}.segment{width:100%}.segment button{flex:1;padding:9px 5px;font-size:10px}.results-toolbar .text-button{font-size:11px}.sailing-card{grid-template-columns:1fr 1fr;gap:17px 14px;padding:19px}.departure strong{font-size:28px}.departure small{font-size:8px}.departure span{font-size:10px}.route-graphic{max-width:125px}.arrival strong{font-size:13px}.arrival small{font-size:9px}.operator-mini{grid-column:1/-1}.operator-mini strong{font-size:12px}.operator-mini small{font-size:9px}.sailing-card .sailing-actions{padding-top:13px;gap:8px}.sailing-actions .btn{font-size:11px;padding:10px 12px;min-height:37px}.booking-meta{font-size:8px}.sailing-past-label{font-size:11px}.smallprint{font-size:10px;line-height:1.8}.return-section h3{font-size:22px}.return-section>p{font-size:11px}.empty-state{padding:27px 20px}.empty-state h3{font-size:18px}.empty-state p{font-size:11px}.trip-bar{padding-top:12px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.trip-bar strong{font-size:12px}.trip-bar small{font-size:9px;display:block;max-width:175px}.trip-bar .btn{font-size:10px;padding:10px 12px;min-height:38px}.trip-bar .btn .icon{width:14px}.app-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 30px);border-radius:9px}.dialog-header{padding:18px 19px 12px}.dialog-header h2{font-size:21px}.dialog-body{padding:18px 19px 22px}.dialog-intro{font-size:11px}.picker-day{height:43px;font-size:13px}.picker-nav h3{font-size:17px}.picker-shortcuts button{font-size:10px;padding:7px 9px}.picker-shortcuts>span{font-size:9px}.plan-actions .btn{font-size:10px}.plan-card{padding:15px}.plan-card h3{font-size:16px}.plan-card .plan-time{font-size:23px}.source-main{padding-top:33px}.source-main h1{font-size:31px}.source-main p{font-size:12px}.source-main h2{font-size:22px}}
@media(max-width:375px){.container{width:calc(100% - 28px)}.header-actions .saved-trigger{padding:7px 8px;font-size:10px}.brand-logo{width:min(170px,48vw)}.footer-logo{width:min(176px,62vw)}.search-panel{padding:14px}.hero h1{font-size:39px}.search-topline .coverage-note{max-width:103px}.trip-types{gap:12px}.filter-button{padding:8px}.filter-button b,.filter-button select{font-size:10px}.calendar-top{flex-direction:column}.calendar-top>select{width:100%}.calendar-top .month-navigation{width:100%;justify-content:space-between}.cal-day{min-height:54px}.cal-day small{font-size:6px}.hero-caption{font-size:6px}.utility-inner{font-size:9px}.utility-right a{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.utility-bar,.site-header,.hero,.schedule-strip,.benefits,.routes-section,.calendar-section,.operators-section,.travel-info,.support-section,.site-footer,.trip-bar,.app-dialog,.toast,.results-toolbar,.date-rail-wrap,.sailing-actions,.section-heading>.btn{display:none!important}.results-section{display:block!important;background:#fff;padding:0}.container{width:100%}.sailing-card{break-inside:avoid}.return-section{display:block}}
/* v2.1: My trips must still fit after a saved-plan badge appears. */
@media(max-width:370px){.site-header .header-inner{gap:9px}.site-header .brand{gap:6px}.site-header .brand-logo{width:min(156px,48vw)}.site-header .saved-trigger>.icon{display:none}.site-header .saved-trigger{gap:5px;padding:7px}.site-header .header-actions{gap:3px}}
