@charset "UTF-8";
/* Match advance widths and font metrics while the remote brand fonts load. */
@font-face{font-family:'Montserrat Fallback';src:local('Arial');size-adjust:111.5%;ascent-override:86.82%;descent-override:22.51%;line-gap-override:0%}
@font-face{font-family:'Playfair Fallback';src:local('Georgia');size-adjust:101.7%;ascent-override:106.39%;descent-override:24.68%;line-gap-override:0%}
:root{--navy:#184070;--gold:#D1A32C;--blue:#D5DFE5;--spruce:#2A4D14;--ink:#110D04;--alert:#9B2226;--slate:#B1B3B6;--white:#fff;--serif:'Playfair Display','Playfair Fallback',Georgia,serif;--sans:'Montserrat','Montserrat Fallback',Arial,sans-serif;--width:1280px;--h-display:clamp(34px,4vw,54px);--h-panel:38px;--h-card:34px;--panel-space:32px;--panel-space-large:40px;--heading-gap:24px;--header-height:104px;--utility-height:0px;--control-height:54px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--white);color:var(--navy);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:auto}
a{color:inherit;text-underline-offset:5px}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a,button{touch-action:manipulation}
:focus-visible{outline:3px solid var(--spruce);outline-offset:5px}
.dark :focus-visible,footer :focus-visible,.routes :focus-visible,.address-panel :focus-visible{outline-color:var(--gold)}
.subnav a:focus-visible{outline-offset:-3px}
.routes :focus-visible{outline-offset:-5px}
.skip:focus-visible{outline-color:var(--navy);outline-offset:-4px}
::selection{background:var(--gold);color:var(--ink)}
[hidden]{display:none!important}
h1,h2,h3,p,figure{margin:0}
h1,h2{font-family:var(--serif);font-weight:400;line-height:1.1;text-wrap:balance}
h1{font-size:clamp(44px,5.8vw,80px);letter-spacing:-.035em}
h2{font-size:var(--h-display);letter-spacing:-.025em;margin-bottom:var(--heading-gap)}
h3{font-size:21px;line-height:1.4;font-weight:600;margin-bottom:16px;text-wrap:balance}
p+p{margin-top:20px}
p{max-width:66ch;text-wrap:pretty}
ul{padding-left:22px;margin:20px 0}
li+li{margin-top:10px}
.container{width:min(var(--width),calc(100% - 96px));margin-inline:auto}
.section{padding-block:96px}
.section-sm{padding-block:56px}
.section-heading{max-width:760px;margin-bottom:40px}
.section-heading h2:last-child{margin-bottom:0}
.section-heading p{margin-top:0}
.section-heading p+p{margin-top:20px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1.5;margin-bottom:20px}
.small{font-size:13px;line-height:1.7}
.lead{font-size:18px;line-height:1.75}
.actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:32px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:14px 25px;text-decoration:none;font-size:12px;font-weight:600;line-height:1.5;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--navy);background:var(--navy);color:white;transition:background .18s,color .18s,transform .18s}
.button:hover{background:var(--ink);border-color:var(--ink)}
.button.gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.button.gold:hover{background:var(--ink);border-color:var(--ink);color:var(--white)}
.button.outline{background:transparent;color:var(--navy)}
.button.outline:hover{background:var(--navy);border-color:var(--navy);color:var(--white)}
.text-link{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:14px;padding-block:10px;text-decoration:none}
.text-link__label{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.text-link:hover .text-link__label{text-decoration-thickness:2px}
.home-hero .text-link{border-bottom:1px solid currentColor}
.button:active{transform:translateY(1px)}
.arrow{display:inline-block;width:14px;height:14px;flex:none;vertical-align:-2px;transition:transform .18s ease}
.skip{position:fixed;top:-100px;left:20px;padding:12px;background:var(--gold);color:var(--ink);z-index:100}
.skip:focus{top:10px}
.site-header{background:var(--navy);color:var(--white);position:sticky;top:0;z-index:20}
.home-intro{padding:62px 0 44px;text-align:center}
.home-intro .eyebrow{display:flex;justify-content:center;align-items:center;gap:16px}
.home-intro .eyebrow:before,.home-intro .eyebrow:after{content:'';width:32px;height:2px;background:var(--gold)}
.home-intro h1{font-size:clamp(48px,6.5vw,94px)}
.home-intro p:not(.eyebrow){margin:22px auto 0;max-width:710px}
.home-intro .actions{justify-content:center;margin-top:24px}
.photo-caption{display:flex;justify-content:space-between;gap:20px;font-size:11px;margin-top:12px;letter-spacing:.04em}
.routes{display:grid;grid-template-columns:repeat(3,1fr);background:var(--navy);color:white}
.route{padding:var(--panel-space);text-decoration:none;border-right:1px solid var(--blue);display:grid;grid-template-columns:1fr auto;gap:4px 20px;align-items:center}
.route:last-child{border-right:0}
.route strong{font-family:var(--serif);font-size:29px;font-weight:400}
.route span.small{grid-column:1;max-width:30ch}
.route .arrow{grid-column:2;grid-row:1/3;color:var(--gold)}
.route:hover{background:var(--ink)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.split .copy h2{margin-bottom:var(--heading-gap)}
.split .copy .eyebrow{margin-bottom:20px}
.split .copy .cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:32px}
.split-photo{position:relative}
.split-photo img{aspect-ratio:1.12;object-fit:cover}
.split-photo figcaption{font-size:12px;margin-top:12px}
.image-offset{padding:0 24px 24px 0}
.image-offset:after{content:'';position:absolute;right:0;bottom:0;width:65%;height:65%;background:var(--blue);z-index:-1}
.fact-row{display:flex;gap:40px;margin-top:32px;padding-top:24px;border-top:1px solid var(--blue)}
.fact-row strong{font-family:var(--serif);font-size:36px;font-weight:400;display:block}
.fact-row span{font-size:12px}
.blue{background:var(--blue)}
.dark{background:var(--navy);color:white}
.dark p,.dark h2{color:white}
.dark .button.outline{color:white;border-color:white}
.dark .button.outline:hover{background:white;color:var(--navy)}
.experience-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;padding-bottom:88px}
.experience-grid article{display:flex;flex-direction:column}
/* Equal card heights keep the action offset equal to the photo offset. */
.experience-grid article:nth-child(2){margin-block:88px -88px}
.experience-grid img{aspect-ratio:1.5;object-fit:cover}
.experience-grid article:nth-child(2) img{aspect-ratio:573/439}
.experience-grid .card-photo{margin-bottom:24px}
.experience-grid h3{font-family:var(--serif);font-size:var(--h-card);font-weight:400;margin-bottom:16px}
.experience-grid p{padding-bottom:16px}
.experience-grid .text-link{align-self:flex-start}
.section:has(>.container>.award-strip){padding-block:104px}
.award-strip{display:flex;gap:38px;align-items:center;max-width:920px;margin:auto}
.award-strip img{width:128px;height:128px;object-fit:contain}
.award-strip h2{font-size:var(--h-display);margin-bottom:var(--heading-gap)}
.quote-section{text-align:center;max-width:900px;margin:auto}
blockquote{margin:0;font-family:var(--serif);font-size:clamp(25px,3vw,39px);font-weight:400;line-height:1.45;text-wrap:balance}
.quote-section .small{margin:24px auto 0}
.two-col blockquote+.small{margin-top:24px}
.cta-band{display:flex;justify-content:space-between;gap:48px;align-items:center}
.cta-band h2{max-width:690px;margin-bottom:0}
.cta-band .actions{margin:0;flex-shrink:0}
.page-intro{padding:52px 0 60px}
.page-intro h1{font-size:clamp(44px,5vw,72px)}
.page-intro .intro-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:72px;align-items:center}
.page-intro p.lead{margin-top:24px}
.intro-photo img{aspect-ratio:1.18;object-fit:cover}
.intro-photo{position:relative}
.page-intro.compact{padding:44px 0 48px;background:var(--blue)}
.page-intro.compact p.lead{max-width:780px}
.subnav{border-top:1px solid var(--blue);border-bottom:1px solid var(--blue)}
.subnav .container{display:flex;gap:20px;overflow:auto;width:calc(min(var(--width),100% - 96px) + 12px)}
.subnav a{flex-shrink:0;padding:17px 6px;font-size:13px;font-weight:500;text-decoration:none;position:relative}
.subnav a[aria-current=page]:after{content:'';position:absolute;bottom:0;left:6px;right:6px;height:3px;background:var(--navy)}
.subnav a:hover{text-decoration:underline}
.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:72px;align-items:start}
.content-layout>*{min-width:0}
.content-layout>.content>*+*{margin-top:48px}
.content h2{font-size:var(--h-panel);margin-bottom:var(--heading-gap)}
.content h3{margin-bottom:16px}
.note{background:var(--blue);padding:var(--panel-space)}
@media(max-width:700px){.content-layout>.note--lead{order:-1}}
.note h3{margin-bottom:16px}
.note p{font-size:14px}
.note .button{margin-top:24px;width:100%}
.sticky-note{position:sticky;top:132px}
.table-wrap{overflow-x:auto;max-width:100%;margin-top:24px}
table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.5;font-variant-numeric:tabular-nums}
caption{text-align:left;font-size:14px;font-weight:600;margin-bottom:14px}
th{text-align:left;font-weight:600}
thead{background:var(--navy);color:white}
th,td{padding:17px 20px;border-bottom:1px solid var(--blue);vertical-align:top}
tbody th{font-weight:500}
.table-note{font-size:12px;margin-top:16px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;list-style:none;padding:0;margin-top:24px}
.feature-list li{padding:18px 0;border-bottom:1px solid var(--blue);margin:0;display:flex;gap:16px;align-items:start}
.feature-list li:before{content:'';width:6px;height:6px;flex:none;margin-top:.7em;background:var(--gold)}
.blue .feature-list li,.blue details.faq,.blue .doc-list li,.blue .partner-list article,.blue th,.blue td,.blue .subnav,.blue .form-panel{border-color:var(--navy)}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 28px}
.card{display:flex;flex-direction:column}
.card img{aspect-ratio:1.45;object-fit:cover}
.card .card-photo{margin-bottom:24px}
.card-photo{overflow:hidden}
.card-photo>a{display:block}
.card h3{margin-bottom:16px;font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.2;letter-spacing:-.01em}
.card p{font-size:14px;padding-bottom:14px}
.card .text-link{margin-top:auto;align-self:flex-start}
.vessel-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px 36px}
.vessel-card img{aspect-ratio:1.55;object-fit:cover}
.vessel-card{display:flex;flex-direction:column}
.vessel-copy{padding-top:23px;display:flex;flex-direction:column;flex:1}
.vessel-copy .actions{margin-top:auto;padding-top:24px}
.vessel-title{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px}
.vessel-title h2{font-size:var(--h-card);margin-bottom:0}
.vessel-title p{font-size:13px;white-space:nowrap}
.vessel-title strong{font-size:20px;font-weight:600}
.vessel-card .spec{font-size:13px;margin-bottom:0}
.vessel-card .spec+p{margin-top:16px}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px;align-items:center}
.filters button{padding:10px 20px;min-height:44px;border:1px solid var(--navy);background:white;color:var(--navy);font-size:13px;transition:background .18s,color .18s}
.filters button:hover{background:var(--blue)}
.filters button[aria-pressed=true]{background:var(--navy);color:white}
.filters button[aria-pressed=true]:hover{background:var(--ink);border-color:var(--ink)}
.filters .small{margin-left:auto}
details.faq{border-bottom:1px solid var(--blue);max-width:760px}
details.faq summary{cursor:pointer;padding:22px 35px 22px 0;list-style:none;font-size:16px;font-weight:500;position:relative}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary:after{content:'+' / '';position:absolute;right:6px;top:50%;line-height:1;transform:translateY(-50%);font-size:25px;font-weight:400;transition:transform .15s ease}
details.faq[open] summary:after{transform:translateY(-50%) rotate(45deg)}
details.faq>div{padding:0 28px 24px 0;font-size:14px}
.doc-list{list-style:none;padding:0;margin:0;max-width:760px}
.doc-list li{margin:0;border-bottom:1px solid var(--blue)}
.doc-list li>a{padding:18px 0;display:flex;justify-content:space-between;gap:24px;text-decoration:none;font-size:14px}
.doc-list li>a:hover{text-decoration:underline}
p+.doc-list{margin-top:24px;border-top:1px solid var(--blue)}
.blue p+.doc-list{border-top-color:var(--navy)}
.doc-list li>a span,.doc-list summary span{display:inline-flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap}
.contact-details{display:grid;gap:24px}
.contact-details dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.contact-details dd{margin:6px 0 0;font-size:17px}
.form-panel{padding:var(--panel-space-large);border:1px solid var(--blue)}.form-panel h2{margin-bottom:var(--heading-gap);font-size:var(--h-panel)}
.form-panel>p{font-size:14px;margin-bottom:28px}
/* Half the grid width caps auto-fit at two columns; 220px sets the stacking threshold. */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,max(220px,calc((100% - 22px)/2))),1fr));gap:22px}
.field{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600}
.field.full{grid-column:1/-1}
input,select,textarea{width:100%;border:1px solid var(--navy);border-radius:0;padding:12px;background:white;color:var(--navy);min-height:var(--control-height);font-size:16px;font-weight:400;line-height:28px}
input,select{height:var(--control-height)}
select{padding-inline-end:36px;text-overflow:ellipsis}
textarea{min-height:130px;resize:vertical}
.form-actions{margin-top:24px}
.form-step{border:0;padding:0;margin:0;min-width:0}
.form-step legend{font-family:var(--serif);font-size:24px;margin-bottom:18px}
.form-steps{display:flex;gap:28px;list-style:none;padding:0;margin:0 0 26px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;counter-reset:step}
.form-steps li{margin:0;display:flex;align-items:center;gap:10px;color:var(--slate);counter-increment:step}
.form-steps li::before{content:counter(step);display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid currentColor;border-radius:50%;font-size:12px}
.form-steps li.is-current{color:var(--navy)}
.form-steps li.is-done{color:var(--navy)}.form-steps li.is-done::before{background:var(--navy);color:var(--white);border-color:var(--navy)}
.form-actions .small{margin-bottom:16px}
.form-result{margin-top:24px;padding-top:24px;border-top:1px solid var(--blue)}
.form-result h3{margin-bottom:16px}
.form-result dl{margin:0;overflow-wrap:anywhere}
.form-result dt{font-size:12px;font-weight:600;margin-top:12px}
.form-result dd{font-size:14px;margin:0;white-space:pre-wrap}
.form-result .small{margin-top:16px}
.address-panel{background:var(--navy);color:white;padding:var(--panel-space-large)}
.address-panel h2{font-size:var(--h-panel);margin-bottom:var(--heading-gap)}
.address-panel .button{margin-top:24px}
.photo-pair{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}
.photo-pair img{height:400px;object-fit:cover}
.marina-map img{height:360px;object-fit:cover;margin-bottom:16px}
.partner-list{display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
.partner-list article{display:flex;flex-direction:column;padding:30px 0;border-bottom:1px solid var(--blue)}
.partner-list article>.text-link:last-child,.partner-list article>.application-links:last-child{margin-top:auto;align-self:flex-start}
.partner-list article>.application-links:last-child{padding-top:12px}
.about-community{max-width:760px}
.about-community>div{display:flex;flex-direction:column}
.about-community>div>.text-link:last-child{margin-top:auto;align-self:flex-start}
.partner-list h3{margin-bottom:16px}
.partner-list p{font-size:14px}
.visit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.visit-card{border:1px solid var(--blue);padding:var(--panel-space);display:flex;flex-direction:column;align-items:start}
.visit-card h2{font-size:var(--h-panel);margin-bottom:var(--heading-gap)}
.visit-card p{font-size:14px;margin-bottom:28px}
.visit-card .button{margin-top:auto}
.footer{background:var(--navy);color:white;padding:64px 0 24px;border-top:4px solid var(--gold)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px}
.footer-brand .fleet-brand{margin-bottom:25px;color:var(--white)}
.footer-brand .fleet-brand img{height:72px}
.footer-brand .fleet-brand__word{font-size:34px}
.footer-brand .fleet-brand__name{font-size:15px;letter-spacing:.235em;margin-right:-.235em}
.footer-brand>a{display:inline-flex}
.footer-brand p a,.footer-bottom a{border-bottom:1px solid currentColor}
.footer p,.footer a{font-size:12px}
.footer h2{font-family:var(--sans);font-size:12px;letter-spacing:.08em;font-weight:600;margin-bottom:20px}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.footer li{margin:0}
.footer a{text-decoration:none}
.footer a:hover{text-decoration:underline}
.footer-bottom{border-top:1px solid var(--blue);padding-top:24px;margin-top:56px;display:flex;gap:24px;justify-content:space-between;align-items:baseline;font-size:11px;flex-wrap:wrap}
.footer-ownership,.footer-links{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 16px}
.footer-links{flex-shrink:0}
.footer-bottom a{font-size:11px}
@media(min-width:1600px){.home-intro{padding-top:72px;padding-bottom:52px}}
@media(max-width:1150px){.container{width:calc(100% - 64px)}.subnav .container{width:calc(100% - 52px)}.split{gap:48px}.content-layout{gap:40px}.intro-grid{gap:40px!important}.cta-band{align-items:start;flex-direction:column}.cta-band .actions{margin-top:0}}
@media(max-width:960px){.content-layout{grid-template-columns:minmax(0,1fr) 260px;gap:32px}.footer-grid{grid-template-columns:1.3fr 1fr;gap:40px}.section{padding-block:72px}.visit-grid{grid-template-columns:1fr}.visit-card{display:grid;grid-template-columns:1fr auto;gap:16px 32px}.visit-card h2{margin-bottom:var(--heading-gap)}.visit-card p{grid-column:1;margin-bottom:0}.visit-card .button{grid-column:2;grid-row:1/3;align-self:center}.card-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){html{scroll-padding-top:92px}.container{width:calc(100% - 40px)}body{font-size:15px}.home-intro{padding:38px 0 32px}.home-intro .eyebrow{font-size:10px;gap:10px;margin-bottom:18px}.home-intro .eyebrow:before,.home-intro .eyebrow:after{width:15px}.home-intro h1{font-size:56px;line-height:1.02;max-width:450px;margin:auto}.home-intro p:not(.eyebrow){font-size:14px;margin-top:20px}.home-intro .actions{gap:10px}.button{font-size:12px;padding:13px 18px;gap:12px}.photo-caption{padding-inline:20px;line-height:1.5}.photo-caption span:last-child{display:none}.routes{grid-template-columns:1fr}.route{padding:var(--panel-space);border-right:0;border-bottom:1px solid var(--blue);gap:0 20px}.route:last-child{border-bottom:0}.route strong{font-size:26px}.route .small{font-size:12px;max-width:none}.section{padding-block:56px}.section-sm{padding-block:40px}.split,.page-intro .intro-grid,.content-layout,.two-col,.experience-grid,.vessel-grid,.partner-list{grid-template-columns:1fr;gap:36px}.experience-grid article:nth-child(2){padding-top:0}.experience-grid{gap:40px}.fact-row{gap:32px}.fact-row strong{font-size:32px}.split-photo img{aspect-ratio:1.2}.award-strip{flex-direction:column;align-items:flex-start;gap:24px}.award-strip img{width:76px;height:76px}.award-strip p{font-size:13px}.section-heading{margin-bottom:30px}.page-intro{padding:28px 0 36px}.page-intro .eyebrow{font-size:11px;margin-bottom:16px}.page-intro .intro-photo img{aspect-ratio:1.45}.page-intro p.lead{font-size:16px;margin-top:20px}.subnav .container{width:calc(100% - 28px);flex-wrap:nowrap;gap:0 24px;overflow-x:auto;scrollbar-width:none}.subnav .container::-webkit-scrollbar{display:none}.subnav a{font-size:12px;padding-block:15px}.content-layout>.content>*+*{margin-top:36px}.sticky-note{position:static}.feature-list{gap:0 22px;font-size:13px}.card-grid{grid-template-columns:1fr;gap:36px}.card h3{font-size:26px}.vessel-title{flex-direction:column;align-items:flex-start;gap:4px}.vessel-grid{gap:40px}.filters{gap:8px;margin-bottom:28px}.filters button{padding:10px 14px;font-size:12px}.filters .small{width:100%;margin-top:8px}.form-panel{padding:24px 20px}.form-steps{gap:20px}.form-steps li{white-space:nowrap}.form-grid{grid-template-columns:1fr;gap:18px}.photo-pair{gap:12px}.photo-pair img{height:240px}.cta-band{gap:28px}.footer{padding-top:48px}.footer-grid{grid-template-columns:1fr 1fr;gap:36px 24px}.footer-brand{grid-column:1/-1}.footer-brand img{width:240px}.footer-bottom{margin-top:40px;flex-direction:column;align-items:flex-start;gap:12px}.footer-grid ul a{display:block;padding-block:11px}.footer-grid li+li{margin-top:0}.footer-brand p a{display:inline-block;padding-block:11px}.footer-bottom a{display:inline-block;padding-block:12px}.footer-brand p a,.footer-bottom a{border-bottom:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.table-wrap th,.table-wrap td{padding:14px 12px;min-width:90px}table{font-size:12px}.visit-card{display:flex;padding:var(--panel-space)}.visit-card p{margin:0 0 10px}blockquote{font-size:28px}.address-panel{padding:var(--panel-space)}}
.two-col .lead,.two-col h2+p{margin-top:0}
.more-charters{margin-top:48px;padding-top:32px;border-top:1px solid var(--navy)}
.more-charters>h3{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1.5;margin-bottom:8px}
.seasonal-essentials h2{font-size:var(--h-panel)}
.split-start{align-items:start}
.document-followup{margin-top:24px}
.application-links{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:12px}
.cta-band h2+p{margin-top:20px}
/* Closing CTA band: ink ground so it reads apart from the navy footer; the site's wave curve seams the top edge (white section above rolls in); the footer edge stays flat. */
.cta-ink{position:relative;overflow:hidden;background:var(--ink);color:var(--white);padding:calc(96px + 76px) 0 96px}
.cta-ink h2{color:var(--white)}
.cta-ink :focus-visible{outline-color:var(--gold)}
/* Interior closers: the same ink band, straight-edged, so the CTA never sits navy-on-navy against the footer. */
.cta-ink--flat{padding:96px 0}
.cta-ink .button.outline{color:var(--white);border-color:var(--white)}
.cta-ink .button.outline:hover{background:var(--white);color:var(--ink)}
.cta-wave{position:absolute;left:0;width:100%;height:76px;display:block;pointer-events:none}
.cta-wave--top{top:-1px;fill:var(--white);transform:scaleY(-1)}
@media(max-width:700px){.partner-list{row-gap:0}}
@media(max-width:700px){.cta-ink{padding:calc(56px + 56px) 0 56px}.cta-ink--flat{padding:56px 0}.cta-wave{height:56px}}
.vessel-rate-note{margin-bottom:24px;font-size:14px;max-width:62ch}
.section:has(>.container>.vessel-rate-note){padding-top:56px}
.dockage-documents{max-width:none}
.table-block{margin-top:24px}
.table-caption{font-size:14px;font-weight:600;margin-bottom:14px}
.table-block .table-wrap{margin-top:0}
.table-scroll-hint{display:none;font-size:12px;font-weight:600;margin:0 0 12px}
.table-scroll-hint:has(+ .table-wrap.is-scrollable){display:block}
.table-wrap th:first-child,.table-wrap td:first-child{position:sticky;left:0;z-index:1;background:var(--white)}
.blue .table-wrap th:first-child,.blue .table-wrap td:first-child{background:var(--blue)}
.table-wrap thead th:first-child,.blue .table-wrap thead th:first-child{background:var(--navy);z-index:2}
.table-rates th{white-space:nowrap}
.table-wrap a{white-space:nowrap}
.table-wrap a[href^="http"]{display:inline-flex;align-items:center;gap:6px}
.table-contractors a[href^="http"]{display:inline;white-space:normal}
.table-contractors .link-ending{white-space:nowrap}
.table-contractors .arrow{margin-left:2px}
.table-contractors td a{display:inline-block;padding-block:8px;margin-block:-8px}
/* Phones: the phone column shrinks to its number so the website column can hold "Visit website" and its arrow on one line. */
@media(max-width:480px){.table-contractors td:nth-child(2),.table-contractors th:nth-child(2){width:1%}.table-contractors td:nth-child(3){min-width:124px}}
.nowrap{white-space:nowrap}
.table-rates{max-width:640px}
.table-hours{max-width:760px}
.table-rates td,.table-rates th:not(:first-child){text-align:right}
.field small{min-height:0;font-size:12px;font-weight:600;line-height:1.5;color:var(--ink)}
.field small:empty{display:none}
/* Errors speak in the alert red, never in the gold that means "do this". */
.field [aria-invalid=true]~small{color:var(--alert)}
.form-error{color:var(--alert);font-weight:600}
input:user-invalid,select:user-invalid,textarea:user-invalid,
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink),inset 4px 0 0 var(--alert)}
.photo-contained.photo-wide img{aspect-ratio:815/520}
.photo-contained.photo-deck img{aspect-ratio:600/402}
.photo-contained{width:min(100%,408px);justify-self:center;align-self:center}
@media(min-width:701px){.split>.split-photo-portrait:first-child,.split>.photo-contained:first-child{justify-self:start}.split>.photo-contained:last-child{justify-self:end}.split:has(>.photo-contained:first-child){grid-template-columns:minmax(0,408px) 1fr}.split:has(>.photo-contained:last-child){grid-template-columns:1fr minmax(0,408px)}}
@keyframes reveal{from{opacity:0}to{opacity:1}}
details.faq[open]>div{animation:reveal .15s ease}
@media(min-width:961px){
 html{scroll-padding-top:176px}
 .seasonal-essentials{align-self:start;margin-top:calc(var(--panel-space-large) + 1px)}
 .split-start>div:first-child{padding-top:calc(var(--panel-space-large) + 1px)}
 .subnav{position:sticky;top:var(--header-height);z-index:19;background:var(--white)}
 .sticky-note{top:184px}
}
@media(min-width:701px) and (max-width:960px){
 :root{--h-display:clamp(32px,4.2vw,38px);--h-panel:clamp(30px,3.6vw,34px);--h-card:28px}
 html{scroll-padding-top:160px}
 .page-intro h1,.page-intro .intro-grid h1{font-size:clamp(36px,5vw,48px)}
 .routes{grid-template-columns:1fr}
 .route{border-right:0;border-bottom:1px solid var(--blue)}
 .route:last-child{border-bottom:0}
 .content-layout:has(.form-panel),.two-col:has(.form-panel),.split:has(.form-panel),.form-grid{grid-template-columns:1fr}
 .content-layout:has(.form-panel) .sticky-note{position:static}
 .vessel-title{flex-direction:column;align-items:flex-start;gap:4px}
 .subnav{position:sticky;top:var(--header-height);z-index:19;background:var(--white)}
}
@media(max-width:1150px){.visit-card .button,.note .button{padding-inline:18px}.split:has(.award-strip){grid-template-columns:1fr}.route{padding:28px 24px}.route strong{font-size:26px}}
@media(min-width:701px) and (max-width:960px){.note .button{padding-inline:14px;gap:8px}}
@media(min-width:961px) and (max-width:1000px){.visit-card h2{font-size:34px}.visit-card .button{padding-inline:12px;gap:8px}}
@media(max-width:1100px){.split .feature-list{grid-template-columns:1fr}}
@media(max-width:960px){.table-wrap th,.table-wrap td{padding:14px 10px;min-width:84px}}
@media(max-width:700px){
 :root{--h-display:36px;--h-panel:32px;--h-card:28px;--header-height:104px;--utility-height:0px}
 .experience-grid{padding-bottom:0}
 .experience-grid article:nth-child(2){margin-block:0}
 .experience-grid article:nth-child(2) img{aspect-ratio:1.5}
 .page-intro h1{font-size:clamp(30px,10.25vw,44px)}
 .visit-card .button{align-self:flex-start}
 .image-offset:after{display:none}
 .image-offset{padding:0}
 .routes{width:100%}
 .route{padding-inline:20px}
 .page-intro.compact{padding:36px 0 40px}
 .footer-ownership{row-gap:8px}
 .stay-intro .actions{flex-direction:column;align-items:flex-start}
 .subnav .container{column-gap:12px}
}
@media(max-width:360px){:root{--h-display:33px}.visit-card .button{width:100%;padding-inline:12px}.table-wrap th:first-child{position:static}.wide-break{display:none}}
@media(max-width:480px){.table-rates th,.table-rates td{padding-inline:7px;min-width:80px}.feature-list{grid-template-columns:1fr}.filters button{flex:1 1 45%}}
@media(max-width:389px){.table-rates th,.table-rates td{padding-inline:4px;min-width:74px}}

