/* ---------- Nav ---------- */
.nav {
  position: sticky; top: 0; z-index: 10;
  height: var(--nav-h);
  background: color-mix(in srgb, var(--adaire-ivory) 88%, transparent);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-fast) var(--ease-out);
}
.nav.is-scrolled { border-bottom-color: var(--border); }
.nav .container { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--s-6); }

.lockup { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; }
.lockup img { width: 38px; height: 38px; }
.lockup .wordmark { font-weight: 500; font-size: 27px; line-height: 1; letter-spacing: -0.005em; padding-bottom: 3px; }

.nav-links { display: none; gap: var(--s-8); list-style: none; margin: 0; padding: 0; }
.nav-links a {
  font-weight: 500; font-size: var(--text-small); text-decoration: none; color: var(--text);
  padding: 6px 0; border-bottom: 1px solid transparent;
  transition: border-color var(--dur-fast) var(--ease-out);
}
.nav-links a:hover { border-bottom-color: var(--accent); }
.nav-actions { display: flex; align-items: center; gap: var(--s-4); }
.nav-actions .link { display: none; font-size: var(--text-small); }
@media (min-width: 900px) {
  .nav-links { display: flex; }
  .nav-actions .link { display: inline; }
}

/* ---------- Hero ---------- */
.hero {
  padding-block: var(--s-12) var(--s-16);
  position: relative;
}
.hero .container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-12);
  align-items: center;
}
@media (min-width: 960px) {
  .hero { padding-block: var(--s-24) var(--s-32); min-height: calc(100vh - var(--nav-h)); display: flex; align-items: center; }
  .hero .container {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    column-gap: clamp(var(--s-12), 6vw, var(--s-24));
  }
}

.hero-copy { max-width: 36rem; }
.hero-title {
  font-weight: 500;
  font-size: var(--text-display);
  line-height: 1.04;
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.hero-title .serif {
  font-size: 1.14em;
  line-height: 0.9;
  color: var(--accent);
  letter-spacing: 0;
}
.hero-lead {
  margin-top: var(--s-6);
  font-size: var(--text-lead);
  line-height: 1.5;
  color: var(--text-muted);
  max-width: 30rem;
  text-wrap: pretty;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-8); }
.hero-note {
  margin-top: var(--s-8);
  padding-top: var(--s-4);
  border-top: 1px solid var(--border);
  font-size: var(--text-small);
  color: var(--text-muted);
  display: flex; flex-direction: column; gap: 6px;
  max-width: 36rem;
}
.hero-note span { white-space: nowrap; }
@media (min-width: 600px) {
  .hero-note { flex-direction: row; align-items: center; gap: var(--s-3); }
  .hero-note span + span::before { content: ""; display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: var(--accent); vertical-align: middle; margin-right: var(--s-3); }
}

/* ---------- Return card ---------- */
.return-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  padding: var(--s-6);
  width: 100%;
  max-width: 460px;
  margin-inline: auto;
}
@media (min-width: 960px) { .return-card { margin-inline: 0 0 auto; padding: var(--s-8); } }

.return-head { display: flex; flex-direction: column; gap: 2px; }
.return-head .name { font-weight: 500; font-size: 1.125rem; letter-spacing: -0.005em; line-height: 1.3; }
.return-head .year { font-size: var(--text-small); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.return-status {
  margin-top: var(--s-2);
  font-size: var(--text-label);
  color: var(--text-muted);
  display: flex; align-items: center; gap: var(--s-2);
}
.return-status .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }

.return-rows { list-style: none; margin: var(--s-6) 0 0; padding: 0; border-top: 1px solid var(--border); }
.return-row {
  display: grid; grid-template-columns: 20px 1fr auto; align-items: start; gap: var(--s-3);
  padding: 14px 0; border-bottom: 1px solid var(--border);
}
.return-row .check { width: 20px; height: 20px; color: var(--adaire-oak); margin-top: 2px; }
.return-row .what { font-weight: 500; font-size: 1rem; line-height: 1.3; }
.return-row .detail { font-size: var(--text-small); color: var(--text-muted); line-height: 1.4; margin-top: 2px; }
.return-row .form { font-size: var(--text-label); color: var(--text-muted); font-variant-numeric: tabular-nums; white-space: nowrap; margin-top: 3px; }

