/* =========================================================================
   V'DURA JAY — STRATEGIC VENTURE ARCHITECT
   Reference stylesheet (design-accurate static build)
   Token values here map 1:1 to the Elementor Global Colors / Fonts in
   build-kit/DESIGN-SYSTEM.md
   ========================================================================= */

/* ---------- Fonts ---------------------------------------------------------
   Loaded via Google Fonts <link> in each page's <head> — all three are Google
   fonts, so no upload/licensing is needed:
     • Arimo               — headers + all-caps sub copy (labels/eyebrows)
     • DM Sans             — body copy   (the comp uses Untitled Sans; DM Sans is the web font)
     • Cormorant Garamond  — stat numbers + the one centred serif heading
   Per the designer (Ryan): Myriad Pro is NOT used anywhere. ------------------ */

/* ---------- Design tokens ----------------------------------------------- */
:root {
  /* Colour */
  --c-ink:          #161311;   /* near-black warm — dark sections, headings on light */
  --c-dark:         #2c2521;   /* footer / softer dark */
  --c-text:         #141210;   /* body text on light — near-black, matches the design */
  --c-muted:        #6f675e;   /* captions / secondary */
  --c-cream:        #f6f1e7;   /* primary section background */
  --c-paper:        #ffffff;   /* white sections */
  --c-accent:       #de9337;   /* amber accent */
  --c-accent-deep:  #b56a2e;   /* rust — gradient base / hover */
  --c-line:         rgba(20, 17, 15, 0.22);   /* hairlines / inputs on light */
  --c-line-dark:    rgba(246, 241, 231, 0.28);/* hairlines on dark */
  --c-cream-soft:   rgba(246, 241, 231, 0.72);/* dimmed text on dark */

  /* Type families (all Google fonts) — per designer: Arimo for body + headers
     (headers in medium/500), Cormorant for numbers + special headers. */
  --f-display: "Arimo", Arial, system-ui, -apple-system, sans-serif;     /* headers + all-caps labels */
  --f-serif:   "Cormorant Garamond", Georgia, "Times New Roman", serif;  /* stat numbers + centred serif heading */
  --f-body:    "Arimo", Arial, system-ui, -apple-system, sans-serif;     /* body copy */

  /* Type scale (fluid) */
  --t-h1:    clamp(3rem, 2rem + 3vw, 4.5rem);            /* hero        48 → 72 (+50% per Ryan) */
  --t-h2:    clamp(1.75rem, 1.2rem + 2.4vw, 2.6rem);   /* section     28 → 42 */
  --t-h3:    clamp(1.25rem, 1.05rem + 0.9vw, 1.6rem);  /* sub         20 → 26 */
  --t-stat:  clamp(2.75rem, 1.8rem + 4.6vw, 4.5rem);   /* big numbers 44 → 72 */
  --t-body:  1.0625rem;                                /* 17px        */
  --t-small: 0.9375rem;                                /* 15px        */
  --t-label: 0.75rem;                                  /* 12px eyebrow*/

  /* Rhythm */
  --section-y: clamp(4rem, 2.5rem + 6vw, 8.25rem);
  --gutter:    clamp(1.25rem, 9vw, 10rem);    /* ~9% side margins (per Ryan's margin guide) */
  --maxw:      1720px;
  --content:   640px;        /* readable text column */
}

/* ---------- Reset / base ------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--f-body);
  font-size: var(--t-body);
  line-height: 1.68;
  color: var(--c-text);
  background: var(--c-paper);
  text-rendering: optimizeLegibility;
  /* Untitled Sans / Myriad Pro ship a single (regular) weight — never let the
     browser fake a heavier weight; fall to the nearest real face instead. */
  font-synthesis: none;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }

/* ---------- Layout helpers --------------------------------------------- */
.wrap {
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.section { padding-block: var(--section-y); }
.bg-cream { background: var(--c-cream); }
.bg-paper { background: var(--c-paper); }
.bg-ink   { background: var(--c-ink);  color: var(--c-cream); }

.measure { max-width: var(--content); }

/* design-faithful line breaks: forced on desktop, removed on small screens */
br.brk { display: inline; }
@media (max-width: 768px) { br.brk { display: none; } }

/* ---------- Typography components -------------------------------------- */
.eyebrow {
  font-family: var(--f-body);
  font-weight: 500;
  font-size: var(--t-label);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-text);
  margin: 0 0 1.6rem;
}
.bg-ink .eyebrow, .footer .eyebrow { color: var(--c-cream-soft); }

h1, h2, h3 { font-weight: 400; margin: 0; }
.h1 {
  font-family: var(--f-display);
  font-size: var(--t-h1);
  line-height: 1.06;
  letter-spacing: -0.018em;
  font-weight: 500;                 /* Arimo Medium for headers (per designer) */
}
.h2 {
  font-family: var(--f-display);
  font-size: var(--t-h2);
  line-height: 1.16;
  letter-spacing: -0.012em;
  font-weight: 500;                 /* Arimo Medium */
}
.h2--serif {
  font-family: var(--f-serif);
  font-weight: 500;
  letter-spacing: 0;
  font-size: clamp(2rem, 1.3rem + 3vw, 3.1rem);
  line-height: 1.12;
}
.lead { font-size: 1.125rem; line-height: 1.6; }

/* ---------- Buttons / links -------------------------------------------- */
.link-underline {
  display: inline-block;
  font-family: var(--f-body);
  font-weight: 500;
  font-size: var(--t-label);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid currentColor;
  transition: color 0.25s, border-color 0.25s, gap 0.25s;
}
.link-underline:hover { color: var(--c-accent); border-color: var(--c-accent); }
.bg-ink .link-underline:hover { color: var(--c-accent); border-color: var(--c-accent); }
/* reset UA chrome when the underline link is a <button> */
button.link-underline {
  background: none;
  border: 0;
  border-bottom: 1px solid currentColor;
  padding: 0 0 0.5rem;
  cursor: pointer;
}

/* ============================ HEADER / NAV ============================== */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  color: var(--c-cream);
  transition: background-color .35s ease, box-shadow .35s ease;
}
.site-header .wrap {
  display: flex;
  align-items: center;                 /* logo + menu share one centred line */
  justify-content: space-between;
  padding-block: clamp(1.4rem, 1rem + 1.3vw, 2.1rem);
  transition: padding .35s ease;
}
/* solid, condensed state once scrolled off the hero */
.site-header.is-scrolled {
  background-color: rgba(22, 19, 17, 0.92);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 1px 0 rgba(246, 241, 231, 0.08);
}
.site-header.is-scrolled .wrap { padding-block: 0.85rem; }

.brand {
  font-family: var(--f-body);
  font-weight: 400;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-cream);
  line-height: 1;
  display: inline-flex; align-items: center;
}
.brand__logo { height: clamp(34px, 3.4vw, 46px); width: auto; display: block; }
.site-header.is-scrolled .brand__logo { height: clamp(30px, 2.8vw, 38px); }  /* shrink slightly when sticky */
.nav {
  display: flex; align-items: center; gap: clamp(1.5rem, 3vw, 3rem);
  transform: translateY(-3px);   /* sit the nav baseline on the VIDURA JAY baseline (the wordmark's bottom line, per Ryan) */
}
.nav a {
  font-family: var(--f-display); font-weight: 400;
  font-size: var(--t-small);
  text-transform: uppercase; letter-spacing: 0.08em;   /* match the footer links (per Ryan) */
  color: var(--c-cream);
  opacity: 0.9;
  line-height: 1;
  transition: opacity 0.2s, color 0.2s;
}
.nav a:hover { color: var(--c-accent); opacity: 1; }
.nav a.is-active { color: var(--c-accent); opacity: 1; }   /* current page */

