/* Swimroad Adventure — site styles */
:root {
  --navy: #0F2A4A;
  --navy-2: #173A63;
  --teal: #1592A6;
  --teal-d: #0E7486;
  --aqua: #5CC6CF;
  --foam: #E4F4F5;
  --sand: #F6F1E7;
  --paper: #FCFAF6;
  --ink: #18273A;
  --muted: #5A6878;
  --line: #E4DDCF;
  --buoy: #FF5A0A;
  --serif: "Cinzel", "Times New Roman", serif;
  --sans: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --wrap: 1200px;
  --gut: clamp(16px, 4vw, 40px);
  --r: 14px;
  --head-h: 76px;
  --shadow: 0 18px 40px -22px rgba(15, 42, 74, .35);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--head-h) + 16px); }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 400 16px/1.7 var(--sans); overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
a { color: var(--teal-d); }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 600; color: var(--navy); line-height: 1.15; margin: 0 0 .5em; letter-spacing: .01em; }
h1 { font-size: clamp(2.1rem, 5.6vw, 4.2rem); }
h2 { font-size: clamp(1.6rem, 3.4vw, 2.5rem); }
h3 { font-size: clamp(1.15rem, 1.8vw, 1.35rem); }
p { margin: 0 0 1em; }
.wrap { width: min(100% - 2 * var(--gut), var(--wrap)); margin-inline: auto; }
.narrow { max-width: 720px; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--navy); color: #fff; padding: 8px 14px; border-radius: 8px; z-index: 100; }
.skip:focus { left: 8px; }
:focus-visible { outline: 3px solid var(--aqua); outline-offset: 3px; border-radius: 4px; }

.eyebrow { font: 600 .74rem/1 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--teal); margin-bottom: 14px; display: block; }
.lead { font-size: clamp(1.02rem, 1.6vw, 1.18rem); color: var(--muted); }
.center { text-align: center; }