.return-note {
  margin-top: var(--s-6);
  display: grid; grid-template-columns: 36px 1fr; gap: var(--s-3); align-items: start;
}
.return-note .avatar {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--adaire-oak); color: var(--adaire-ivory-ink);
  display: grid; place-items: center;
  font-weight: 500; font-size: 0.75rem; letter-spacing: 0.04em;
}
.return-note blockquote { margin: 0; }
.return-note .quote {
  font-family: var(--font-serif); font-style: italic; font-weight: 500;
  font-size: 1.3125rem; line-height: 1.35; color: var(--text);
  text-wrap: pretty;
}
.return-note .who { margin-top: var(--s-2); font-size: var(--text-label); color: var(--text-muted); }

/* ---------- Hero visual: the portal, bleeding ---------- */
.hero-visual { width: 100%; max-width: 480px; margin-inline: auto; animation: rise var(--dur-enter) var(--ease-out) both; animation-delay: 240ms; }
@media (min-width: 960px) { .hero-visual { margin-inline: 0 0 auto; } }
.portal-panel {
  background: var(--adaire-oak); border-radius: 24px; padding: 44px 0 0 44px; overflow: hidden;
  aspect-ratio: 1 / 1; position: relative; max-width: 520px;
}
.portal {
  background: var(--adaire-card); border-radius: 14px 0 0 0; height: 100%; width: 118%;
  border: 1px solid var(--adaire-line); border-right: 0; border-bottom: 0;
  display: grid; grid-template-columns: 148px 1fr; font-size: 13px;
  animation: slidein 900ms var(--ease-out) both; animation-delay: 400ms;
}
@keyframes slidein { from { transform: translate(24px, 24px); opacity: 0; } to { transform: none; opacity: 1; } }
.portal .rail { border-right: 1px solid var(--adaire-line); padding: 18px 16px; }
.portal .rail .lk { display: flex; align-items: center; gap: 6px; font-weight: 500; font-size: 15px; letter-spacing: -0.005em; margin-bottom: 20px; }
.portal .rail .lk img { width: 20px; height: 20px; }
.portal .rail .step { display: flex; align-items: center; gap: 8px; padding: 7px 0; color: var(--text-muted); }
.portal .rail .step i { width: 14px; height: 14px; border-radius: 50%; border: 1px solid var(--adaire-line-strong); display: grid; place-items: center; flex: none; }
.portal .rail .step i svg { width: 9px; height: 9px; }
.portal .rail .step.done { color: var(--text); } .portal .rail .step.done i { background: var(--adaire-oak); border-color: var(--adaire-oak); color: var(--adaire-ivory-ink); }
.portal .rail .step.now { color: var(--text); font-weight: 500; } .portal .rail .step.now i { border-color: var(--adaire-brass); background: var(--adaire-brass); }
.portal .main { padding: 18px 22px; }
.portal .main h3 { font-weight: 500; font-size: 17px; letter-spacing: -0.005em; }
.portal .main .sub { color: var(--text-muted); margin-top: 2px; }
.portal .msg { margin-top: 16px; border: 1px solid var(--adaire-line); border-radius: 10px; padding: 12px 14px; background: var(--adaire-ivory); }
.portal .msg .from { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); }
.portal .msg .body { margin-top: 4px; font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: 16px; line-height: 1.35; }
.portal .need { margin-top: 16px; }
.portal .need .h { font-weight: 500; margin-bottom: 6px; }
.portal .need li { list-style: none; display: flex; justify-content: space-between; padding: 7px 0; border-top: 1px solid var(--adaire-line); color: var(--text-muted); }
.portal .need ul { margin: 0; padding: 0; }
.portal .need li b { font-weight: 500; color: var(--text); }
.portal .stage-mobile { display: none; align-items: center; gap: 8px; margin-bottom: 10px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); }
.portal .stage-mobile i { width: 8px; height: 8px; border-radius: 50%; background: var(--adaire-brass); }
@media (max-width: 599px) {
  .portal-panel { aspect-ratio: auto; padding: 24px 0 0 24px; border-radius: 20px; }
  .portal { width: 108%; grid-template-columns: 1fr; border-radius: 12px 0 0 0; }
  .portal .rail { display: none; }
  .portal .main { padding: 16px 18px 20px; }
  .portal .stage-mobile { display: flex; }
}
@media (prefers-reduced-motion: reduce) { .hero-visual, .portal { animation: none; } }