@media(max-width:360px){.table-contractors th,.table-contractors td{min-width:0;padding-inline:4px}.form-panel{padding-inline:24px}select{padding-inline-start:8px;padding-inline-end:20px}}

@media(max-width:360px){.table-rates thead th:not(:first-child){white-space:normal}.table-rates th,.table-rates td{min-width:56px}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.site-header,.subnav,.footer,.actions,.filters{display:none}.container{width:100%}.section{padding-block:25px}.content-layout{display:block}.sticky-note{position:static}.page-intro{padding:20px 0}body{font-size:11pt}a{color:var(--ink)}details.faq>div{display:block}}
/* marina-info document viewers: native details, PDF loaded on first open */
.doc-list details.doc{border:0}
.doc-list details.doc summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 34px 18px 0;font-size:14px;position:relative}
.doc-list details.doc summary::-webkit-details-marker{display:none}
.doc-list details.doc summary:hover{text-decoration:underline}
.doc-list details.doc summary:after{content:'+' / '';position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:25px;font-weight:400;transition:transform .15s ease}
.doc-list details.doc[open] summary:after{transform:translateY(-50%) rotate(45deg)}
.doc-list details.doc>div{padding:0 0 24px}
.doc-viewer{display:block;width:100%;height:70vh;min-height:420px;border:1px solid var(--navy);background:#fff;margin-bottom:12px}
@media(prefers-reduced-motion:reduce){.doc-list details.doc summary:after{transition:none}}

/* Compass Club: fleet page composition with the prototype's palette and wave. */
.compass-hero{height:calc(100vh + 84px);height:calc(100dvh + 84px);display:flex;align-items:center;justify-content:center;position:relative;padding:64px 20px 112px;background:var(--white)}
.compass-hero h1{font-size:15vw;font-weight:400;letter-spacing:-.02em;line-height:.9;text-align:center;margin:0}
.compass-hero h1 span{display:block}
.compass-scroll{position:absolute;bottom:100px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;min-width:64px;min-height:52px;padding:8px;text-decoration:none;font-size:12px;line-height:1.5;letter-spacing:.16em;text-transform:uppercase}
.compass-scroll:hover{text-decoration:underline}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.compass-manifesto{padding:72px 10vw 90px;text-align:center;background:var(--blue)}
.compass-manifesto>div{max-width:800px;margin-inline:auto}
.compass-manifesto .eyebrow{margin:0 auto 24px}
.compass-manifesto__statement{font-family:var(--serif);font-size:clamp(28px,3.5vw,40px);line-height:1.5;max-width:none;margin:0;text-wrap:balance}
/* Gold marks the phrase; navy letterforms preserve contrast on Alice Blue. */
.compass-highlight{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:3px;text-underline-offset:6px;text-decoration-skip-ink:auto}
.compass-benefits{position:relative;padding:96px 0}
.compass-benefits__wave{position:absolute;top:-1px;left:0;width:100%;height:56px;fill:var(--blue);pointer-events:none}
.compass-benefits__heading{text-align:center;margin-bottom:64px}
.compass-benefits__heading .eyebrow{color:var(--white);margin:0 auto 24px}
.compass-benefits__heading h2{font-size:40px;margin:0}
.compass-benefits__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:32px;max-width:900px;margin-inline:auto}
.compass-benefit{display:flex;flex-direction:column;min-width:0;flex:0 1 calc((100% - 64px) / 3)}
.compass-benefits--partners .compass-benefit{flex-basis:calc((100% - 32px) / 2)}
/* One panel height across the hospitality cards (tallest: three-line title) so kickers share a line. */
@media(min-width:768px){.compass-benefits:not(.compass-benefits--partners) .compass-card__content{min-height:282px}}
.compass-card{display:grid;align-items:end;position:relative;isolation:isolate;flex:1;aspect-ratio:1;min-height:350px;border-radius:16px;overflow:hidden;text-decoration:none;color:var(--white)}
.compass-card>img{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover}
/* Flat caption plaques keep partner photography legible without a gradient (brand guide p17). */
.compass-card__content{margin:0;padding:32px;background:rgb(10 25 41 / .86);transition:background .4s ease}
.compass-card:hover .compass-card__content{background:rgb(10 25 41 / .94)}
.compass-card__kicker{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0 0 10px}
.compass-card__title{font-family:var(--serif);font-size:24px;line-height:1.2;font-weight:400;margin:0 0 12px}
.compass-card__description{font-size:14px;line-height:1.6;margin:0;max-width:none}
.compass-card:focus-visible .compass-card__title{text-decoration:underline;text-decoration-color:var(--gold)}
.compass-benefits--partners{padding-top:48px}
.compass-benefits__footer{text-align:center;max-width:900px;margin:64px auto 0;font-size:14px;color:var(--white)}
.compass-cta{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px 20px;background:var(--blue)}
.compass-cta h2{font-size:var(--h-display);line-height:1.1;margin:0 0 48px}
.compass-cta .button{text-transform:uppercase;letter-spacing:.08em}

