/* Stage 1: homepage design system. Other routes retain the baseline stylesheet. */
.coastal-home {
  --ink: #102d31;
  --navy: #123438;
  --sea: #236064;
  --sea-light: #abcac6;
  --sand: #ead19a;
  --foam: #f5f3ed;
  --mist: #e7ece8;
  --muted: #526467;
  --font-display: Georgia, 'Times New Roman', serif;
  --font-body: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --content: 1280px;
  --header-height: 88px;
  --radius-sm: 3px;
  --radius: 5px;
  --radius-lg: 5px;
  --shadow-soft: 0 10px 30px rgb(16 45 49 / 5%);
  font-family: var(--font-body);
  background: var(--foam);
}
.coastal-home .container { width: min(calc(100% - 96px), var(--content)); }
.coastal-home .announcement { display: none; }
.coastal-home .site-header { background: #102b2e; backdrop-filter: none; border: 0; }
.coastal-home .nav-shell { gap: 24px; }
.coastal-home .brand-mark { width: 42px; height: 42px; font-weight: 400; }
.coastal-home .brand-name { font-size: 1rem; letter-spacing: .11em; }
.coastal-home .brand-tagline { color: #c0d4ce; font-size: .58rem; letter-spacing: .19em; }
.coastal-home .nav-list { gap: 22px; }
.coastal-home .nav-link { font-size: .78rem; font-weight: 550; }
.coastal-home .nav-cta { display: inline-flex; align-items: center; min-height: 46px; border-radius: 3px; font-size: .78rem; font-weight: 700; }
.coastal-home .button { min-height: 52px; border-radius: 3px; font-size: .88rem; font-weight: 700; padding: 15px 24px; gap: 28px; }
.coastal-home a:focus-visible, .coastal-home button:focus-visible, .coastal-home summary:focus-visible { outline: 3px solid #33888c; outline-offset: 5px; }
.coastal-home .site-header :focus-visible, .coastal-home .arrival :focus-visible { outline-color: var(--sand); }
.coastal-home .eyebrow { font-size: .67rem; letter-spacing: .17em; font-weight: 700; color: var(--sea); }
.coastal-home .eyebrow::before { display: none; }
.coastal-home .section-dark .eyebrow { color: var(--sea-light); }
.arrival { position: relative; min-height: 620px; height: min(740px, calc(100svh - 88px)); overflow: hidden; isolation: isolate; color: white; background: #102b2e; }
.arrival-image { position: absolute; inset: 0; z-index: -2; }
.arrival-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 65%; }
.arrival::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgb(5 23 27 / 90%) 0%, rgb(5 23 27 / 73%) 27%, rgb(5 23 27 / 16%) 65%, rgb(5 23 27 / 6%) 100%), linear-gradient(0deg, rgb(5 23 27 / 80%), transparent 33%); }
.arrival-layout { height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding-block: 66px 25px; }
.arrival-copy { max-width: 620px; }
.arrival .eyebrow { color: #e7e6d8; margin-bottom: 22px; }
.arrival h1 { margin: 0; font: 400 clamp(3.25rem, 5.25vw, 5rem)/1.01 var(--font-display); letter-spacing: -.044em; text-wrap: balance; }
.arrival h1 em { font-weight: 400; color: var(--sand); }
.arrival-description { max-width: 430px; margin: 24px 0 0; color: #f0f1ea; font-size: 1rem; line-height: 1.65; }
.arrival-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 26px; margin-top: 26px; }
.arrival-contact { display: flex; gap: 10px; font-size: .84rem; align-items: center; }
.arrival-contact a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: 5px; }
.arrival-contact span { color: #bbccc8; }
.arrival-bottom { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding-top: 32px; font-size: .72rem; letter-spacing: .04em; }
.arrival-place { margin: 0; display: grid; gap: 4px; color: #e0e9e4; }
.arrival-place strong { font-size: .83rem; font-weight: 600; color: white; }
.arrival-scroll { text-decoration: none; display: flex; align-items: center; gap: 18px; min-height: 44px; }
.arrival-scroll span { font-size: 1.4rem; }
.proof-rail { background: #e8ece6; }
.proof-items { display: grid; grid-template-columns: 1.15fr 1fr 1fr 1fr; list-style: none; margin-block: 0; padding-block: 24px; }
.proof-items li { padding: 0 28px; border-left: 1px solid #c3cdc4; }
.proof-items li:first-child { padding-left: 0; border: 0; }
.proof-items strong { display: block; font: 400 1.35rem/1.25 var(--font-display); }
.proof-items span { display: block; color: #4c6260; font-size: .72rem; margin-top: 5px; }
.charter-selection { padding-block: 68px 72px; }
.selection-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 32px; }
.selection-heading h2 { margin: 0; font: 400 clamp(2.25rem, 3.8vw, 3.6rem)/1.07 var(--font-display); letter-spacing: -.035em; }
.selection-heading .eyebrow { margin-bottom: 15px; }
.selection-heading > p { max-width: 320px; margin: 0; color: var(--muted); font-size: .88rem; }
.season-note { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 15px 20px; background: #eee3c8; margin-bottom: 28px; border-left: 2px solid #9b7233; }
.season-note p { margin: 0; font-size: .81rem; }
.season-note strong { color: #593e18; }
.season-note small { display: block; font-size: .74rem; color: #655137; margin-top: 3px; }
.season-note a { flex-shrink: 0; font-size: .78rem; font-weight: 700; text-underline-offset: 4px; min-height: 44px; display: flex; align-items: center; gap: 14px; }
.selection-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 50px; }
.charter-list { border-top: 1px solid #a5b4aa; }
.charter-option { border-bottom: 1px solid #cbd2c8; }
.charter-option summary { list-style: none; display: grid; grid-template-columns: 64px 1fr auto 20px; gap: 16px; align-items: center; min-height: 99px; padding: 16px 0; cursor: pointer; }
.charter-option summary::-webkit-details-marker { display: none; }
.charter-option summary:hover { background: #ebece4; }
.charter-option[open] summary { background: #e7ebe3; }
.option-time { display: grid; font: 400 2.25rem/1 var(--font-display); }
.option-time small { font: 500 .62rem/1.3 var(--font-body); margin-top: 5px; letter-spacing: .1em; text-transform: uppercase; }
.option-name h3 { margin: 0; font: 400 1.2rem/1.25 var(--font-display); }
.option-tag { display: inline-block; margin-top: 6px; color: #53675e; font-size: .59rem; line-height: 1.2; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.option-tag.featured { color: #694619; background: #eee0ba; padding: 4px 7px; }
.option-prices { display: grid; text-align: right; gap: 3px; }
.option-prices del { font-size: .73rem; color: #637168; }
.option-prices strong { font: 400 1.5rem/1.1 var(--font-display); }
.option-toggle { font-size: 1.35rem; text-align: center; font-weight: 300; }
.charter-option[open] .option-toggle { transform: rotate(45deg); }
.option-details { padding: 5px 26px 26px 80px; }
.option-details > p { margin: 8px 0; color: var(--muted); font-size: .89rem; }
.option-details .check-list { margin: 15px 0 20px; font-size: .85rem; }
.selection-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 20px; }
.selection-footer a { font-size: .79rem; font-weight: 650; text-underline-offset: 5px; min-height: 44px; display: flex; align-items: center; }
.selection-footer a:last-child { color: var(--muted); font-weight: 400; }
.selection-story { margin: 0; align-self: start; }
.selection-story > picture { display: block; overflow: hidden; }
.selection-story > picture > img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.selection-story > figcaption { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 11px; font-size: .67rem; color: #526467; }
.captain-intro { display: flex; align-items: center; gap: 18px; padding-top: 25px; margin-top: 23px; border-top: 1px solid #cbd2c8; }
.captain-intro img { width: 65px; height: 79px; object-fit: cover; object-position: center 32%; }
.captain-intro p { margin: 0; font-size: .77rem; color: var(--muted); }
.captain-intro strong { display: block; font: 400 1.25rem/1.3 var(--font-display); margin-bottom: 4px; color: var(--ink); }
.captain-intro a { display: inline-flex; align-items: center; min-height: 34px; color: var(--sea); font-size: .76rem; font-weight: 650; text-underline-offset: 4px; }
.selection-notes { margin-top: 28px; border-top: 1px solid #cbd2c8; padding-top: 13px; }
.selection-notes p { margin: 7px 0; font-size: .75rem; color: var(--muted); max-width: 1040px; }
.coastal-home .section { padding-block: 78px; }
.coastal-home .section-heading h2, .coastal-home .split-copy h2 { font-size: clamp(2rem, 3.5vw, 3.25rem); }
.coastal-home .reveal { opacity: 1; transform: none; }
.coastal-home .mobile-actions { background: #102b2e; }
.coastal-home .mobile-actions a { min-height: 48px; font-size: .8rem; }
.coastal-home .mobile-actions a:last-child { background: var(--sand); color: var(--ink); }
.home-explore { border-top: 1px solid #cbd2c8; padding-block: 42px 35px; background: #e8ece6; }
.explore-heading { display:flex; justify-content:space-between; align-items:baseline; gap:24px; margin-bottom:26px; }
.explore-heading .eyebrow { margin:0; }
.explore-heading h2 { margin:0; font:400 1.6rem/1.25 var(--font-display); }
.explore-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.explore-link { display:grid; grid-template-columns:100px 1fr; gap:18px; text-decoration:none; }
.explore-link > img { width:100px; height:110px; object-fit:cover; }
.explore-link > span { display:grid; gap:8px; }
.explore-link strong { font:400 1.3rem/1.2 var(--font-display); }
.explore-link > span > span { font-size:.76rem; color:var(--muted); line-height:1.6; }
.explore-link b { font-size:.73rem; font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.explore-link:hover b { color:#236064; }
.explore-safety { margin:24px 0 0; font-size:.74rem; text-align:right; color:var(--muted); }
.explore-safety a { display:inline-flex; align-items:center; min-height:44px; text-underline-offset:4px; }
.home-review { padding-block:54px; background:#f5f3ed; }
.home-review-inner { display:grid; grid-template-columns:1fr 2.1fr; gap:50px; align-items:center; }
.home-review .eyebrow { margin:0 0 10px; }
.review-stars { margin:0; color:#795821; letter-spacing:.15em; font-size:1rem; }
.review-byline { font-size:.8rem; margin:8px 0 0; color:var(--muted); }
.home-review blockquote { margin:0; font:400 clamp(1.45rem,2.4vw,2.1rem)/1.4 var(--font-display); color:var(--ink); }
.review-source { display:inline-flex; align-items:center; min-height:44px; font-size:.75rem; margin-top:12px; text-underline-offset:4px; }
@media(max-width:1040px) { .explore-links { gap:22px; } .explore-link { grid-template-columns:1fr; } .explore-link > img { width:100%; height:auto; aspect-ratio:4/3; } }
@media(max-width:760px) {
  .explore-heading { display:block; } .explore-heading h2 { margin-top:14px; font-size:1.7rem; }
  .explore-links { grid-template-columns:1fr; gap:24px; }
  .explore-link { grid-template-columns:92px 1fr; gap:18px; }
  .explore-link > img { width:92px; height:110px; }
  .explore-safety { text-align:left; }
  .home-review { padding-block:35px; }
  .home-review-inner { grid-template-columns:1fr; gap:22px; }
  .coastal-home .footer-main { gap:24px; padding-block:40px; }
}
@media (min-width: 1041px) { .coastal-home .site-nav { visibility: visible !important; } }
@media (max-width: 1160px) { .coastal-home .nav-list { gap: 15px; } .coastal-home .container { width: calc(100% - 64px); } .coastal-home .brand-name { font-size: .9rem; } }
@media (max-width: 1040px) {
  .coastal-home { --header-height: 76px; }
  .coastal-home .site-nav { position: absolute; inset: 100% 0 auto; visibility: hidden; }
  .coastal-home .site-nav.open { visibility: visible; max-height: calc(100svh - 190px); }
  .coastal-home .nav-list { gap: 0; }
  .coastal-home .nav-link { font-size: 1rem; padding: 14px 0; }
  .coastal-home .nav-cta { display: flex; justify-content: center; }
  .arrival { min-height: 620px; height: 700px; }
  .arrival-copy { max-width: 540px; }
  .selection-layout { gap: 30px; grid-template-columns: 1.35fr 1fr; }
  .option-name h3 { font-size: 1.08rem; }
  .charter-option summary { grid-template-columns: 48px 1fr auto 16px; gap: 10px; }
  .proof-items li { padding-inline: 16px; }
  .proof-items strong { font-size: 1.1rem; }
}
@media (max-width: 760px) {
  .coastal-home .container { width: calc(100% - 40px); }
  .arrival { height: auto; min-height: 0; padding-top: 0; }
  .arrival-image { position: relative; display: block; width: 100%; height: auto; z-index: -2; }
  .arrival-image img { height: auto; aspect-ratio: 4/3; object-fit: contain; }
  .arrival::before { background: linear-gradient(0deg, #102b2e, transparent); inset: auto 0 0; height: 0; }
  .arrival-layout { height: auto; padding-block: 27px 18px; }
  .arrival-copy { max-width: 580px; }
  .arrival .eyebrow { margin-bottom: 17px; font-size: .59rem; }
  .arrival h1 { font-size: clamp(2.75rem, 8vw, 3.75rem); line-height: 1.04; }
  .arrival-description { font-size: .9rem; margin-top: 19px; }
  .arrival-actions { margin-top: 21px; gap: 8px 20px; }
  .arrival .button { padding-inline: 19px; gap: 18px; }
  .arrival-bottom { margin-top: 21px; padding-top: 15px; border-top: 1px solid #365457; }
  .arrival-place { font-size: .61rem; }
  .arrival-place strong { font-size: .7rem; }
  .arrival-scroll { font-size: .65rem; gap: 9px; }
  .proof-items { grid-template-columns: 1fr 1fr; row-gap: 22px; padding-block: 23px; }
  .proof-items li { padding-inline: 15px 0; }
  .proof-items li:nth-child(odd) { padding-left: 0; border: 0; }
  .proof-items strong { font-size: 1.14rem; }
  .proof-items span { font-size: .65rem; }
  .charter-selection { padding-block: 45px; }
  .selection-heading { display: block; margin-bottom: 23px; }
  .selection-heading h2 { font-size: 2.5rem; }
  .selection-heading > p { margin-top: 18px; max-width: 460px; font-size: .86rem; }
  .season-note { display: block; padding: 15px; margin-bottom: 24px; }
  .season-note small { font-size: .72rem; }
  .season-note a { margin-top: 4px; }
  .selection-layout { grid-template-columns: 1fr; gap: 35px; }
  .charter-option summary { min-height: 93px; grid-template-columns: 43px 1fr auto 15px; gap: 10px; }
  .option-time { font-size: 1.9rem; }
  .option-name h3 { font-size: 1.16rem; }
  .option-prices strong { font-size: 1.36rem; }
  .option-details { padding: 4px 12px 22px; }
  .selection-footer { gap: 10px; }
  .selection-footer a { font-size: .72rem; }
  .captain-intro { margin-top: 18px; padding-top: 20px; }
  .selection-notes p { font-size: .74rem; }
  .coastal-home .section { padding-block: 54px; }
  .coastal-home .mobile-actions { padding-bottom: env(safe-area-inset-bottom); }
}
/* Portrait footage stays intact beside the copy, not stretched across a landscape hero. */
.arrival-with-video { height: min(740px, calc(100svh - 88px)); min-height: 640px; }
.arrival-with-video::before { display: none; }
.arrival-with-video .arrival-image { inset: 0 0 0 auto; width: 52%; z-index: 0; }
.arrival-with-video .arrival-image picture { display: block; height: 100%; }
.arrival-with-video .arrival-image img,
.arrival-with-video .hero-video { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.hero-video { position: absolute; inset: 0; opacity: 0; }
.hero-video.is-playing { opacity: 1; }
.hero-video-toggle { position: absolute; right: 20px; bottom: 20px; z-index: 3; min-height: 44px; padding: 8px 16px; border: 1px solid #ead19a; border-radius: 3px; color: #fff; background: #102b2e; font-size: .78rem; cursor: pointer; }
.hero-video-toggle[hidden] { display: none; }
.arrival-with-video .arrival-layout { position: relative; pointer-events: none; }
.arrival-with-video .arrival-copy { max-width: 46%; }
.arrival-with-video .arrival-copy h1 { font-size: clamp(2.8rem, 4.8vw, 4.7rem); }
.arrival-with-video .arrival-layout a { pointer-events: auto; }
.arrival-with-video .arrival-bottom { max-width: 46%; display: block; }
.arrival-with-video .arrival-scroll { margin-top: 8px; }
@media(max-width:1040px) and (min-width:761px) {
  .arrival-with-video { height: 680px; }
  .arrival-with-video .arrival-layout { padding-top: 40px; }
}
@media(max-width:760px) {
  .arrival-with-video { height: auto; min-height: 0; }
  .arrival-with-video .arrival-image { position: relative; inset: auto; width: 100%; aspect-ratio: 4/5; }
  .arrival-with-video .arrival-image img { height: 100%; aspect-ratio: 4/5; }
  .arrival-with-video .arrival-layout { padding-top: 27px; }
  .arrival-with-video .arrival-copy, .arrival-with-video .arrival-bottom { max-width: none; }
  .arrival-with-video .arrival-copy h1 { font-size: clamp(2.75rem, 8vw, 3.75rem); }
  .arrival-with-video .arrival-bottom { display: flex; }
  .arrival-with-video .arrival-scroll { margin-top: 0; }
  .hero-video-toggle { bottom: 14px; right: 16px; }
}
@media (prefers-reduced-motion: reduce) { .coastal-home *, .coastal-home *::before, .coastal-home *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
