:root {
  --ink: #092633;
  --ocean: #073a52;
  --deep: #062432;
  --sky: #eaf5f7;
  --sand: #f5f1e8;
  --white: #fff;
  --muted: #5e7078;
  --line: rgba(9, 38, 51, .14);
  --radius: 22px;
  --shadow: 0 24px 70px rgba(6, 36, 50, .16);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: #fff; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { line-height: 1.02; letter-spacing: -.035em; }
h1 { font-size: clamp(3.3rem, 8.5vw, 7.7rem); font-weight: 650; }
h2 { font-size: clamp(2.6rem, 5vw, 5rem); font-weight: 620; margin-bottom: 1.5rem; }
h3 { font-size: clamp(2rem, 3vw, 3rem); font-weight: 600; }
.site-header { position: fixed; z-index: 50; inset: 0 0 auto; height: 80px; padding: 0 clamp(20px,4vw,64px); display: flex; align-items: center; justify-content: space-between; color: #fff; transition: background .25s, color .25s, box-shadow .25s; }
.site-header.scrolled { background: rgba(255,255,255,.94); backdrop-filter: blur(16px); color: var(--ink); box-shadow: 0 1px 0 rgba(9,38,51,.08); }
.brand { display: inline-flex; align-items: center; gap: .7rem; font-size: .86rem; font-weight: 760; letter-spacing: .16em; }
.brand-mark { display:grid; place-items:center; width:32px; height:32px; border:1px solid currentColor; border-radius:50%; font-size:1.3rem; line-height:1; }
.nav { display:flex; gap: 2rem; align-items:center; font-size:.91rem; font-weight:650; }
.nav a { opacity:.9; }
.nav-cta { padding:.72rem 1rem; border:1px solid currentColor; border-radius:999px; }
.menu-button { display:none; border:0; background:transparent; color:inherit; font:inherit; font-weight:700; }
.hero { position:relative; min-height: 100svh; display:flex; align-items:flex-end; overflow:hidden; color:#fff; }
.hero-image, .hero-overlay { position:absolute; inset:0; height:100%; object-fit:cover; }
.hero-image { object-position:center 35%; }
.hero-overlay { background:linear-gradient(180deg, rgba(2,26,38,.14) 8%, rgba(2,27,40,.2) 42%, rgba(2,26,38,.72) 100%); }
.hero-content { position:relative; z-index:2; width:min(1200px, calc(100% - 40px)); margin:0 auto; padding: 150px 0 9vh; }
.hero-content h1 { max-width:1050px; margin:.3rem 0 1.6rem; }
.hero-copy { max-width:690px; font-size:clamp(1.05rem,1.7vw,1.35rem); color:rgba(255,255,255,.88); }
.eyebrow { margin-bottom:1rem; font-size:.76rem; font-weight:800; letter-spacing:.2em; text-transform:uppercase; }
.eyebrow.dark { color:#47707f; }
.hero-actions { display:flex; gap:.8rem; flex-wrap:wrap; margin-top:2rem; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:50px; padding:0 1.35rem; border-radius:999px; font-weight:760; transition:transform .2s, opacity .2s; }
.button:hover { transform:translateY(-2px); }
.button.primary { background:#fff; color:var(--deep); }
.button.glass { border:1px solid rgba(255,255,255,.65); background:rgba(255,255,255,.06); backdrop-filter:blur(8px); }
.button.dark { background:var(--deep); color:#fff; }
.button.light { background:#fff; color:var(--deep); }
.scroll-cue { position:absolute; right:4vw; bottom:4vh; z-index:3; width:44px; height:44px; border:1px solid rgba(255,255,255,.5); border-radius:50%; display:grid; place-items:center; }
.section { width:min(1200px, calc(100% - 40px)); margin:0 auto; padding:clamp(80px,10vw,150px) 0; }
.section-tight { width:min(1320px, calc(100% - 28px)); margin:0 auto; padding:clamp(18px,2vw,30px) 0; }
.intro { display:grid; grid-template-columns:1fr 1.1fr; gap:8vw; align-items:end; }
.intro h2 { margin:0; }
.lead { margin:0; font-size:clamp(1.2rem,2vw,1.65rem); color:#4f626b; }
.service-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:16px; }
.service-card { position:relative; min-height:650px; border-radius:var(--radius); overflow:hidden; color:#fff; }
.service-card.large { min-height:760px; }
.service-card img, .card-shade { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.service-card:first-child img { object-position:center 42%; }
.card-shade { background:linear-gradient(180deg, transparent 30%, rgba(2,24,34,.78) 100%); }
.service-content { position:absolute; z-index:2; left:clamp(24px,4vw,54px); right:clamp(24px,4vw,54px); bottom:clamp(28px,5vw,60px); }
.service-content p:not(.eyebrow) { max-width:560px; color:rgba(255,255,255,.86); }
.service-content a { font-weight:800; }
.charters, .freediving, .about { display:grid; grid-template-columns:.88fr 1.12fr; gap:clamp(50px,8vw,120px); align-items:center; }
.split-copy > p:not(.eyebrow) { font-size:1.08rem; color:#566b74; max-width:620px; }
.check-list { list-style:none; padding:0; margin:2rem 0; display:grid; grid-template-columns:1fr 1fr; gap:.85rem 1.4rem; }
.check-list li::before { content:'✓'; margin-right:.6rem; color:#1c718f; font-weight:800; }
.photo-stack { position:relative; min-height:700px; }
.photo-main { width:82%; height:640px; object-fit:cover; border-radius:var(--radius); margin-left:auto; box-shadow:var(--shadow); }
.photo-small { position:absolute; width:45%; height:260px; object-fit:cover; bottom:0; left:0; border:8px solid #fff; border-radius:18px; box-shadow:var(--shadow); }
.boat-strip { background:var(--sand); display:grid; grid-template-columns:repeat(4,1fr); gap:1px; padding:0 clamp(20px,4vw,64px); }
.boat-strip div { padding:40px 20px; text-align:center; border-right:1px solid rgba(9,38,51,.1); }
.boat-strip div:last-child { border:0; }
.boat-strip strong, .boat-strip span { display:block; }
.boat-strip strong { font-size:1.25rem; }
.boat-strip span { margin-top:.35rem; color:#6b797f; font-size:.9rem; }
.freediving { grid-template-columns:1.15fr .85fr; }
.freedive-gallery { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:330px 330px; gap:12px; }
.freedive-gallery img { height:100%; object-fit:cover; border-radius:18px; }
.freedive-gallery img:first-child { grid-row:1/3; }
.course-list { margin:2rem 0; border-top:1px solid var(--line); }
.course-list div { display:grid; grid-template-columns:90px 1fr 1.4fr; gap:1rem; padding:1.1rem 0; border-bottom:1px solid var(--line); align-items:center; }
.course-list span { color:#568190; font-size:.78rem; font-weight:850; letter-spacing:.1em; }
.course-list small { color:#6d7c82; }
.sunset-banner { position:relative; min-height:78svh; display:flex; align-items:center; color:#fff; overflow:hidden; margin-top:40px; }
.sunset-banner img, .banner-shade { position:absolute; inset:0; height:100%; object-fit:cover; }
.banner-shade { background:linear-gradient(90deg, rgba(3,28,39,.74), rgba(3,28,39,.1) 70%); }
.banner-copy { position:relative; z-index:2; width:min(1200px, calc(100% - 40px)); margin:0 auto; }
.banner-copy h2, .banner-copy p { max-width:720px; }
.banner-copy p:not(.eyebrow) { font-size:1.1rem; color:rgba(255,255,255,.84); }
.about-photo-wrap img { height:650px; object-fit:cover; border-radius:var(--radius); }
.credential-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:2.2rem; }
.credential-grid div { border:1px solid var(--line); border-radius:14px; padding:1rem; }
.credential-grid strong,.credential-grid span { display:block; }
.credential-grid strong { font-size:1.1rem; }
.credential-grid span { font-size:.8rem; color:#6b7b82; margin-top:.15rem; }
.gallery { display:grid; grid-template-columns:1fr .8fr 1.1fr .8fr; gap:12px; }
.gallery img { height:470px; object-fit:cover; border-radius:18px; }
.gallery img:nth-child(2), .gallery img:nth-child(4) { margin-top:70px; }
.book { width:100%; max-width:none; background:var(--deep); color:#fff; padding-left:max(20px, calc((100% - 1200px)/2)); padding-right:max(20px, calc((100% - 1200px)/2)); display:grid; grid-template-columns:1.3fr .7fr; gap:8vw; align-items:end; }
.book h2 { max-width:790px; }
.book p:not(.eyebrow) { color:rgba(255,255,255,.72); max-width:760px; }
.book-actions { display:flex; flex-direction:column; align-items:flex-start; gap:1rem; }
.text-link { font-weight:750; }
.book-actions small { color:rgba(255,255,255,.55); }
.notes { color:#6c7e86; font-size:.82rem; text-align:center; padding-top:38px; padding-bottom:38px; }
footer { padding:52px max(20px, calc((100% - 1200px)/2)); background:#f6f7f4; display:grid; grid-template-columns:1fr 1fr 1fr; gap:1rem; align-items:center; font-size:.82rem; color:#627179; }
.footer-brand { color:var(--ink); }
footer p { margin:0; }
footer p:last-child { text-align:right; }
/* Reduce spacing between About and Gallery */
.about.section { padding-bottom: 45px; }
.gallery.section { padding-top: 45px; }
@media (max-width: 900px) {
  .site-header { height:68px; }
  .menu-button { display:block; }
  .nav { position:absolute; top:68px; left:14px; right:14px; display:none; flex-direction:column; align-items:stretch; gap:0; padding:10px; border-radius:16px; background:#fff; color:var(--ink); box-shadow:var(--shadow); }
  .nav.open { display:flex; }
  .nav a { padding:13px 14px; }
  .nav-cta { border:0; background:var(--deep); color:#fff; text-align:center; margin-top:6px; }
  .intro, .charters, .freediving, .about, .book { grid-template-columns:1fr; }
  .service-grid { grid-template-columns:1fr; }
  .service-card, .service-card.large { min-height:650px; }
  .boat-strip { grid-template-columns:1fr 1fr; }
  .boat-strip div:nth-child(2) { border-right:0; }
  .photo-stack { min-height:610px; }
  .photo-main { height:560px; }
  .freediving .freedive-gallery { order:2; }
  .freediving .split-copy { order:1; }
  .gallery { grid-template-columns:1fr 1fr; }
  .gallery img { height:420px; }
  .gallery img:nth-child(2), .gallery img:nth-child(4) { margin-top:0; }
  footer { grid-template-columns:1fr; text-align:left; }
  footer p:last-child { text-align:left; }
}
@media (max-width: 600px) {
  h1 { font-size:clamp(3.1rem,16vw,5.1rem); }
  h2 { font-size:clamp(2.45rem,12vw,4rem); }
  .brand { font-size:.72rem; letter-spacing:.11em; }
  .brand-mark { width:28px; height:28px; }
  .hero-content { padding-bottom:11vh; }
  .hero-copy { font-size:1rem; }
  .scroll-cue { display:none; }
  .section { width:min(100% - 30px,1200px); padding:80px 0; }
  .intro { gap:1.5rem; }
  .service-card, .service-card.large { min-height:560px; }
  .check-list { grid-template-columns:1fr; }
  .photo-stack { min-height:500px; }
  .photo-main { width:90%; height:455px; }
  .photo-small { width:54%; height:190px; }
  .boat-strip { grid-template-columns:1fr; padding:0 20px; }
  .boat-strip div { border-right:0; border-bottom:1px solid rgba(9,38,51,.1); }
  .freedive-gallery { grid-template-rows:230px 230px; }
  .course-list div { grid-template-columns:72px 1fr; }
  .course-list small { grid-column:2; }
  .sunset-banner { min-height:70svh; }
  .about-photo-wrap img { height:500px; }
  .credential-grid { grid-template-columns:1fr; }
  .gallery { grid-template-columns:1fr; }
  .gallery img { height:440px; }
  .book { padding-top:80px; padding-bottom:80px; }
}