/* Clip the fleet's oversized rotating icon inside its fixed corner hit area. */
.compass-float{position:fixed;bottom:0;right:0;z-index:18;width:105px;height:105px;overflow:hidden;text-decoration:none}
.compass-float__disc{position:absolute;bottom:0;right:0;width:93px;height:93px;background:var(--navy);clip-path:ellipse(100% 100% at 100% 100%)}
.compass-float__icon{position:absolute;bottom:0;right:0;width:137px;height:137px;max-width:none;object-fit:contain;transform:translate(50%,50%) rotate(45deg);transition:transform .3s ease;z-index:2}
.compass-float__text{position:absolute;bottom:0;right:0;width:105px;height:105px;pointer-events:none;z-index:3}
.compass-float__text text{font-family:var(--sans);font-size:18px;font-weight:600;letter-spacing:.12em;fill:var(--gold)}
.compass-float:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;background:var(--navy)}
.menu-open .compass-float{visibility:hidden}
/* Reserve the badge's height below the final footer links, including focus. */
.footer{padding-bottom:120px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .compass-float:hover .compass-float__icon{transform:translate(50%,50%) rotate(90deg) scale(1.15)}
}
@media(hover:hover){.compass-card:hover .compass-card__title{text-decoration:underline;text-decoration-color:var(--gold)}}
@media(max-width:1024px){.compass-benefits__grid{gap:24px}}
@media(max-width:767px){
 .compass-manifesto{padding:64px 6vw 72px}
 /* Chromium balances at most 6 lines; the 8-line phone statement needs pretty to avoid a one-word last line. */
 .compass-manifesto__statement{text-wrap:pretty}
 .compass-benefits{padding:72px 0}
 .compass-benefits--partners{padding-top:24px}
 .compass-benefits__heading{margin-bottom:40px}
 .compass-benefits__heading h2{font-size:36px}
 .compass-benefits__grid{max-width:400px;gap:32px}
 .compass-benefit,.compass-benefits--partners .compass-benefit{flex-basis:100%}
 .compass-card{min-height:0}
 .compass-card__content{padding:24px}
 .compass-card__title{font-size:22px}
 .compass-benefits__footer{margin-top:40px}
 .compass-cta{padding-block:72px}
}
@media(max-width:767px){
 .compass-float{width:85px;height:85px}
 .compass-float__disc{width:70px;height:70px}
 .compass-float__icon{width:104px;height:104px}
 .compass-float__text{width:95px;height:95px;bottom:0;right:0}
 body:not(.is-home) .compass-float{display:none}
 .compass-float__text text{font-size:14px}
 body.is-home .footer{padding-bottom:100px}
}
@media print{.compass-float,.compass-scroll{display:none}}

