.site-header__inner .primary-nav { margin-left: auto; display: flex; align-items: center; gap: 1.35rem; font: 500 .78rem/1 var(--sans); }
.site-header__inner .primary-nav a { min-height: 44px; display: inline-flex; align-items: center; color: var(--ink-soft); text-decoration: none; }
.site-header__inner .primary-nav a:hover, .site-header__inner .primary-nav a[aria-current="page"] { color: var(--ink); }
.header-action { min-height: 2.7rem; padding: .7rem 1rem; border: 1px solid var(--gold-deep); background: var(--night); color: var(--cream); font: 600 .78rem/1 var(--sans); text-decoration: none; display: inline-flex; align-items: center; }
.site-header__inner .primary-nav a:focus-visible, .header-action:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 3px; }

@font-face { font-family: "Source Serif 4 Critical"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/source-serif-4-latin-600.woff2") format("woff2"); }

.page-hero { padding-block: clamp(5rem, 9vw, 8.5rem); border-bottom: 1px solid var(--rule); background: var(--paper-bright); }
.page-hero__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(17rem, .85fr); gap: clamp(3rem, 8vw, 8rem); align-items: end; }
.eyebrow { margin-bottom: 1.25rem; color: var(--gold-deep); font: 650 .72rem/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.page-hero h1 { max-width: 13ch; font-size: clamp(3.25rem, 6vw, 5.75rem); line-height: .98; }
.team-hero h1 { font-family: "Source Serif 4 Critical", var(--serif); }
.page-hero__copy { display: grid; gap: 1.5rem; }
.page-hero__copy p { color: var(--ink-soft); font: 400 1.05rem/1.65 var(--sans); }
.page-hero__note { padding-top: 1.25rem; border-top: 1px solid var(--rule); color: var(--muted); font: 400 .78rem/1.55 var(--sans); }

.page-section { padding-block: clamp(4.5rem, 8vw, 8rem); }
.page-section--night { background: var(--night); color: var(--cream); }
.page-section--night .eyebrow { color: var(--gold-night); }
.page-section--paper { background: var(--paper); }
.section-heading { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 8vw, 8rem); align-items: start; }
.section-heading h2 { max-width: 12ch; font-size: clamp(2.6rem, 4.4vw, 4.25rem); line-height: 1.04; }
.section-heading__copy { display: grid; gap: 1rem; color: var(--ink-soft); font: 400 1rem/1.65 var(--sans); }
.page-section--night .section-heading__copy { color: var(--cream-dim); }

/* Shared interior-page footer */
.site-footer .section-inner { display: grid; grid-template-columns: 1fr auto auto 1fr; gap: 1.5rem; align-items: center; font: 400 .7rem/1.4 var(--sans); }
.site-footer nav { display: flex; align-items: center; gap: .75rem; }

.feature-grid { margin-top: clamp(3rem, 6vw, 5.5rem); display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--rule); }
.feature-card { min-height: 19rem; padding: 2rem; border-right: 1px solid var(--rule); display: flex; flex-direction: column; gap: 1.25rem; }
.feature-card:last-child { border-right: 0; }
.feature-card__number { color: var(--gold-deep); font: 650 .72rem/1 var(--sans); letter-spacing: .12em; }
.feature-card h3 { font-size: clamp(1.85rem, 2.7vw, 2.65rem); line-height: 1.04; }
.feature-card p { color: var(--ink-soft); font: 400 .93rem/1.6 var(--sans); }

.status-list { margin-top: 3rem; border-top: 1px solid var(--rule); }
.status-row { padding-block: 1.25rem; display: grid; grid-template-columns: minmax(11rem, .6fr) minmax(0, 1fr) auto; gap: 2rem; border-bottom: 1px solid var(--rule); align-items: baseline; }
.status-row dt { font: 600 .85rem/1.4 var(--sans); }
.status-row dd { color: var(--ink-soft); font: 400 .9rem/1.55 var(--sans); }
.status-label { color: var(--gold-deep); font: 650 .66rem/1.3 var(--sans); letter-spacing: .11em; text-transform: uppercase; }

