/* Intrinsic Change — homepage preview
   White page, blue-teal ink with copper/burgundy/plum pooling, river-stone shapes.
   Palette ties to the logo: sage petal #78998B, rust #BF4520/#A84520, ink #151916. */

:root {
  --paper: #ffffff;
  --ink: #151916;          /* logo outline; body text (18.6:1 on white) */
  --ink-soft: #3d4542;     /* secondary text (10:1) */
  --teal-deep: #17505b;    /* links, headings accents (8.9:1) */
  --teal: #1f6673;         /* hover, small accents (6.6:1) */
  --sage: #78998b;         /* logo petal; decorative lines only */
  --copper: #9a4d22;       /* small warm accents as text (6.2:1) */
  --burgundy: #6a2131;
  --plum: #512c55;
  --focus: #151916;

  --font-head: "Lora", Georgia, "Times New Roman", serif;
  --font-body: "Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;

  --measure: 62ch;
  --gutter: clamp(1rem, 4vw, 2.5rem);
  --space-section: clamp(4rem, 9vw, 7.5rem);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 1.125rem;
  line-height: 1.65;
}

img { max-width: 100%; height: auto; display: block; }

h1, h2, h3 {
  font-family: var(--font-head);
  font-weight: 600;
  line-height: 1.2;
  color: var(--ink);
  margin: 0 0 0.6em;
  text-wrap: balance;
}
h1 { font-size: clamp(2rem, 1.35rem + 2.4vw, 3.05rem); letter-spacing: -0.01em; }
h2 { font-size: clamp(1.6rem, 1.25rem + 1.3vw, 2.25rem); }
h3 { font-size: 1.3rem; }

p { margin: 0 0 1em; max-width: var(--measure); }

a { color: var(--teal-deep); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--teal); text-decoration-thickness: 2px; }
a[href^="tel:"], a[href^="mailto:"] { white-space: nowrap; }

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
  border-radius: 6px;
}

.defs { position: absolute; width: 0; height: 0; overflow: hidden; }

