/* Angela Hucker site v3 - glossy black base + body sections */
:root {
  --ink: #141516;
  --ink-deep: #0b0c0d;
  --paper: #F1EFEB;
  --paper-dim: rgba(241, 239, 235, 0.62);
  --gold: #C9A227;
  --gold-deep: #9E7D1F;
  --gold-bright: #E2BC4D;
  --gold-tint: #F5EFDA;
  --line: rgba(241, 239, 235, 0.14);
  --serif: "Fraunces", Georgia, serif;
  --sans: "Inter", -apple-system, sans-serif;
  --gutter: clamp(20px, 5vw, 72px);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--paper); font: 400 16px/1.6 var(--sans); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

/* Glossy-black band treatment (from site/ .darkband, proven LP language) */
.band { position: relative; isolation: isolate; overflow: hidden; background: var(--ink); }
.band::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(60% 80% at 85% 0%, rgba(201, 162, 39, 0.20), transparent 60%),
    radial-gradient(50% 60% at 0% 100%, rgba(158, 125, 31, 0.16), transparent 60%);
}
.band--deep { background: var(--ink-deep); }
.container { max-width: none; margin: 0; padding: 0 var(--gutter); }
.kicker { margin: 0 0 14px; color: var(--gold-bright); font: 600 11px var(--sans); letter-spacing: 0.24em; text-transform: uppercase; }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } html { scroll-behavior: auto; } }