/* hamburger toggle */
.nav__toggle {
  width: 30px; height: 16px; position: relative; background: none; border: 0;
  cursor: pointer; padding: 0; margin-left: 0.25rem; flex: none;
}
.nav__toggle-bars,
.nav__toggle-bars::before,
.nav__toggle-bars::after {
  content: ""; position: absolute; left: 0; right: 0; height: 1.5px;
  background: var(--c-cream);
  transition: transform .3s ease, opacity .2s ease, background-color .2s ease;
}
.nav__toggle-bars { top: 50%; transform: translateY(-50%); }
.nav__toggle-bars::before { top: -6px; }
.nav__toggle-bars::after  { top: 6px; }
.nav__toggle[aria-expanded="true"] .nav__toggle-bars { background: transparent; }
.nav__toggle[aria-expanded="true"] .nav__toggle-bars::before { top: 0; transform: rotate(45deg); }
.nav__toggle[aria-expanded="true"] .nav__toggle-bars::after  { top: 0; transform: rotate(-45deg); }

/* slide-in drawer menu */
.drawer {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 60;
  width: min(440px, 88vw);
  background: var(--c-ink); color: var(--c-cream);
  padding: clamp(5rem, 12vh, 7.5rem) clamp(2rem, 5vw, 4rem) 3rem;
  transform: translateX(100%);
  transition: transform .4s cubic-bezier(.4, 0, .2, 1);
  display: flex; flex-direction: column;
}
.drawer.is-open { transform: translateX(0); }
.drawer__nav { display: flex; flex-direction: column; gap: 1.4rem; }
.drawer__nav a {
  font-family: var(--f-display); font-weight: 400;
  font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2rem);
  color: var(--c-cream); letter-spacing: -0.01em; transition: color .2s;
}
.drawer__nav a:hover { color: var(--c-accent); }
.drawer__nav a.is-active { color: var(--c-accent); }   /* current page */
.drawer__meta {
  margin-top: auto; padding-top: 2rem; color: var(--c-cream-soft);
  font-size: var(--t-small);
}
.drawer__close {
  position: absolute; top: 1.5rem; right: clamp(1.6rem, 4vw, 3rem);
  width: 36px; height: 36px; background: none; border: 0; cursor: pointer;
  color: var(--c-cream); font-size: 1.7rem; line-height: 1; transition: color .2s;
}
.drawer__close:hover { color: var(--c-accent); }
.drawer__scrim {
  position: fixed; inset: 0; z-index: 55;
  background: rgba(10, 8, 7, 0.55);
  opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility .35s ease;
}
.drawer__scrim.is-open { opacity: 1; visibility: visible; }
body.no-scroll { overflow: hidden; }

/* ============================ HERO ===================================== */
.hero {
  position: relative;
  min-height: clamp(560px, 80vh, 780px);
  display: flex;
  align-items: center;              /* vertically centred, then biased ~15% lower via padding */
  color: var(--c-cream);
  overflow: hidden;
  background: var(--c-ink);
  padding-top: clamp(8rem, 22vh, 14rem);       /* heavier TOP padding pushes the text ~15% lower */
  padding-bottom: clamp(3rem, 7vh, 5rem);
}
.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__media img {
  width: 100%; height: 100%; object-fit: cover; object-position: 72% 30%;
}
/* Ryan's amber texture overlay — a "true" overlay blended onto the photo (lighten) */
.hero__overlay {
  position: absolute; inset: 0; object-position: center bottom;
  mix-blend-mode: lighten; pointer-events: none; z-index: 1;
}
/* dark wash on the left for legibility (amber glow now comes from .hero__overlay) */
.hero__media::after {
  content: ""; position: absolute; inset: 0; z-index: 2;
  background:
    linear-gradient(90deg, rgba(22,19,17,0.92) 0%, rgba(22,19,17,0.78) 32%, rgba(22,19,17,0.32) 58%, rgba(22,19,17,0.15) 100%);
}
.hero__inner {
  position: relative; z-index: 2;
  width: 100%;
}
.hero .eyebrow { color: var(--c-cream-soft); }
.hero__title { max-width: 13em; margin-bottom: 1.3rem; }
.hero__sub {
  max-width: 38ch; color: var(--c-cream-soft);
  font-size: var(--t-small); line-height: 1.6; margin-bottom: 2.2rem;
}
.hero__cta { color: var(--c-cream); }