.wrap {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.skip-link {
  position: absolute;
  left: 1rem;
  top: -4rem;
  z-index: 10;
  padding: 0.75rem 1rem;
  background: var(--paper);
  color: var(--ink);
  font-weight: 600;
  border: 2px solid var(--ink);
  border-radius: 10px;
}
.skip-link:focus { top: 1rem; }

/* ---------- Header ---------- */
.site-header { padding: 1.25rem 0; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
/* Logo: river-stone flower + Lora wordmark (outlined). Original lockup kept in assets/brand/IC_horizontal_color.svg */
.brand { display: block; padding: 0.4rem 0; }
.brand img { height: 84px; width: auto; }

.nav-list { list-style: none; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; margin: 0; padding: 0; }
.nav-list a {
  display: inline-flex; align-items: center;
  min-height: 44px; padding: 0 0.75rem;
  color: var(--ink); text-decoration: none; font-weight: 600; font-size: 1.02rem;
  border-radius: 22px;
}
.nav-list a:hover { color: var(--teal-deep); text-decoration: underline; }
.nav-toggle { display: none; }

/* ---------- River-stone buttons ---------- */
.stone-btn {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  min-width: 44px;
  padding: 0.9rem 2.4rem 1rem;
  color: #ffffff;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 1.08rem;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  border-radius: 30px; /* shapes the focus ring; the visible stone is the ::before layer */
}
.stone-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  /* fallback colour is clipped to the stone too, so a missing texture never shows a rectangle */
  background: #1b5a67 center / 100% 100% no-repeat;
  -webkit-mask: center / 100% 100% no-repeat;
          mask: center / 100% 100% no-repeat;
  transition: filter 160ms ease;
}
.stone-btn--a::before { background-image: url("assets/ink/btn-a.webp"); -webkit-mask-image: url("assets/shapes/btnA.svg"); mask-image: url("assets/shapes/btnA.svg"); }
.stone-btn--b::before { background-image: url("assets/ink/btn-b.webp"); -webkit-mask-image: url("assets/shapes/btnB.svg"); mask-image: url("assets/shapes/btnB.svg"); }
.stone-btn--c::before { background-image: url("assets/ink/btn-c.webp"); -webkit-mask-image: url("assets/shapes/btnC.svg"); mask-image: url("assets/shapes/btnC.svg"); }
.stone-btn:hover, .stone-btn:focus-visible { color: #ffffff; text-decoration: none; }
.stone-btn:hover::before { filter: brightness(0.86) saturate(1.08); }
.stone-btn:focus-visible { outline-offset: 5px; border-radius: 34px; }
@media (forced-colors: active) {
  .stone-btn { border: 2px solid ButtonText; color: ButtonText; }
  .stone-btn::before { display: none; }
}

.quiet-link {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.25rem;
  font-weight: 600;
}

/* ---------- 1. Opening ---------- */
.hero { padding: clamp(1.5rem, 4vw, 3.5rem) 0 var(--space-section); }
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
}
.eyebrow {
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.01em;
  color: var(--copper);
  margin-bottom: 1rem;
}
.lead { font-size: 1.22rem; color: var(--ink-soft); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; margin: 1.75rem 0 1rem; }
.hero-note { font-size: 1rem; color: var(--ink-soft); }

.hero-photo { position: relative; margin: 0; justify-self: center; width: min(300px, 100%); /* never wider than the source supports */ }
.hero-photo picture, .hero-photo .clip-hero { position: relative; z-index: 1; }
.clip-hero { width: 100%; aspect-ratio: 640 / 860; object-fit: cover; clip-path: url(#clip-hero); }
.ink-accent {
  position: absolute;
  z-index: 0;
  width: 88%;
  right: -30%;
  top: -9%;
  pointer-events: none;
}
.hero-photo figcaption {
  position: relative; z-index: 1;
  margin-top: 0.9rem;
  font-size: 0.95rem;
  color: var(--ink-soft);
  text-align: left;
  padding-left: 0.5rem;
}

/* ---------- 2. Team ---------- */
.team { padding-bottom: var(--space-section); }
.team-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  grid-template-areas:
    "intro  intro"
    "lead   list"
    "more   list";
  gap: 2.5rem clamp(2rem, 6vw, 5rem);
}
.team-intro { grid-area: intro; max-width: 760px; }
.lead-trainer { grid-area: lead; display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 1.75rem; align-items: start; }
.lead-trainer img { width: 220px; aspect-ratio: 560 / 618; object-fit: cover; clip-path: url(#clip-r1); }
.role { font-weight: 600; color: var(--copper); margin-bottom: 0.6rem; }
.trainers { grid-area: list; list-style: none; margin: 0; padding: 0; display: grid; gap: 1.6rem; align-content: start; }
.trainers li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 1.1rem; align-items: start; }
.trainers img { width: 96px; aspect-ratio: 4 / 5; object-fit: cover; }
.clip-r2 { clip-path: url(#clip-r2); }
.clip-r3 { clip-path: url(#clip-r3); }
.clip-r4 { clip-path: url(#clip-r4); }
.trainers h3 { font-size: 1.1rem; margin-bottom: 0.3rem; }
.trainers p { font-size: 1.02rem; color: var(--ink-soft); margin: 0; }
.team-more { grid-area: more; font-weight: 600; margin: 0; padding-left: calc(220px + 1.75rem); }

/* ---------- 3. Trainings ---------- */
.trainings { padding-bottom: var(--space-section); }
.feature-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.5rem clamp(2rem, 6vw, 5.5rem);
  margin-top: 1.5rem;
}
.feature { position: relative; padding-top: 5.25rem; }
.feature--tic { margin-top: 3.5rem; } /* staggered, not a card grid */
.feature h3 { font-size: clamp(1.45rem, 1.2rem + 0.8vw, 1.85rem); }
.feature h3 a { color: var(--ink); text-decoration: none; }
.feature h3 a:hover { color: var(--teal-deep); text-decoration: underline; }
.feature-link { font-weight: 600; }
.pebble { pointer-events: none; }

/* standalone links get comfortable 44px tap targets (inline sentence links are exempt) */
.team-more a, .feature-link a, .also-list a, .footer-links a, .site-footer p a {
  display: inline-flex; align-items: center; min-height: 44px;
}
.also > p a { display: inline-block; padding: 0.6rem 0; }
.pebble--mark { position: absolute; top: 0; left: -0.25rem; width: 104px; }
.feature--tic .pebble--mark { width: 92px; left: 0.5rem; }

.also {
  margin-top: clamp(3rem, 6vw, 4.5rem);
  padding-top: 2rem;
  border-top: 1px solid rgba(120, 153, 139, 0.55); /* logo sage hairline */
  max-width: 900px;
}
.also h3 { font-size: 1.15rem; }
.also-list { list-style: none; margin: 0 0 1.1rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.75rem; }
.also-list li { font-weight: 600; }


/* ---------- 4. Room + testimonial ---------- */
.room { padding-bottom: var(--space-section); }
.room-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 7vw, 6rem);
  align-items: center;
}
.quote { position: relative; margin: 0; padding: 1rem 0 0 4.5rem; }
.pebble--quote { position: absolute; left: 0; top: 0; width: 64px; }
.quote blockquote { margin: 0; }
.quote blockquote p {
  font-family: var(--font-head);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.3rem, 1.1rem + 0.7vw, 1.6rem);
  line-height: 1.45;
  color: var(--ink);
}
.quote figcaption { font-weight: 600; color: var(--ink-soft); }

/* ---------- 5. Supervision ---------- */
.supervision { padding-bottom: var(--space-section); }
.supervision-inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.5rem 2.5rem;
  align-items: baseline;
  padding-top: 1.6rem;
  padding-bottom: 1.6rem;
  border-top: 1px solid rgba(120, 153, 139, 0.55);
  border-bottom: 1px solid rgba(120, 153, 139, 0.55);
}
.supervision h2 { font-size: 1.35rem; margin: 0; }
.supervision p { margin: 0; color: var(--ink-soft); }

/* ---------- 6. Invitation ---------- */
.invite { padding-bottom: var(--space-section); }
.invite-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.invite-text { max-width: 720px; margin-left: clamp(0rem, 12vw, 9rem); }
.steps { margin: 1.25rem 0 2rem; padding-left: 1.4rem; }
.steps li { margin-bottom: 0.35rem; padding-left: 0.3rem; }
.steps li::marker { font-family: var(--font-head); font-weight: 600; color: var(--copper); }
.direct { margin-top: 1.5rem; color: var(--ink-soft); }

/* ---------- Footer ---------- */
.site-footer { padding: 2.5rem 0 3rem; border-top: 1px solid rgba(120, 153, 139, 0.55); font-size: 1rem; }
.footer-grid { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: 1.5rem 2.5rem; }
.footer-name { font-family: var(--font-head); font-weight: 600; font-size: 1.15rem; margin-bottom: 0.3rem; }
.footer-links { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 2rem; }
.footer-links a { padding: 0; }
.site-footer p { color: var(--ink-soft); }
.copyright { font-size: 0.92rem; }

/* ---------- Motion (progressive, opt-out respected) ---------- */
@media (prefers-reduced-motion: no-preference) {
  .js.motion-ready .reveal { opacity: 0; transform: translateY(14px); transition: opacity 600ms ease, transform 600ms ease; }
  .js.motion-ready .reveal.is-visible { opacity: 1; transform: none; }
  /* one gentle settle on decorative ink, then still */
  .ink-accent { animation: settle 7s ease-in-out 0.6s 2 alternate both; }
  .pebble--mark { animation: settle-small 6s ease-in-out 1s 2 alternate both; }
}
@keyframes settle { from { transform: rotate(0deg) translateY(0); } to { transform: rotate(-2.5deg) translateY(-6px); } }
@keyframes settle-small { from { transform: translateY(0); } to { transform: translateY(-4px) rotate(2deg); } }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-photo { width: min(280px, 74%); justify-self: start; margin-left: 0.5rem; }
  .team-grid { grid-template-columns: 1fr; grid-template-areas: "intro" "lead" "list" "more"; }
  .team-more { padding-left: 0; }
  .feature-pair, .room-grid { grid-template-columns: 1fr; }
  .feature--tic { margin-top: 0; }
  .invite-text { margin-left: 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  body { font-size: 1.0625rem; }
  .brand img { height: 60px; }
  .js .nav-toggle {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 1.1rem;
    font: 600 1rem var(--font-body); color: var(--ink);
    background: var(--paper); border: 2px solid var(--ink); border-radius: 22px; cursor: pointer;
  }
  .js .nav-list { display: none; width: 100%; flex-direction: column; padding-top: 0.5rem; }
  .js .nav-list.is-open { display: flex; }
  .site-nav { width: auto; }
  .header-inner { align-items: center; }
  .js .site-nav:has(.is-open) { width: 100%; }
  .lead-trainer { grid-template-columns: 1fr; }
  .lead-trainer img { width: 180px; }
  .supervision-inner { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .stone-btn { padding-left: 1.9rem; padding-right: 1.9rem; } /* keep natural stone proportions */
}

/* Small screens: stones sit beside things, never stacked above or over text */
@media (max-width: 900px) {
  .hero-photo { margin-top: 1.5rem; }
  .ink-accent { width: 66%; right: -22%; top: 12%; }
  .feature { padding-top: 0; }
  .feature h3 { padding-right: 76px; }
  .pebble--mark, .feature--tic .pebble--mark { width: 60px; left: auto; right: 0; top: 0.15rem; }
  .quote { padding-left: 3.6rem; }
  .pebble--quote { width: 44px; }
}
.hero { overflow-x: clip; } /* the hero stone may extend past the column, never past the page */

/* =====================================================================
   Interior pages (appended to styles.css at build time)
   ===================================================================== */
.nav-list a[aria-current="page"] { color: var(--teal-deep); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.3em; }

.page-hero { position: relative; padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(3rem, 7vw, 5rem); overflow-x: clip; }
.page-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(1.5rem, 5vw, 4rem); align-items: center; }
.page-hero h1 { max-width: 22ch; }
.page-hero .lead { max-width: 58ch; }
.page-hero .hero-actions { margin-top: 1.5rem; }
.hero-stone { width: clamp(120px, 18vw, 230px); pointer-events: none; }
.hero-stone--pebble { width: clamp(90px, 13vw, 170px); align-self: start; margin-top: 2rem; }

.section { padding-bottom: var(--space-section); }
.split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem clamp(2rem, 6vw, 5rem); align-items: start; }
.split--wide-left { grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); }
.prose ul, .prose ol, ul.ticks { padding-left: 1.25rem; margin: 0 0 1.2em; max-width: var(--measure); }
.prose li, ul.ticks li { margin-bottom: 0.45rem; padding-left: 0.2rem; }
ul.ticks li::marker { color: var(--copper); }
.prose h2 { margin-top: 2.2rem; }
.prose h3 { margin-top: 1.8rem; }
.note { font-size: 1rem; color: var(--ink-soft); }
.facts + .note, .reveal + .note { margin-top: 2rem; }

/* Facts: length, cost, logistics */
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.75rem 2.5rem; margin: 1.5rem 0 0; padding: 0; }
.facts div { border-top: 1px solid rgba(120, 153, 139, 0.55); padding-top: 1rem; }
.facts dt { font-family: var(--font-head); font-weight: 600; font-size: 1.15rem; margin-bottom: 0.35rem; }
.facts dd { margin: 0; color: var(--ink-soft); }

/* Topic list (all trainings) */
.topics { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem clamp(2rem, 6vw, 5rem); }
.topics li { max-width: 60ch; }
.topics h3 { font-size: 1.25rem; margin-bottom: 0.35rem; }
.topics h3 a { color: var(--ink); text-decoration: none; }
.topics h3 a:hover { color: var(--teal-deep); text-decoration: underline; }
.topics p { margin: 0; color: var(--ink-soft); }
.topics .topic--lead h3 { font-size: 1.5rem; }

/* Trainer strip */
.trainer-strip { list-style: none; margin: 1.25rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 1.25rem 2rem; }
.trainer-strip li { display: flex; align-items: center; gap: 0.9rem; }
.trainer-strip img { width: 72px; aspect-ratio: 4 / 5; object-fit: cover; }
.trainer-strip span { font-weight: 600; line-height: 1.3; }
.trainer-strip small { display: block; font-weight: 400; color: var(--ink-soft); font-size: 0.95rem; }

/* FAQ dropdowns (native details: work without JavaScript) */
.faq { max-width: 820px; margin-top: 1.25rem; }
.faq details { border-top: 1px solid rgba(120, 153, 139, 0.55); }
.faq details:last-child { border-bottom: 1px solid rgba(120, 153, 139, 0.55); }
.faq summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  min-height: 56px; padding: 0.9rem 0.25rem; font-family: var(--font-head); font-weight: 600; font-size: 1.15rem;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: ""; flex: none; width: 24px; height: 18px;
  background: url("assets/ink/pebble-b.webp") center / contain no-repeat;
  transition: transform 200ms ease;
}
.faq details[open] summary::after { transform: rotate(90deg); }
.faq details > div { padding: 0 0.25rem 1.1rem; color: var(--ink-soft); }
.faq details > div p:last-child { margin-bottom: 0; }