/* Animated portal: one 14 s loop that tells the return's story.
   Base styles are the FINAL state; keyframes only describe earlier moments,
   so reduced-motion (animation: none) shows the finished frame. */
.portal-anim { --loop: 14s; }
.portal-anim .portal .rail .step i, .portal-anim .portal .rail .step,
.portal-anim .sub-stack span, .portal-anim .progress, .portal-anim .progress i,
.portal-anim .need li, .portal-anim .msg {
  animation-duration: var(--loop); animation-iteration-count: infinite; animation-timing-function: linear; animation-fill-mode: both;
}

/* rail: documents (now → done), analysis (empty → now → done), review (empty → now) */
.portal-anim .st-docs i { animation-name: a-docs-i; }
.portal-anim .st-docs { animation-name: a-docs-t; }
.portal-anim .st-docs i svg { animation: a-docs-check var(--loop) linear infinite both; }
.portal-anim .st-analysis i { animation-name: a-ana-i; }
.portal-anim .st-analysis { animation-name: a-ana-t; }
.portal-anim .st-analysis i svg { animation: a-ana-check var(--loop) linear infinite both; }
.portal-anim .st-review i { animation-name: a-rev-i; }
.portal-anim .st-review { animation-name: a-rev-t; }

@keyframes a-docs-i { 0%,34% { background: var(--adaire-brass); border-color: var(--adaire-brass); } 36%,100% { background: var(--adaire-oak); border-color: var(--adaire-oak); } }
@keyframes a-docs-check { 0%,34% { opacity: 0; } 36%,100% { opacity: 1; } }
@keyframes a-docs-t { 0%,34% { font-weight: 500; } 36%,100% { font-weight: 400; } }

@keyframes a-ana-i { 0%,34% { background: transparent; border-color: var(--adaire-line-strong); } 36%,59% { background: var(--adaire-brass); border-color: var(--adaire-brass); } 61%,100% { background: var(--adaire-oak); border-color: var(--adaire-oak); } }
@keyframes a-ana-check { 0%,59% { opacity: 0; } 61%,100% { opacity: 1; } }
@keyframes a-ana-t { 0%,34% { color: var(--text-muted); font-weight: 400; } 36%,59% { color: var(--text); font-weight: 500; } 61%,100% { color: var(--text); font-weight: 400; } }

@keyframes a-rev-i { 0%,59% { background: transparent; border-color: var(--adaire-line-strong); } 61%,100% { background: var(--adaire-brass); border-color: var(--adaire-brass); } }
@keyframes a-rev-t { 0%,59% { color: var(--text-muted); font-weight: 400; } 61%,100% { color: var(--text); font-weight: 500; } }

/* status line: three phrases crossfade */
.portal-anim .sub-stack { position: relative; height: 2.9em; margin-top: 2px; }
.portal-anim .sub-stack span { position: absolute; inset: 0; color: var(--text-muted); line-height: 1.45; }
.portal-anim .sub-stack .s1 { animation-name: a-s1; }
.portal-anim .sub-stack .s2 { animation-name: a-s2; }
.portal-anim .sub-stack .s3 { animation-name: a-s3; }
@keyframes a-s1 { 0% { opacity: 0; } 3%,32% { opacity: 1; } 35%,100% { opacity: 0; } }
@keyframes a-s2 { 0%,35% { opacity: 0; } 38%,57% { opacity: 1; } 60%,100% { opacity: 0; } }
@keyframes a-s3 { 0%,60% { opacity: 0; } 63%,97% { opacity: 1; } 100% { opacity: 0; } }