/* centered hero variant — temporary "coming soon" landing pages (Mastermind / Courses) */
.hero--center { align-items: center; text-align: center; padding-top: clamp(6rem, 16vh, 10rem); }
.hero--center .hero__title { max-width: 20em; margin-inline: auto; }
.hero--center .hero__sub { margin-inline: auto; }
.hero--center .eyebrow { color: var(--c-cream-soft); }

/* decorative brand icon (top-right of hero) — Ryan's real VJ diamond, white PNG at 15% */
.hero__mark {
  position: absolute; z-index: 1; top: clamp(3rem, 9vh, 6.5rem); right: clamp(-1rem, 0vw, 1.5rem);
  width: clamp(190px, 28vw, 400px); height: auto; opacity: 0.15;
  display: block; pointer-events: none;
}

/* ============================ STATS ==================================== */
.stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  margin-top: clamp(2.5rem, 4vw, 4rem);
}
.stat__num {
  font-family: var(--f-serif); font-weight: 500;
  font-size: var(--t-stat); line-height: 1; letter-spacing: -0.01em;
  color: var(--c-ink); margin-bottom: 0.9rem;
  font-variant-numeric: lining-nums;   /* design uses lining figures, not Cormorant's default old-style */
  font-feature-settings: "lnum" 1;
}
.stat__label {
  font-size: var(--t-label); letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 500; color: var(--c-text); line-height: 1.5;
}

/* ============================ SPLIT / TEXT BLOCKS ====================== */
.eyebrow + .h2, .eyebrow + .h2--serif { margin-bottom: 1.8rem; }
/* the Why + "Selective by design" copy runs in a wide single column, as in the design */
.block__body { max-width: 65rem; color: var(--c-text); }
.block__body p + p { margin-top: 1.6rem; }

/* Approach (3 numbered principles) */
.principles {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(2rem, 4vw, 4rem); margin-top: clamp(2.5rem, 4vw, 4rem);
}
.principle__num {
  font-size: var(--t-small); color: var(--c-muted); margin-bottom: 1.4rem;
}
.principle__title {
  font-size: var(--t-label); letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 500; line-height: 1.6; margin-bottom: 1.1rem;
}
.principle__body { font-size: var(--t-body); line-height: 1.6; color: var(--c-text); }

/* centred section heading (Jay's Approach) */
.center { text-align: center; }
.center .eyebrow { color: var(--c-muted); }
.center .measure { margin-inline: auto; }

/* ============================ ENDORSEMENTS ============================= */
.endorse {
  display: grid; grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(2rem, 5vw, 5rem); align-items: start;
  margin-top: clamp(2.5rem, 4vw, 3.5rem);
}
.endorse__img {
  aspect-ratio: 1 / 1; object-fit: cover; width: 100%;
}
.endorse__quote { position: relative; }
.endorse__mark {
  display: block; width: 52px; height: auto; margin: 0 0 1.6rem;
}
.endorse__text {
  font-family: var(--f-body); font-style: italic; font-weight: 400;
  font-size: 0.95rem; line-height: 1.55; color: var(--c-text);
  max-width: 33rem;                       /* match the design's narrower quote measure */
  text-align: justify; hyphens: auto;     /* design justifies the quote with hyphenation */
}
.endorse__text p + p { margin-top: 1.2em; }
/* carousel fade between testimonials */
.endorse__text, .endorse__cite { transition: opacity .25s ease; }
.endorse__quote.is-fading .endorse__text,
.endorse__quote.is-fading .endorse__cite { opacity: 0; }
.endorse__cite {
  margin-top: 1.5rem; max-width: 33rem;
  font-family: var(--f-body); font-size: var(--t-label);
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-muted);
}
.endorse__nav {
  margin-top: 2.75rem; display: flex; gap: 2rem; align-items: center;
  color: var(--c-ink);
}
.endorse__nav button {
  background: none; border: 0; cursor: pointer; color: inherit; padding: 0;
  line-height: 1; transition: color 0.2s; display: inline-flex;
}
.endorse__nav svg {
  width: 52px; height: 12px; display: block;
  fill: none; stroke: currentColor; stroke-width: 1; vector-effect: non-scaling-stroke;
}
.endorse__nav button:hover { color: var(--c-accent); }