.pricing-intro { max-width: 52rem; }
.pricing-intro h1 { max-width: 12ch; }
.pricing-intro p { margin-top: 1.5rem; max-width: 46rem; color: var(--ink-soft); font: 400 1.05rem/1.65 var(--sans); }
.pricing-note { margin-top: 2rem; padding: 1rem 1.15rem; border: 1px solid var(--rule); background: var(--paper); color: var(--ink-soft); font: 400 .82rem/1.55 var(--sans); }
.pricing-grid { margin-top: clamp(3rem, 6vw, 5rem); display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.plan-card { position: relative; min-height: 33rem; padding: 2rem; border: 1px solid var(--rule); background: var(--paper-bright); display: flex; flex-direction: column; transition: transform 180ms ease-out, border-color 180ms ease-out, box-shadow 180ms ease-out; }
.plan-card:hover { transform: translateY(-4px); border-color: var(--gold); box-shadow: 0 1.25rem 3rem rgba(23,20,17,.08); }
.plan-card--featured { border-color: var(--gold-deep); background: var(--night); color: var(--cream); }
.plan-card--featured .plan-name,
.plan-card--featured .plan-price strong,
.plan-card--featured .plan-features { color: var(--cream); }
.plan-badge { position: absolute; top: 0; right: 0; padding: .55rem .8rem; background: var(--gold-night); color: var(--night); font: 650 .63rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.plan-name { font: 650 .76rem/1.2 var(--sans); letter-spacing: .13em; text-transform: uppercase; }
.plan-audience { margin-top: .8rem; min-height: 3rem; color: var(--muted); font: 400 .86rem/1.5 var(--sans); }
.plan-card--featured .plan-audience { color: var(--cream-dim); }
.plan-price { margin-top: 2rem; display: flex; align-items: baseline; gap: .4rem; }
.plan-price strong { font: 400 clamp(3.3rem, 5vw, 5rem)/.9 var(--serif); letter-spacing: -.055em; }
.plan-price span { color: var(--muted); font: 400 .78rem/1.4 var(--sans); }
.plan-card--featured .plan-price span { color: var(--cream-dim); }
.plan-summary { margin-top: 1.6rem; color: var(--ink-soft); font: 400 .92rem/1.6 var(--sans); }
.plan-card--featured .plan-summary { color: var(--cream-dim); }
.plan-features { margin: 1.75rem 0 2rem; padding: 1.5rem 0 0; border-top: 1px solid var(--rule); display: grid; gap: .8rem; list-style: none; }
.plan-card--featured .plan-features { border-color: rgba(244,241,234,.18); }
.plan-features li { padding-left: 1.15rem; position: relative; font: 400 .82rem/1.5 var(--sans); }
.plan-features li::before { content: ""; position: absolute; left: 0; top: .55em; width: .36rem; height: .36rem; background: var(--gold); }
.plan-card .bordered-cta { margin-top: auto; width: 100%; }
.plan-card--featured .bordered-cta { background: var(--cream); color: var(--night); }

.comparison-scroll-cue { display: none; }
.comparison-wrap { margin-top: 5rem; overflow-x: auto; border: 1px solid var(--rule); background: var(--paper-bright); }
.comparison { width: 100%; min-width: 46rem; border-collapse: collapse; font-family: var(--sans); }
.comparison caption { padding: 2rem; color: var(--ink); text-align: left; }
.comparison-title { display: block; font: 400 2.1rem/1.1 var(--serif); }
.comparison-caption__note { display: block; max-width: 38rem; margin-top: .65rem; color: var(--muted); font: 400 .8rem/1.5 var(--sans); }
.comparison th, .comparison td { padding: 1rem 1.25rem; border-top: 1px solid var(--rule); text-align: left; vertical-align: middle; }
.comparison thead th { color: var(--ink); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.comparison tbody th { width: 35%; color: var(--ink-soft); font-size: .8rem; font-weight: 500; }
.comparison thead th:first-child, .comparison tbody th { position: sticky; left: 0; z-index: 1; background: var(--paper-bright); }
.comparison tbody tr:nth-child(even) th { background: #f7f4ed; }
.comparison td { color: var(--ink-soft); font-size: .8rem; line-height: 1.45; }
.comparison tbody tr:nth-child(even) { background: rgba(216, 210, 196, .16); }
.comparison thead th:nth-child(3), .comparison tbody td:nth-child(3) { background: rgba(183, 138, 46, .06); }
.compare-state { display: inline-flex; align-items: center; gap: .4rem; font-weight: 650; white-space: nowrap; }
.compare-state svg { flex: 0 0 auto; width: 1.2rem; height: 1.2rem; padding: .18rem; border-radius: 999px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.compare-state--yes { color: var(--success); }
.compare-state--yes svg { background: color-mix(in srgb, currentColor 13%, transparent); }
.compare-state--no { color: #8a342d; }
.compare-state--no svg { background: color-mix(in srgb, currentColor 12%, transparent); }
.compare-state--preview { color: var(--gold-deep); }
.compare-state--preview::before { content: ""; width: .5rem; height: .5rem; border: 1px solid currentColor; transform: rotate(45deg); }
.compare-state--custom { color: var(--muted); font-weight: 500; }
.comparison-help { padding: 1.25rem; border-top: 1px solid var(--rule); color: var(--muted); font: 400 .75rem/1.5 var(--sans); }

.page-closing { padding-block: clamp(4.5rem, 8vw, 7.5rem); background: var(--night); color: var(--cream); }
.page-closing .section-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3rem; align-items: end; }
.page-closing h2 { max-width: 15ch; font-size: clamp(2.8rem, 4.8vw, 4.8rem); line-height: 1.02; }
.page-closing p { margin-top: 1rem; max-width: 38rem; color: var(--cream-dim); font: 400 .9rem/1.6 var(--sans); }

/* Closing CTAs on interior pages share the homepage treatment without loading its full art direction. */
.team-page .bordered-cta, .privacy-page .bordered-cta { --cta-border: var(--gold-deep); position: relative; min-height: 3rem; padding: .875rem 1.375rem; display: inline-flex; align-items: center; justify-content: center; gap: .625rem; border: 1px solid var(--cta-border); background: var(--night); color: var(--cream); font: 600 .9375rem/1.2 var(--sans); text-decoration: none; transition: color 100ms ease-out, background-color 100ms ease-out; }
.team-page .bordered-cta::before, .team-page .bordered-cta::after, .privacy-page .bordered-cta::before, .privacy-page .bordered-cta::after { content: ""; position: absolute; inset: -1px; pointer-events: none; }
.team-page .bordered-cta::before, .privacy-page .bordered-cta::before { border-block: 2px solid var(--gold-night); transform: scaleX(.12); transform-origin: left center; animation: pages-cta-trace-x 4.8s cubic-bezier(.16,1,.3,1) infinite; transition: transform 220ms cubic-bezier(.16,1,.3,1); }
.team-page .bordered-cta::after, .privacy-page .bordered-cta::after { border-inline: 2px solid var(--gold-night); transform: scaleY(.22); transform-origin: center top; animation: pages-cta-trace-y 4.8s .18s cubic-bezier(.16,1,.3,1) infinite; transition: transform 220ms cubic-bezier(.16,1,.3,1); }
.team-page .bordered-cta svg, .privacy-page .bordered-cta svg { position: relative; z-index: 1; fill: none; stroke: var(--gold-night); stroke-width: 1.5; stroke-linecap: square; transition: transform 140ms ease-out; }
.team-page .bordered-cta > span, .privacy-page .bordered-cta > span { position: relative; z-index: 1; }
.team-page .bordered-cta:hover::before, .team-page .bordered-cta:hover::after, .team-page .bordered-cta:focus-visible::before, .team-page .bordered-cta:focus-visible::after, .privacy-page .bordered-cta:hover::before, .privacy-page .bordered-cta:hover::after, .privacy-page .bordered-cta:focus-visible::before, .privacy-page .bordered-cta:focus-visible::after { animation: none; transform: scale(1); }
.team-page .bordered-cta:hover svg, .privacy-page .bordered-cta:hover svg { transform: translate(3px,-3px); }
.team-page .bordered-cta:active, .privacy-page .bordered-cta:active { background: var(--gold-deep); color: var(--paper-bright); }
.team-page .bordered-cta:focus-visible, .privacy-page .bordered-cta:focus-visible { outline: 2px solid var(--paper-bright); outline-offset: 4px; }
@keyframes pages-cta-trace-x { 0%,12% { transform: scaleX(.12); transform-origin: left center; } 28%,52% { transform: scaleX(1); transform-origin: left center; } 68%,100% { transform: scaleX(.12); transform-origin: right center; } }
@keyframes pages-cta-trace-y { 0%,12% { transform: scaleY(.22); transform-origin: center top; } 28%,52% { transform: scaleY(1); transform-origin: center top; } 68%,100% { transform: scaleY(.22); transform-origin: center bottom; } }

@media (max-width: 64rem) {
  .site-header__inner { flex-wrap: wrap; padding-block: .65rem; }
  .site-header__inner .primary-nav { order: 3; width: 100%; justify-content: center; border-top: 1px solid var(--rule); }
  .page-hero__grid, .section-heading { grid-template-columns: 1fr; }
  .feature-grid, .pricing-grid { grid-template-columns: 1fr; }
  .feature-card { min-height: 0; border-right: 0; border-bottom: 1px solid var(--rule); }
  .feature-card:last-child { border-bottom: 0; }
  .plan-card { min-height: 0; }
}

@media (max-width: 40rem) {
  .header-action { display: none; }
  .site-header__inner .primary-nav { justify-content: flex-start; gap: 1rem; overflow-x: auto; }
  .status-row { grid-template-columns: 1fr; gap: .55rem; }
  .page-closing .section-inner { grid-template-columns: 1fr; align-items: start; }
  .page-closing .bordered-cta { width: 100%; }
}

@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
  .plan-card { transition: none; }
  .plan-card:hover { transform: none; box-shadow: none; }
  .team-page .bordered-cta::before, .team-page .bordered-cta::after, .privacy-page .bordered-cta::before, .privacy-page .bordered-cta::after { animation: none; transform: scale(1); transition: none; }
  .team-page .bordered-cta svg, .privacy-page .bordered-cta svg { transition: none; }
}

/* Team */
.team-page .site-header__inner .primary-nav a { color: var(--cream-dim); }
.team-page .site-header__inner .primary-nav a:hover, .team-page .site-header__inner .primary-nav a[aria-current="page"] { color: var(--cream); }
.team-page .section-inner { width: min(72rem, calc(100% - 4rem)); margin-inline: auto; }
.team-page .team-hero, .team-page .team-introduction, .team-page .team-principle { color: var(--ink); }
.team-hero h1 { max-width: 11ch; }
.team-introduction { background: var(--paper); }
.team-members__heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.team-members__heading h2 { max-width: 13ch; font-size: clamp(2.6rem, 4.4vw, 4.25rem); line-height: 1.04; }
.team-grid { margin-top: clamp(3rem, 6vw, 5.5rem); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(244, 241, 234, .24); border-left: 1px solid rgba(244, 241, 234, .24); }
.team-profile { min-height: 23rem; padding: clamp(1.5rem, 3vw, 2.5rem); display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2rem); border-right: 1px solid rgba(244, 241, 234, .24); border-bottom: 1px solid rgba(244, 241, 234, .24); }
.team-profile__portrait { width: 7rem; margin: 0; position: relative; align-self: start; border: 1px solid var(--gold-night); background: var(--night-soft); aspect-ratio: 4 / 5; overflow: hidden; }
.team-profile__portrait img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center top; filter: saturate(.72) contrast(1.04); }
.team-profile__portrait::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(23, 20, 17, .55)); pointer-events: none; }
.team-profile__portrait figcaption { position: absolute; z-index: 1; right: .45rem; bottom: .35rem; color: var(--cream); font: 650 .6rem/1 var(--sans); letter-spacing: .1em; }
.team-profile__discipline { color: var(--gold-night); font: 650 .68rem/1.3 var(--sans); letter-spacing: .13em; text-transform: uppercase; }
.team-profile h3 { margin-top: .85rem; color: var(--cream); font-size: clamp(2rem, 3vw, 2.65rem); line-height: 1.02; }
.team-profile h3 + p { margin-top: 1rem; max-width: 28rem; color: var(--cream-dim); font: 400 .94rem/1.65 var(--sans); }
.team-principle { background: var(--paper-bright); }
.team-principle__inner { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); column-gap: clamp(2rem, 8vw, 8rem); row-gap: 1.5rem; }
.team-principle h2 { grid-column: 1; max-width: 11ch; font-size: clamp(2.6rem, 4.4vw, 4.25rem); line-height: 1.04; }
.team-principle h2 + p { grid-column: 2; align-self: end; max-width: 39rem; color: var(--ink-soft); font: 400 1rem/1.65 var(--sans); }