/* analysis progress hairline */
.portal-anim .progress { height: 2px; background: var(--adaire-line); border-radius: 2px; overflow: hidden; margin-top: 10px; opacity: 0; animation-name: a-prog; }
.portal-anim .progress i { display: block; height: 100%; width: 100%; background: var(--adaire-brass); transform-origin: left; animation-name: a-prog-fill; }
@keyframes a-prog { 0%,35% { opacity: 0; } 37%,58% { opacity: 1; } 61%,100% { opacity: 0; } }
@keyframes a-prog-fill { 0%,36% { transform: scaleX(0); } 58%,100% { transform: scaleX(1); } }

/* documents arrive one by one */
.portal-anim .need li:nth-child(1) { animation-name: a-row1; }
.portal-anim .need li:nth-child(2) { animation-name: a-row2; }
.portal-anim .need li:nth-child(3) { animation-name: a-row3; }
@keyframes a-row1 { 0%,8%  { opacity: 0; transform: translateY(6px); } 12%,97% { opacity: 1; transform: none; } 100% { opacity: 0; } }
@keyframes a-row2 { 0%,16% { opacity: 0; transform: translateY(6px); } 20%,97% { opacity: 1; transform: none; } 100% { opacity: 0; } }
@keyframes a-row3 { 0%,24% { opacity: 0; transform: translateY(6px); } 28%,97% { opacity: 1; transform: none; } 100% { opacity: 0; } }

/* the note from Maeve lands last, below the documents */
.portal-anim .msg { animation-name: a-msg; margin-top: 16px; }
@keyframes a-msg { 0%,62% { opacity: 0; transform: translateY(8px); } 67%,97% { opacity: 1; transform: none; } 100% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  .portal-anim .portal .rail .step i, .portal-anim .portal .rail .step, .portal-anim .portal .rail .step i svg,
  .portal-anim .sub-stack span, .portal-anim .progress, .portal-anim .progress i, .portal-anim .need li, .portal-anim .msg { animation: none; }
  .portal-anim .sub-stack .s1, .portal-anim .sub-stack .s2 { opacity: 0; }
}

/* ---------- Entrance: the one authored moment ---------- */
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes draw { to { stroke-dashoffset: 0; } }
.hero [data-rise] { animation: rise var(--dur-enter) var(--ease-out) both; animation-delay: calc(var(--i, 0) * 90ms); }
.return-card { animation: rise var(--dur-enter) var(--ease-out) both; animation-delay: 240ms; }
.return-row { animation: rise 600ms var(--ease-out) both; animation-delay: calc(420ms + var(--i, 0) * 110ms); }
.return-row .check path { stroke-dasharray: 20; stroke-dashoffset: 20; animation: draw 420ms var(--ease-out) forwards; animation-delay: calc(640ms + var(--i, 0) * 110ms); }
.return-note { animation: rise 700ms var(--ease-out) both; animation-delay: 1050ms; }
@media (prefers-reduced-motion: reduce) {
  .hero [data-rise], .return-card, .return-row, .return-note { animation: none; }
  .return-row .check path { stroke-dashoffset: 0; animation: none; }
}



/* ---------- Section primitives ---------- */
.section { padding-block: var(--s-16); }
@media (min-width: 960px) { .section { padding-block: var(--s-24); } }
.how { padding-top: var(--s-24); }
@media (min-width: 960px) { .how { padding-top: var(--s-32); } }
.section-head { max-width: 40rem; }
.section-title { font-weight: 500; font-size: var(--text-h2); line-height: 1.1; letter-spacing: -0.01em; text-wrap: balance; }
.section-title .serif { color: var(--accent); font-size: 1.14em; line-height: 0.9; letter-spacing: 0; }
.section-lead { margin-top: var(--s-4); font-size: var(--text-lead); line-height: 1.5; color: var(--text-muted); max-width: 34rem; text-wrap: pretty; }

