/* DESIGN PLAN
   Layout: black type-first hero, then a full-bleed photo that stays pinned while the page slides over it;
   split-screen "default hat vs. built hat"; estimator with a pinned result card; short quote form.
   Type: Oswald (condensed display, matches the Rybo retail site) + Assistant (body, as on the retail site).
   Color: black, white and two teals only: bright #5bb89d (retail announcement bar) and deep #17705a. */
:root {
  --bg: #ffffff;
  --fg: #0b0b0b;
  --muted: #55595a;
  --panel: #f1f3f2;
  --line: #d7dcda;
  --band: #000000;
  --band-fg: #ffffff;
  --mint: #5bb89d;
  --mint-ink: #0b0b0b;
  --sec-pad: clamp(48px, 6vw, 80px);   /* one vertical rhythm for every section */
  --mint-text: #17705a;
  --teal-deep: #17705a;
  --focus: #0b0b0b;
  --display: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  --body: 'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --gutter-l: max(16px, env(safe-area-inset-left, 0px));
  --gutter-r: max(16px, env(safe-area-inset-right, 0px));
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0d0f0e; --fg: #f4f6f5; --muted: #a5adaa; --panel: #171a19; --line: #2b302e;
    --band: #000000; --band-fg: #ffffff; --mint-text: #5bb89d; --focus: #f4f6f5; color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #0d0f0e; --fg: #f4f6f5; --muted: #a5adaa; --panel: #171a19; --line: #2b302e;
  --band: #000000; --band-fg: #ffffff; --mint-text: #5bb89d; --focus: #f4f6f5; color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; }
body { background: var(--bg); color: var(--fg); font-family: var(--body); font-size: 17px; line-height: 1.55; }
img { display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--display); text-transform: uppercase; font-weight: 700; line-height: .95; margin: 0; text-wrap: balance; }
p { margin: 0; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.band :focus-visible, .hero :focus-visible, .dock :focus-visible { outline-color: var(--mint); }

.wrap { max-width: 1240px; margin-inline: auto; padding-left: var(--gutter-l); padding-right: var(--gutter-r); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 54px; padding: 0 1.6rem; border: 2px solid transparent; font: 700 1.15rem/1 var(--display); letter-spacing: .04em; text-transform: uppercase; text-decoration: none; cursor: pointer; background: none; color: inherit; transition: transform .15s ease, background-color .15s ease, color .15s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-mint { background: var(--mint); color: var(--mint-ink); }
.btn-mint:hover { background: var(--teal-deep); color: #fff; }
.btn-line { border-color: currentColor; }
.btn-line:hover { background: var(--fg); color: var(--bg); }
.hero .btn-line:hover, .band .btn-line:hover { background: #fff; color: #000; }

/* top bar */
.announce { background: var(--mint); color: var(--mint-ink); text-align: center; font: 700 .95rem/1 var(--display); letter-spacing: .06em; text-transform: uppercase; padding: 12px var(--gutter-r) 12px var(--gutter-l); }
.top { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 10px var(--gutter-r) 10px var(--gutter-l); background: var(--bg); gap: 12px; }
.top .back { font-weight: 600; font-size: .95rem; text-decoration: none; justify-self: start; }
.top .back:hover { text-decoration: underline; }
.top .logo { width: 96px; height: 96px; }
:root[data-theme="dark"] .top .logo { filter: invert(1); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .top .logo { filter: invert(1); } }
.top .btn { justify-self: end; min-height: 44px; padding: 0 1.1rem; font-size: 1rem; }

.page { position: relative; }

/* hero */
.hero { background: #000; color: #fff; padding-block: var(--sec-pad); }
.hero h1 { font-size: clamp(3rem, 11.2vw, 9.6rem); letter-spacing: -.01em; line-height: .9; }
.hero h1 span { display: block; }
.hero .sub { max-width: 40rem; margin-top: clamp(20px, 3vw, 36px); font-size: clamp(1.1rem, 2.2vw, 1.4rem); line-height: 1.45; color: #d9dedc; }
.hero .cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
@media (prefers-reduced-motion: no-preference) {
  .hero h1 span { animation: rise .7s cubic-bezier(.2,.7,.2,1) both; }
  .hero h1 span:nth-child(2) { animation-delay: .12s; }
  .hero h1 span:nth-child(3) { animation-delay: .24s; }
  @keyframes rise { from { transform: translateY(28px); opacity: 0; } to { transform: none; opacity: 1; } }
}

/* pinned photo that the page slides over */
.pin { position: sticky; top: 0; height: clamp(360px, 66svh, 740px); background-color: #111; background-position: center 72%; background-size: cover; background-repeat: no-repeat; z-index: 0; display: flex; align-items: flex-end; }
.pin::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.7), rgba(0,0,0,0) 45%); }
.pin p { position: relative; z-index: 1; color: #fff; font: 700 clamp(1.5rem, 4.4vw, 3.2rem)/1 var(--display); text-transform: uppercase; padding: 0 var(--gutter-r) clamp(20px, 4vw, 40px) var(--gutter-l); width: 100%; max-width: 1240px; margin-inline: auto; }
@media (prefers-reduced-motion: reduce) { .pin { position: relative; } }

.sheet { position: relative; z-index: 2; background: var(--bg); }
section { padding-block: var(--sec-pad); }
.sec-title { font-size: clamp(2.4rem, 7vw, 5.6rem); }
.lede { max-width: 38rem; margin-top: 18px; color: var(--muted); font-size: 1.15rem; }

/* split screen */
.split { display: grid; grid-template-columns: 1fr 1fr; margin-top: clamp(28px, 4vw, 48px); }
.split > figure { margin: 0; position: relative; min-width: 0; display: flex; flex-direction: column; }
.split .stage { aspect-ratio: 4 / 3.4; display: grid; place-items: center; overflow: hidden; }
.split .stage.plain { background: #c9cdcb; }
.split .stage.built { background-color: #101310; background-position: center; background-size: cover; background-repeat: no-repeat; }
.split .plain svg { width: 74%; height: auto; }
.split figcaption { padding: 18px 20px 22px; background: var(--panel); flex: 1; }
.split figcaption h3 { font-size: 1.7rem; }
.split figcaption p { color: var(--muted); margin-top: 8px; }
.split .built + figcaption { background: #000; color: #fff; }
.split .built + figcaption p { color: #cfd5d2; }
.split .built + figcaption h3 { color: var(--mint); }
@media (max-width: 720px) { .split { grid-template-columns: 1fr; } }

/* photo row */
.trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: clamp(28px, 4vw, 48px); }
.trio figure { margin: 0; min-width: 0; }
.trio img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 6px; }
.trio figcaption { margin-top: 10px; color: var(--muted); font-size: .98rem; }
@media (max-width: 720px) { .trio { grid-template-columns: 1fr; } .trio img { aspect-ratio: 4 / 3; } }

/* audiences */
.who { margin-top: clamp(24px, 4vw, 44px); border-top: 2px solid var(--fg); }
.who-row { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr) auto; gap: 8px 32px; align-items: center; padding-block: 24px; border-bottom: 1px solid var(--line); }
.who-row h3 { font-size: clamp(2rem, 4.6vw, 3.6rem); transition: color .15s; }
.who-row:hover h3 { color: var(--mint-text); }
.who-row p { color: var(--muted); }
.who-row .btn { min-height: 46px; font-size: 1rem; }
@media (max-width: 760px) { .who-row { grid-template-columns: 1fr; } .who-row .btn { justify-self: start; margin-top: 8px; } }

/* black bands */
.band { background: var(--band); color: var(--band-fg); }
.band .lede { color: #c8cfcc; }
.founder { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(28px, 6vw, 80px); align-items: start; }
.founder h2 { font-size: clamp(2.6rem, 8vw, 6.4rem); }
.founder p { font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.5; color: #e6eae8; }
.founder p + p { margin-top: 18px; }
.founder .sig { font-family: var(--display); text-transform: uppercase; letter-spacing: .06em; color: var(--mint); font-size: 1.1rem; }
@media (max-width: 800px) { .founder { grid-template-columns: 1fr; } }

.local-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: clamp(28px, 4vw, 48px); }
.local-grid figure { margin: 0; min-width: 0; }
.local-grid img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 6px; }
.local-grid figcaption { margin-top: 10px; font: 700 1.5rem/1 var(--display); text-transform: uppercase; }
@media (max-width: 720px) { .local-grid { grid-template-columns: 1fr 1fr; } }

/* estimator */
.est { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); margin-top: clamp(28px, 4vw, 48px); align-items: start; }
@media (max-width: 900px) { .est { grid-template-columns: 1fr; } }
.step { border-top: 2px solid var(--fg); padding-block: 22px 30px; }
.step h3 { font-size: 1.7rem; margin-bottom: 14px; }
.step .hint { color: var(--muted); font-size: .98rem; margin-top: 10px; }
.qty-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.qty-row button.step-btn { width: 54px; height: 54px; border: 2px solid var(--fg); background: none; color: inherit; font: 700 1.6rem/1 var(--display); cursor: pointer; }
.qty-row button.step-btn:hover { background: var(--fg); color: var(--bg); }
.qty-row input[type=number] { width: 140px; height: 54px; border: 2px solid var(--fg); background: var(--bg); color: var(--fg); font: 700 2rem/1 var(--display); text-align: center; -moz-appearance: textfield; }
.qty-row input[type=number]::-webkit-outer-spin-button, .qty-row input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qty-row .unit { font: 500 1.2rem/1 var(--display); text-transform: uppercase; color: var(--muted); }
input[type=range] { width: 100%; margin-top: 20px; accent-color: var(--mint-text); height: 28px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.chip { min-height: 44px; padding: 0 16px; border: 2px solid var(--line); background: none; color: inherit; font: 600 1rem/1 var(--body); cursor: pointer; border-radius: 999px; }
.chip:hover { border-color: var(--fg); }
.chip[aria-pressed="true"] { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.opts { display: grid; gap: 10px; }
.opt { display: block; cursor: pointer; }
.opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.opt-body { display: grid; grid-template-columns: 1fr auto; gap: 2px 16px; padding: 16px 18px; border: 2px solid var(--line); transition: border-color .15s, background-color .15s; }
.opt-body strong { font: 700 1.35rem/1.1 var(--display); text-transform: uppercase; }
.opt-body em { font-style: normal; font-weight: 600; color: var(--mint-text); align-self: center; grid-row: 1; grid-column: 2; }
.opt-body span { color: var(--muted); grid-column: 1 / -1; font-size: .98rem; }
.opt:hover .opt-body { border-color: var(--fg); }
.opt input:checked + .opt-body { border-color: var(--fg); background: var(--panel); box-shadow: inset 6px 0 0 var(--mint); }
.opt input:focus-visible + .opt-body { outline: 3px solid var(--focus); outline-offset: 3px; }

.result { position: sticky; top: 12px; background: #000; color: #fff; padding: clamp(22px, 3vw, 34px); }
.result .label { font: 500 1rem/1 var(--display); letter-spacing: .08em; text-transform: uppercase; color: #aeb7b3; }
.result .total { font: 700 clamp(2.4rem, 5.4vw, 3.6rem)/1 var(--display); margin-top: 10px; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.result .per { margin-top: 8px; color: #d9dedc; font-variant-numeric: tabular-nums; }
.result .lines { margin-top: 20px; border-top: 1px solid #333; }
.result .line { display: flex; justify-content: space-between; gap: 16px; padding-block: 10px; border-bottom: 1px solid #262626; font-size: .98rem; font-variant-numeric: tabular-nums; }
.result .line span:first-child { color: #c1c9c5; }
.result .nudge { margin-top: 16px; padding: 10px 14px; border-left: 4px solid var(--mint); color: #fff; font-size: .98rem; }
.result .nudge[hidden] { display: none; }
.result .fine { margin-top: 16px; color: #9aa4a0; font-size: .88rem; line-height: 1.45; }
.result .btn { width: 100%; margin-top: 20px; }
@media (max-width: 900px) { .result { position: static; } }

/* quote form */
.quote { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(28px, 6vw, 80px); }
@media (max-width: 900px) { .quote { grid-template-columns: 1fr; } }
.quote h2 { font-size: clamp(2.6rem, 7vw, 5.4rem); }
.sum { margin-top: 24px; padding: 16px 18px; border: 1px solid #3a3f3d; color: #dfe5e2; font-size: .98rem; white-space: pre-line; }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form .full { grid-column: 1 / -1; }
@media (max-width: 560px) { .form { grid-template-columns: 1fr; } }
.field { display: grid; gap: 6px; min-width: 0; }
.field label { font-weight: 600; font-size: .98rem; color: #e9eeec; }
.field input, .field select, .field textarea { width: 100%; min-height: 54px; padding: 12px 14px; border: 2px solid #4a504d; background: #0c0c0c; color: #fff; font: 400 1.05rem/1.3 var(--body); border-radius: 0; }
.field textarea { min-height: 110px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--mint); outline: none; }
.field input[type=file] { padding: 12px; }
.checks { display: grid; gap: 12px; }
.check { display: flex; gap: 12px; align-items: flex-start; color: #dfe5e2; cursor: pointer; }
.check input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--mint); flex: none; }
.form .btn { width: 100%; min-height: 62px; font-size: 1.35rem; }
.notice { padding: 16px 20px; border-left: 4px solid var(--mint); color: #fff; }
.notice strong { display: block; font: 700 1.6rem/1.1 var(--display); text-transform: uppercase; color: var(--mint); margin-bottom: 6px; }

/* process */
.steps { list-style: none; margin: clamp(28px, 4vw, 48px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border-top: 2px solid var(--fg); counter-reset: s; }
.steps li { counter-increment: s; padding: 18px 18px 8px 0; min-width: 0; }
.steps li::before { content: counter(s); font: 700 3rem/1 var(--display); color: var(--mint-text); display: block; margin-bottom: 8px; }
.steps strong { font: 700 1.25rem/1.1 var(--display); text-transform: uppercase; display: block; }
.steps p { color: var(--muted); margin-top: 6px; font-size: .98rem; }
@media (max-width: 900px) { .steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .steps { grid-template-columns: 1fr; } }

/* faq */
.faq { margin-top: clamp(24px, 4vw, 44px); border-top: 2px solid var(--fg); max-width: 56rem; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; list-style: none; padding-block: 20px; font: 700 clamp(1.3rem, 2.6vw, 1.8rem)/1.1 var(--display); text-transform: uppercase; display: flex; justify-content: space-between; gap: 20px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--mint-text); font-size: 1.8rem; line-height: 1; }
.faq details[open] summary::after { content: "\2212"; }
.faq details p { padding-bottom: 22px; color: var(--muted); max-width: 44rem; }

footer { background: #000; color: #fff; padding-block: 48px calc(48px + 70px); }
footer .wrap { display: flex; flex-wrap: wrap; gap: 20px 48px; justify-content: space-between; align-items: end; }
footer .tag { font: 700 clamp(1.8rem, 4vw, 3rem)/1 var(--display); text-transform: uppercase; }
footer a { color: var(--mint); font-weight: 600; }
footer small { display: block; color: #98a29e; margin-top: 10px; }

/* mobile dock */
.dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; display: none; padding: 10px var(--gutter-r) calc(10px + env(safe-area-inset-bottom, 0px)) var(--gutter-l); background: rgba(0,0,0,.92); transition: transform .25s ease; }
.dock .btn { width: 100%; }
.dock.away { transform: translateY(110%); }
@media (max-width: 760px) { .dock { display: block; } .top .back { font-size: .85rem; } .top .logo { width: 72px; height: 72px; } }

/* added: header nav, logo link, fundraiser step */
.top .nav { display: flex; flex-direction: column; gap: 4px; justify-self: start; min-width: 0; }
.top .nav a { font-weight: 600; font-size: .95rem; text-decoration: none; }
.top .nav a:hover { text-decoration: underline; }
.top .nav a.here { color: var(--mint-text); }
.top .logo-link { display: block; }
.money-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.money-row .cur { font: 700 2rem/1 var(--display); }
.money-row input { width: 140px; height: 54px; border: 2px solid var(--fg); background: var(--bg); color: var(--fg); font: 700 2rem/1 var(--display); text-align: center; }
.result .raise { margin-top: 16px; padding: 14px; border: 2px solid var(--mint); }
.result .raise .label { color: var(--mint); }
.result .raise .amt { font: 700 2rem/1 var(--display); margin-top: 6px; font-variant-numeric: tabular-nums; }
.result .raise p { color: #c1c9c5; font-size: .92rem; margin-top: 6px; }
.who-row a.btn { text-decoration: none; }
@media (max-width: 760px) { .top .nav a { font-size: .85rem; } }

/* placeholders, footer nav, spacing helpers */
section.tight { padding-top: 0; }
.stage.ph, .pin.ph { background: repeating-linear-gradient(135deg, var(--panel) 0 18px, var(--bg) 18px 36px); border: 2px dashed var(--line); }
.stage.ph span { font: 700 1.6rem/1.1 var(--display); text-transform: uppercase; text-align: center; color: var(--muted); padding: 16px; }
.stage.ph small { display: block; font: 400 1rem/1.4 var(--body); text-transform: none; margin-top: 8px; }
.ph-note { margin-top: 10px; color: var(--muted); font-size: .9rem; }
.foot-links { display: grid; gap: 8px; }
.foot-links a { text-decoration: none; }
.foot-links a:hover { text-decoration: underline; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form { position: relative; }
.book { margin-top: 20px; }
.form .btn[disabled] { opacity: .6; cursor: wait; transform: none; }

/* style picker: zigzag rows, each hat faces its text */
.styles { display: grid; gap: clamp(28px, 5vw, 64px); margin-top: clamp(28px, 4vw, 48px); }
.style-row { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(20px, 4vw, 56px); align-items: center; }
.style-row.img-right { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
.style-row.img-right .style-img { order: 2; }
.style-img { background: #e3e1e3; border-radius: 6px; overflow: hidden; }
.style-img img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.style-img img.mirror { transform: scaleX(-1); }
.style-copy { min-width: 0; }
.style-copy h3 { font-size: clamp(2rem, 4.4vw, 3.4rem); }
.style-copy > p { margin-top: 12px; color: var(--muted); font-size: 1.1rem; max-width: 34rem; }
.style-copy dl { margin: 20px 0 24px; border-top: 2px solid var(--fg); }
.style-copy dl div { display: grid; grid-template-columns: 7.5rem 1fr; gap: 12px; padding-block: 10px; border-bottom: 1px solid var(--line); }
.style-copy dt { font: 500 1rem/1.4 var(--display); text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.style-copy dd { margin: 0; font-weight: 600; }
@media (max-width: 760px) {
  .style-row, .style-row.img-right { grid-template-columns: 1fr; }
  .style-row.img-right .style-img { order: 0; }
}

/* round 3: centered banner caption, intro, different-style callout, gallery */
.pin p { text-align: center; }
.pin p em { font-style: italic; font-family: var(--display); padding-right: .08em; }
.why-lede { font-size: clamp(1.2rem, 2.4vw, 1.6rem); line-height: 1.45; max-width: 46rem; color: var(--fg); }
.other-style { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; margin-top: clamp(36px, 6vw, 72px); padding: clamp(24px, 4vw, 44px); background: #000; color: #fff; }
.other-style > div { min-width: 0; flex: 1 1 22rem; }
.other-style h3 { font-size: clamp(2rem, 4.6vw, 3.4rem); color: #fff; }
.other-style p { margin-top: 10px; color: #cfd5d2; font-size: 1.1rem; max-width: 36rem; }
.gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: clamp(28px, 4vw, 48px); }
.gallery figure { margin: 0; min-width: 0; }
.gallery img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 6px; }
.gallery figcaption { margin-top: 8px; color: var(--muted); font-size: .95rem; line-height: 1.3; }
@media (max-width: 720px) { .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

/* round 4: blank-to-finished pair, gallery closer, founder portrait + signature */
.pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: clamp(28px, 4vw, 48px); }
.pair figure { margin: 0; min-width: 0; }
.pair img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; background: #e3e1e3; }
.pair figcaption { margin-top: 10px; font: 500 1.15rem/1.2 var(--display); text-transform: uppercase; letter-spacing: .03em; }
@media (max-width: 640px) { .pair { grid-template-columns: 1fr; } }
.closer { margin-top: clamp(28px, 4vw, 48px); font: 700 clamp(1.8rem, 4.6vw, 3.4rem)/1.05 var(--display); text-transform: uppercase; max-width: 22em; text-wrap: balance; }
.closer em { font-style: italic; color: var(--mint-text); padding-right: .06em; }
.founder { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; }
.founder .portrait { margin: 0; }
.founder .portrait img { width: 100%; height: auto; border-radius: 6px; display: block; }
.founder h2 { margin-bottom: 22px; }
.founder .signature { display: block; width: 150px; height: auto; margin-top: 26px; }
@media (max-width: 800px) {
  .founder { grid-template-columns: 1fr; align-items: start; }
  .founder .portrait { max-width: 360px; }
}

/* round 5: school proof photo, design help */
.proof { margin: clamp(28px, 4vw, 48px) 0 0; max-width: 820px; }
.proof img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; background: #e3e1e3; }
.proof figcaption { margin-top: 10px; font: 500 1.15rem/1.2 var(--display); text-transform: uppercase; letter-spacing: .03em; }
.price-tag { font: 700 1.3rem/1 var(--display); text-transform: uppercase; color: var(--mint-text); white-space: nowrap; }
.design-cta { margin-top: 28px; }
@media (max-width: 760px) { .price-tag { justify-self: start; } }
#design-help .who-row { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr) 8.5rem; }
#design-help .price-tag { text-align: right; }
@media (max-width: 760px) {
  #design-help .who-row { grid-template-columns: 1fr; }
  #design-help .price-tag { text-align: left; }
}

/* round 6: teal brand section, design headline, two-column options */
#why.pop { background: var(--mint); color: #0b0b0b; padding-block: var(--sec-pad); }
#why.pop .sec-title { color: #0b0b0b; font-size: clamp(2.8rem, 9vw, 7.2rem); }
#why.pop .why-lede { color: #0b0b0b; font-size: clamp(1.25rem, 2.6vw, 1.75rem); max-width: 48rem; }
#why.pop .proof figcaption { color: #0b0b0b; }
#why.pop + #styles { padding-top: var(--sec-pad); }
.design-title span { display: block; color: var(--mint-text); }
.opts.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 560px) { .opts.two { grid-template-columns: 1fr; } }
.hint.note { color: var(--mint-text); font-weight: 600; }

/* round 8: back-to-back white sections share one gap; design help folded into the gallery */
.sheet > section:not(.band):not(.pop) + section:not(.band):not(.pop) { padding-top: 0; }
.design-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 40px; margin-top: clamp(28px, 4vw, 44px); padding-top: clamp(20px, 3vw, 28px); border-top: 2px solid var(--fg); }
.design-strip > div { flex: 1 1 26rem; min-width: 0; }
.design-strip h3 { font-size: clamp(1.6rem, 3.4vw, 2.4rem); }
.design-strip h3 span { color: var(--mint-text); }
.design-strip p { margin-top: 8px; color: var(--muted); font-size: 1.1rem; max-width: 40rem; }

/* schools page: teal hero, split intro with the school hat */
.hero-teal { background: var(--mint); color: #0b0b0b; }
.hero-teal .sub { color: #0b0b0b; }
.hero-teal h1 { color: #0b0b0b; }
.crumbs { font-weight: 600; font-size: .95rem; margin-bottom: clamp(16px, 2.5vw, 28px); }
.crumbs a { color: inherit; }
.hero-kicker { margin-top: clamp(14px, 2vw, 22px); font: 700 clamp(1.5rem, 3.6vw, 2.6rem)/1.05 var(--display); text-transform: uppercase; }
.btn-black { background: #0b0b0b; color: #fff; }
.btn-black:hover { background: var(--teal-deep); color: #fff; }
.btn-outline-black { border-color: #0b0b0b; color: #0b0b0b; }
.btn-outline-black:hover { background: #0b0b0b; color: #fff; }
.hero-teal :focus-visible { outline-color: #0b0b0b; }
.split-intro { background: var(--panel); }
.split-intro-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.split-hat { margin: 0; }
.split-hat img { display: block; width: 100%; height: auto; }
.split-copy h2 { font-size: clamp(2.4rem, 5.6vw, 4.4rem); }
.points { margin: 24px 0 28px; border-top: 2px solid var(--fg); }
.points div { padding-block: 14px; border-bottom: 1px solid var(--line); }
.points dt { font: 700 1.35rem/1.15 var(--display); text-transform: uppercase; }
.points dd { margin: 4px 0 0; color: var(--muted); font-size: 1.05rem; }
@media (max-width: 860px) { .split-intro-grid { grid-template-columns: 1fr; } }
.split-intro + #styles { padding-top: var(--sec-pad); }

@media (max-width: 560px) { .announce .sep { display: none; } .announce .part { display: block; line-height: 1.35; } }
/* schools split: white to match the product photo, in both themes */
.split-intro { background: #fff; color: #0b0b0b; }
.split-intro .points { border-top-color: #0b0b0b; }
.split-intro .points div { border-bottom-color: #d7dcda; }
.split-intro .points dd { color: #55595a; }
.split-copy h2 { font-size: clamp(2rem, 4vw, 3.3rem); overflow-wrap: normal; hyphens: none; }

.design-strip { margin-top: clamp(32px, 5vw, 56px); }
.design-strip .strip-tag { margin-top: 10px; color: var(--fg); font: 700 clamp(1.2rem, 2.4vw, 1.6rem)/1.15 var(--display); text-transform: uppercase; }
.design-strip .strip-tag em { font-style: italic; color: var(--mint-text); padding-right: .06em; }
.founder h2:empty { display: none; }

/* golf page: black intro under the banner photo */
.golf-intro .golf-lede { font: 700 clamp(1.9rem, 4.6vw, 3.6rem)/1.05 var(--display); text-transform: uppercase; max-width: 20em; text-wrap: balance; }
.golf-intro .golf-body { font-size: clamp(1.25rem, 2.6vw, 1.75rem); line-height: 1.45; color: #fff; max-width: 48rem; }
.golf-intro + #styles { padding-top: var(--sec-pad); }

/* golf: centered intro, full-width course banners */
.golf-intro .wrap { text-align: center; }
.golf-intro .golf-body { margin-inline: auto; }
.golf-banner { margin: clamp(28px, 4vw, 48px) 0; }
.golf-banner img { display: block; width: 100%; height: clamp(280px, 52vw, 720px); object-fit: cover; }
.golf-banner.banner-top img { object-position: 68% 62%; }
.golf-banner.banner-bottom { margin: 0; }
.golf-banner.banner-bottom img { object-position: 50% 58%; }

/* gym page: split hero, gym-bag intro, two stool photos */
.hero-split-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.hero-split h1 { font-size: clamp(3rem, 9vw, 7.6rem); }
.hero-split .hero-kicker { color: #fff; }
.hero-split-photo { margin: 0; }
.hero-split-photo img { display: block; width: 100%; height: auto; max-height: 78svh; object-fit: cover; border-radius: 6px; }
.gym-intro-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.gym-intro-photo { margin: 0; }
.gym-intro-photo img { display: block; width: 100%; height: auto; border-radius: 6px; }
.gym-intro-copy h2 { font-size: clamp(2rem, 4.4vw, 3.6rem); }
.gym-intro-copy > p { margin-top: 16px; font-size: clamp(1.1rem, 2vw, 1.3rem); line-height: 1.5; max-width: 38rem; }
.gym-intro + #styles { padding-top: var(--sec-pad); }
.gym-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: clamp(28px, 4vw, 48px); }
.gym-duo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 6px; }
@media (max-width: 860px) {
  .hero-split-grid, .gym-intro-grid { grid-template-columns: 1fr; }
  .hero-split-photo img { max-height: none; aspect-ratio: 4 / 5; }
}
@media (max-width: 520px) { .gym-duo { gap: 10px; } }
.pin-gym { background-position: center 62%; }
.work-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.work-split-photo { margin: 0; }
.work-split-photo img { display: block; width: 100%; height: auto; border-radius: 6px; }
@media (max-width: 860px) { .work-split { grid-template-columns: 1fr; } }

/* gym page: red accent pulled from the photos, in place of teal */
body.theme-red { --mint: #c62828; --mint-ink: #ffffff; --mint-text: #b71c1c; --teal-deep: #8e1515; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) body.theme-red { --mint-text: #ef5350; } }
:root[data-theme="dark"] body.theme-red { --mint-text: #ef5350; }
.pin-gym::after { display: none; }
.gym-intro + #styles, .split-intro + #styles { padding-top: 0; }
.est .step:first-child { border-top: 0; padding-top: 0; }
.hero-kicker { text-wrap: balance; max-width: 22em; }

.founder .founder-lead { font: 700 clamp(1.5rem, 3vw, 2.2rem)/1.1 var(--display); text-transform: uppercase; color: var(--mint); letter-spacing: .02em; }

.top .nav a { font-size: 1.15rem; font-weight: 700; }
@media (max-width: 760px) { .top .nav a { font-size: 1rem; } }