/* Bios */
.bios { display: grid; gap: clamp(2.5rem, 6vw, 4rem); margin-top: 1rem; }
.bio { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 1.5rem clamp(1.5rem, 4vw, 3rem); align-items: start; }
.bio img { width: 200px; aspect-ratio: 4 / 5; object-fit: cover; }
.bio h2 { font-size: clamp(1.4rem, 1.2rem + 0.6vw, 1.75rem); margin-bottom: 0.2rem; }
.bio .role { margin-bottom: 1rem; }

/* Contact */
.contact-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.expect { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; gap: 0.9rem; }
.expect li { position: relative; padding-left: 2.1rem; max-width: 52ch; }
.expect li::before {
  content: ""; position: absolute; left: 0; top: 0.42em; width: 20px; height: 15px;
  background: url("assets/ink/pebble-c.webp") center / contain no-repeat;
}
.contact-direct { border-top: 1px solid rgba(120, 153, 139, 0.55); padding-top: 1.25rem; }
.contact-direct p { margin-bottom: 0.4rem; }

.form { display: grid; gap: 1.35rem; max-width: 640px; }
.field { display: grid; gap: 0.4rem; }
.field label, .field legend { font-weight: 600; }
.field .hint { font-size: 0.98rem; color: var(--ink-soft); margin: 0; }
.field .req { font-weight: 400; color: var(--ink-soft); }
.field input, .field select, .field textarea {
  font: inherit; color: var(--ink); background: #fff;
  border: 2px solid #6b7470; /* 4.8:1 against white */
  border-radius: 14px 18px 16px 12px; padding: 0.7rem 0.9rem; min-height: 48px; width: 100%;
}
.field textarea { min-height: 140px; resize: vertical; }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-color: var(--teal-deep); }
.field [aria-invalid="true"] { border-color: #8a1f2e; }
.field .error { color: #8a1f2e; font-weight: 600; margin: 0; }
.field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
fieldset.field { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset.field legend { padding: 0; margin-bottom: 0.4rem; }
.times { display: grid; gap: 0.6rem; }
.times label { font-weight: 400; color: var(--ink-soft); font-size: 0.98rem; }
.hidden-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.form button.stone-btn { border: 0; cursor: pointer; background: transparent; min-width: 170px; }
.form button.stone-btn[disabled] { cursor: progress; opacity: 0.85; }
.form-status:empty { display: none; }
.alert { padding: 1.1rem 1.25rem; border-radius: 18px 22px 16px 20px; border: 2px solid; max-width: 640px; }
.alert--error { border-color: #8a1f2e; }
.alert--error h2 { color: #8a1f2e; font-size: 1.15rem; margin-bottom: 0.4rem; }
.alert ul { margin: 0.4rem 0 0; padding-left: 1.2rem; }
.success h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }

/* Blog */
.post-list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 2.25rem; max-width: 820px; }
.post-list li { border-top: 1px solid rgba(120, 153, 139, 0.55); padding-top: 1.5rem; }
.post-list h2 { font-size: clamp(1.3rem, 1.15rem + 0.5vw, 1.6rem); margin-bottom: 0.35rem; }
.post-list h2 a { color: var(--ink); text-decoration: none; }
.post-list h2 a:hover { color: var(--teal-deep); text-decoration: underline; }
.post-meta { font-size: 0.98rem; color: var(--ink-soft); margin-bottom: 0.6rem; }
.post { max-width: 760px; }
.post h1 { font-size: clamp(1.8rem, 1.3rem + 2vw, 2.6rem); max-width: 26ch; }
.post blockquote { margin: 1.5rem 0; padding-left: 1.25rem; border-left: 3px solid var(--sage); font-family: var(--font-head); font-style: italic; }
.post a { overflow-wrap: anywhere; }
.post-end { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(120, 153, 139, 0.55); }

@media (max-width: 900px) {
  .split, .split--wide-left, .contact-grid, .topics { grid-template-columns: 1fr; }
  .page-hero-grid { grid-template-columns: 1fr; }
  .hero-stone, .hero-stone--pebble { position: absolute; right: -24px; top: 0.5rem; width: 84px; margin: 0; }
  .page-hero h1 { padding-right: 56px; }
}
@media (max-width: 640px) {
  .bio { grid-template-columns: 1fr; }
  .bio img { width: 150px; }
  .field-row { grid-template-columns: 1fr; }
}