/* ---------- How it works: sticky intro, five-step timeline ---------- */
.how .container { display: grid; grid-template-columns: 1fr; gap: var(--s-12); }
@media (min-width: 960px) {
  .how .container { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(var(--s-12), 6vw, var(--s-24)); align-items: start; }
  .how .section-head { position: sticky; top: calc(var(--nav-h) + var(--s-8)); }
}
.how .section-cta { margin-top: var(--s-8); }
.steps-label { font-size: var(--text-label); letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); font-weight: 500; padding-bottom: var(--s-4); border-bottom: 1px solid var(--adaire-oak); }
.steps { list-style: none; margin: 0; padding: 0; }
.hstep { display: grid; grid-template-columns: 52px 1fr; column-gap: var(--s-6); align-items: start; padding: var(--s-8) 0; border-bottom: 1px solid var(--border); }
.hicon { width: 52px; height: 52px; border-radius: 50%; background: var(--surface); border: 1px solid var(--border-strong); display: grid; place-items: center; margin-top: 2px; }
.hicon svg { width: 26px; height: 26px; fill: none; stroke: var(--adaire-oak); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.hicon svg .accent { stroke: var(--adaire-brass); }
.hstep h3 { font-weight: 500; font-size: var(--text-h3); line-height: 1.25; letter-spacing: -0.005em; text-wrap: balance; }
.hstep p { margin-top: var(--s-3); color: var(--text-muted); line-height: 1.55; text-wrap: pretty; max-width: 34rem; }

.section-cta { margin-top: var(--s-12); display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-4) var(--s-6); }
.section-cta .note { color: var(--text-muted); font-size: var(--text-small); }

/* scroll-in reveal: quiet, fade and 10px rise, once */
.reveal { opacity: 0; transform: translateY(10px); transition: opacity 700ms var(--ease-out), transform 700ms var(--ease-out); }
.reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* ---------- Founder quote (Q1: compact inline) ---------- */
.quote-section { padding-block: var(--s-12); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
@media (min-width: 960px) { .quote-section { padding-block: var(--s-16); } }
.pull { display: grid; grid-template-columns: 1fr; gap: var(--s-6); align-items: center; width: fit-content; max-width: 52rem; margin: 0 auto; }
@media (min-width: 700px) { .pull { grid-template-columns: auto auto; column-gap: var(--s-8); justify-content: center; } }
.pull-photo { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; border: 1px solid var(--border); background: var(--surface); }
@media (min-width: 960px) { .pull-photo { width: 120px; height: 120px; } }
.pull-photo img { width: 100%; height: 100%; object-fit: cover; }
.pull blockquote { margin: 0; }
.pull .q {
  font-family: var(--font-serif); font-style: italic; font-weight: 500;
  font-size: clamp(1.375rem, 1.15rem + 1vw, 1.875rem); line-height: 1.3; letter-spacing: -0.005em;
  text-wrap: pretty; max-width: 38ch;
}
.pull .q::before { content: "\201C"; color: var(--accent); margin-left: -0.45em; }
.pull .q::after { content: "\201D"; color: var(--accent); }
.pull .cite { margin-top: var(--s-3); font-style: normal; display: flex; flex-wrap: wrap; gap: 2px var(--s-3); align-items: baseline; }
.pull .cite .name { font-weight: 500; font-size: 1rem; }
.pull .cite .role { font-size: var(--text-small); color: var(--text-muted); }
.pull .cite .role::before { content: "\00B7"; color: var(--accent); margin-right: var(--s-3); }

/* ---------- Who it's for (W2: five columns) ---------- */
.who { border-top: 1px solid var(--border); }
.section-head.centered { margin-inline: auto; text-align: center; max-width: 44rem; }
.section-head.centered .section-lead { margin-inline: auto; }
.section-title.plain { color: var(--adaire-oak); }
.section-cta.centered { justify-content: center; text-align: center; flex-direction: column; gap: var(--s-4); }
.who .section-cta { margin-top: var(--s-8); }
.fit-cols { list-style: none; margin: var(--s-12) 0 0; padding: 0; display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--adaire-oak); }
.fit-cols li { padding: var(--s-6) 0; border-bottom: 1px solid var(--border); display: grid; grid-template-columns: 52px 1fr; column-gap: var(--s-4); row-gap: 4px; }
.fit-cols .hicon { grid-row: 1 / span 3; }
.fit-cols .t { font-weight: 500; font-size: 1.125rem; line-height: 1.3; letter-spacing: -0.005em; text-wrap: balance; }
.fit-cols .d { color: var(--text-muted); font-size: var(--text-small); line-height: 1.5; text-wrap: pretty; }
.fit-cols .f { font-size: var(--text-label); color: var(--text-muted); font-variant-numeric: tabular-nums; }
@media (min-width: 700px) { .fit-cols { grid-template-columns: 1fr 1fr; column-gap: var(--s-8); } }
@media (min-width: 1000px) {
  .fit-cols { grid-template-columns: repeat(5, 1fr); column-gap: 0; border-top: 0; }
  .fit-cols li { display: block; padding: var(--s-2) var(--s-6) 0; border-bottom: 0; border-left: 1px solid var(--border); text-align: center; }
  .fit-cols li:first-child { border-left: 0; }
  .fit-cols .hicon { margin: 0 auto var(--s-4); }
  .fit-cols .d { margin-inline: auto; }
  .fit-cols .d { margin-top: 6px; }
  .fit-cols .f { display: block; margin-top: 10px; }
}
.fit-more { margin: var(--s-12) auto 0; text-align: center; font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: clamp(1.5rem, 1.3rem + 1vw, 2rem); color: var(--accent); line-height: 1.25; text-wrap: balance; }