/* ---- paper sections (light glass contrast bands) ---- */
.band--paper { background: linear-gradient(155deg, #F7F2E2 0%, #F1EFEB 42%, #E9E2CF 100%); color: var(--ink); }
.band--paper::before {
  background:
    radial-gradient(55% 70% at 90% 0%, rgba(255, 255, 255, 0.75), transparent 60%),
    radial-gradient(45% 55% at 0% 100%, rgba(201, 162, 39, 0.14), transparent 60%);
}
.band--paper h2, .band--paper h3 { color: var(--ink); }
.band--paper.section > .container p, .band--paper .section p, .band--paper .section-intro { color: rgba(20, 21, 22, 0.72); }
.band--paper .kicker { color: var(--gold-deep); }
.band--paper .text-link { color: var(--gold-deep); }
.band--paper .text-link:hover { color: #6e5511; }
.band--paper .faq-list { border-top-color: rgba(20, 21, 22, 0.16); }
.band--paper .faq-item { border-bottom-color: rgba(20, 21, 22, 0.16); }
.band--paper .faq-q { color: var(--ink); }
.band--paper .faq-q i::before, .band--paper .faq-q i::after { background: var(--gold-deep); }
@media (hover: hover) and (pointer: fine) { .band--paper .faq-q:hover span { color: var(--gold-deep); } }
.band--paper .faq-a p { color: rgba(20, 21, 22, 0.72); }
.band--paper .tick-leaves { color: var(--ink); }
.band--paper .tick-list li { color: rgba(20, 21, 22, 0.75); }
.band--paper .tick-list li::before { background: var(--gold-deep); }
.band--paper .tick-meta { color: rgba(20, 21, 22, 0.52); }

/* ---- sections ---- */
.section { padding: clamp(72px, 11vw, 130px) 0; }
h2 { margin: 0 0 22px; font: 400 clamp(30px, 4vw, 46px)/1.15 var(--serif); letter-spacing: -0.01em; color: var(--paper); }
.section p { max-width: 56ch; color: var(--paper-dim); }
.split { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: clamp(32px, 6vw, 84px); align-items: center; }
.split--story { grid-template-columns: 0.95fr 1.05fr; }
.portrait img { border-radius: 6px; border: 1px solid var(--line); }
.text-link { display: inline-block; margin-top: 10px; color: var(--gold-bright); font: 600 12px var(--sans); letter-spacing: 0.12em; text-transform: uppercase; }
.text-link:hover { color: var(--gold-tint); }

/* ---- keynotes: topic index ---- */
.section-intro { max-width: 46ch; margin-top: -6px; }
.topic-list { list-style: none; margin: clamp(40px, 6vw, 64px) 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(32px, 5vw, 76px); }
.topic { display: flex; gap: 22px; align-items: baseline; padding: clamp(18px, 2.4vw, 26px) 0; border-bottom: 1px solid rgba(20, 21, 22, 0.16); }
.topic:nth-child(-n+2) { border-top: 1px solid rgba(20, 21, 22, 0.16); }
.topic-index { flex: 0 0 auto; font: 300 clamp(26px, 2.8vw, 38px)/1 var(--serif); color: var(--gold); }
.topic h3 { margin: 0 0 6px; font: 500 clamp(20px, 2.2vw, 28px)/1.2 var(--serif); color: var(--ink); }
.topic p { margin: 0; color: rgba(20, 21, 22, 0.68); font-size: 15px; }
.topic-cta { margin-top: 8px; font-size: 11px; }

/* ---- tick lists (workshop formats) ---- */
.tick-leaves { margin: 20px 0 6px; color: var(--paper); font: 600 11px var(--sans); letter-spacing: 0.2em; text-transform: uppercase; }
.tick-list { margin: 0 0 18px; padding: 0; list-style: none; }
.tick-list li { position: relative; padding: 7px 0 7px 26px; color: var(--paper-dim); font-size: 15px; }
.tick-list li::before { content: ""; position: absolute; left: 2px; top: 15px; width: 12px; height: 1px; background: var(--gold); }
.tick-list li strong { color: var(--paper); font-weight: 600; }
.band--paper .tick-list li strong { color: var(--ink); }
/* workshop formats: a gold triangle marker instead of the dash */
.ah-workshops .tick-list li::before { top: 10px; width: 0; height: 0; background: none; border-left: 7px solid var(--gold); border-top: 4px solid transparent; border-bottom: 4px solid transparent; }
.ah-workshops .tick-list li:hover::before { width: 0; background: none; border-left-color: var(--gold-bright); }
.tick-meta { margin: 0 0 4px; color: rgba(241, 239, 235, 0.48); font: 500 11.5px var(--sans); letter-spacing: 0.12em; text-transform: uppercase; }
.tick-meta span { white-space: nowrap; }

/* ---- on Angela's desk (reading) ---- */
.split--book { grid-template-columns: 0.7fr 1.3fr; }
.book-fig { margin: 0; justify-self: center; }
.book-fig img { width: min(280px, 100%); border-radius: 4px; border: 1px solid var(--line); box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5), 0 4px 12px rgba(0, 0, 0, 0.4); transform: rotate(-2deg); }
.book-cite { margin: 0 0 18px; font: 500 clamp(19px, 2vw, 24px)/1.3 var(--serif); color: var(--paper); }
.book-cite span { display: block; margin-top: 2px; color: var(--gold-bright); font: italic 400 0.72em var(--serif); }

/* ---- FAQ ---- */
.faq-list { margin-top: clamp(28px, 4vw, 44px); border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-q { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; padding: 22px 4px; border: 0; background: none; color: var(--paper); font: 500 clamp(17px, 1.9vw, 21px)/1.35 var(--serif); text-align: left; cursor: pointer; }
.faq-q i { position: relative; flex: 0 0 14px; width: 14px; height: 14px; }
.faq-q i::before, .faq-q i::after { content: ""; position: absolute; left: 0; top: 6.5px; width: 14px; height: 1px; background: var(--gold-bright); transition: transform 0.35s; }
.faq-q i::after { transform: rotate(90deg); }
.faq-q[aria-expanded="true"] i::after { transform: rotate(0deg); }
@media (hover: hover) and (pointer: fine) { .faq-q:hover span { color: var(--gold-tint); } }
.faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.45s cubic-bezier(0.2, 0.7, 0.2, 1); }
.faq-a-inner { overflow: hidden; min-height: 0; }
.faq-a p { margin: 0; padding: 0 4px 24px; max-width: 62ch; color: var(--paper-dim); font-size: 15.5px; }
.faq-item:has(.faq-q[aria-expanded="true"]) .faq-a { grid-template-rows: 1fr; }

/* ---- booking CTA band (paper: white contrast, matching the gallery) ---- */
.book { position: relative; display: flex; align-items: center; min-height: 78vh; overflow: hidden; }
.book-video, .book-shade { display: none; }
.book-inner { position: relative; z-index: 2; padding-top: clamp(72px, 10vw, 120px); padding-bottom: clamp(72px, 10vw, 120px); }
.book-headline { margin: 0 0 20px; max-width: 11ch; font: 600 clamp(54px, 8.5vw, 130px)/1.02 var(--serif); letter-spacing: -0.02em; color: var(--ink); }
.book-sub { max-width: 46ch; color: rgba(20, 21, 22, 0.72); font-size: clamp(16px, 1.6vw, 19px); }
.book-actions { display: flex; flex-wrap: wrap; align-items: baseline; gap: 14px 36px; margin: 34px 0 0; }
.book-cta { color: var(--gold-deep); font: 600 clamp(21px, 2.6vw, 30px)/1.2 var(--serif); background-image: linear-gradient(var(--gold-deep), var(--gold-deep)); background-repeat: no-repeat; background-size: 0% 2px; background-position: 0 100%; transition: background-size 0.5s cubic-bezier(0.2, 0.7, 0.2, 1), color 0.3s; }
@media (hover: hover) and (pointer: fine) { .book-cta:hover { background-size: 100% 2px; color: #6e5511; } }
.book-tel { color: var(--ink); font: 400 clamp(17px, 2vw, 23px)/1.2 var(--serif); }
@media (hover: hover) and (pointer: fine) { .book-tel:hover { color: var(--gold-deep); } }
/* kinetic-light: cursor-reactive ink lines behind the copy */
.book-lines { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
/* gold sheen sweep across the headline words (Shiny Pill technique) */
.book-shine .wri {
  background-image: linear-gradient(100deg, var(--ink) 0%, var(--ink) 38%, var(--gold) 50%, var(--ink) 62%, var(--ink) 100%);
  background-size: 260% 100%; background-position: 150% 0;
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.book-shine.is-in .wri { animation: book-sheen 5.5s linear infinite; }
.book-shine .wr:nth-of-type(2) .wri { animation-delay: 0.13s; }
.book-shine .wr:nth-of-type(3) .wri { animation-delay: 0.26s; }
.book-shine .wr:nth-of-type(4) .wri { animation-delay: 0.39s; }
.book-shine .wr:nth-of-type(5) .wri { animation-delay: 0.52s; }
@keyframes book-sheen {
  0% { background-position: 150% 0; }
  32% { background-position: -90% 0; }
  100% { background-position: -90% 0; }
}
@media (prefers-reduced-motion: reduce) {
  .book-shine .wri { animation: none; background: none; -webkit-text-fill-color: var(--ink); color: var(--ink); }
}

/* ---- interior pages ---- */
.page-hero { position: relative; isolation: isolate; overflow: hidden; min-height: 60vh; padding: clamp(150px, 20vh, 200px) 0 clamp(52px, 8vw, 84px); }
.page-hero-bg { position: absolute; inset: 0; z-index: -2; }
.page-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 65% 24%; opacity: 0.92; }
.page-hero-scrim { position: absolute; inset: 0; z-index: -1; background:
  linear-gradient(90deg, rgba(8, 9, 10, 0.82) 0%, rgba(8, 9, 10, 0.5) 46%, rgba(8, 9, 10, 0.12) 100%),
  linear-gradient(0deg, rgba(8, 9, 10, 0.7), rgba(8, 9, 10, 0.05) 48%, rgba(8, 9, 10, 0.35)); }
.hero-haze { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.page-hero > .container { position: relative; z-index: 1; }
.page-hero .kicker { color: var(--gold-bright); }

/* logo marquee (trusted on stages) */
.logos { position: relative; overflow: hidden; margin-top: clamp(16px, 2vw, 26px); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.logos-track { display: flex; align-items: center; gap: clamp(44px, 6vw, 84px); width: max-content; animation: logos-scroll 46s linear infinite; }
.logos-track img { height: 30px; width: auto; opacity: 0.5; filter: brightness(0) invert(1); transition: opacity 0.3s; flex: 0 0 auto; }
.logos:hover .logos-track { animation-play-state: paused; }
.logos-track img:hover { opacity: 0.9; }
@keyframes logos-scroll { to { transform: translateX(-50%); } }
.band--paper .logos-track img { filter: brightness(0); opacity: 0.42; }
@media (prefers-reduced-motion: reduce) { .logos { -webkit-mask-image: none; mask-image: none; } .logos-track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; gap: clamp(28px, 4vw, 52px); } }
.logos-band { padding: clamp(26px, 3vw, 42px) 0; }
.logos-band .kicker { text-align: center; }

/* make pillars readable on a paper band, and topics readable on a dark band */
.band--paper .pillar { border-top-color: rgba(20, 21, 22, 0.16); }
.band--paper .pillar h3 { color: var(--ink); }
.band--paper .pillar p { color: rgba(20, 21, 22, 0.68); }
.band:not(.band--paper) .topic { border-color: var(--line); }
.band:not(.band--paper) .topic:nth-child(-n+2) { border-top-color: var(--line); }
.band:not(.band--paper) .topic h3 { color: var(--paper); }
.band:not(.band--paper) .topic p { color: var(--paper-dim); }
.band:not(.band--paper) .topic-index { color: var(--gold-bright); }
@media (hover: hover) and (pointer: fine) {
  .band:not(.band--paper) .topic:hover { background: rgba(201, 162, 39, 0.08); }
  .band:not(.band--paper) .topic:hover h3 { color: var(--gold-bright); }
}
/* entry-list readable on a dark band */
.band:not(.band--paper) .entry-list { border-top-color: var(--line); }
.band:not(.band--paper) .entry { border-bottom-color: var(--line); }
.band:not(.band--paper) .entry h3 { color: var(--paper); }
.band:not(.band--paper) .entry p { color: var(--paper-dim); }
.band:not(.band--paper) .entry-tag { color: var(--gold-bright); }
.band:not(.band--paper) .entry-link { color: var(--gold-bright); }
.band:not(.band--paper) .entry-link:hover { color: var(--gold-tint); }
@media (hover: hover) and (pointer: fine) {
  .band:not(.band--paper) .entry:hover { background: rgba(201, 162, 39, 0.06); }
}
/* interior CTA: kinetic sheen headline on a paper band */
.cta-slim.band--paper .book-headline { color: var(--ink); }
.cta-slim .book-actions { justify-content: center; }
.cta-slim h2 { margin-bottom: 24px; }

/* publications filter */
.pub-filter { display: flex; flex-wrap: wrap; gap: 10px; margin: clamp(30px, 4vw, 42px) 0 4px; }
.pub-chip { padding: 9px 20px; border-radius: 999px; border: 1px solid rgba(20, 21, 22, 0.2); background: none; color: rgba(20, 21, 22, 0.7); font: 600 11px var(--sans); letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; transition: border-color 0.3s, color 0.3s, background 0.3s; }
.pub-chip:hover { border-color: var(--gold-deep); color: var(--gold-deep); }
.pub-chip.is-active { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.entry.is-hidden { display: none; }
.entry.pub-in { animation: pub-in 0.45s cubic-bezier(0.22, 1, 0.36, 1); }
@keyframes pub-in { from { opacity: 0; transform: translateY(10px); } }
@media (prefers-reduced-motion: reduce) { .entry.pub-in { animation: none; } }
.page-hero h1 { margin: 0 0 18px; max-width: 16ch; font: 400 clamp(40px, 5.6vw, 72px)/1.05 var(--serif); letter-spacing: -0.015em; color: var(--paper); }
.page-hero p { max-width: 56ch; color: var(--paper-dim); font-size: clamp(16px, 1.6vw, 19px); }
.pillar-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 4vw, 56px); margin-top: clamp(36px, 5vw, 56px); }
.pillar { border-top: 1px solid var(--line); padding-top: 22px; }
.pillar-index { display: block; margin-bottom: 12px; font: 300 clamp(30px, 3.2vw, 44px)/1 var(--serif); color: var(--gold); }
.pillar h3 { margin: 0 0 10px; font: 500 clamp(19px, 2vw, 24px)/1.25 var(--serif); color: var(--paper); }
.pillar p { margin: 0; color: var(--paper-dim); font-size: 15px; }
.entry-list { margin: clamp(36px, 5vw, 56px) 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(20, 21, 22, 0.16); }
.entry { display: grid; grid-template-columns: 130px 1fr auto; gap: 18px; align-items: baseline; padding: 20px 0; border-bottom: 1px solid rgba(20, 21, 22, 0.16); }
.entry-tag { color: var(--gold-deep); font: 600 10px var(--sans); letter-spacing: 0.18em; text-transform: uppercase; }
.entry h3 { margin: 0 0 6px; font: 500 clamp(18px, 2vw, 24px)/1.25 var(--serif); color: var(--ink); }
.entry p { margin: 0; color: rgba(20, 21, 22, 0.68); font-size: 15px; }
.entry-link { color: var(--gold-deep); font: 600 11px var(--sans); letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; }
.entry-link:hover { color: #6e5511; }
.cta-slim { text-align: center; }
.cta-slim .book-actions { justify-content: center; }
@media (max-width: 860px) {
  .pillar-grid { grid-template-columns: 1fr; }
  .entry { grid-template-columns: 1fr; gap: 8px; }
}

/* ---- motion layer (v3.4 wow pass; JS-gated, reduced-motion safe) ---- */
/* scroll progress hairline */
.scroll-progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 400; pointer-events: none; background: linear-gradient(90deg, var(--gold), var(--gold-bright)); transform-origin: 0 50%; transform: scaleX(0); }
/* split-text 3D headline reveal */
.split-head { perspective: 700px; }
.split-head .w { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: 0.08em; margin-bottom: -0.08em; }
.split-head .wi { display: inline-block; transform: translateY(115%) rotateX(-78deg); transform-origin: 50% 100%; transition: transform 0.85s cubic-bezier(0.19, 0.66, 0.22, 1); will-change: transform; }
.split-head.is-in .wi { transform: translateY(0) rotateX(0deg); }
/* reveal upgrade: two-stage wipe + rise (text blocks only; media keeps soft fade) */
.reveal { transition: opacity 0.7s ease, transform 0.7s ease, clip-path 0.85s cubic-bezier(0.2, 0.7, 0.2, 1); }
.reveal:not(.portrait):not(.book-fig):not(.m-card):not(.ig-panel) { clip-path: inset(0 0 92% 0); }
.reveal.is-in:not(.portrait):not(.book-fig):not(.m-card):not(.ig-panel) { clip-path: inset(-8% 0 -12% 0); }
/* glow hovers */
@media (hover: hover) and (pointer: fine) {
  .tick-list li { transition: color 0.3s, padding-left 0.3s; }
  .tick-list li:hover { color: var(--paper); padding-left: 32px; }
  .tick-list li::before { transition: width 0.3s, background 0.3s; }
  .tick-list li:hover::before { width: 20px; background: var(--gold-bright); }
  .band--paper .tick-list li:hover { color: var(--ink); }
  .topic { transition: background 0.35s, padding-left 0.35s; }
  .topic:hover { background: rgba(201, 162, 39, 0.07); padding-left: 12px; }
  .topic h3 { transition: color 0.3s; }
  .topic:hover h3 { color: var(--gold-deep); }
  .faq-q span { transition: color 0.3s, transform 0.3s; display: inline-block; }
  .faq-q:hover span { transform: translateX(6px); }
  .entry { transition: background 0.35s, padding-left 0.35s; }
  .entry:hover { background: rgba(201, 162, 39, 0.06); padding-left: 12px; }
}
/* magnetic buttons (JS-driven transform) */
.magnetic { transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1), background-size 0.5s cubic-bezier(0.2, 0.7, 0.2, 1), color 0.3s; will-change: transform; }
@media (prefers-reduced-motion: reduce) {
  .split-head .wi { transform: none; transition: none; }
  .reveal:not(.portrait):not(.book-fig) { clip-path: none; }
  .reveal.is-in:not(.portrait):not(.book-fig) { clip-path: none; }
  .scroll-progress { display: none; }
}

/* ---- coverflow gallery (ported from OriginKit Coverflow Gallery) ---- */
/* Lives on a paper band for contrast against the near-black hero. */
.ah-gallery-head { text-align: center; }
.ah-gallery-head h2 { max-width: none; }
.ah-gallery em { font-style: italic; color: var(--gold-deep); }
.cf-stage {
  position: relative; width: 100%; height: clamp(360px, 50vh, 540px);
  margin-top: clamp(30px, 4vw, 52px);
  display: flex; align-items: center; justify-content: center;
  perspective: 1600px; overflow: hidden; outline: none;
}
.cf-track { position: relative; transform-style: preserve-3d; }
.cf-card {
  position: absolute; left: 50%; top: 50%; margin: 0;
  border-radius: 8px; overflow: hidden;
  transform-style: preserve-3d; transform-origin: center center;
  background: #1a1a1a; cursor: pointer; will-change: transform, opacity;
  box-shadow: 0 18px 44px rgba(20, 21, 22, 0.22);
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.6s ease;
}
.cf-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }
.cf-card.is-active { cursor: default; box-shadow: 0 0 0 2px var(--gold), 0 26px 64px rgba(20, 21, 22, 0.30); }
.cf-dim { position: absolute; inset: 0; background: #000; opacity: 0.5; pointer-events: none; transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1); }
.cf-card.is-active .cf-dim { opacity: 0; }
.cf-cap {
  position: absolute; left: 0; right: 0; bottom: 0; margin: 0;
  display: flex; align-items: baseline; gap: 12px; padding: 20px 22px;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.74) 0%, rgba(0, 0, 0, 0) 100%);
  opacity: 0; transition: opacity 0.5s ease; pointer-events: none;
}
.cf-card.is-active .cf-cap { opacity: 1; }
.cf-num { font: 300 clamp(20px, 2.4vw, 30px)/1 var(--serif); color: var(--gold-bright); }
.cf-label { font: 500 clamp(16px, 1.8vw, 21px)/1.1 var(--serif); color: var(--paper); letter-spacing: -0.01em; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.4); }
.cf-controls { display: flex; align-items: center; justify-content: center; gap: 22px; margin-top: clamp(26px, 3.5vw, 42px); }
.cf-arrow {
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(20, 21, 22, 0.2);
  background: rgba(20, 21, 22, 0.02); color: var(--ink); font-size: 18px;
  display: grid; place-items: center; cursor: pointer;
  transition: border-color 0.3s, color 0.3s, background 0.3s, transform 0.3s;
}
.cf-arrow:hover { border-color: var(--gold-deep); color: var(--gold-deep); background: rgba(201, 162, 39, 0.08); transform: translateY(-1px); }
.cf-dots { display: flex; gap: 9px; }
.cf-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(20, 21, 22, 0.22); cursor: pointer; transition: background 0.3s, transform 0.3s; }
.cf-dots button:hover { background: rgba(20, 21, 22, 0.45); }
.cf-dots button.is-active { background: var(--gold-deep); transform: scale(1.3); }