/* Rules connect adjacent white sections without another filled band. */
.section-rule{border-top:1px solid var(--blue)}
.section-compact{padding-block:64px}
.split-photo-landscape img{aspect-ratio:16/10}
.split-photo-portrait{width:min(100%,480px);justify-self:center}
.split-photo-portrait img{aspect-ratio:4/5;object-position:42% center}
.dock-office{border-top:1px solid var(--blue);padding-top:24px}
@media(max-width:700px){.content-layout>.content+.dock-office,.content-layout>:has(>details.faq:last-child)+.dock-office{border-top:0;padding-top:20px}}
.dock-office h3{margin-bottom:24px}
.dock-office .contact-details{margin:0 0 24px}
.dock-office .contact-details dd{font-size:16px}
.dock-office p{font-size:14px}
.dock-office__context{margin-top:32px}
.dock-office a{overflow-wrap:anywhere}
/* The office and pool share one frame; the plaque covers the office side. */
.photo-band{position:relative;isolation:isolate;min-height:480px;display:flex;align-items:center;padding-block:32px}
.photo-band__photo{position:absolute;inset:0;z-index:-1;height:100%;object-fit:cover;object-position:center 65%}
.photo-band__plaque{max-width:520px;padding:32px;background:var(--navy)}
.photo-band__plaque h2{font-size:var(--h-panel)}
.photo-band__plaque p{font-size:14px}
@media(max-width:960px){
 .photo-band{display:block;padding:0}
 .photo-band__photo{position:static;height:360px}
 .photo-band__plaque{max-width:680px;padding:40px 0}
}
@media(max-width:700px){
 .section-compact{padding-block:40px}
 .photo-band__photo{height:300px}
 .photo-band__plaque{padding-block:32px}
}