/* ---------- Our people ---------- */
.people { border-top: 1px solid var(--border); }
.people .section-head { max-width: 40rem; }
.team { list-style: none; margin: var(--s-12) 0 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: var(--s-12) var(--s-8); }
@media (min-width: 640px) { .team { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .team { grid-template-columns: repeat(3, 1fr); } }
.person .photo { aspect-ratio: 4 / 5; border-radius: var(--r-card); overflow: hidden; background: var(--surface); border: 1px solid var(--border); }
.person .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.person .photo.slot { background: var(--adaire-oak); display: grid; place-items: center; text-align: center; padding: var(--s-6); }
.person .photo.slot span { color: var(--adaire-brass-pale); font-size: var(--text-label); letter-spacing: .18em; text-transform: uppercase; line-height: 1.8; }
.person .photo.slot small { display: block; letter-spacing: 0; text-transform: none; color: #B9C2BC; font-size: var(--text-small); margin-top: var(--s-2); }
.person .name { margin-top: var(--s-4); font-weight: 500; font-size: 1.25rem; letter-spacing: -0.005em; line-height: 1.25; }
.person .creds { font-size: var(--text-small); color: var(--text-muted); margin-top: 2px; }
.person .bio { margin-top: var(--s-3); color: var(--text-muted); line-height: 1.55; text-wrap: pretty; max-width: 30rem; }
.people-note { margin-top: var(--s-12); padding-top: var(--s-6); border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-4) var(--s-6); }
.people-note p { color: var(--text-muted); max-width: 40rem; text-wrap: pretty; }

/* ---------- Pricing (P1: the number, stated plainly) ---------- */
.pricing { border-top: 1px solid var(--border); }
.price-hero { text-align: center; max-width: 44rem; margin-inline: auto; }
.price-hero .from { font-size: var(--text-label); letter-spacing: .2em; text-transform: uppercase; color: var(--text-muted); font-weight: 500; }
.price-hero .amount { margin-top: var(--s-3); font-weight: 500; font-size: clamp(3.5rem, 2.5rem + 5vw, 6rem); line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: var(--adaire-oak); }
.price-hero .amount sup { font-size: .45em; vertical-align: top; position: relative; top: .25em; margin-right: .05em; font-weight: 500; }
.price-hero .per { margin-top: var(--s-2); color: var(--text-muted); font-size: var(--text-lead); }
.price-hero .promise { margin-top: var(--s-6); font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem); line-height: 1.3; color: var(--text); text-wrap: balance; }
.price-cols { margin-top: var(--s-12); display: grid; grid-template-columns: 1fr; gap: var(--s-8); border-top: 1px solid var(--adaire-oak); padding-top: var(--s-8); }
@media (min-width: 800px) { .price-cols { grid-template-columns: 1fr 1fr; column-gap: var(--s-16); } }
.price-cols h3 { font-weight: 500; font-size: var(--text-h3); letter-spacing: -0.005em; line-height: 1.25; }
.price-cols ul { list-style: none; margin: var(--s-4) 0 0; padding: 0; }
.price-cols li { display: flex; gap: var(--s-3); padding: 10px 0; border-top: 1px solid var(--border); line-height: 1.5; }
.price-cols li:first-child { border-top: 0; }
.price-cols li svg { width: 20px; height: 20px; flex: none; margin-top: 3px; }
.price-cols .inc li svg { color: var(--adaire-brass); }
.price-cols .mov li svg { color: var(--text-muted); }
.price-cols .mov li { color: var(--text-muted); }
.price-cols .mov li b { font-weight: 500; color: var(--text); }
.pricing .section-cta { margin-top: var(--s-12); }