/* per-word scroll reveal (vanilla port of OriginKit Scroll Text Reveal:
   masked words rise + blur-in, staggered so the last lands at total time) */
.words-reveal .wr { display: inline-block; overflow: hidden; vertical-align: bottom; padding: 0.12em 0.06em; margin: -0.12em -0.06em; }
.words-reveal .wri {
  display: inline-block; transform: translateY(130%); filter: blur(10px);
  transition-property: transform, filter; transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  transition-duration: 0.5s; will-change: transform, filter;
}
.words-reveal.is-in .wri { transform: translateY(0); filter: blur(0); }

@media (prefers-reduced-motion: reduce) {
  .cf-card, .cf-dim, .cf-cap { transition: none; }
  .words-reveal .wri { transform: none; filter: none; transition: none; }
}

/* ---- workshops glitter background (vanilla port of OriginKit Glitter Wrap) ---- */
.ah-workshops { position: relative; }
.ws-glitter { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.ah-workshops > .container { position: relative; z-index: 1; }

/* ---- media button-carousel (vanilla port of OriginKit Button Carousel) ---- */
.bc { margin-top: clamp(32px, 4vw, 56px); display: flex; flex-direction: column; align-items: center; }
.bc-viewer { display: flex; flex-direction: column; align-items: center; text-align: center; }
.bc-frame { position: relative; width: min(480px, 86vw); aspect-ratio: 16 / 10; border-radius: 10px; overflow: hidden; background: #1a1a1a; box-shadow: 0 24px 60px rgba(20, 21, 22, 0.22); }
.bc-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bc-play { position: absolute; inset: 0; margin: auto; width: 62px; height: 62px; border-radius: 50%; background: rgba(255, 255, 255, 0.16); border: 1px solid rgba(255, 255, 255, 0.6); display: grid; place-items: center; pointer-events: none; }
.bc-play::before { content: ""; width: 0; height: 0; margin-left: 4px; border-left: 15px solid #fff; border-top: 10px solid transparent; border-bottom: 10px solid transparent; }
.bc .bc-tag { margin: 20px 0 0; color: var(--gold-deep); font: 600 10px var(--sans); letter-spacing: 0.18em; text-transform: uppercase; }
.bc .bc-title { margin: 7px 0 0; font: 500 clamp(20px, 2.2vw, 27px)/1.2 var(--serif); color: var(--ink); }
.bc .bc-meta { margin: 5px 0 0; max-width: none; color: rgba(20, 21, 22, 0.55); font: italic 400 14.5px/1.4 var(--serif); }
.bc-arc { position: relative; width: 100%; max-width: 560px; margin-top: clamp(18px, 2.6vw, 28px); }
.bc-btn { position: absolute; left: 50%; top: 0; width: 46px; height: 46px; margin-left: -23px; margin-top: -23px; transform-origin: center; will-change: transform, opacity; cursor: pointer; background: none; border: 0; padding: 0; }
.bc-btn-inner { width: 100%; height: 100%; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22); transition: box-shadow 0.35s; }
.bc-btn-inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bc-btn.is-active .bc-btn-inner { box-shadow: 0 0 0 2px var(--gold), 0 6px 16px rgba(0, 0, 0, 0.3); }
@media (prefers-reduced-motion: reduce) { .bc-btn { transition: none; } }

/* ---- TEDx spotlight (dark cinematic scroll-stop) ---- */
.ah-tedx { position: relative; isolation: isolate; overflow: hidden; min-height: 88vh; display: flex; align-items: center; background: #08090a; }
.ah-tedx::before { display: none; }
.tedx-bg { position: absolute; inset: 0; z-index: -3; }
.tedx-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 32%; opacity: 0.4; }
.tedx-scrim { position: absolute; inset: 0; z-index: -2; background:
  radial-gradient(60% 62% at 50% 46%, rgba(8, 9, 10, 0.12), rgba(8, 9, 10, 0.72) 68%, rgba(8, 9, 10, 0.96)),
  linear-gradient(180deg, rgba(8, 9, 10, 0.82), rgba(8, 9, 10, 0.4) 42%, rgba(8, 9, 10, 0.92)); }
.tedx-haze { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.tedx-spot { position: absolute; left: 50%; top: 54%; z-index: -1; width: min(1120px, 128vw); height: min(1120px, 128vw);
  transform: translate(-50%, -50%) scale(0.6); opacity: 0; mix-blend-mode: screen; pointer-events: none;
  background: radial-gradient(circle, rgba(226, 188, 77, 0.30) 0%, rgba(201, 162, 39, 0.13) 26%, rgba(201, 162, 39, 0) 60%);
  transition: opacity 1.1s ease, transform 1.3s cubic-bezier(0.22, 1, 0.36, 1); }
.ah-tedx.is-lit .tedx-spot { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.tedx-inner { position: relative; z-index: 2; margin: 0 auto; max-width: 760px; text-align: center; padding: clamp(96px, 13vw, 156px) 0; }
.tedx-head { margin: 14px 0 18px; max-width: none; color: var(--paper); font: 400 clamp(38px, 6vw, 74px)/1.04 var(--serif); letter-spacing: -0.015em; }
.tedx-sub { margin: 0 auto; max-width: 42ch; color: rgba(241, 239, 235, 0.72); font-size: clamp(16px, 1.7vw, 19px); }
.tedx-play { position: relative; display: grid; place-items: center; width: clamp(84px, 10vw, 112px); height: clamp(84px, 10vw, 112px); margin: clamp(36px, 5vw, 54px) auto clamp(20px, 3vw, 28px); border-radius: 50%; }
.tedx-play-ring { position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid rgba(226, 188, 77, 0.85); background: rgba(226, 188, 77, 0.08); transition: transform 0.4s, background 0.4s, border-color 0.4s; }
.tedx-play-tri { position: relative; width: 0; height: 0; margin-left: 7px; border-left: 23px solid var(--gold-bright); border-top: 15px solid transparent; border-bottom: 15px solid transparent; filter: drop-shadow(0 0 10px rgba(226, 188, 77, 0.5)); transition: border-left-color 0.4s; }
@keyframes tedx-pulse { 0% { box-shadow: 0 0 0 0 rgba(226, 188, 77, 0.45); } 70% { box-shadow: 0 0 0 28px rgba(226, 188, 77, 0); } 100% { box-shadow: 0 0 0 0 rgba(226, 188, 77, 0); } }
.ah-tedx.is-lit .tedx-play-ring { animation: tedx-pulse 2.6s ease-out infinite; }
.tedx-meta { margin: 0; color: rgba(241, 239, 235, 0.6); font: 500 12px var(--sans); letter-spacing: 0.14em; text-transform: uppercase; }
.tedx-meta span { color: var(--gold); margin: 0 6px; }
@media (hover: hover) and (pointer: fine) {
  .tedx-play:hover .tedx-play-ring { background: var(--gold); border-color: var(--gold-bright); transform: scale(1.06); }
  .tedx-play:hover .tedx-play-tri { border-left-color: #17130a; }
}
@media (prefers-reduced-motion: reduce) {
  .tedx-spot { opacity: 1; transform: translate(-50%, -50%) scale(1); transition: none; }
  .ah-tedx.is-lit .tedx-play-ring { animation: none; }
}

/* ---- speaker reel player (The Story, Briefly) ---- */
.reel { position: relative; aspect-ratio: 1280 / 786; border-radius: 6px; overflow: hidden; border: 1px solid var(--line); background: #0d0e0f; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45); }
.reel-video { width: 100%; height: 100%; object-fit: cover; display: block; background: #0d0e0f; }
.reel-mute { position: absolute; bottom: 14px; right: 14px; z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(241, 239, 235, 0.4); background: rgba(20, 21, 22, 0.5); backdrop-filter: blur(4px); color: var(--paper); display: grid; place-items: center; cursor: pointer; transition: border-color 0.3s, color 0.3s, background 0.3s; }
.reel-mute:hover { border-color: var(--gold); color: var(--gold-bright); background: rgba(20, 21, 22, 0.65); }
.reel-mute svg { display: block; overflow: visible; }
.reel-mute .rm-spk { fill: currentColor; stroke: none; }
.reel-mute .rm-wave { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.reel-mute .rm-slash { stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.reel-mute.is-muted .rm-wave { display: none; }
.reel-mute:not(.is-muted) .rm-slash { display: none; }

/* ---- infinite drifting gallery (vanilla port of OriginKit Infinity Canvas) ---- */
.ig-panel { position: relative; aspect-ratio: 4 / 5; border-radius: 6px; overflow: hidden; border: 1px solid var(--line); background: #0d0e0f; cursor: grab; touch-action: none; }
.ig-panel:active { cursor: grabbing; }
.ig-scene { position: absolute; inset: 0; }
.ig-tile { position: absolute; top: 0; left: 0; overflow: hidden; border-radius: 8px; will-change: transform; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4); }
.ig-tile img { width: 100%; height: 100%; object-fit: cover; display: block; user-select: none; -webkit-user-drag: none; }
.ig-veil { position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 60px 12px rgba(8, 9, 10, 0.55); background: radial-gradient(125% 125% at 50% 50%, transparent 52%, rgba(8, 9, 10, 0.55) 100%); }

/* ---- video lightbox (TEDx play) ---- */
.lb { position: fixed; inset: 0; z-index: 900; display: none; align-items: center; justify-content: center; padding: clamp(16px, 4vw, 52px); background: rgba(6, 7, 8, 0.84); backdrop-filter: blur(4px); opacity: 0; transition: opacity 0.3s ease; }
.lb.is-open { display: flex; opacity: 1; }
.lb-box { position: relative; width: min(1060px, 100%); aspect-ratio: 16 / 9; background: #000; border-radius: 10px; overflow: hidden; box-shadow: 0 40px 120px rgba(0, 0, 0, 0.6); transform: scale(0.96); transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1); }
.lb.is-open .lb-box { transform: scale(1); }
.lb-box iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.lb-close { position: absolute; top: clamp(12px, 3vw, 26px); right: clamp(12px, 3vw, 26px); width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(241, 239, 235, 0.4); background: rgba(20, 21, 22, 0.5); color: var(--paper); font-size: 24px; line-height: 1; cursor: pointer; display: grid; place-items: center; transition: border-color 0.3s, color 0.3s; }
.lb-close:hover { border-color: var(--gold); color: var(--gold-bright); }
@media (prefers-reduced-motion: reduce) { .lb, .lb-box { transition: none; } }

/* ---- inquiry modal (all booking CTAs) ---- */
.iq { position: fixed; inset: 0; z-index: 950; display: none; align-items: center; justify-content: center; padding: clamp(16px, 4vw, 48px); background: rgba(6, 7, 8, 0.82); backdrop-filter: blur(4px); opacity: 0; transition: opacity 0.3s ease; }
.iq.is-open { display: flex; opacity: 1; }
.iq-panel { position: relative; width: min(560px, 100%); max-height: 92vh; overflow-y: auto; background: linear-gradient(155deg, #F7F2E2 0%, #F1EFEB 42%, #E9E2CF 100%); color: var(--ink); border-radius: 12px; padding: clamp(30px, 4vw, 46px); box-shadow: 0 40px 120px rgba(0, 0, 0, 0.55); transform: translateY(14px) scale(0.98); transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1); }
.iq.is-open .iq-panel { transform: none; }
.iq-close { position: absolute; top: 16px; right: 16px; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(20, 21, 22, 0.2); background: rgba(255, 255, 255, 0.5); color: var(--ink); font-size: 23px; line-height: 1; cursor: pointer; display: grid; place-items: center; transition: border-color 0.3s, color 0.3s; }
.iq-close:hover { border-color: var(--gold-deep); color: var(--gold-deep); }
.iq-panel .kicker { color: var(--gold-deep); }
.iq-panel h2 { color: var(--ink); margin: 6px 0 10px; font: 400 clamp(26px, 3.4vw, 36px)/1.12 var(--serif); }
.iq-sub { margin: 0 0 22px; color: rgba(20, 21, 22, 0.7); max-width: 46ch; font-size: 15px; }
.iq-form { display: flex; flex-direction: column; gap: 14px; }
.iq-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.iq-form label { display: flex; flex-direction: column; gap: 6px; font: 600 10.5px var(--sans); letter-spacing: 0.09em; text-transform: uppercase; color: rgba(20, 21, 22, 0.62); }
.iq-form input, .iq-form select, .iq-form textarea { font: 400 15px var(--sans); color: var(--ink); background: rgba(255, 255, 255, 0.72); border: 1px solid rgba(20, 21, 22, 0.18); border-radius: 6px; padding: 11px 13px; width: 100%; }
.iq-form input:focus, .iq-form select:focus, .iq-form textarea:focus { outline: none; border-color: var(--gold-deep); box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.14); }
.iq-form textarea { resize: vertical; }
.iq-submit { margin-top: 6px; align-self: flex-start; padding: 14px 28px; border: 0; border-radius: 999px; background: var(--ink); color: var(--paper); font: 600 12px var(--sans); letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer; transition: background 0.3s, transform 0.3s; }
.iq-submit:hover { background: var(--gold-deep); transform: translateY(-1px); }
.iq-thanks { text-align: center; padding: 18px 0 8px; }
.iq-thanks p:last-child { color: rgba(20, 21, 22, 0.7); font-size: 15px; }
@media (max-width: 520px) { .iq-row { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .iq, .iq-panel { transition: none; } }

/* ---- Angela in the Media (paper grid, editorial video cards) ---- */
.m-head { text-align: center; }
.m-head h2 { max-width: none; }
.m-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(30px, 3.4vw, 48px) clamp(20px, 2.4vw, 32px); margin-top: clamp(40px, 5vw, 66px); }
.m-card { display: block; color: var(--ink); transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1); }
.m-thumb { position: relative; aspect-ratio: 16 / 10; border-radius: 8px; overflow: hidden; background: #1a1a1a; box-shadow: 0 14px 34px rgba(20, 21, 22, 0.16); }
.m-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
.m-play { position: absolute; inset: 0; margin: auto; width: 62px; height: 62px; border-radius: 50%; background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.55); display: grid; place-items: center; transition: background 0.35s, border-color 0.35s, transform 0.35s; }
.m-play::before { content: ""; width: 0; height: 0; margin-left: 4px; border-left: 15px solid #fff; border-top: 10px solid transparent; border-bottom: 10px solid transparent; transition: border-left-color 0.35s; }
.m-body { padding-top: 16px; }
.m-tag { display: block; margin-bottom: 8px; color: var(--gold-deep); font: 600 10px var(--sans); letter-spacing: 0.18em; text-transform: uppercase; }
.m-title { margin: 0 0 8px; font: 500 clamp(18px, 1.7vw, 22px)/1.25 var(--serif); color: var(--ink); transition: color 0.3s; }
.m-card .m-meta { margin: 0; max-width: none; color: rgba(20, 21, 22, 0.55); font: italic 400 14px/1.4 var(--serif); }
.m-all { display: flex; justify-content: center; margin-top: clamp(42px, 5vw, 66px); }
.m-all a { display: inline-flex; align-items: center; gap: 12px; padding: 16px 36px; border: 1px solid rgba(20, 21, 22, 0.28); border-radius: 999px; color: var(--ink); font: 600 12px var(--sans); letter-spacing: 0.14em; text-transform: uppercase; transition: border-color 0.3s, color 0.3s, background 0.3s; }
.m-all a span { transition: transform 0.3s; }
/* stagger the row-mates as they scroll in */
.m-card:nth-child(3n + 2) { transition-delay: 0.07s; }
.m-card:nth-child(3n) { transition-delay: 0.14s; }
@media (hover: hover) and (pointer: fine) {
  .m-card:hover { transform: translateY(-5px); }
  .m-card:hover .m-thumb img { transform: scale(1.06); }
  .m-card:hover .m-play { background: var(--gold); border-color: var(--gold-bright); transform: scale(1.08); }
  .m-card:hover .m-play::before { border-left-color: #17130a; }
  .m-card:hover .m-title { color: var(--gold-deep); }
  .m-all a:hover { border-color: var(--gold-deep); color: var(--gold-deep); background: rgba(201, 162, 39, 0.06); }
  .m-all a:hover span { transform: translateX(5px); }
}
@media (max-width: 960px) { .m-grid { grid-template-columns: repeat(2, 1fr); } .m-card:nth-child(3n + 2), .m-card:nth-child(3n) { transition-delay: 0s; } .m-card:nth-child(2n) { transition-delay: 0.08s; } }
@media (max-width: 600px) { .m-grid { grid-template-columns: 1fr; } .m-card:nth-child(2n) { transition-delay: 0s; } }

/* ---- footer ---- */
.footer { border-top: 1px solid var(--line); padding: clamp(64px, 9vw, 110px) 0 40px; }
.credo { max-width: 21ch; margin: 0 0 54px; font: 400 clamp(26px, 3.6vw, 42px)/1.25 var(--serif); color: var(--paper); }
.credo em { font-style: italic; color: var(--gold-bright); }
.footer-grid { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: start; padding-bottom: 46px; border-bottom: 1px solid var(--line); }
.footer-big { display: block; margin-bottom: 8px; color: var(--paper); font: 400 clamp(19px, 2.4vw, 26px) var(--serif); }
.footer-big:hover { color: var(--gold-bright); }
.footer-links { display: flex; flex-direction: column; gap: 10px; }
.footer-links a { color: var(--paper-dim); font: 500 12px var(--sans); letter-spacing: 0.1em; text-transform: uppercase; }
.footer-links a:hover { color: var(--gold-bright); }
.fineprint { margin: 26px 0 0; color: rgba(241, 239, 235, 0.4); font-size: 12px; }
@media (max-width: 860px) {
  .split { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .topic-list { grid-template-columns: 1fr; }
  .topic:nth-child(-n+2) { border-top: 0; }
  .topic:first-child { border-top: 1px solid rgba(20, 21, 22, 0.16); }
  .split--book { grid-template-columns: 1fr; }
  .book-fig { justify-self: start; margin-bottom: 10px; }
  .book-headline { font-size: clamp(46px, 13vw, 84px); }
  .book-actions { flex-direction: column; align-items: flex-start; }
}

/* ---- copy alignment additions (2026-08-03) ---- */
/* lead band: first-fold copy carried below the cinematic hero */
.lead-band { padding: clamp(56px, 7vw, 96px) 0 clamp(64px, 8vw, 108px); background: linear-gradient(180deg, rgba(8, 9, 10, 0.85), var(--ink-deep) 26%); }
.lead-eyebrow { margin: 0 0 16px; color: var(--gold-bright); font: 600 10px var(--sans); letter-spacing: 0.26em; text-transform: uppercase; }
.lead-band h1 { margin: 0 0 20px; max-width: 16ch; font: 400 clamp(30px, 4.4vw, 54px)/1.08 var(--serif); letter-spacing: -0.018em; color: var(--paper); }
.lead-sub { max-width: 54ch; color: var(--paper-dim); font-size: clamp(16px, 1.6vw, 20px); }
.lead-proof { margin: 18px 0 0; max-width: 56ch; color: rgba(241, 239, 235, 0.52); font-size: 14.5px; }
.lead-actions { display: flex; flex-wrap: wrap; gap: 12px 14px; margin: 34px 0 0; }
.btn-pill { display: inline-flex; align-items: center; gap: 10px; padding: 15px 30px; border-radius: 999px; border: 1px solid rgba(241, 239, 235, 0.28); color: var(--paper); font: 600 11px var(--sans); letter-spacing: 0.14em; text-transform: uppercase; transition: border-color 0.3s, color 0.3s, background 0.3s, transform 0.3s; }
.btn-pill:hover { border-color: var(--gold-bright); color: var(--gold-bright); transform: translateY(-1px); }
.btn-pill--gold { background: var(--gold-deep); border-color: var(--gold-deep); color: #fff; }
.btn-pill--gold:hover { background: var(--gold-bright); border-color: var(--gold-bright); color: #141516; }
.lead-micro { margin: 20px 0 0; max-width: 56ch; color: rgba(241, 239, 235, 0.42); font-size: 13px; }

/* authority grid (second fold) */
.authority-band { border-top: 1px solid var(--line); }
.authority-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 2.6vw, 32px); margin-top: clamp(34px, 5vw, 56px); }
.authority { padding: clamp(22px, 2.6vw, 30px); border: 1px solid rgba(241, 239, 235, 0.16); border-radius: 12px; background: linear-gradient(150deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.015)); transition: background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease, transform 0.35s ease; }
.authority:hover, .authority:focus-visible { background: #fff; border-color: #fff; box-shadow: 0 16px 44px rgba(0, 0, 0, 0.28); transform: translateY(-3px); }
.authority:focus-visible { outline: none; }
.authority:hover .authority-kicker, .authority:focus-visible .authority-kicker { color: var(--gold-deep); }
.authority:hover h3, .authority:focus-visible h3 { color: var(--ink); }
.authority:hover p, .authority:focus-visible p { color: rgba(20, 21, 22, 0.72); }
.authority-kicker { display: block; margin-bottom: 10px; color: var(--gold-bright); font: 600 10px var(--sans); letter-spacing: 0.18em; text-transform: uppercase; }
.authority h3 { margin: 0 0 8px; font: 500 clamp(19px, 2vw, 24px)/1.2 var(--serif); color: var(--paper); }
.authority p { margin: 0; color: var(--paper-dim); font-size: 14.5px; }
.support-line { margin: 26px 0 0; max-width: 62ch; color: rgba(241, 239, 235, 0.5); font-size: 13.5px; }
@media (max-width: 700px) { .authority-grid { grid-template-columns: 1fr; } }

/* featured keynotes (fourth fold): editorial cards with true bullet outcomes */
.kn-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(20px,2.6vw,32px); margin-top:clamp(34px,5vw,56px); }
.kn-card { position:relative; display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(241,239,235,.16); border-radius:20px; background:radial-gradient(circle at 88% 5%,rgba(226,188,77,.13),transparent 30%),linear-gradient(155deg,rgba(201,162,39,.08),rgba(255,255,255,.025) 52%); box-shadow:0 24px 54px rgba(0,0,0,.18); transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease; }
.kn-card::before { content:""; position:absolute; top:0; left:clamp(24px,2.8vw,34px); width:58px; height:3px; background:var(--gold-bright); }
.kn-card::after { content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit; box-shadow:inset 0 1px 0 rgba(255,255,255,.12); }
.kn-card:hover,.kn-card:focus-visible { border-color:rgba(226,188,77,.72); box-shadow:0 30px 70px rgba(0,0,0,.3); transform:translateY(-5px); }
.kn-card:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.kn-content { display:flex; flex:1; flex-direction:column; padding:clamp(30px,3.2vw,42px) clamp(24px,2.7vw,34px) clamp(26px,3vw,38px); }
.kn-card h3 { margin:0 0 11px; min-height:2.3em; font:500 clamp(21px,2.2vw,28px)/1.15 var(--serif); color:var(--paper); }
.kn-why { margin:0 0 18px; min-height:4.2em; color:var(--gold-bright); font:italic 400 15.5px/1.4 var(--serif); }
.kn-content > p:not(.kn-why) { margin:0; color:var(--paper-dim); font-size:14.5px; line-height:1.65; }
.kn-outcomes { margin:22px 0 0; padding:18px 0 0; list-style:none; border-top:1px solid rgba(241,239,235,.14); }
.kn-outcomes li { position:relative; padding:7px 0 7px 22px; color:var(--paper-dim); font-size:14px; line-height:1.5; }
.kn-outcomes li::before { content:""; position:absolute; left:2px; top:15px; width:7px; height:7px; border-radius:50%; background:var(--gold-bright); box-shadow:0 0 0 3px rgba(226,188,77,.12); }
.kn-ctas { display:flex; flex-wrap:wrap; gap:12px 28px; margin-top:clamp(32px,4vw,46px); align-items:baseline; }
@media(max-width:980px){ .kn-grid{grid-template-columns:1fr 1fr}.kn-card:last-child{grid-column:1/-1} }
@media(max-width:700px){ .kn-grid{grid-template-columns:1fr}.kn-card:last-child{grid-column:auto}.kn-card h3,.kn-why{min-height:0} }

/* testimonials */
.quotes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 2.4vw, 30px); margin-top: clamp(36px, 5vw, 56px); }
.quote { display: flex; flex-direction: column; padding: clamp(24px, 2.6vw, 32px); border: 1px solid rgba(20, 21, 22, 0.16); border-radius: 14px; background: rgba(255, 255, 255, 0.55); }
.quote blockquote { margin: 0 0 18px; color: rgba(20, 21, 22, 0.86); font: 400 clamp(16px, 1.5vw, 18px)/1.5 var(--serif); letter-spacing: -0.01em; }
.quote footer { margin-top: auto; }
.quote-name { display: block; color: var(--ink); font: 600 12px var(--sans); letter-spacing: 0.06em; text-transform: uppercase; }
.quote-title { display: block; margin-top: 4px; color: rgba(20, 21, 22, 0.55); font-size: 13px; }
@media (max-width: 900px) { .quotes-grid { grid-template-columns: 1fr; } }

/* testimonial coverflow (about) - reuses OriginKit coverflow structure */
.cf-stage--quotes { width: 100%; height: clamp(320px, 46vh, 400px); }
.cf-quote { display: flex; flex-direction: column; justify-content: center; padding: clamp(24px, 2.6vw, 36px); background: linear-gradient(150deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.6)); border: 1px solid rgba(20, 21, 22, 0.12); border-radius: 14px; box-shadow: 0 22px 60px rgba(20, 21, 22, 0.16); }
.cf-quote blockquote { margin: 0 0 20px; color: rgba(20, 21, 22, 0.9); font: 400 clamp(17px, 1.7vw, 21px)/1.45 var(--serif); letter-spacing: -0.01em; }
.cf-quote figcaption { margin-top: auto; }
.cfq-name { display: block; color: var(--ink); font: 600 12px var(--sans); letter-spacing: 0.06em; text-transform: uppercase; }
.cfq-title { display: block; margin-top: 4px; color: rgba(20, 21, 22, 0.55); font-size: 12.5px; line-height: 1.4; }
@media (max-width: 600px) {
  .cf-stage--quotes { height: 340px; }
  .cf-quote blockquote { font-size: 16px; }
}

/* featured + recognised (about) */
.split--featured { grid-template-columns: 1.3fr 0.7fr; gap: clamp(36px, 5vw, 72px); align-items: stretch; }
.split--featured .featured-copy { margin-top: clamp(18px, 2.5vw, 26px); }
.featured-copy { max-width: 64ch; color: rgba(20, 21, 22, 0.72); font-size: 15px; }
.featured-copy p + p { margin-top: 14px; }
.split--featured .portrait { margin: 0; }
.split--featured .portrait img { width: 100%; height: 100%; object-fit: cover; min-height: 100%; }
@media (max-width: 900px) { .split--featured { grid-template-columns: 1fr; align-items: stretch; } .split--featured .portrait { max-width: 520px; aspect-ratio: 4 / 5; } .split--featured .portrait img { aspect-ratio: 4 / 5; height: auto; min-height: 0; } }

/* media kit */
.kit { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 56px); margin-top: clamp(34px, 5vw, 56px); align-items: start; }
.kit h3 { margin: 0 0 14px; font: 500 clamp(20px, 2vw, 26px)/1.2 var(--serif); color: var(--ink); }
.kit p { color: rgba(20, 21, 22, 0.68); font-size: 15px; }
.kit-list { margin: 18px 0 0; padding: 0; list-style: none; }
.kit-list li { position: relative; padding: 8px 0 8px 22px; color: rgba(20, 21, 22, 0.74); font-size: 14.5px; }
.kit-list li::before { content: ""; position: absolute; left: 3px; top: 15px; width: 7px; height: 7px; border-radius: 50%; background: var(--gold-deep); box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.13); }
.kit-cta { margin-top: 26px; }
.kit-cta .btn-pill { border-color: var(--ink); color: var(--ink); }
.kit-cta .btn-pill:hover { background: var(--ink); color: var(--paper); }
@media (max-width: 760px) { .kit { grid-template-columns: 1fr; } }

/* podcast quick-links */
.pod-links { display: flex; flex-wrap: wrap; gap: 12px 14px; margin-top: 24px; }
.pod-links .btn-pill { border-color: var(--ink); color: var(--ink); }
.pod-links .btn-pill:hover { background: var(--ink); color: var(--paper); }

/* contact page form */
.contact-band .kicker { color: var(--gold-deep); }
.contact-intro { max-width: 58ch; color: rgba(20, 21, 22, 0.72); font-size: 15px; }
.contact-intro p + p { margin-top: 12px; }
.contact-form { margin-top: clamp(30px, 4vw, 44px); }
.cf-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }
.cf-field { display: flex; flex-direction: column; gap: 6px; }
.cf-field--wide { grid-column: 1 / -1; }
.cf-field label { font: 600 10.5px var(--sans); letter-spacing: 0.09em; text-transform: uppercase; color: rgba(20, 21, 22, 0.62); }
.cf-field input, .cf-field select, .cf-field textarea { font: 400 15px var(--sans); color: var(--ink); background: rgba(255, 255, 255, 0.72); border: 1px solid rgba(20, 21, 22, 0.18); border-radius: 6px; padding: 11px 13px; width: 100%; }
.cf-field input:focus, .cf-field select:focus, .cf-field textarea:focus { outline: none; border-color: var(--gold-deep); box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.14); }
.cf-field textarea { resize: vertical; }
.cf-submit { margin-top: 24px; display: inline-flex; align-items: center; gap: 10px; padding: 15px 32px; border: 0; border-radius: 999px; background: var(--ink); color: var(--paper); font: 600 11px var(--sans); letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; transition: background 0.3s, transform 0.3s; }
.cf-submit:hover { background: var(--gold-deep); transform: translateY(-1px); }
.cf-thanks { display: none; margin-top: 30px; padding: clamp(24px, 3vw, 36px); border: 1px solid rgba(20, 21, 22, 0.16); border-radius: 14px; background: rgba(255, 255, 255, 0.55); }
.cf-thanks.is-shown { display: block; }
.cf-thanks h3 { margin: 0 0 8px; font: 500 clamp(22px, 2.4vw, 30px)/1.15 var(--serif); color: var(--ink); }
.cf-thanks p { margin: 0; color: rgba(20, 21, 22, 0.68); font-size: 15px; }
.next-steps { margin-top: clamp(28px, 4vw, 44px); padding: clamp(24px, 3vw, 36px); border-left: 2px solid var(--gold-deep); }
.next-steps h3 { margin: 0 0 12px; font: 500 clamp(20px, 2vw, 26px)/1.2 var(--serif); color: var(--ink); }
.next-steps p { margin: 0 0 10px; color: rgba(20, 21, 22, 0.72); font-size: 15px; }
.next-steps p:last-child { margin-bottom: 0; }
.next-steps a { color: var(--gold-deep); font-weight: 600; }
.next-steps a:hover { color: #6e5511; }
@media (max-width: 640px) { .cf-fields { grid-template-columns: 1fr; } }

/* FAQ micro-CTA */
.faq-more { margin: 26px 0 0; color: rgba(20, 21, 22, 0.7); font-size: 14.5px; }
.faq-more a { color: var(--gold-deep); font-weight: 600; border-bottom: 1px solid transparent; }
.faq-more a:hover { color: #6e5511; border-bottom-color: var(--gold-deep); }

/* August 2026 client update */
.ah-wordmark{font-size:clamp(1.05rem,1.5vw,1.35rem);font-weight:700;letter-spacing:-.03em}
.authority-strip{position:relative;z-index:6;background:#fff;padding:24px 0;border-bottom:1px solid rgba(20,21,22,.1);overflow:hidden}
.authority-strip__viewport{overflow:hidden;width:100%}
.authority-strip__track{display:flex;align-items:center;width:max-content;gap:clamp(52px,7vw,110px);padding-inline:clamp(26px,5vw,72px);animation:authority-marquee 28s linear infinite}
.authority-strip img{display:block;max-width:170px;max-height:54px;width:auto;height:auto;object-fit:contain;filter:none;opacity:1;flex:0 0 auto}
.authority-strip:hover .authority-strip__track{animation-play-state:paused}
@keyframes authority-marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.authority-strip__track{animation:none}}
.reel-link{display:inline-flex;margin-top:18px;padding:13px 20px;border-radius:999px;background:#c9a227;color:#141516!important;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.kn-why{color:#c9a227;border-bottom:1px solid rgba(201,162,39,.55);padding-bottom:14px}
.kn-outcomes::before{content:"Outcomes";display:block;margin-bottom:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#c9a227}
@media (max-width:760px){.authority-strip{padding-block:18px}.authority-strip img{max-width:125px;max-height:42px}}




/* Complete August 2026 document corrections */
.ah-wordmark{display:flex;align-items:center;min-width:clamp(170px,18vw,270px)}
.ah-wordmark img{display:block;width:100%;height:auto;max-height:54px;object-fit:contain;object-position:left center}
.logos-band,.logos{background:#fff}.logos-track img,.logos img{filter:none!important;opacity:1!important}
.section-single-cta{margin-top:clamp(24px,4vw,42px)}
.recognition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px}
.recognition-grid span{display:flex;align-items:center;min-height:76px;padding:16px;border:1px solid rgba(201,162,39,.35);border-radius:14px;background:rgba(201,162,39,.08);font-weight:700}
.testimonial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:36px}
.testimonial-card{margin:0;padding:clamp(24px,3vw,38px);border:1px solid rgba(20,21,22,.12);border-radius:20px;background:#fff;box-shadow:0 16px 42px rgba(20,21,22,.08)}
.testimonial-card blockquote{margin:18px 0 0;font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.7rem);line-height:1.35}
.quote-org{display:inline-flex;padding:8px 12px;border-radius:999px;background:#141516;color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:760px){.recognition-grid,.testimonial-grid{grid-template-columns:1fr}.ah-wordmark{min-width:160px;max-width:205px}}


/* Featured-strip refinements */
.authority-strip{background:rgba(255,255,255,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:rgba(20,21,22,.08)}
.m-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:860px){.m-grid--three{grid-template-columns:1fr}}


/* Second fold: approved two-column stage image */
.lead-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:center;gap:clamp(42px,6vw,96px)}
.lead-copy{min-width:0}
.lead-visual{position:relative;margin:0;min-height:520px;aspect-ratio:4/5;overflow:hidden;border-radius:26px;border:1px solid rgba(201,162,39,.34);box-shadow:0 30px 80px rgba(0,0,0,.38)}
.lead-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,9,10,.32));pointer-events:none}
.lead-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 34%}
@media(max-width:920px){.lead-layout{grid-template-columns:1fr}.lead-visual{width:100%;min-height:0;aspect-ratio:16/10}.lead-visual img{object-position:center 30%}}

/* Shared interior logo marquee and About testimonial coverflow */
main > .authority-strip{margin:0}
.about-testimonials .ah-gallery-head .section-intro{margin-inline:auto}
.about-testimonials .cf-quote{overflow:hidden}
.about-testimonials .cf-quote::before{content:"\201C";position:absolute;right:24px;top:12px;color:rgba(201,162,39,.3);font:400 76px/1 var(--serif)}
.about-testimonials .cf-quote blockquote{position:relative;z-index:1}
.about-testimonials .testimonial-cta{text-align:center}

/* ============================================================
   Editorial action system (2026-08-19)
   Replaces the 999px pill everywhere. Squared corners, a gold
   edge-tick for identity, and a wipe fill from the left on hover.
   Band-aware: rule and label flip on paper vs dark surfaces.
   ============================================================ */
.btn-pill,
.m-all a,
.reel-link,
.cf-submit,
.iq-submit,
.ah-contact,
.ah-mobile-contact,
.pub-chip {
  border-radius: 0;
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 0% 100%;
}

/* --- secondary: ruled, fills gold --- */
.btn-pill,
.m-all a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0;
  padding: 16px 26px;
  border: 1px solid rgba(241, 239, 235, 0.30);
  border-left: 3px solid var(--gold);
  background-image: linear-gradient(var(--gold), var(--gold));
  color: var(--paper);
  font: 600 11px var(--sans);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  transition: background-size 0.42s cubic-bezier(0.22, 1, 0.36, 1), color 0.3s ease, border-color 0.3s ease;
}
.btn-pill::after,
.m-all a::after {
  content: "\2192";
  margin-left: 16px;
  font-size: 13px;
  line-height: 1;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.btn-pill:hover,
.m-all a:hover {
  background-size: 100% 100%;
  color: #141516;
  border-color: var(--gold);
}
.btn-pill:hover::after,
.m-all a:hover::after { transform: translateX(5px); }

/* on paper surfaces the rule and label go to ink */
.band--paper .btn-pill,
.band--paper .m-all a,
.m-all a {
  border-color: rgba(20, 21, 22, 0.26);
  border-left-color: var(--gold-deep);
  color: var(--ink);
}

/* --- primary: solid gold, inverts to ink --- */
.btn-pill--gold,
.reel-link,
.cf-submit,
.iq-submit,
.ah-contact,
.ah-mobile-contact {
  border: 1px solid var(--gold);
  border-left: 3px solid var(--ink);
  background-color: var(--gold);
  background-image: linear-gradient(var(--ink), var(--ink));
  color: #141516;
  box-shadow: none;
}
.band--paper .btn-pill--gold { border-left-color: var(--ink); color: #141516; }
.btn-pill--gold:hover,
.reel-link:hover,
.cf-submit:hover,
.iq-submit:hover,
.ah-contact:hover,
.ah-mobile-contact:hover {
  background-size: 100% 100%;
  color: var(--paper);
  border-color: var(--ink);
  transform: none;
}
.reel-link { color: #141516 !important; }
.reel-link:hover { color: var(--paper) !important; }
.ah-mobile-contact { color: #141516 !important; }
.ah-mobile-contact:hover { color: var(--paper) !important; }

/* nav: square the hover chip and the Book Angela control */
.ah-links a { border-radius: 0; }
.ah-contact {
  padding: 13px 22px;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: background-size 0.42s cubic-bezier(0.22, 1, 0.36, 1), color 0.3s ease, border-color 0.3s ease;
}

/* filter chips and the org tag lose the lozenge too */
.pub-chip { border-radius: 0; border-left: 3px solid transparent; }
.pub-chip.is-active { border-left-color: var(--gold); }
.quote-org { border-radius: 0; }

/* ============================================================
   Blog: post page + index card (2026-08-19)
   ============================================================ */
.post-head { padding: clamp(122px, 14vw, 190px) 0 clamp(46px, 6vw, 72px); }
.post-head h1 { max-width: 20ch; margin: 0 0 20px; font: 500 clamp(32px, 4.6vw, 60px)/1.08 var(--serif); }
.post-meta { margin: 0; color: var(--paper-dim); font: 600 11px var(--sans); letter-spacing: 0.16em; text-transform: uppercase; }

.post-body { max-width: 68ch; }
.post-body h2 { margin: clamp(38px, 4.6vw, 56px) 0 14px; font: 500 clamp(22px, 2.5vw, 31px)/1.22 var(--serif); }
.post-body p { margin: 0 0 20px; max-width: none; font-size: 17px; line-height: 1.74; }
.post-body strong { color: var(--ink); font-weight: 600; }
.band--paper.section > .container .post-lead {
  margin: 0 0 28px;
  color: var(--ink);
  font: 400 clamp(19px, 2.1vw, 26px)/1.46 var(--serif);
}
.pullquote {
  margin: clamp(34px, 4.4vw, 50px) 0;
  padding: 4px 0 4px 24px;
  border-left: 3px solid var(--gold);
  font: 400 clamp(20px, 2.4vw, 29px)/1.33 var(--serif);
  color: var(--ink);
}
.post-foot {
  max-width: 68ch;
  margin-top: clamp(50px, 6vw, 76px);
  padding-top: clamp(26px, 3.4vw, 38px);
  border-top: 1px solid rgba(20, 21, 22, 0.18);
}
.post-foot .lead-actions { margin-top: 26px; }

/* index card for the latest post */
.post-card {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(24px, 3.4vw, 52px);
  align-items: center;
  margin-top: clamp(30px, 4vw, 46px);
  padding: clamp(22px, 2.6vw, 34px);
  border: 1px solid rgba(20, 21, 22, 0.16);
  border-left: 3px solid var(--gold);
  background: rgba(255, 255, 255, 0.5);
  transition: border-color 0.3s ease, background 0.3s ease, transform 0.3s ease;
}
.post-card h3 { margin: 10px 0 12px; font: 500 clamp(23px, 2.9vw, 36px)/1.16 var(--serif); color: var(--ink); }
.post-card p { margin: 0 0 18px; max-width: 54ch; font-size: 16px; line-height: 1.62; }
.post-card-media { aspect-ratio: 4 / 3; overflow: hidden; }
.post-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
@media (hover: hover) and (pointer: fine) {
  .post-card:hover { border-color: rgba(20, 21, 22, 0.3); background: #fff; }
  .post-card:hover .post-card-media img { transform: scale(1.05); }
}
@media (max-width: 860px) {
  .post-card { grid-template-columns: 1fr; }
  .post-card-media { order: -1; aspect-ratio: 16 / 9; }
}
.post-next-head { margin-top: clamp(56px, 7vw, 88px); }

/* The .kit-cta / .pod-links overrides above assume a paper surface. The podcast
   band is dark, so re-assert the dark-surface treatment there; without this the
   label renders ink-on-ink. (Previously masked by a blanket !important gold.) */
.band:not(.band--paper) .pod-links .btn-pill,
.band:not(.band--paper) .kit-cta .btn-pill {
  border-color: rgba(241, 239, 235, 0.30);
  border-left-color: var(--gold);
  color: var(--paper);
}
.band:not(.band--paper) .pod-links .btn-pill:hover,
.band:not(.band--paper) .kit-cta .btn-pill:hover {
  background: none;
  background-image: linear-gradient(var(--gold), var(--gold));
  background-size: 100% 100%;
  color: #141516;
  border-color: var(--gold);
}

/* Gold that passes AA as TEXT on the paper gradient. --gold-deep (#9e7d1f)
   measures 3.00-3.47:1 across #F7F2E2..#E9E2CF, which fails for small text;
   #785e0e holds 4.77:1 at the darkest end. Borders/fills keep --gold-deep. */
:root { --gold-text: #785e0e; }
.entry-link,
.book-cta,
.faq-more a,
.next-steps a,
.band--paper .text-link { color: var(--gold-text); }
.entry-link:hover,
.faq-more a:hover,
.next-steps a:hover,
.band--paper .text-link:hover { color: #5c4a0b; }
.book-cta { background-image: linear-gradient(var(--gold-text), var(--gold-text)); }
/* .topic-index only ever had a dark-band colour; on paper it fell back to
   --gold at 2.11:1. These are large display numerals (>=26px), so the bar is
   3:1; #8a6b14 holds 3.87:1 at the darkest end of the paper gradient. */
.band--paper .topic-index { color: #8a6b14; }
/* .m-tag is 10px uppercase; --gold-deep gives 3.88:1 on paper. */
.band--paper .m-tag { color: var(--gold-text); }

/* ===========================================================================
   Mobile hardening - 2026-08-19
   Measured, not eyeballed. An iframe sweep of all 7 pages at 320 / 360 / 390px
   found exactly two classes of defect; everything else already reflowed
   correctly and no page overflowed at 360px or above.

   1. Below 360px EVERY page scrolled sideways. `.ah-nav` is a space-between
      flex of `.ah-nav-glass` (logo + burger) and `.ah-nav-right` (Book Angela).
      The wordmark's 160px min-width plus the glass padding, the burger and the
      button exceeded the 288px of usable width at 320px. Fixed by letting the
      wordmark shrink and tightening the control, NOT by hiding overflow, which
      would have masked the defect rather than removing it.
   2. Several touch targets sat under the WCAG 2.5.8 minimum of 24px.
   =========================================================================== */

@media (max-width: 420px) {
  .ah-nav { left: 12px; right: 12px; }
  .ah-nav-glass { gap: 10px; padding: 6px 8px 6px 12px; }
  .ah-wordmark { min-width: 0; max-width: 150px; }
  .ah-nav-right { gap: 8px; }
  .ah-contact { padding: 10px 12px; font-size: 8.5px; letter-spacing: 0.08em; }
}

@media (max-width: 340px) {
  .ah-nav { left: 10px; right: 10px; }
  .ah-wordmark { max-width: 124px; }
  .ah-nav-glass { gap: 6px; padding: 6px 6px 6px 10px; }
  .ah-contact { padding: 9px 9px; letter-spacing: 0.04em; }
}

/* Touch targets. Scoped to coarse pointers so the desktop layout is untouched.
   Measured heights before this block: .book-tel 20px, .footer-big 23px,
   .ah-menu-button 34px. The first two are under the 24px WCAG minimum; all
   three are under the 44px comfortable-touch size. */
@media (pointer: coarse) {
  .ah-menu-button { width: 44px; height: 44px; }
  .book-tel { display: inline-block; padding-block: 11px; }
  .footer-big { padding-block: 9px; margin-bottom: 2px; }
  .footer-links a { display: inline-block; padding-block: 7px; }
  .m-all a { display: inline-block; padding-block: 8px; }
}

/* iOS Safari zooms the whole page in whenever a focused form control has a
   font-size below 16px, which on the enquiry form meant every field yanked the
   layout sideways on first tap. Measured at 15px on all 13 visible controls.
   Keyed to viewport width rather than `pointer: coarse` so it still applies on
   touch devices that report a fine pointer (most Windows tablets, and any
   phone browser in desktop-site mode). */
@media (max-width: 860px) {
  .cf-field input,
  .cf-field select,
  .cf-field textarea {
    font-size: 16px;
  }
  /* Comfortable touch height without changing the desktop proportions. */
  .cf-field input,
  .cf-field select {
    padding-block: 13px;
  }
  .cf-submit { min-height: 48px; }
}

/* ===========================================================================
   Booking / media kit modal
   Squared, not pilled: the 999px radius was removed site-wide, so this follows
   the same editorial system (3px gold edge tick, square corners).
   =========================================================================== */

.ah-modal[hidden] { display: none; }
.ah-modal {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(12px, 4vw, 40px);
}
.ah-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(11, 12, 13, 0.72);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.ah-modal__panel {
  position: relative;
  width: min(720px, 100%);
  max-height: calc(100dvh - clamp(24px, 8vw, 80px));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: clamp(24px, 3.4vw, 44px);
  background: linear-gradient(158deg, #f7f4ec 0%, #efe9dc 100%);
  border-left: 3px solid var(--gold);
  box-shadow: 0 40px 120px rgba(11, 12, 13, 0.45);
}
.ah-modal__title {
  margin: 6px 0 22px;
  font: 400 clamp(21px, 2.4vw, 30px)/1.25 var(--serif);
  letter-spacing: -0.01em;
  color: var(--ink);
  max-width: 34ch;
}
.ah-modal__close {
  position: absolute;
  top: 8px;
  right: 10px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: none;
  color: rgba(20, 21, 22, 0.55);
  font: 300 30px/1 var(--sans);
  cursor: pointer;
  transition: color 0.2s;
}
.ah-modal__close:hover { color: var(--ink); }
.ah-modal__panel .cf-fields { grid-template-columns: 1fr 1fr; }
.ah-modal__panel .cf-submit { margin-top: 18px; }

/* Stop the page behind the dialog scrolling while it is open. */
.ah-modal-open, .ah-modal-open body { overflow: hidden; }

@media (max-width: 640px) {
  .ah-modal { padding: 0; align-items: flex-end; }
  .ah-modal__panel {
    width: 100%;
    max-height: 92dvh;
    border-left: 0;
    border-top: 3px solid var(--gold);
  }
  .ah-modal__panel .cf-fields { grid-template-columns: 1fr; }
}