/* The header height also anchors interior subnavigation and viewport heroes. */
.fleet-bar{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:var(--header-height)}
.fleet-brand{display:flex;align-items:center;gap:14px;flex-shrink:0;color:inherit;text-decoration:none}
.fleet-brand img{height:64px;width:auto}
/* Sun Life wordmark cadence per the 2026-07 brand guide p5: Playfair Italic small line centered over Playfair tracked caps. Operator dropped the location line and rule (2026-09-09). */
.fleet-brand__wordmark{display:flex;flex-direction:column;align-items:center;line-height:1;font-family:var(--serif);font-weight:400;text-transform:uppercase;white-space:nowrap}
/* Tracking per size is measured so CONSTITUTION spans exactly the width of MARINA. */
.fleet-brand__name{font-style:italic;font-weight:500;font-size:13px;letter-spacing:.251em;margin-right:-.251em}
.fleet-brand__word{font-size:30px;letter-spacing:.14em;margin-top:3px;margin-right:-.14em}
.site-header :focus-visible{outline-color:var(--gold)}
.fleet-group summary:focus-visible{outline-offset:-5px}
.fleet-nav{display:flex;align-items:center;gap:22px;align-self:stretch}
.fleet-group{position:relative;height:var(--header-height)}
.fleet-group summary,.fleet-nav__link{display:flex;align-items:center;gap:8px;min-height:48px;font-size:11px;font-weight:500;letter-spacing:.11em;text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer}
.fleet-group summary{list-style:none;min-height:var(--header-height)}
.fleet-group summary::-webkit-details-marker{display:none}
.fleet-group summary::after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px}
.fleet-group[open] summary::after{transform:rotate(225deg);margin-top:3px}
.fleet-group.is-current summary,.fleet-nav__link[aria-current=page],.fleet-nav__actions .button[aria-current=page],.fleet-mega__link[aria-current=page] .fleet-mega__title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}
.fleet-group summary:hover,.fleet-nav__link:hover{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:7px}
.fleet-nav__actions{display:flex;gap:14px;align-items:center}
.fleet-nav__actions .button{font-size:11px;letter-spacing:.08em;text-transform:uppercase;min-height:44px;padding:12px 16px;white-space:nowrap}
.fleet-nav .button.outline{color:var(--white);border-color:var(--white)}
.fleet-nav .button.outline:hover{color:var(--navy);background:var(--white)}
.fleet-mega{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:340px;padding:24px;background:var(--navy);border-top:1px solid var(--gold);box-shadow:0 16px 24px rgb(17 13 4 / .18);max-height:calc(100svh - var(--header-height) - 16px);overflow-y:auto;overscroll-behavior:contain}
.fleet-mega__heading{font-family:var(--serif);font-size:24px;line-height:1.25;margin-bottom:16px}
.fleet-mega__link{display:flex;flex-direction:column;padding:11px 0;text-decoration:none;line-height:1.5;gap:3px}
.fleet-mega__title{font-size:14px;font-weight:600}
.fleet-mega__description{font-size:12px;color:var(--blue)}
.fleet-mega__link:hover .fleet-mega__title{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.fleet-mega__cta{margin-top:20px;width:100%;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding-inline:12px}
.fleet-toggle{display:none;background:none;color:var(--white);border:0;width:48px;height:48px;align-items:center;justify-content:center;padding:12px;flex-shrink:0}
.fleet-toggle__cross{display:none}
.fleet-toggle[aria-expanded=true] .fleet-toggle__bars{display:none}
.fleet-toggle[aria-expanded=true] .fleet-toggle__cross{display:block}
.footer-location{font-size:12px}
/* 1024-1279: laptops and iPad landscape keep the five labels and the gold CTA; the outline Contact button waits for the footer. */
@media(min-width:1024px) and (max-width:1279px){
 .fleet-bar{gap:16px}
 .fleet-brand img{height:52px}
 .fleet-brand__name{font-size:11px}
 .fleet-brand__word{font-size:26px}
 .fleet-nav{gap:14px}
 .fleet-group summary,.fleet-nav__link{font-size:10px;letter-spacing:.09em;gap:6px}
 .fleet-nav__actions{gap:8px}
 .fleet-nav__actions .button{font-size:10px;padding:10px 12px}
 .fleet-nav__actions .button.outline{display:none}
}
@media(max-width:1023px){
 .fleet-bar{flex-wrap:wrap}
 .fleet-nav{width:100%;flex-direction:column;padding:28px 0 44px;gap:20px;align-items:center}
 .fleet-nav>*{flex-shrink:0}
 .fleet-group{width:min(100%,420px);height:auto}
 .fleet-group summary,.fleet-nav__link{justify-content:center;min-height:48px;font-family:var(--serif);font-size:32px;line-height:1.3;letter-spacing:0;text-transform:none;white-space:normal;text-align:center}
 .fleet-group summary::after{width:8px;height:8px;margin-left:6px}
 .fleet-mega{position:static;transform:none;width:100%;max-height:none;padding:8px 20px 20px;margin-top:16px;border-top:0;box-shadow:none;overflow:visible}
 .fleet-mega__heading{font-size:20px;margin-bottom:10px}
 .fleet-mega__link{padding-block:12px}
 .fleet-nav__actions{flex-direction:column;gap:16px;margin-top:12px;width:min(100%,260px)}
 .fleet-nav__actions .button{min-height:52px;width:100%;font-size:12px}
 .nav-ready .fleet-toggle{display:flex}
 .fleet-toggle{margin-right:-14px}
 .fleet-mega{text-align:center}.fleet-mega__link{align-items:center}.fleet-mega__cta{width:min(100%,260px);margin-inline:auto;display:flex}
 .nav-ready .fleet-nav{display:none}
 .menu-open{overflow:hidden}
 /* Keep the masthead in flow and its close control above the scrolling menu. */
 .menu-open .fleet-nav{display:flex;position:fixed;inset:var(--header-height) 0 0;width:100%;padding:28px 32px 44px;background:var(--navy);overflow-y:auto;overscroll-behavior:contain}
 .nav-ready .fleet-group[open] .fleet-mega{animation:reveal .15s ease}
}
@media(max-width:767px){
 :root{--header-height:80px}
 .fleet-brand{gap:10px}
 .fleet-brand img{height:48px}
 .fleet-brand__name{font-size:10px;letter-spacing:.207em;margin-right:-.207em}
 .fleet-brand__word{font-size:22px;margin-top:2px}
 .fleet-bar{gap:0 16px}
 .fleet-nav{padding-top:24px;gap:16px}
 .menu-open .fleet-nav{padding:24px 20px 44px}
 .fleet-group summary,.fleet-nav__link{font-size:30px}
 .fleet-mega{padding-inline:12px}
}
@media(prefers-reduced-motion:reduce){.nav-ready .fleet-group[open] .fleet-mega{animation:none}}
@media print{.site-header{display:none}}
/* Ken Burns drift on the fleet hero photographs: a slow scale-and-pan, 28s out and back, disabled under reduced motion by the global rule. */
.home-hero{overflow:hidden}
.home-hero__photo{transform-origin:50% 60%;animation:home-hero-drift 28s ease-in-out infinite alternate;will-change:transform}
@keyframes home-hero-drift{from{transform:scale(1) translate3d(0,0,0)}to{transform:scale(1.08) translate3d(-1.5%,-1%,0)}}
/* The fleet bar overlays each hero and gains a navy fill on scroll or interaction. */
.has-hero .site-header{position:fixed;left:0;right:0;background:transparent;transition:background .3s ease,box-shadow .3s ease}
.has-hero .site-header.is-solid,.has-hero .site-header:hover,.has-hero .site-header:focus-within{background:rgba(24,64,112,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 20px rgba(0,0,0,.15)}


/* Shared fleet hero composition. The seam follows the full viewport in flow. */

.home-hero{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;height:calc(100vh + 84px);height:calc(100dvh + 84px);min-height:0;margin-top:0;padding:calc(var(--header-height) + 32px) 32px 196px;background:var(--navy)}
.home-hero__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;z-index:-2}
.home-hero>picture{display:contents}
.home-hero::before{content:'';position:absolute;inset:0;background:rgba(10,25,47,.84);z-index:-1}
.home-hero__content{width:100%;max-width:1280px;text-align:center;color:var(--white)}
.home-hero__eyebrow{display:flex;align-items:center;justify-content:center;gap:16px;max-width:none;margin:0 0 48px;color:var(--gold);font-size:14px;font-weight:600;line-height:1.6;letter-spacing:.2em;text-transform:uppercase}
.home-hero__eyebrow::before,.home-hero__eyebrow::after{content:'';width:32px;height:1px;flex-shrink:0;background:currentColor}
.home-hero__content h1{font-size:clamp(48px,5.6vw,80px);font-weight:400;line-height:1.1;letter-spacing:0}
.home-hero__headline-line{display:block}
.home-hero__headline-line+.home-hero__headline-line{color:var(--gold);font-style:italic}
.home-hero__buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:48px}
.home-hero__buttons .button{min-width:200px;min-height:59px;padding:16px 32px;border-width:2px;font-size:14px;font-weight:500;letter-spacing:.1em;text-transform:uppercase}
.home-hero__buttons .button.outline{color:var(--white);border-color:var(--white)}
.home-hero__buttons .button.outline:hover{color:var(--navy);background:var(--white)}
.home-hero :focus-visible{outline-color:var(--gold)}
.compass-float.is-over-hero-actions{visibility:hidden}
/* The wave overlaps the hero's bottom edge so the photograph runs behind it; no solid band. */
.home-hero__wave{width:100%;height:84px;display:block;position:relative;z-index:1;margin-top:-84px;pointer-events:none;fill:var(--white);margin-bottom:56px}
/* Compass Club's wave pours Alice Blue into an Alice Blue section, so no white gap there. */
.compass-page>.home-hero__wave{margin-bottom:0}
@media(max-width:700px){.home-hero{height:calc(100vh + 56px);height:calc(100dvh + 56px);padding:calc(var(--header-height) + 40px) 20px 168px}.home-hero__photo{object-position:center}.home-hero__content h1{font-size:clamp(36px,11.3vw,48px)}.home-hero__eyebrow{gap:10px;font-size:12px;letter-spacing:.16em;margin-bottom:32px}.home-hero__eyebrow::before,.home-hero__eyebrow::after{width:20px}.home-hero__buttons{flex-direction:column;align-items:center;margin-top:32px}.home-hero__buttons .button{width:300px;max-width:100%;padding-inline:16px;font-size:13px;letter-spacing:.08em;white-space:nowrap}.home-hero__wave{height:56px;margin-top:-56px;margin-bottom:32px}.home-hero__content h1{font-size:clamp(32px,9.6vw,44px)}}
.m-break{display:none}
@media(max-width:480px){.m-break{display:inline}.m-hide{display:none}.is-home .home-hero__eyebrow::before,.is-home .home-hero__eyebrow::after{display:none}}
@media(min-width:701px) and (max-width:1024px){.home-hero__photo{object-position:50% 70%}}