@media (max-width: 64rem) {
  .team-principle__inner { grid-template-columns: 1fr; }
  .team-principle h2, .team-principle h2 + p { grid-column: 1; grid-row: auto; }
}

@media (max-width: 40rem) {
  .site-footer .section-inner { grid-template-columns: 1fr; gap: .75rem; }
  .site-footer nav { flex-wrap: wrap; }
  .comparison-scroll-cue { display: block; margin: 4rem 0 .75rem; color: var(--muted); font: 650 .72rem/1.4 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
  .comparison-wrap { margin-top: 0; }
  .comparison thead th:first-child, .comparison tbody th { width: 11rem; min-width: 11rem; }
  .team-page .section-inner { width: calc(100% - 1.5rem); }
  .team-members__heading { display: block; }
  .team-grid { grid-template-columns: 1fr; }
  .team-profile { min-height: 0; grid-template-columns: 5.5rem minmax(0, 1fr); }
  .team-profile__portrait { width: 5.5rem; }
}

/* Privacy */
.privacy-page .site-header__inner .primary-nav a { color: var(--cream-dim); }
.privacy-page .site-header__inner .primary-nav a:hover, .privacy-page .site-header__inner .primary-nav a[aria-current="page"] { color: var(--cream); }
.privacy-page .section-inner { width: min(72rem, calc(100% - 4rem)); margin-inline: auto; }
.privacy-page .privacy-hero, .privacy-page .privacy-scope, .privacy-page .privacy-site, .privacy-page .privacy-research { color: var(--ink); }
.privacy-hero h1 { max-width: 10ch; }
.privacy-hero .page-hero__note { font-size: .88rem; }
.privacy-hero .page-hero__note a { color: var(--ink); font-weight: 600; text-underline-offset: .18em; }
.privacy-scope { background: var(--paper-bright); }
.privacy-reading-grid { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: clamp(2rem, 8vw, 8rem); }
.privacy-reading-grid h2, .privacy-section-heading h2 { max-width: 12ch; font-size: clamp(2.6rem, 4.4vw, 4.25rem); line-height: 1.04; }
.privacy-prose { max-width: 43rem; display: grid; gap: 1.1rem; color: var(--ink-soft); font: 400 1rem/1.68 var(--sans); }
.privacy-prose a { color: var(--ink); font-weight: 600; text-underline-offset: .18em; }
.privacy-consideration { background: var(--night); }
.privacy-section-heading { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 8vw, 8rem); align-items: end; }
.privacy-section-heading h2 { color: var(--cream); }
.privacy-section-heading p { max-width: 34rem; color: var(--cream-dim); font: 400 1rem/1.65 var(--sans); }
.privacy-facts { margin: clamp(3rem, 6vw, 5.5rem) 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(244, 241, 234, .24); border-left: 1px solid rgba(244, 241, 234, .24); }
.privacy-facts > div { min-height: 15rem; padding: clamp(1.5rem, 3vw, 2.5rem); border-right: 1px solid rgba(244, 241, 234, .24); border-bottom: 1px solid rgba(244, 241, 234, .24); }
.privacy-facts dt { color: var(--gold-night); font: 650 .72rem/1.35 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.privacy-facts dd { margin: 1rem 0 0; max-width: 30rem; color: var(--cream-dim); font: 400 .96rem/1.65 var(--sans); }
.privacy-site { background: var(--paper); }
.privacy-research { background: var(--paper-bright); border-top: 1px solid var(--rule); }
.privacy-aside { margin-top: 1.25rem; max-width: 24rem; color: var(--ink-soft); font: 400 .92rem/1.6 var(--sans); }
.privacy-disclosures { border-top: 1px solid var(--rule); }
.privacy-disclosures details { border-bottom: 1px solid var(--rule); }
.privacy-disclosures summary { min-height: 5rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; cursor: pointer; color: var(--ink); font: 400 clamp(1.4rem, 2.4vw, 2rem)/1.2 var(--serif); list-style: none; }
.privacy-disclosures summary::-webkit-details-marker { display: none; }
.privacy-disclosures summary::after { content: "+"; flex: 0 0 auto; color: var(--gold-deep); font: 400 1.8rem/1 var(--sans); }
.privacy-disclosures details[open] summary::after { content: "−"; }
.privacy-disclosures details > div { max-width: 43rem; padding: 0 0 1.75rem; display: grid; gap: 1rem; color: var(--ink-soft); font: 400 .98rem/1.68 var(--sans); }
.privacy-disclosures summary:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: -4px; }

@media (max-width: 64rem) {
  .privacy-reading-grid, .privacy-section-heading { grid-template-columns: 1fr; }
}

@media (max-width: 40rem) {
  .privacy-page .section-inner { width: calc(100% - 1.5rem); }
  .privacy-facts { grid-template-columns: 1fr; }
  .privacy-facts > div { min-height: 0; }
  .privacy-disclosures summary { min-height: 4.5rem; }
}