/* section titles with side rules, like the mockup */
.rule-title { display: flex; align-items: center; gap: 22px; justify-content: center; text-align: center; font-size: clamp(1.2rem, 2.6vw, 1.75rem); letter-spacing: .08em; text-transform: uppercase; }
.rule-title::before, .rule-title::after { content: ""; height: 1px; width: clamp(28px, 7vw, 80px); background: var(--aqua); }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 12px; padding: 14px 24px; border-radius: 999px;
  font: 600 .78rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; text-decoration: none;
  border: 1.5px solid var(--navy); color: var(--navy); background: transparent; cursor: pointer;
  transition: background .2s, color .2s, transform .2s, border-color .2s; min-height: 48px;
}
.btn svg { width: 16px; height: 16px; transition: transform .2s; }
.btn:hover svg { transform: translateX(4px); }
.btn--solid { background: var(--navy); color: #fff; }
.btn--solid:hover { background: var(--navy-2); }
.btn--ghost:hover { background: var(--navy); color: #fff; }
.btn--light { border-color: rgba(255,255,255,.8); color: #fff; }
.btn--light:hover { background: #fff; color: var(--navy); }
.btn--wa { background: #1FAF5A; border-color: #1FAF5A; color: #fff; }
.btn--wa:hover { background: #178F49; }
.btns { display: flex; flex-wrap: wrap; gap: 14px; }

/* ---------- header ---------- */
.site-head {
  position: sticky; top: 0; z-index: 50; height: var(--head-h);
  background: rgba(252, 250, 246, .92); backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s;
}
.site-head.is-scrolled { border-color: var(--line); box-shadow: 0 6px 24px -18px rgba(15,42,74,.4); }
.site-head .wrap { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: block; flex: none; }
.brand img { height: 46px; width: auto; }
.nav { display: flex; align-items: center; gap: clamp(14px, 2vw, 30px); }
.nav a {
  position: relative; color: var(--ink); text-decoration: none; font: 500 .86rem/1 var(--sans); letter-spacing: .02em; padding: 10px 0;
}
.nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 2px; background: var(--teal); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.nav a:hover::after, .nav a[aria-current="page"]::after { transform: scaleX(1); }
.nav a[aria-current="page"] { color: var(--navy); font-weight: 600; }
.head-cta { padding: 11px 18px; min-height: 42px; }

.burger {
  display: none; width: 48px; height: 48px; border: 0; background: transparent; cursor: pointer; padding: 12px; margin-right: -8px; border-radius: 10px;
}
.burger span { display: block; height: 2px; background: var(--navy); border-radius: 2px; transition: transform .3s, opacity .2s; }
.burger span + span { margin-top: 6px; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* mobile drawer */
.drawer {
  position: fixed; inset: var(--head-h) 0 0 0; z-index: 49; background: var(--paper);
  display: flex; flex-direction: column; padding: 18px var(--gut) calc(24px + env(safe-area-inset-bottom));
  overflow-y: auto; overscroll-behavior: contain;
  transform: translateY(-8px); opacity: 0; visibility: hidden; transition: opacity .25s, transform .25s, visibility 0s .25s;
}
.drawer.is-open { opacity: 1; transform: none; visibility: visible; transition: opacity .25s, transform .25s; }
.drawer nav { display: flex; flex-direction: column; }
.drawer nav a {
  display: flex; justify-content: space-between; align-items: center; padding: 16px 2px; border-bottom: 1px solid var(--line);
  font: 600 1.3rem/1.2 var(--serif); color: var(--navy); text-decoration: none; letter-spacing: .02em;
}
.drawer nav a small { font: 500 .72rem/1 var(--sans); color: var(--muted); letter-spacing: .12em; text-transform: uppercase; }
.drawer nav a[aria-current="page"] { color: var(--teal-d); }
.drawer-foot { margin-top: auto; padding-top: 28px; display: grid; gap: 12px; }
.drawer-foot .btn { justify-content: center; }
body.menu-open { overflow: hidden; }

@media (max-width: 1060px) {
  .nav, .head-cta { display: none; }
  .burger { display: block; }
}
@media (max-width: 480px) { :root { --head-h: 66px; } .brand img { height: 38px; } }

/* ---------- hero ---------- */
.hero { position: relative; min-height: min(86vh, 760px); display: grid; align-items: center; overflow: hidden; color: var(--navy); }
.hero__img { position: absolute; inset: 0; z-index: -2; }
.hero__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(252,250,246,.94) 0%, rgba(252,250,246,.78) 38%, rgba(252,250,246,0) 70%);
}
.hero__body { padding-block: 80px; max-width: 640px; }
.hero h1 { text-transform: uppercase; letter-spacing: .03em; font-weight: 500; }
.hero p { font-size: clamp(1.05rem, 1.7vw, 1.25rem); color: var(--ink); max-width: 30em; }
.hero .btns { margin-top: 30px; }
@media (max-width: 760px) {
  .hero { min-height: auto; align-items: end; }
  .hero__img { position: relative; inset: auto; height: 46vh; min-height: 280px; z-index: 0; }
  .hero::before { display: none; }
  .hero { display: block; }
  .hero__body { padding-block: 34px 44px; }
  .hero .btns .btn { flex: 1 1 100%; justify-content: center; }
}

/* page hero (inner pages) */
.phero { position: relative; color: #fff; min-height: 420px; display: grid; align-items: end; overflow: hidden; isolation: isolate; }
.phero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.phero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15,42,74,.1) 0%, rgba(15,42,74,.25) 45%, rgba(10,30,54,.86) 100%); }
.phero .wrap { padding-block: 120px 54px; }
.phero h1 { color: #fff; text-transform: uppercase; letter-spacing: .04em; font-weight: 500; margin-bottom: .3em; }
.phero p { max-width: 38em; font-size: 1.1rem; opacity: .92; margin: 0; }
.phero .eyebrow { color: var(--aqua); }
.crumbs { font-size: .8rem; letter-spacing: .06em; opacity: .8; margin-bottom: 18px; }
.crumbs a { color: #fff; }

/* ---------- sections ---------- */
.sec { padding-block: clamp(64px, 9vw, 120px); }
.sec--sand { background: var(--sand); }
.sec--navy { background: var(--navy); color: #DCE7F0; }
.sec--navy h2, .sec--navy h3 { color: #fff; }
.sec--navy .eyebrow { color: var(--aqua); }
.sec-head { margin-bottom: clamp(32px, 5vw, 56px); }
.sec-head.center .lead { margin-inline: auto; max-width: 40em; }

/* two-way cards (home) */
.ways { display: grid; grid-template-columns: 1.15fr 1fr; gap: 22px; margin-top: 44px; }
.way { position: relative; display: block; border-radius: var(--r); overflow: hidden; min-height: 330px; color: #fff; text-decoration: none; isolation: isolate; box-shadow: var(--shadow); }
.way img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.way::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 35%, rgba(10,30,54,.85)); }
.way:hover img { transform: scale(1.05); }
.way__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 28px; }
.way h3 { color: #fff; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px; font-size: clamp(1.2rem, 2.2vw, 1.6rem); }
.way p { margin: 0; display: flex; align-items: center; gap: 10px; opacity: .92; font-size: .95rem; }
.way p svg { width: 18px; height: 18px; flex: none; transition: transform .2s; }
.way:hover p svg { transform: translateX(5px); }
.way .tag { position: absolute; top: 18px; left: 18px; background: rgba(255,255,255,.92); color: var(--navy); font: 600 .68rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; padding: 8px 12px; border-radius: 999px; }
@media (max-width: 760px) { .ways { grid-template-columns: 1fr; } .way { min-height: 260px; } }

/* split: image + text */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 6vw, 80px); align-items: center; }
.split--rev > :first-child { order: 2; }
.split__img { border-radius: var(--r); overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--shadow); }
.split__img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; } .split--rev > :first-child { order: 0; } }

/* feature / program cards */
.grid { display: grid; gap: 20px; }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .grid--4 { grid-template-columns: repeat(2, 1fr); } .grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; } }
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 26px 24px; position: relative; transition: transform .25s, box-shadow .25s, border-color .25s; }
.card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: transparent; }
.card h3 { margin-bottom: 10px; }
.card p { color: var(--muted); font-size: .95rem; margin: 0; }
.card .num { font: 600 .74rem/1 var(--sans); letter-spacing: .2em; color: var(--teal); display: block; margin-bottom: 18px; }
.card .ico { width: 44px; height: 44px; border-radius: 12px; background: var(--foam); display: grid; place-items: center; margin-bottom: 18px; color: var(--teal-d); }
.card .ico svg { width: 24px; height: 24px; }
.card .meta { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 6px; }
.chip { display: inline-block; font: 600 .68rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; padding: 7px 10px; border-radius: 999px; background: var(--sand); color: var(--navy); }
.sec--sand .card { border-color: transparent; }