.home-hero__lead{max-width:760px;margin:24px auto 0;font-size:18px;line-height:1.75;color:var(--white);text-wrap:balance}
.interior-hero .home-hero__eyebrow{margin-bottom:32px}
.interior-hero .home-hero__content:not(:has(.home-hero__buttons)){padding-bottom:91px}
.interior-hero .home-hero__buttons{margin-top:32px}
@media(max-width:420px){.home-hero__content h1{font-size:clamp(34px,9.6vw,44px)}}
.compass-page>.home-hero__wave{fill:var(--blue)}
/* Switch ink and fill together to prevent white nav fading over the bound white opening. */
.hero-light .site-header{transition:none}
.hero-light .site-header:not(.is-solid):not(:hover):not(:focus-within){color:var(--navy)}
.hero-light .site-header:not(.is-solid):not(:hover):not(:focus-within) .fleet-toggle{color:var(--navy)}
.hero-light .site-header:not(.is-solid):not(:hover):not(:focus-within) .fleet-nav .button.outline{color:var(--navy);border-color:var(--navy)}
.fleet-brand__dark{display:none}
.hero-light .site-header:not(.is-solid):not(:hover):not(:focus-within) .fleet-brand__dark{display:block}
.hero-light .site-header:not(.is-solid):not(:hover):not(:focus-within) .fleet-brand__white{display:none}
@media(max-width:700px){
 .home-hero__lead{font-size:16px;line-height:1.65;margin-top:20px}
 .interior-hero .home-hero__eyebrow{margin-bottom:24px}
 .interior-hero{padding-top:calc(var(--header-height) + 24px);padding-bottom:64px}
 .interior-hero .home-hero__buttons{margin-top:24px}
 .interior-hero .home-hero__content:not(:has(.home-hero__buttons)){padding-bottom:83px}
}
/* Keep actions in the opening viewport on short phones without shrinking tap targets. */
@media(max-height:740px) and (max-width:700px){
 .home-hero{padding-top:calc(var(--header-height) + 16px);padding-bottom:24px}
 .home-hero__content h1{font-size:clamp(30px,9vw,40px)}
 .home-hero__eyebrow,.interior-hero .home-hero__eyebrow{margin-bottom:16px}
 .home-hero__buttons,.interior-hero .home-hero__buttons{margin-top:20px;gap:12px}
 .home-hero__buttons .button{min-height:52px;padding-block:12px;font-size:12px}
 .home-hero__lead{margin-top:16px;font-size:14px;line-height:1.6}
}

