/* Shared layout contract: loaded after component styles, before home.css.
   Mobile defaults expand with the space available; no fixed page heights. */
:root { --gutter: clamp(20px, 4vw, 80px); --ink: #18333f; --muted: #586a74; }
body { font-size: 16px; }
.wrap { max-width: 1720px; }
.wrap, main, section, article, nav, .wrap > *, .detail-body > *, .collection-opening > *,
.card-content, .model-card, .footer-top > *, .contact-channels > *, .brand-story > * { min-width: 0; }
h1, h2, h3 { overflow-wrap: break-word; }
button, .btn, .text-link { overflow-wrap: anywhere; }
.eyebrow { font-size: .8125rem; letter-spacing: .12em; }
.text-link { font-size: .875rem; }
.btn { min-height: 48px; font-size: .9375rem; }
.header { background: #fff; color: var(--ink); border-bottom: 1px solid var(--line); }
.header-inner { min-height: 88px; gap: 28px; }
.header .brand-logo { width: 162px; filter: none; }
.main-nav { display: flex; gap: clamp(18px,2vw,32px); }
.main-nav > a { font-size: .9375rem; }
.header-contact { background: var(--navy); color: white; border-color: var(--navy); font-size: .875rem; }
.header-contact:hover { background: var(--blue); border-color: var(--blue); }
.header-side { gap: 20px; }
.language-menu summary { min-width: 44px; min-height: 44px; font-size: .875rem; }
.langs a { font-size: .9375rem; }.langs a span { font-size: .8125rem; }
.mobile-menu > nav { background: #fff; color: var(--ink); border-top: 1px solid var(--line); max-height: calc(100dvh - 80px); overflow-y: auto; overscroll-behavior: contain; padding-bottom: max(24px,env(safe-area-inset-bottom)); }
.mobile-menu nav > a:not(.btn) { min-height: 48px; padding: 12px 0; border-color: var(--line); }
.mobile-menu nav > .btn { background: var(--navy); color: #fff; }
.section { padding-block: clamp(56px,6vw,96px); }
.photo { border-radius: 12px; box-shadow: 0 8px 24px #102f430a; }
.port { font-size: .8125rem; }
.card-alias, .card-story { font-size: .9375rem; }
.quick-facts dt { font-size: .8125rem; }
.quick-facts dd { overflow-wrap: break-word; }
.card-action { flex-wrap: wrap; }
.card-action > span, .card-action .text-link { font-size: .875rem; }
.photo-badge { font-size: .8125rem; }
.catalog-filters { grid-template-columns: minmax(0,1.4fr) minmax(0,1fr) auto; }
.catalog-filters input, .catalog-filters select { font-size: 16px; min-height: 48px; }
.catalog-filters label > span, .catalog-meta, .reset-filters { font-size: .875rem; }
.catalog-meta { flex-wrap: wrap; }
.reset-filters { min-height: 48px; }
.collection-opening { grid-template-columns: minmax(0,1fr) minmax(0,1.3fr); gap: clamp(30px,4vw,70px); }
.collection-opening img { height: auto; aspect-ratio: 1.5; border-radius: 14px; }
.collection-opening figcaption, .breadcrumbs { font-size: .8125rem; }
.collection-opening > div > p:not(.eyebrow) { font-size: 1rem; }
.detail-title > div { min-width: 0; }
.detail-body, .sale-model-body { grid-template-columns: minmax(0,1fr) minmax(280px,350px); gap: clamp(32px,5vw,80px); }
.gallery-wrap { max-width: 1800px; }
.gallery-mosaic { height: auto; aspect-ratio: 2.25; grid-template-columns: minmax(0,2.4fr) minmax(0,1fr); }
.gallery-all, .detail-navigation { font-size: .875rem; }
.gallery-thumbs { flex-wrap: wrap; }
.gallery-thumbs > p { flex: 1 1 140px; font-size: .875rem; }
.gallery-thumbs > p > span { font-size: .8125rem; }
.detail-body section > p:not(.eyebrow) { font-size: 1rem; }
.specs dt, .specs dd, .sale-model-body .specs dt, .sale-model-body .specs dd { font-size: .9375rem; }
.specs > div { min-width: 0; }
.specs dd { overflow-wrap: anywhere; }
.enquiry-box { max-width: none; }
.enquiry-box > p:not(.eyebrow) { font-size: .9375rem; }
.enquiry-box small, .delivery-note p, .tax-caption { font-size: .8125rem; }
.enquiry-box .btn { min-width: 0; width: 100%; }
.configured-engine { font-size: 1rem; }
.configured-engine small, .card-delivery, .model-price small { font-size: .875rem; }
.configured-engine > span { font-size: .8125rem; }
.model-card, .distributor { grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); }
.model-card .card-content { min-width: 0; }
.model-price { gap: 8px 14px; }
.assurances { flex-wrap: wrap; }
.assurances p { font-size: .875rem; }
.sales-navigation { flex-wrap: wrap; font-size: .9375rem; }
.used-filters { grid-template-columns: minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto; }
.used-card .configured-engine { font-size: 1rem; }
.faq { gap: clamp(30px,6vw,90px); }
.faq-list summary { font-size: 1rem; }
.faq-list p { font-size: 1rem; }
.contact-strip p { font-size: 1rem; }
.footer { background: #fff; color: var(--ink); border-top: 1px solid var(--line); }
.footer .brand-logo { filter: none; width: 175px; }
.footer-top { gap: clamp(24px,4vw,60px); grid-template-columns: minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1fr); }
.footer-top p { font-size: .875rem; color: var(--muted); }
.footer-top h3 { color: var(--ink); font-size: .8125rem; }
.footer-links { font-size: .875rem; gap: 4px; }
.footer-links a { min-height: 38px; padding-block: 6px; }
.footer-bottom { color: var(--muted); border-color: var(--line); font-size: .8125rem; flex-wrap: wrap; }
.photo-dialog { max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); }
.photo-dialog button { min-height: 44px; font-size: .875rem; }
@media(max-width:1200px) {
 .header-contact { display: none; }
 .header-inner { justify-content: space-between; min-height: 80px; }
 .mobile-menu { display: block; position: static; }
 .mobile-menu summary { height: 44px; width: 44px; display: grid; place-items: center; cursor: pointer; }
 .menu-lines { position: relative; width: 23px; height: 12px; border-top: 1px solid; border-bottom: 1px solid; }
 .mobile-menu[open] .menu-lines { border: 0; }
 .mobile-menu[open] .menu-lines:before, .mobile-menu[open] .menu-lines:after { content: ''; position: absolute; top: 5px; left: 0; width: 23px; height: 1px; background: currentColor; transform: rotate(45deg); }
 .mobile-menu[open] .menu-lines:after { transform: rotate(-45deg); }
 .mobile-menu > nav { position: absolute; top: 100%; left: 0; right: 0; padding: 20px var(--gutter) 28px; display: flex; flex-direction: column; box-shadow: 0 18px 30px #061c3014; }
 .mobile-menu nav > a:not(.btn) { border-bottom: 1px solid var(--line); font-size: 1rem; }
 .mobile-menu nav > .btn { align-self: flex-start; margin-top: 24px; }
 .used-filters { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
 .used-filters .search-field { grid-column: 1/-1; }
 .assurances { gap: 24px; }.assurances p+p { padding-left: 24px; }
}
@media(max-width:960px) {
 .collection-opening, .detail-body, .sale-model-body, .distributor, .brand-story, .sale-process, .about-layout { grid-template-columns: minmax(0,1fr); }
 .collection-opening > div { max-width: 760px; }
 .collection-opening img { aspect-ratio: 1.85; }
 .collection-opening { gap: 28px; }
 .detail-body, .sale-model-body { gap: 36px; }
 .enquiry-box { position: static; }
 .enquiry-box .btn { display: flex; }
 .catalog-filters, .page-sales .catalog-filters { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
 .catalog-filters .search-field { grid-column: 1/-1; }
 .section-heading { align-items: flex-start; flex-direction: column; gap: 20px; }
 .section-heading-aside { max-width: 600px; }
 .model-card { gap: 30px; }
 .model-card h3 { font-size: clamp(1.8rem,3.2vw,2.5rem); }
 .model-card .quick-facts { gap: 16px; }
 .model-card .quick-facts>div+div { padding-left: 16px; }
 .faq { grid-template-columns: minmax(0,1fr); gap: 28px; }
 .footer-top { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
 .footer-top>div:first-child { grid-column: 1/-1; }
 .contact-strip>.wrap { flex-direction: column; align-items: flex-start; gap: 28px; }
}
@media(max-width:700px) {
 .wrap { --gutter: 22px; }
 .header-inner { min-height: 74px; gap: 16px; }
 .header .brand-logo { width: 140px; }
 .header-side { gap: 12px; }
 .section { padding-block: 52px; }
 h1, .collection-opening h1, .detail-title h1, .brand-story h1 { font-size: clamp(2rem,7.5vw,3rem); line-height: 1.14; }
 h2, .catalog-intro h2, .contact-strip h2 { font-size: clamp(1.8rem,6.5vw,2.5rem); line-height: 1.2; }
 .eyebrow { font-size: .8125rem; margin-bottom: 14px; }
 .section-heading { margin-bottom: 28px; }
 .collection-hero { padding-top: 20px; }
 .collection-opening img { aspect-ratio: 1.5; }
 .collection-opening>div>p:not(.eyebrow) { margin-top: 18px; }
 .card-grid { grid-template-columns: minmax(0,1fr); gap: 36px; }
 .featured-grid .boat-card:first-child, .model-card { display: block; margin: 0; }
 .featured-grid .boat-card:first-child .photo, .model-card .photo { min-height: 0; height: auto; aspect-ratio: 1.5; border-radius: 12px; }
 .boat-card h3, .featured-grid .boat-card:first-child h3, .model-card h3 { font-size: clamp(1.6rem,6.2vw,2.1rem); }
 .model-card .card-content { padding-top: 24px; }
 .quick-facts, .featured-grid .boat-card:first-child .quick-facts, .model-card .quick-facts, .sale-model-body section>.quick-facts { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 16px 20px; }
 .quick-facts>div+div, .featured-grid .boat-card:first-child .quick-facts>div+div, .model-card .quick-facts>div+div, .sale-model-body .quick-facts>div+div { border: 0; padding-left: 0; }
 .quick-facts dd { max-width: none; }
 .yacht-story .quick-facts dt { font-size: .8125rem; }
 .yacht-story .quick-facts dd { font-size: 1.4rem; }
 .card-action .text-link { min-height: 44px; display: inline-flex; align-items: center; }
 .catalog-filters, .page-sales .catalog-filters, .used-filters { grid-template-columns: minmax(0,1fr); gap: 16px; padding: 20px; }
 .catalog-filters .search-field { grid-column: auto; }
 .catalog-meta { align-items: flex-start; flex-direction: column; gap: 8px; }
 .catalog-meta p:last-child { text-align: left; }
 .used-card:only-child { display: block; }
 .used-card:only-child .card-content { padding-top: 24px; }
 .model-price { display: block; }.model-price small { display: block; margin-top: 4px; }
 .distributor h2 { font-size: 2.8rem; }
 .assurances { align-items: flex-start; flex-direction: column; gap: 0; padding-block: 15px; }
 .assurances p { width: 100%; padding: 12px 0; text-align: left; }
 .assurances p+p { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
 .berth-note { flex-direction: column; align-items: flex-start; gap: 24px; margin-top: 32px; }
 .berth-note .btn { width: 100%; }
 .detail-title { flex-direction: column; align-items: flex-start; gap: 20px; }
 .detail-title>.btn { width: 100%; }
 .detail-top { padding: 20px 0 24px; }
 .gallery-mosaic, .gallery-mosaic.count-2 { display: block; aspect-ratio: 4/3; height: auto; }
 .gallery-tile { display: none; }.gallery-tile:first-child { display: block; width: 100%; height: 100%; }
 .gallery-all { min-height: 44px; right: 14px; bottom: 14px; font-size: .8125rem; padding: 10px 16px; }
 .gallery-thumbs>a { width: 64px; }.gallery-thumbs img { height: 48px; }
 .gallery-thumbs>p { flex-basis: 100%; text-align: left; margin: 4px 0 0; }
 .gallery-thumbs>p>span { display: none; }
 .detail-navigation { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0 16px; white-space: normal; overflow: visible; }
 .detail-navigation a { min-height: 44px; }
 .specs { grid-template-columns: minmax(0,1fr); }
 .specs>div { gap: 16px; }
 .enquiry-box { padding: 25px; }
 .enquiry-box .btn { padding-inline: 16px; }
 .photo-dialog { padding: 14px; }.dialog-image { height: min(58dvh,540px); }
 .dialog-top { gap: 12px; }.dialog-top>p { min-width: 0; }.dialog-top form { flex-shrink: 0; }
 .contact-options, .contact-channels { grid-template-columns: minmax(0,1fr); gap: 28px; }
 .contact-strip { padding-block: 52px; }.contact-strip .btn { width: 100%; }
 .footer-top { grid-template-columns: minmax(0,1fr); }.footer-top>div:first-child { grid-column: auto; }
 .footer-links a { min-height: 44px; padding-block: 8px; }
 .footer-bottom { flex-direction: column; gap: 8px; }
 .port-stories { grid-template-columns: minmax(0,1fr); gap: 32px; }
 .port-stories article:nth-child(n) { padding-top: 0; }
 .port-stories img { aspect-ratio: 1.6; }
}
@media(max-width:360px) {
 .wrap { --gutter: 17px; }.header .brand-logo { width: 125px; }.enquiry-box { padding: 20px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior: auto; } *, *:before, *:after { animation: none!important; transition: none!important; }
}

/* Shared sales navigation and the two authorised dealerships. */
.nav-dropdown{position:relative}
.nav-dropdown>summary{display:flex;align-items:center;gap:11px;cursor:pointer;list-style:none;min-height:48px;font-size:.9375rem;white-space:nowrap}
.nav-dropdown>summary::-webkit-details-marker{display:none}
.nav-dropdown[open]>summary .chevron{transform:rotate(225deg);margin-top:3px}
.nav-dropdown[data-active]>summary{text-decoration:underline;text-underline-offset:8px;text-decoration-color:var(--accent)}
.sales-submenu{position:absolute;top:calc(100% + 8px);left:-20px;width:260px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 20px 50px #071f3626}
.sales-submenu>a{display:flex;align-items:center;min-height:46px;padding:10px 13px;border-radius:7px;font-size:.9375rem;line-height:1.5}
.sales-submenu>a:hover,.sales-submenu>a[aria-current]{background:var(--mist)}
.sales-submenu>a:first-child{font-size:.875rem;color:var(--muted);border-bottom:1px solid var(--line);border-radius:0;margin-bottom:7px}
.dealer-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(40px,6vw,88px)}
.dealer-card{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);align-items:center;gap:clamp(28px,5vw,76px)}
.dealer-card:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(0,1.8fr)}
.dealer-card:nth-child(even) .dealer-photo{grid-column:2;grid-row:1}
.dealer-card:nth-child(even) .dealer-copy{grid-column:1;grid-row:1}
.dealer-photo{display:block;overflow:hidden;border-radius:16px;box-shadow:0 8px 24px #102f430d}
.dealer-photo>img{display:block;width:100%;height:auto;aspect-ratio:1.4;object-fit:cover;object-position:center;transition:transform .4s}
.dealer-photo:hover>img{transform:scale(1.015)}
.dealer-copy{padding:12px 0;min-width:0}
.dealer-copy .eyebrow{margin-bottom:17px;letter-spacing:.12em}
.dealer-copy h3{font-size:clamp(2.8rem,5.3vw,5rem);font-weight:400;letter-spacing:-.04em;line-height:1.08}
.dealer-copy .text-link{margin-top:28px;display:inline-flex;align-items:center;min-height:46px;border-bottom:1px solid #9aafb6;padding-bottom:5px}
.charter-rate{display:flex;flex-direction:column;align-items:flex-start;gap:3px;color:var(--ink);font-size:.875rem;line-height:1.5}
.charter-rate strong{font-weight:500;font-size:1.4rem;white-space:nowrap}
.charter-rate small{font-size:.8125rem;line-height:1.55;color:var(--muted)}
.rate-pending{font-weight:500}
.card-action.rental-action{display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:12px;margin-top:10px;padding-top:10px}
.rental-action .charter-rate{min-width:0;flex:1;gap:1px}
.rental-action .rate-compact{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:3px 9px;line-height:1.4}
.rental-detail-link{display:inline-flex;align-items:center;justify-content:center;flex:0 1 auto;min-height:40px;border:1px solid #8ca4ad;border-radius:999px;padding:9px 15px;text-align:center;font-size:.8125rem;line-height:1.4;color:var(--ink);transition:background .2s,border-color .2s}
.rental-detail-link:hover{background:#edf6f6;border-color:var(--navy)}
.charter-enquiry>.charter-rate{color:#fff;margin-bottom:26px;padding-bottom:23px;border-bottom:1px solid #ffffff35}
.charter-enquiry>.charter-rate strong{font-size:2rem}
.charter-enquiry>.charter-rate small{margin-top:0;color:#d4e2e9}
.capacity-note{font-size:.875rem!important}
@media(max-width:1200px){
 .mobile-menu .nav-dropdown{border-bottom:1px solid var(--line)}
 .mobile-menu .nav-dropdown>summary{padding:12px 0;font-size:1rem;min-height:48px;justify-content:space-between}
 .mobile-menu .sales-submenu{position:static;width:auto;box-shadow:none;border:0;padding:0 0 15px 12px;background:white}
 .mobile-menu .sales-submenu>a{font-size:.9375rem;padding-left:12px}
}
@media(max-width:700px){
 .dealer-grid{gap:44px}
 .dealer-card,.dealer-card:nth-child(even){grid-template-columns:minmax(0,1fr);gap:22px}
 .dealer-card:nth-child(even) .dealer-photo,.dealer-card:nth-child(even) .dealer-copy{grid-column:auto;grid-row:auto}
 .dealer-copy{padding:0 4px}
 .dealer-copy h3{font-size:clamp(2.7rem,10vw,4rem)}
 .dealer-copy .eyebrow{margin-bottom:10px}
 .dealer-copy .text-link{margin-top:16px}
 .rental-detail-link{padding:8px 12px;max-width:55%}
}

/* Desktop navigation stays inline; smaller screens use a disclosure. */
.mobile-menu{display:none}
.mobile-menu>summary{list-style:none}
.mobile-menu>summary::-webkit-details-marker{display:none}
.mobile-menu .nav-dropdown>summary{width:100%;height:auto}
@media(max-width:960px){
 .header .main-nav{display:none}
 .mobile-menu{display:block}
}

/* Three service promises remain side by side under sales. */
.assurances{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;align-items:start}
.assurances p,.assurances p+p{width:auto;margin:0;padding:0 clamp(8px,2vw,28px);border-top:0;text-align:center;font-size:clamp(.75rem,1.1vw,.9375rem);line-height:1.6;overflow-wrap:break-word;hyphens:auto}
.assurances p+p{border-left:1px solid var(--line)}

/* The real team photograph keeps its original portrait framing. */
.team-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,88px);align-items:center;max-width:1300px;margin-inline:auto}
.team-photo{max-width:480px;min-width:0;width:100%}
.team-photo img{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 18px 48px #102f4314}
.team-copy{min-width:0;max-width:620px}
.team-copy h1,.team-copy h2{font-size:clamp(2rem,3.2vw,3.5rem);line-height:1.18;letter-spacing:-.025em}
.team-copy>p:not(.eyebrow){font-size:1rem;line-height:1.8;color:var(--muted);margin-top:22px}
.team-copy>.text-link{display:inline-flex;align-items:center;min-height:44px;margin-top:22px;border-bottom:1px solid #9aafb6}
.about-opening{padding:24px 0 clamp(52px,6vw,90px)}
.about-opening .breadcrumbs{margin-bottom:32px}
.about-services{background:#f5f7f7}
.service-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,64px);margin-top:36px}
.service-columns article{border-top:1px solid #b9cbd0;padding-top:24px;display:flex;flex-direction:column;align-items:flex-start}
.service-columns h3{font-size:clamp(1.4rem,2vw,1.9rem);font-weight:500;line-height:1.3}
.service-columns p{font-size:1rem;line-height:1.8;color:var(--muted);margin:18px 0}
.service-columns .text-link{margin-top:auto;padding-block:12px;min-height:44px}
.purpose-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(24px,5vw,80px);align-items:start}
.purpose-layout h2{max-width:560px}
.purpose-layout p{max-width:690px;font-size:1.0625rem;line-height:1.85;color:var(--muted)}
@media(max-width:760px){
 .team-layout{grid-template-columns:minmax(0,1fr);gap:28px;align-items:start}
 .team-photo{max-width:400px;margin-inline:auto}
 .team-copy{max-width:none}
 .team-copy h1,.team-copy h2{font-size:1.9rem}
 .service-columns{grid-template-columns:minmax(0,1fr);gap:30px}
 .purpose-layout{grid-template-columns:minmax(0,1fr);gap:24px}
}
@media(max-width:600px){
 .team-layout{grid-template-columns:minmax(0,1fr);gap:28px}
 .team-photo{max-width:400px;margin-inline:auto}
 .team-copy{max-width:none}
 .team-copy h1,.team-copy h2{font-size:clamp(1.9rem,7.5vw,2.5rem)}
 .team-copy>p:not(.eyebrow){margin-top:18px}
}

/* Fit the five desktop navigation items before the mobile breakpoint. */
@media(min-width:961px) and (max-width:1280px){
 .header-inner{gap:18px}
 .header .brand-logo{width:145px}
 .main-nav{gap:17px}
 .main-nav>a,.main-nav .nav-dropdown>summary{font-size:.8125rem}
 .header-side{gap:12px}
 .header-contact{display:none}
}