/* steps */
.steps { counter-reset: s; display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.steps li { list-style: none; counter-increment: s; border-top: 2px solid var(--navy); padding-top: 18px; }
.steps li::before { content: "0" counter(s); font: 500 2rem/1 var(--serif); color: var(--teal); display: block; margin-bottom: 12px; }
.steps h3 { font-size: 1.05rem; }
.steps p { color: var(--muted); font-size: .93rem; margin: 0; }
.steps { padding: 0; margin: 0; }
@media (max-width: 900px) { .steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .steps { grid-template-columns: 1fr; } }

/* checklist */
.checks { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.checks li { position: relative; padding-left: 34px; }
.checks li::before { content: ""; position: absolute; left: 0; top: .32em; width: 20px; height: 20px; border-radius: 50%; background: var(--foam) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E7486' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 12px no-repeat; }
.sec--navy .checks li::before { background-color: rgba(92,198,207,.18); }

/* quote / statement */
.statement { font: 500 clamp(1.4rem, 3vw, 2.2rem)/1.35 var(--serif); color: var(--navy); max-width: 26em; margin: 0 auto; text-align: center; }
.statement small { display: block; margin-top: 18px; font: 600 .74rem/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--teal); }

/* founder */
.founder { display: grid; grid-template-columns: 340px 1fr; gap: clamp(28px, 5vw, 64px); align-items: start; }
.portrait { aspect-ratio: 4 / 5; border-radius: var(--r); background: linear-gradient(160deg, var(--foam), var(--sand)); display: grid; place-items: center; text-align: center; padding: 24px; color: var(--muted); font-size: .85rem; border: 1.5px dashed #C9D9DC; }
.portrait img { width: 92px; margin: 0 auto 14px; opacity: .8; }
@media (max-width: 860px) { .founder { grid-template-columns: 1fr; } .portrait { max-width: 360px; } }

.todo { background: #FFF6E5; border: 1px dashed #E2B65C; color: #6B4E12; border-radius: 10px; padding: 14px 16px; font-size: .9rem; }
.todo strong { display: block; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 4px; }

/* faq */
.faq { display: grid; gap: 10px; }
.faq details { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 0 20px; }
.faq summary { cursor: pointer; list-style: none; padding: 18px 30px 18px 0; position: relative; font-weight: 600; color: var(--navy); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font: 400 1.5rem/1 var(--sans); color: var(--teal); transition: transform .2s; }
.faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq details p { color: var(--muted); padding-bottom: 18px; margin: 0; }

/* CTA band */
.cta { position: relative; overflow: hidden; border-radius: calc(var(--r) + 6px); color: #fff; isolation: isolate; padding: clamp(40px, 6vw, 72px); display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; }
.cta img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.cta::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,30,54,.92), rgba(10,30,54,.55)); }
.cta h2 { color: #fff; margin-bottom: .3em; }
.cta p { margin: 0; opacity: .9; max-width: 34em; }
@media (max-width: 820px) { .cta { grid-template-columns: 1fr; } .cta .btns .btn { flex: 1 1 100%; justify-content: center; } }

/* ---------- map ---------- */
.mapbox { display: grid; grid-template-columns: minmax(0, 1fr) 360px; background: #fff; border-radius: calc(var(--r) + 4px); box-shadow: var(--shadow); overflow: hidden; border: 1px solid var(--line); }
.map { position: relative; background: #CFE9EE; min-height: 560px; touch-action: none; cursor: grab; user-select: none; -webkit-user-select: none; }
.map.is-drag { cursor: grabbing; }
[data-kapidag] > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
[data-kapidag] .land { fill: #F1EADB; stroke: #9C8F76; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
[data-kapidag] .inner1 { fill: #E9E1CD; }
[data-kapidag] .inner2 { fill: #DFD6BE; }
[data-kapidag] .ring { fill: #D9F0F3; }
[data-kapidag] .rt { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; cursor: pointer; transition: stroke-width .2s, opacity .2s; }
[data-kapidag] .rt-hit { fill: none; stroke: transparent; stroke-width: 22; vector-effect: non-scaling-stroke; cursor: pointer; }
[data-kapidag] .rt--future { stroke-dasharray: 2 7; }
.map.has-sel .rt:not(.is-sel) { opacity: .28; }
[data-kapidag] .lbl { font-family: var(--sans); paint-order: stroke; stroke: rgba(255,255,255,.85); stroke-linejoin: round; pointer-events: none; }
[data-kapidag] .lbl--town { font-weight: 700; fill: var(--navy); }
[data-kapidag] .lbl--village { font-weight: 500; fill: #3F4C5A; }
[data-kapidag] .lbl--island { font-style: italic; fill: #44606A; }
[data-kapidag] .lbl--bay, [data-kapidag] .lbl--sea { font-style: italic; fill: #2D7A88; stroke: rgba(217,240,243,.9); letter-spacing: .1em; }
[data-kapidag] .lbl--sea { letter-spacing: .45em; font-weight: 500; }
[data-kapidag] .lbl--region { font-family: var(--serif); font-weight: 600; fill: #8C7E62; letter-spacing: .3em; stroke: none; }
[data-kapidag] .lbl--region2 { font-family: var(--serif); font-weight: 600; fill: #8C7E62; letter-spacing: .2em; stroke: none; }
[data-kapidag] .lbl--site { fill: #7A5A2E; font-weight: 600; }
[data-kapidag] .lbl--peak { fill: #6E6450; }
[data-kapidag] .town-dot { fill: var(--navy); stroke: #fff; }
[data-kapidag] .peak { fill: #8C7E62; }
[data-kapidag] .pin-s { fill: #fff; stroke-width: 3; vector-effect: non-scaling-stroke; }
[data-kapidag] .pin-f { stroke: #fff; stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.map-ui { position: absolute; right: 14px; top: 14px; display: grid; gap: 6px; z-index: 2; }
.map-ui button { width: 42px; height: 42px; border-radius: 10px; border: 1px solid var(--line); background: #fff; color: var(--navy); font: 600 1.2rem/1 var(--sans); cursor: pointer; box-shadow: 0 4px 12px -6px rgba(15,42,74,.4); display: grid; place-items: center; }
.map-ui button svg { width: 18px; height: 18px; }
.map-ui button:hover { background: var(--foam); }
.map-scale { position: absolute; left: 14px; bottom: 12px; z-index: 2; font: 600 .7rem/1 var(--sans); color: var(--navy); background: rgba(255,255,255,.85); padding: 6px 8px 7px; border-radius: 6px; }
.map-scale i { display: block; height: 6px; border: 2px solid var(--navy); border-top: 0; margin-top: 4px; }
.map-north { position: absolute; left: 14px; top: 14px; z-index: 2; width: 46px; height: 46px; background: rgba(255,255,255,.85); border-radius: 50%; display: grid; place-items: center; }
.map-credit { position: absolute; right: 10px; bottom: 8px; z-index: 2; font-size: .64rem; color: #3D5560; background: rgba(255,255,255,.7); padding: 2px 6px; border-radius: 4px; }
.map-hint { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 2; font-size: .72rem; color: var(--navy); background: rgba(255,255,255,.85); padding: 6px 10px; border-radius: 999px; pointer-events: none; transition: opacity .4s; white-space: nowrap; }

.rpanel { border-left: 1px solid var(--line); display: flex; flex-direction: column; min-height: 0; max-height: 640px; }
.rpanel__head { padding: 20px 22px 14px; border-bottom: 1px solid var(--line); }
.rpanel__head h3 { margin: 0 0 4px; font-size: 1.1rem; }
.rpanel__head p { margin: 0; font-size: .82rem; color: var(--muted); }
.rlist { list-style: none; margin: 0; padding: 8px; overflow-y: auto; flex: 1; }
.rlist button {
  width: 100%; text-align: left; display: grid; grid-template-columns: 14px 1fr auto; gap: 12px; align-items: center;
  padding: 12px 12px; border: 0; background: transparent; border-radius: 10px; cursor: pointer; font: inherit; color: var(--ink);
}
.rlist button:hover { background: var(--paper); }
.rlist button[aria-pressed="true"] { background: var(--foam); }
.rlist .sw { width: 14px; height: 14px; border-radius: 50%; }
.rlist .nm { font-weight: 600; font-size: .92rem; line-height: 1.3; }
.rlist .lv { display: block; font-size: .74rem; color: var(--muted); font-weight: 500; }
.rlist .km { font: 600 .9rem/1 var(--serif); color: var(--navy); white-space: nowrap; }
.rdetail { border-top: 1px solid var(--line); padding: 18px 22px 22px; background: var(--paper); }
.rdetail[hidden] { display: none; }
.rdetail h4 { font-size: 1.1rem; margin-bottom: 8px; }
.rdetail p { font-size: .88rem; color: var(--muted); margin-bottom: 12px; }
.rdetail dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; font-size: .82rem; margin: 0 0 12px; }
.rdetail dt { color: var(--muted); }
.rdetail dd { margin: 0; font-weight: 600; color: var(--navy); }
.rdetail .warn { display: inline-block; background: #FFF0E6; color: #A33A00; font: 600 .7rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; padding: 7px 10px; border-radius: 999px; }
.legend { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 14px 22px; border-top: 1px solid var(--line); font-size: .74rem; color: var(--muted); }
.legend span { display: inline-flex; align-items: center; gap: 7px; }
.legend i { width: 22px; height: 0; border-top: 3px solid; display: inline-block; }
.map-note { margin-top: 18px; font-size: .84rem; color: var(--muted); }
@media (max-width: 980px) {
  .mapbox { grid-template-columns: 1fr; }
  .map { min-height: 0; aspect-ratio: 4 / 3.4; }
  .rpanel { border-left: 0; border-top: 1px solid var(--line); max-height: none; }
  .rlist { overflow: visible; }
}
@media (max-width: 520px) { .map { aspect-ratio: 1 / 1.05; } .map-north { width: 38px; height: 38px; } }

/* map teaser (home) */
.teaser-map { border-radius: var(--r); overflow: hidden; background: #CFE9EE; aspect-ratio: 16 / 10; box-shadow: var(--shadow); position: relative; display: block; }
.teaser-map svg { width: 100%; height: 100%; }

/* ---------- blog ---------- */
.posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.post { display: flex; flex-direction: column; background: #fff; border-radius: var(--r); overflow: hidden; border: 1px solid var(--line); text-decoration: none; color: inherit; transition: transform .25s, box-shadow .25s; }
.post:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.post__img { aspect-ratio: 16 / 10; overflow: hidden; }
.post__img img { width: 100%; height: 100%; object-fit: cover; }
.post__body { padding: 22px 22px 26px; display: flex; flex-direction: column; flex: 1; }
.post__meta { font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--teal); font-weight: 600; margin-bottom: 10px; }
.post h3 { font-size: 1.15rem; margin-bottom: 10px; }
.post p { color: var(--muted); font-size: .92rem; margin: 0 0 16px; }
.post .more { margin-top: auto; font: 600 .76rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--navy); }
@media (max-width: 960px) { .posts { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .posts { grid-template-columns: 1fr; } }

.article { padding-block: clamp(48px, 7vw, 90px); }
.article .wrap { max-width: 740px; }
.article h2 { font-size: 1.5rem; margin-top: 1.6em; }
.article p, .article li { font-size: 1.05rem; }
.article ul, .article ol { padding-left: 1.2em; margin: 0 0 1.2em; }
.article li { margin-bottom: .5em; }
.article .back { display: inline-flex; gap: 8px; align-items: center; margin-top: 30px; }

/* ---------- contact ---------- */
.contact { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(28px, 5vw, 64px); align-items: start; }
.cards-contact { display: grid; gap: 14px; }
.cc { display: grid; grid-template-columns: 48px 1fr; gap: 16px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 18px; text-decoration: none; color: inherit; transition: border-color .2s, box-shadow .2s; }
.cc:hover { border-color: var(--aqua); box-shadow: var(--shadow); }
.cc .ico { width: 48px; height: 48px; border-radius: 12px; background: var(--foam); display: grid; place-items: center; color: var(--teal-d); }
.cc .ico svg { width: 22px; height: 22px; }
.cc b { display: block; color: var(--navy); font-size: .95rem; }
.cc span { color: var(--muted); font-size: .88rem; }
.form { background: #fff; border: 1px solid var(--line); border-radius: calc(var(--r) + 4px); padding: clamp(22px, 4vw, 40px); box-shadow: var(--shadow); }
.tabs { display: grid; grid-template-columns: 1fr 1fr; background: var(--sand); padding: 5px; border-radius: 12px; margin-bottom: 24px; gap: 4px; }
.tabs button { border: 0; background: transparent; padding: 12px 10px; border-radius: 9px; font: 600 .82rem/1.2 var(--sans); color: var(--muted); cursor: pointer; min-height: 44px; }
.tabs button[aria-selected="true"] { background: #fff; color: var(--navy); box-shadow: 0 2px 8px -4px rgba(15,42,74,.3); }
.field { display: grid; gap: 6px; margin-bottom: 16px; }
.field label { font-size: .82rem; font-weight: 600; color: var(--navy); }
.field input, .field select, .field textarea {
  font: inherit; font-size: 16px; padding: 13px 14px; border: 1.5px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--ink); width: 100%;
}
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--teal); background: #fff; }
.field textarea { min-height: 120px; resize: vertical; }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .row2 { grid-template-columns: 1fr; } }
.consent { display: flex; gap: 10px; font-size: .82rem; color: var(--muted); margin: 6px 0 20px; align-items: flex-start; }
.consent input { margin-top: 3px; width: 18px; height: 18px; flex: none; accent-color: var(--teal); }
.form .btn { width: 100%; justify-content: center; }
.form-note { font-size: .78rem; color: var(--muted); margin: 12px 0 0; text-align: center; }
@media (max-width: 900px) { .contact { grid-template-columns: 1fr; } }

/* ---------- footer ---------- */
.site-foot { background: var(--navy); color: #B9C8D6; padding-top: 72px; font-size: .92rem; }
.foot-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.1fr; gap: 36px; padding-bottom: 48px; }
.site-foot img.logo { height: 52px; width: auto; margin-bottom: 18px; }
.site-foot h4 { font: 600 .72rem/1 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--aqua); margin-bottom: 18px; }
.site-foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.site-foot a { color: #E3ECF3; text-decoration: none; }
.site-foot a:hover { color: var(--aqua); }
.foot-bottom { border-top: 1px solid rgba(255,255,255,.12); padding: 20px 0 calc(24px + env(safe-area-inset-bottom)); display: flex; flex-wrap: wrap; gap: 10px 26px; justify-content: space-between; font-size: .76rem; color: #8FA3B6; }
.foot-bottom details summary { cursor: pointer; }
.foot-bottom details p { margin: 8px 0 0; max-width: 70ch; line-height: 1.6; }
.foot-bottom a { color: #B9C8D6; text-decoration: underline; }
@media (max-width: 900px) { .foot-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .foot-grid { grid-template-columns: 1fr; } }

/* floating WhatsApp */
.wa-float { position: fixed; right: 18px; bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 40; width: 56px; height: 56px; border-radius: 50%; background: #1FAF5A; color: #fff; display: grid; place-items: center; box-shadow: 0 10px 24px -8px rgba(0,0,0,.4); transition: transform .2s; }
.wa-float:hover { transform: scale(1.06); }
.wa-float svg { width: 28px; height: 28px; }
body.menu-open .wa-float { display: none; }

/* 404 */
.e404 { min-height: calc(100vh - var(--head-h)); display: grid; place-items: center; text-align: center; padding: 60px var(--gut); background: linear-gradient(180deg, var(--paper), var(--foam)); position: relative; overflow: hidden; }
.e404 .big { font: 500 clamp(6rem, 22vw, 13rem)/1 var(--serif); color: var(--navy); letter-spacing: .04em; margin: 0; }
.e404 .waves { position: absolute; left: 0; right: 0; bottom: 0; height: 120px; opacity: .5; }
.e404 .btns { justify-content: center; margin-top: 26px; }

/* reveal */
.rv { opacity: 0; transform: translateY(18px); transition: opacity .8s, transform .8s cubic-bezier(.2,.7,.2,1); }
.rv.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .rv { opacity: 1; transform: none; transition: none; } html { scroll-behavior: auto; } }
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* form errors + busy state */
.err { color: #B4231B; font-size: .78rem; min-height: 0; }
.err:empty { display: none !important; }
.field.is-err input, .field.is-err select, .field.is-err textarea { border-color: #D9483B; background: #FFF6F5; }
.consent.is-err { color: #B4231B; }
.btn[disabled] { opacity: .7; cursor: progress; }
.btn[aria-busy="true"]::before { content: ""; width: 14px; height: 14px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* image loading placeholder */
.split__img, .post__img, .way, .hero__img, .phero { background-color: #DCEBEE; }

/* map loading state */
.map:not(:has(svg))::after { content: "Harita yükleniyor…"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--navy); font-size: .9rem; }

/* cookie consent */
.consent-bar { position: fixed; left: 16px; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 60; max-width: 560px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 20px 50px -20px rgba(15,42,74,.5); padding: 18px 20px; font-size: .86rem; color: var(--muted); }
.consent-bar p { margin: 0 0 12px; }
.consent-bar .btns { gap: 10px; }
.consent-bar .btn { min-height: 42px; padding: 11px 18px; }

/* legal pages */
.legal h2 { font-size: 1.3rem; margin-top: 1.8em; }
.legal p, .legal li { color: var(--ink); }
.legal .upd { color: var(--muted); font-size: .85rem; }
.rdetail .warn[hidden] { display: none; }
@media (max-width: 980px) { .rpanel .rdetail { order: -1; border-top: 0; border-bottom: 1px solid var(--line); } .rpanel__head { order: -2; } }
.drawer nav a small { text-align: right; margin-left: 12px; }

/* language switch */
.lang-switch { flex: none; display: inline-grid; place-items: center; min-width: 44px; height: 40px; padding: 0 10px; border-radius: 999px; border: 1.5px solid var(--line); color: var(--navy); text-decoration: none; font: 600 .74rem/1 var(--sans); letter-spacing: .14em; transition: border-color .2s, background .2s; }
.lang-switch:hover { border-color: var(--teal); background: var(--foam); }
.site-head .wrap .lang-switch { margin-left: auto; }
.site-head .nav + .lang-switch { margin-left: 0; }
@media (max-width: 1060px) { .site-head .wrap { gap: 12px; } .site-head .lang-switch { margin-left: auto; } }
.site-head .wrap { justify-content: flex-start; }
.site-head .nav { margin-left: auto; margin-right: 6px; }
:lang(en) .hero h1 { font-size: clamp(2rem, 4.6vw, 3.4rem); }
:lang(en) .hero__body { max-width: 680px; }
@media (max-width: 1060px) { .site-head .nav + .lang-switch { margin-left: auto; } }

/* route draw-in: hidden only until the map scrolls into view (JS adds/removes the class) */
[data-kapidag].pre-draw .rt, [data-kapidag].pre-draw .pin-s, [data-kapidag].pre-draw .pin-f { opacity: 0; }
[data-kapidag] .pin-f { transform-box: fill-box; transform-origin: center; }

/* home hero photo: the swimmer sits right of centre */
.hero__img img { object-position: 68% 50%; }
@media (max-width: 760px) { .hero__img img { object-position: 78% 50%; } }

/* page hero video (SwimRoad): plays over its poster image, fades in once it has frames */
.phero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; opacity: 0; transition: opacity .8s; }
.phero__video.is-playing { opacity: 1; }

/* logo + place line as live text (follows the page language) */
.brand { display: flex; flex-direction: column; text-decoration: none; }
.brand img { height: 38px; width: auto; }
/* the wordmark is centred at 63.75% of the logo width; centre the line under it */
.brand-place { display: block; padding-left: 27.5%; text-align: center; margin-top: 4px;
  font: 500 8.5px/1 var(--sans); letter-spacing: .32em; color: var(--navy); opacity: .72; white-space: nowrap; }
.brand--foot { margin-bottom: 18px; }
.brand--foot img.logo { height: 44px; margin: 0; }
.brand--foot .brand-place { color: #DCE7F0; font-size: 9.5px; margin-top: 6px; }
@media (max-width: 480px) { .brand img { height: 32px; } .brand-place { font-size: 7.5px; letter-spacing: .28em; } }

/* about: founder photo, key facts, milestones */
.founder--photo { grid-template-columns: minmax(260px, 380px) 1fr; align-items: center; }
.portrait-photo { aspect-ratio: 4 / 5; max-width: 100%; }
.facts { display: grid; gap: 0; margin: 26px 0 0; border-top: 1px solid var(--line); }
.facts > div { display: grid; grid-template-columns: 110px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.facts dt { font: 600 .72rem/1.6 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--teal); }
.facts dd { margin: 0; font-size: .95rem; color: var(--ink); }
@media (max-width: 520px) { .facts > div { grid-template-columns: 1fr; gap: 2px; } }
.milestones { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-left: 2px solid var(--aqua); }
.milestones li { display: grid; grid-template-columns: 110px 1fr; gap: 24px; padding: 6px 0 34px 28px; position: relative; }
.milestones li::before { content: ""; position: absolute; left: -8px; top: 12px; width: 14px; height: 14px; border-radius: 50%; background: var(--paper); border: 2px solid var(--teal); }
.milestones .yr { font: 500 2rem/1 var(--serif); color: var(--navy); }
.milestones h3 { margin-bottom: 8px; }
.milestones p { color: var(--muted); margin: 0; max-width: 46em; }
@media (max-width: 620px) { .milestones li { grid-template-columns: 1fr; gap: 6px; } }
@media (max-width: 860px) { .founder--photo { grid-template-columns: 1fr; } .founder--photo .portrait-photo { max-width: 420px; } }

/* programme cards open a detail dialog */
.card--prog { cursor: pointer; display: flex; flex-direction: column; }
.card--prog h3 a { color: inherit; text-decoration: none; }
.card--prog h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.card--prog h3 a:focus-visible { outline: none; }
.card--prog:has(a:focus-visible) { outline: 3px solid var(--aqua); outline-offset: 3px; }
.card--prog .meta { margin-bottom: 16px; }
.prog-more { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font: 600 .74rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--teal-d); }
.prog-more svg { width: 15px; height: 15px; transition: transform .2s; }
.card--prog:hover .prog-more svg { transform: translateX(4px); }

.pd { width: min(760px, calc(100% - 24px)); max-height: calc(100dvh - 32px); padding: 0; border: 0; border-radius: 18px; background: var(--paper); color: var(--ink); box-shadow: 0 30px 80px -20px rgba(10,30,54,.6); overflow-y: auto; overscroll-behavior: contain; }
.pd::backdrop { background: rgba(10, 30, 54, .62); backdrop-filter: blur(3px); }
.pd[open] { animation: pdIn .28s cubic-bezier(.2,.7,.2,1); }
@keyframes pdIn { from { opacity: 0; transform: translateY(14px) scale(.98); } }
@media (prefers-reduced-motion: reduce) { .pd[open] { animation: none; } }
body:has(.pd[open]) { overflow: hidden; }
.pd-close { position: sticky; top: 12px; float: right; margin: 12px 12px -56px 0; z-index: 2; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--navy); font: 400 1.7rem/1 var(--sans); cursor: pointer; box-shadow: 0 4px 14px -6px rgba(0,0,0,.4); }
.pd-close:hover { background: #fff; }
.pd-img { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: #DCEBEE; }
.pd-img img { width: 100%; height: 100%; object-fit: cover; }
.pd-body { padding: clamp(22px, 4vw, 36px) clamp(20px, 4vw, 40px) 8px; }
.pd-body .meta { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.pd-body h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); margin-bottom: 12px; }
.pd-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 22px; }
.pd-cols h3 { font: 600 .74rem/1.4 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--teal-d); margin-bottom: 14px; }
.pd-cols .checks { font-size: .95rem; gap: 10px; }
.pd-actions { position: sticky; bottom: 0; background: var(--paper); border-top: 1px solid var(--line); padding: 16px clamp(20px, 4vw, 40px) calc(18px + env(safe-area-inset-bottom)); }
.pd-actions p { margin: 0 0 12px; font-size: .84rem; color: var(--muted); }
.pd-actions .btns { gap: 10px; }
.pd-actions .btn svg { width: 18px; height: 18px; }
@media (max-width: 620px) {
  .pd { width: 100%; max-height: 100dvh; height: 100dvh; border-radius: 0; margin: 0; max-width: 100%; }
  .pd-cols { grid-template-columns: 1fr; gap: 18px; }
  .pd-actions .btn { flex: 1 1 100%; justify-content: center; }
}

/* YouTube thumbnails -> player on click */
.yt-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 900px) { .yt-grid { grid-template-columns: 1fr; max-width: 640px; } }
.yt { margin: 0; }
.yt-play, .yt iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: var(--r); overflow: hidden; background: #0A1E36; box-shadow: var(--shadow); }
.yt-play { position: relative; padding: 0; cursor: pointer; }
.yt-play img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s, opacity .3s; opacity: .92; }
.yt-play:hover img { transform: scale(1.04); opacity: 1; }
.yt-icon { position: absolute; left: 50%; top: 50%; width: 68px; height: 48px; transform: translate(-50%, -50%); border-radius: 14px; background: rgba(15, 42, 74, .85); transition: background .2s; }
.yt-icon::after { content: ""; position: absolute; left: 27px; top: 14px; border-style: solid; border-width: 10px 0 10px 17px; border-color: transparent transparent transparent #fff; }
.yt-play:hover .yt-icon { background: #E0242B; }
.yt figcaption { margin-top: 12px; font-weight: 600; color: var(--navy); font-size: .95rem; }

/* lesson age / prerequisite lines, lesson formats, licence box */
.prog-age { display: flex; align-items: center; gap: 8px; margin: -2px 0 10px; font: 600 .82rem/1.35 var(--sans); color: var(--navy) !important; }
.prog-age svg { width: 17px; height: 17px; flex: none; color: var(--teal-d); }
.prog-pre { margin: -4px 0 10px; font-size: .82rem !important; color: var(--teal-d) !important; line-height: 1.45; }
.prog-pre b { font-weight: 700; }
.pd-body .prog-age { font-size: .95rem; margin: 0 0 6px; }
.pd-body .prog-pre { font-size: .9rem !important; margin: 0 0 14px; }
.formats .card h3 { margin-bottom: 8px; }
.formats .card .meta { margin-top: 14px; }
.formats-note { margin: 22px 0 0; color: var(--muted); font-size: .95rem; }
.req { margin-top: 18px; padding: 14px 16px; border-radius: 10px; background: rgba(92,198,207,.12); border: 1px solid rgba(92,198,207,.35); display: grid; gap: 4px; }
.req strong { font: 600 .72rem/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--aqua); }
.req span { color: #fff; font-size: .95rem; }

/* About hero: the portrait keeps its own proportions on the right; the title sits on a dark field */
.phero--portrait { background: #0D1B2A; min-height: 520px; }
.phero--portrait::after { background: linear-gradient(90deg, #0D1B2A 0%, #0D1B2A 46%, rgba(13,27,42,.55) 62%, rgba(13,27,42,0) 78%), linear-gradient(180deg, transparent 60%, rgba(13,27,42,.55)); }
.phero__portrait { position: absolute; top: 0; right: 0; bottom: 0; width: min(46%, 640px); z-index: -2; }
.phero__portrait img { object-position: 50% 0; }
@media (max-width: 760px) {
  .phero--portrait { display: block; min-height: 0; }
  .phero__portrait { position: relative; width: 100%; height: min(142vw, 640px); z-index: 0; }
  .phero--portrait::after { background: linear-gradient(180deg, transparent calc(min(142vw, 640px) - 250px), rgba(13,27,42,.82) calc(min(142vw, 640px) - 110px), #0D1B2A min(142vw, 640px)); }
  .phero--portrait .wrap { position: relative; z-index: 1; margin-top: -120px; padding-top: 0; padding-bottom: 40px; }
}
@media (min-width: 761px) {
  /* full height of the hero, width follows the photo: rider and horse stay in frame */
  .phero--portrait { min-height: 600px; }
  .phero__portrait { width: auto; aspect-ratio: 590 / 900; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 16%); mask-image: linear-gradient(90deg, transparent 0, #000 16%); }
  .phero--portrait::after { background: linear-gradient(90deg, #0D1B2A 0, #0D1B2A 40%, rgba(13,27,42,0) 58%), linear-gradient(180deg, transparent 65%, rgba(13,27,42,.5)); }
}
.home-portrait { width: 100%; max-width: 420px; justify-self: center; }
.home-portrait img { object-position: 50% 0; }
.powered { margin: 0; padding: 14px 0 calc(22px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(255,255,255,.08); text-align: center; font-size: .74rem; letter-spacing: .06em; color: #7F94A8; }
.powered a { color: #B9C8D6; font-weight: 600; text-decoration: none; }
.powered a:hover { color: var(--aqua); }
.foot-bottom { padding-bottom: 18px; }

/* place line in mixed case (Kapıdağ · Türkiye) */
.brand-place { text-transform: none; letter-spacing: .12em; font-size: 9.5px; font-weight: 500; }
.brand--foot .brand-place { font-size: 10.5px; }
@media (max-width: 480px) { .brand-place { font-size: 8.5px; letter-spacing: .1em; } }

/* language switch: both languages shown, the current one filled */
.lang-switch { display: inline-flex; align-items: center; padding: 3px; gap: 2px; height: auto; min-width: 0; border: 1.5px solid var(--line); border-radius: 999px; background: #fff; }
.lang-switch > * { display: inline-grid; place-items: center; min-width: 36px; height: 32px; padding: 0 8px; border-radius: 999px; font: 600 .72rem/1 var(--sans); letter-spacing: .12em; text-decoration: none; }
.lang-switch .ls-cur { background: var(--navy); color: #fff; }
.lang-switch a { color: var(--muted); }
.lang-switch a:hover { color: var(--navy); background: var(--foam); }
.lang-switch:hover { background: #fff; border-color: var(--line); }

/* reply expectation */
.reply-note { display: flex; gap: 10px; align-items: flex-start; margin: 22px 0 0; padding: 14px 16px; border-radius: 12px; background: #FFF6E5; border: 1px solid #F0D9A8; color: #6B4E12; font-size: .9rem; line-height: 1.5; }
.reply-note svg { width: 18px; height: 18px; flex: none; margin-top: 2px; }
.phero img[src*="doga-deniz-kusu"] { object-position: 50% 22%; }

/* legal pages: cookie table, sub-headings */
.legal h3 { font-size: 1.05rem; margin-top: 1.5em; }
.legal table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: .88rem; margin: 0 0 1em; }
.legal th, .legal td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.legal th { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--teal-d); }
.legal td:first-child { white-space: nowrap; font-weight: 600; }
.legal .btn { color: var(--navy); }

/* phone: the title sits on the photo, so the fade has to be above the image, not behind it */
@media (max-width: 760px) {
  .phero__portrait::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 58%, rgba(13,27,42,.82) 80%, #0D1B2A 100%); }
}