/* Open menu: no backdrop-filter, or the header becomes the containing block for the fixed nav and clips it to the bar. */
.has-hero.menu-open .site-header,.menu-open .site-header{background:var(--navy);-webkit-backdrop-filter:none;backdrop-filter:none}


.arrival-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 32px;margin:0 0 8px;padding:0 0 24px;border-bottom:1px solid var(--blue)}
.arrival-facts div{margin:0}.arrival-facts dt{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);margin-bottom:6px}.arrival-facts dd{margin:0;font-size:15px;line-height:1.5}


/* Dockage follows the fleet dock-with-us split: content left, the booking form in a sticky right column (sunlifebuffalo.com/dock-with-us). Dockwa's iframe is transparent and renders a ~450px white card, so a 480px frame on Alice Blue reads as a form seated on our panel. Below 1024px the grid areas stack intro, form, rest, and the hero button jumps to #book. */
.dock-layout{display:grid;grid-template-columns:minmax(0,1fr) 480px;grid-template-areas:"intro form" "rest form";column-gap:72px;align-items:start}
.dock-intro{grid-area:intro}.dock-rest{grid-area:rest;margin-top:72px}.dock-form{grid-area:form}
.dock-layout>*{min-width:0}
.dock-rest>*+*{margin-top:48px}
.dock-form{background:var(--blue);position:sticky;top:176px}
.dockwa-box{position:relative}
#dockwa-embed{display:block;width:100%;position:relative;z-index:1}
.dockwa-loading{position:absolute;top:20px;left:16px;right:16px;width:auto;max-width:none;height:600px;margin:0;display:grid;place-items:center;background:var(--white);border:1px solid var(--slate);font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
.dockwa-loaded .dockwa-loading{display:none}
.booking-guide{max-width:none}
.booking-guide h3{margin:0 0 20px}
.booking-steps{list-style:none;counter-reset:step;margin:0 0 24px;padding:0}
.booking-steps li{counter-increment:step;display:grid;grid-template-columns:44px 1fr;column-gap:8px;margin:0;padding:18px 0;border-top:1px solid var(--blue);line-height:1.6}
.booking-steps li:last-child{border-bottom:1px solid var(--blue)}
.booking-steps li::before{content:counter(step);grid-row:span 2;font-family:var(--serif);font-size:30px;line-height:28px;font-variant-numeric:lining-nums;color:var(--navy)}
.booking-steps strong{display:block;color:var(--navy);font-weight:600;margin-bottom:4px}
/* Dockwa refused the frame (no size message in 3 s; its Cloudflare edge 403s some clients): the frame collapses and the column offers the deep link. Collapse rather than display:none, so a late size message can still restore the form. */
.dockwa-fallback{display:none;padding:var(--panel-space)}
.dockwa-fallback h3{margin:0 0 12px}.dockwa-fallback p{font-size:14px;margin:0 0 20px}.dockwa-fallback .button{width:100%}
.dockwa-blocked #dockwa-embed{height:0!important}.dockwa-blocked .dockwa-loading{display:none}
.dock-form:has(.dockwa-blocked) .dockwa-fallback{display:block}
/* Stick only when the whole column fits: 721px loaded Dockwa frame + 176px top + 8px bottom clearance. */
/* Sticky only when the ~721px Dockwa frame fits below the 176px header + subnav stack. */
@media(max-height:896px){.dock-form{position:static}}
@media(max-width:1150px){.dock-layout{column-gap:40px;grid-template-columns:minmax(0,1fr) 440px}}
@media(max-width:1023px){.dock-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "form" "rest"}.dock-form{position:static;max-height:none;overflow:visible;margin-top:40px;max-width:560px}.dock-rest{margin-top:56px}}
@media(max-width:700px){.dock-form{margin-inline:-20px;max-width:none}.dock-rest{margin-top:48px}}

/* Dockage documents expand to the page rendered as an image; the PDF stays one link away. */
.doc-image-link{display:block;margin:4px 0 14px;cursor:zoom-in}
.doc-image{display:block;width:100%;height:auto;border:1px solid var(--blue);background:#fff}