/* ============================ REAL WORLD RESULTS ====================== */
.results {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(2.75rem, 4vw, 4.5rem) clamp(2rem, 5vw, 6rem);
  margin-top: clamp(3rem, 5vw, 5rem);
  transition: opacity 0.22s ease;
}
.results.is-fading { opacity: 0; }   /* brief fade while the arrow swaps in the next set */
.result { border-left: 1px solid var(--c-line); padding-left: clamp(1.5rem, 2vw, 2.25rem); }
.result__title {
  font-family: var(--f-display); font-weight: 500;
  font-size: 0.8125rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--c-ink); margin: 0 0 1.1rem; line-height: 1.4;
}
.result__body { font-size: var(--t-body); line-height: 1.6; color: var(--c-text); max-width: 42ch; }
.results__nav { margin-top: clamp(2.5rem, 4vw, 4rem); display: flex; justify-content: flex-end; }
.results__nav button { background: none; border: 0; cursor: pointer; color: var(--c-muted); padding: 0; }
.results__nav svg { width: 56px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1; display: block; }
.results__nav button:hover { color: var(--c-accent); }

/* ============================ FORM ===================================== */
.form { margin-top: clamp(2rem, 3vw, 3rem); max-width: 760px; }
.form__row {
  display: grid; grid-template-columns: 130px 1fr; align-items: center;
  gap: 1.5rem; margin-bottom: 1.4rem;
}
.form__row--top { align-items: start; }
.form__row label {
  font-size: var(--t-label); letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 500; color: var(--c-text);
}
.form input, .form textarea {
  width: 100%; font-family: var(--f-body); font-size: var(--t-small);
  color: var(--c-text); background: transparent;
  border: 1px solid var(--c-line); padding: 0.7rem 0.85rem;
  border-radius: 0; transition: border-color 0.2s;
}
.form textarea { min-height: 150px; resize: vertical; }
.form input:focus, .form textarea:focus { outline: none; border-color: var(--c-accent); }
.form__actions { display: flex; justify-content: flex-end; margin-top: 1.8rem; }
.form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }   /* honeypot */
.form__done { font-size: var(--t-body); line-height: 1.6; color: var(--c-ink); }
.form__error { margin-top: 1rem; font-size: var(--t-small); color: var(--c-rust, #B56A2E); }

/* ============================ FOOTER =================================== */
.footer { background: var(--c-dark); color: var(--c-cream); }
.footer .wrap { padding-block: clamp(3.5rem, 5vw, 6rem) clamp(1.5rem, 2.5vw, 2.25rem); }
.footer__top {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2.5rem;
  padding-bottom: 3rem; border-bottom: 1px solid var(--c-line-dark);
}
.footer__brand {
  font-family: var(--f-body); font-weight: 500; font-size: 0.78rem;
  letter-spacing: 0.22em; text-transform: uppercase; margin-bottom: 1.2rem;
}
.footer__logo { width: clamp(190px, 20vw, 250px); height: auto; margin-bottom: 1.4rem; }
.footer__tag { color: var(--c-cream-soft); font-size: var(--t-small); max-width: 34ch; }
.footer__col h4 {
  font-size: var(--t-label); letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 500; color: var(--c-cream-soft); margin: 0 0 1.1rem;
}
.footer__col a {
  display: block; font-size: var(--t-small); padding: 0.32rem 0;
  color: var(--c-cream); opacity: 0.9; transition: color 0.2s, opacity 0.2s;
  text-transform: uppercase; letter-spacing: 0.08em;   /* ALL CAPS (per Ryan) */
}
.footer__col a:hover { color: var(--c-accent); opacity: 1; }
.footer__bottom {
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 1rem; padding-top: 2rem;
  font-size: var(--t-small); color: var(--c-cream-soft);
}

/* ===================== ABOUT — bio intro + imagery ==================== */
/* intro: text left, portrait right (Round: more imagery per Ryan's comp) */
.about-bio__grid {
  display: grid; grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(2.5rem, 5vw, 5.5rem); align-items: center;
}
.about-bio__media picture { display: block; }
.about-bio__media img { display: block; width: 100%; height: auto; }
/* bio continuation on dark */
.about-bio2__body { max-width: 60rem; margin-inline: auto; font-size: var(--t-body); line-height: 1.68; }
.about-bio2__body p { color: var(--c-cream); }
.about-bio2__body p + p { margin-top: 1.15rem; }
/* full-width imagery band */
.about-figure { line-height: 0; background: var(--c-ink); }
.about-figure img { display: block; width: 100%; height: clamp(340px, 46vw, 640px); object-fit: cover; object-position: 50% 46%; }

@media (max-width: 768px) {
  .about-bio__grid { grid-template-columns: 1fr; gap: clamp(1.75rem, 6vw, 2.5rem); }
  .about-figure img { height: clamp(320px, 92vw, 480px); }
}

/* ============================ PRELOADER ================================ */
.preloader {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center;
  background: var(--c-ink);
  transition: opacity .6s ease, visibility .6s ease;
}
.preloader.is-done { opacity: 0; visibility: hidden; }
.preloader__mark {
  width: 66px; height: auto; fill: none; stroke: var(--c-accent);
  stroke-width: 1.4; stroke-linejoin: round; opacity: .9;
  animation: sva-pulse 1.5s ease-in-out infinite;
}
@keyframes sva-pulse {
  0%, 100% { opacity: .35; transform: scale(.95); }
  50%      { opacity: 1;   transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) { .preloader__mark { animation: none; } }

/* ============================ 404 ===================================== */
.error-page {
  min-height: 80vh; display: flex; align-items: center;
  background: var(--c-ink); color: var(--c-cream); text-align: center;
}
.error-page .wrap { width: 100%; }
.error-page .eyebrow { color: var(--c-accent); }
.error-page .h2 { color: var(--c-cream); margin: 0 auto 1.2rem; }
.error-page p { color: var(--c-cream-soft); max-width: 42ch; margin: 0 auto 2.2rem; }
.error-page .link-underline { color: var(--c-cream); }

/* ============================ RESPONSIVE =============================== */
@media (max-width: 880px) {
  .stats { grid-template-columns: 1fr; gap: 2rem; }
  .principles { grid-template-columns: 1fr; gap: 2.25rem; }
  .results { grid-template-columns: 1fr; gap: 2.5rem; }
  .endorse { grid-template-columns: 1fr; }
  .footer__top { grid-template-columns: 1fr 1fr; }
  .nav a:not(.nav__cta) { display: none; }   /* collapse to burger on mobile */
}
@media (max-width: 768px) {
  /* on phones the centred hero text overlaps the portrait's face — drop it to the
     bottom and darken the lower portion so it stays clear and readable */
  .hero {
    align-items: flex-end;
    padding-top: clamp(4.5rem, 12vh, 7rem);
    padding-bottom: clamp(2rem, 5vh, 3.25rem);
  }
  .hero__media::after {
    background:
      linear-gradient(0deg, rgba(20,17,15,0.9) 0%, rgba(20,17,15,0.7) 24%, rgba(20,17,15,0.25) 52%, rgba(20,17,15,0.42) 100%);
  }
}
@media (max-width: 560px) {
  .form__row { grid-template-columns: 1fr; gap: 0.5rem; align-items: start; }
  .footer__top { grid-template-columns: 1fr; gap: 2rem; }
  .footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* ---------- Font roles (per designer) ----------------------------------
   Headers already use --f-display (Arimo). The all-caps sub copy + UI chrome
   use it too. Body paragraphs + the testimonial quote stay on --f-body (DM Sans). */
.eyebrow,
.brand,
.nav a,
.link-underline,
.stat__label,
.principle__title,
.form__row label,
.endorse__cite,
.footer__brand,
.footer__col h4 {
  font-family: var(--f-display);
}

/* ============================ INDEX / LINKS PAGE ======================
   Business-card landing (/links): dark photo band with the centred wordmark,
   a light panel notched up into the photo holding the VJ icon, then a
   centred intro line and a stack of underlined links. */
.idx-body { background: var(--c-cream); }

.idx-hero {
  --idx-tab-h: clamp(46px, 6vw, 82px);
  position: relative; overflow: hidden; background: var(--c-ink);
  /* height scales with width so the photo band stays ~2:1 and never zooms onto the face */
  min-height: clamp(460px, 48vw, 760px);
  display: flex; align-items: flex-start; justify-content: center;
  padding-top: clamp(2.5rem, 6vh, 4.75rem);
  padding-bottom: var(--idx-tab-h);
}
.idx-hero__media { position: absolute; inset: 0; z-index: 0; }
.idx-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0%; }
/* Ryan's amber texture overlay, blended onto the photo (lighten) */
.idx-hero__overlay {
  position: absolute; inset: 0; object-position: center bottom;
  mix-blend-mode: lighten; pointer-events: none; z-index: 1;
}
/* darken the top for the wordmark (amber glow now comes from .idx-hero__overlay) */
.idx-hero__media::after {
  content: ""; position: absolute; inset: 0; z-index: 2;
  background:
    linear-gradient(180deg, rgba(22,19,17,0.88) 0%, rgba(22,19,17,0.45) 24%, rgba(22,19,17,0.10) 48%, rgba(22,19,17,0.20) 100%);
}
.idx-hero__mark {
  position: absolute; z-index: 1; top: clamp(1.5rem, 5vh, 4rem); right: clamp(-1.5rem, -1vw, 0.5rem);
  width: clamp(150px, 22vw, 300px); height: auto; opacity: 0.12; pointer-events: none;
}
.idx-hero__menu {
  position: absolute; z-index: 5;
  top: clamp(1.4rem, 3vw, 2.3rem); right: clamp(1.25rem, 5vw, 3.5rem);
}
.idx-hero__brand { position: relative; z-index: 2; width: 100%; text-align: center; }
.idx-hero__wordmark { width: clamp(280px, 54vw, 700px); height: auto; display: inline-block; }

/* light panel, notched up into the photo with a centred tab */
.idx-panel {
  position: relative; z-index: 2;
  background: var(--c-cream);
  margin-top: calc(-1 * var(--idx-tab-h, 70px));
  padding-top: calc(var(--idx-tab-h, 70px) + clamp(1.5rem, 4vw, 3rem));
  padding-bottom: clamp(4rem, 10vw, 8.5rem);
  padding-inline: var(--gutter);
  text-align: center;
  clip-path: polygon(
    0 var(--idx-tab-h, 70px), 34% var(--idx-tab-h, 70px), 40% 0, 60% 0, 66% var(--idx-tab-h, 70px), 100% var(--idx-tab-h, 70px),
    100% 100%, 0 100%
  );
}
.idx-panel { --idx-tab-h: clamp(46px, 6vw, 82px); }
.idx-panel__icon {
  width: clamp(58px, 7vw, 80px); height: auto; display: block;
  margin: 0 auto clamp(1.5rem, 3.5vw, 2.4rem);
}
.idx-panel__intro {
  max-width: 32rem; margin: 0 auto clamp(2.75rem, 6vw, 4.75rem);
  font-size: var(--t-body); line-height: 1.6; color: var(--c-ink);
}
.idx-links { display: flex; flex-direction: column; align-items: center; gap: clamp(2rem, 4.5vw, 3.4rem); }
.idx-links .link-underline { color: var(--c-ink); }
.idx-links .link-underline:hover { color: var(--c-accent); border-color: var(--c-accent); }

@media (max-width: 768px) {
  .idx-hero {
    min-height: clamp(440px, 70vh, 680px);
    padding-top: clamp(2rem, 5vh, 3.5rem);
  }
  .idx-hero__media img { object-position: 58% 22%; }
  /* wider tab on narrow screens, matching the responsive comp */
  .idx-panel {
    clip-path: polygon(
      0 var(--idx-tab-h, 64px), 26% var(--idx-tab-h, 64px), 34% 0, 66% 0, 74% var(--idx-tab-h, 64px), 100% var(--idx-tab-h, 64px),
      100% 100%, 0 100%
    );
  }
}