/* ---------- Closing: the Oak anchor ---------- */
.closing { background: var(--bg); color: var(--text); padding-block: var(--s-24); text-align: center; }
@media (min-width: 960px) { .closing { padding-block: var(--s-32); } }
.closing .container { display: flex; flex-direction: column; align-items: center; }
.closing .mark { width: 56px; height: 56px; margin-bottom: var(--s-8); }
.closing-title { font-weight: 500; font-size: var(--text-display); line-height: 1.04; letter-spacing: -0.015em; text-wrap: balance; max-width: 16ch; }
.closing-title .serif { display: block; font-size: 1.14em; line-height: 1; color: var(--accent); letter-spacing: 0; }
.closing-lead { margin-top: var(--s-6); font-size: var(--text-lead); line-height: 1.5; color: var(--text-muted); max-width: 32rem; text-wrap: pretty; }
.closing-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s-3); margin-top: var(--s-8); }
.closing-note { margin-top: var(--s-8); padding-top: var(--s-6); border-top: 1px solid var(--border); font-size: var(--text-small); color: var(--text-muted); display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%; max-width: 44rem; }
.closing-note span { white-space: nowrap; }
@media (min-width: 760px) {
  .closing-note { flex-direction: row; justify-content: center; gap: var(--s-3); }
  .closing-note span + span::before { content: ""; display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: var(--accent); vertical-align: middle; margin-right: var(--s-3); }
}

/* ---------- Footer ---------- */
.footer { background: var(--adaire-forest); color: var(--adaire-ivory-ink); --text: var(--adaire-ivory-ink); --text-muted: #B9C2BC; --border: #2A453E; --accent: var(--adaire-brass-pale); padding-block: var(--s-16) var(--s-8); border-top: 1px solid #2A453E; }
.footer-grid { display: grid; grid-template-columns: 1fr; gap: var(--s-12); }
@media (min-width: 760px) { .footer-grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; column-gap: var(--s-8); } }
.footer .lockup img { width: 32px; height: 32px; }
.footer .lockup .wordmark { font-size: 24px; }
.footer .tag { margin-top: var(--s-4); font-size: 1.0625rem; line-height: 1.3; color: var(--text); }
.footer .tag .serif { color: var(--accent); font-size: 1.2em; }
.footer .about { margin-top: var(--s-4); color: var(--text-muted); font-size: var(--text-small); line-height: 1.55; max-width: 24rem; text-wrap: pretty; }
.footer h3 { font-size: var(--text-label); letter-spacing: .18em; text-transform: uppercase; color: var(--accent); font-weight: 500; }
.footer ul { list-style: none; margin: var(--s-4) 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.footer ul a { color: var(--text); text-decoration: none; font-size: var(--text-small); border-bottom: 1px solid transparent; transition: border-color var(--dur-fast) var(--ease-out); }
.footer ul a:hover { border-bottom-color: var(--accent); }
.footer-bottom { margin-top: var(--s-12); padding-top: var(--s-6); border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3) var(--s-6); font-size: var(--text-label); color: var(--text-muted); }
.footer-bottom .legal { display: flex; flex-wrap: wrap; gap: var(--s-4); }
.footer-bottom a { color: var(--text-muted); text-decoration: none; }
.footer-bottom a:hover { color: var(--text); }
.footer ::selection { background: var(--adaire-ivory-ink); color: var(--adaire-oak); }
