/* SiteDesign.ir — Persian reading system V2
   Load after all visual stylesheets. This layer only tunes type, measure and reading rhythm. */

:root {
  --reading-copy-size: clamp(1rem, .24vw + .98rem, 1.125rem);
  --reading-copy-leading: 1.95;
  --reading-measure: 37rem;
  --reading-measure-wide: 44rem;
  --reading-measure-compact: 38rem;
}

body {
  font-size: var(--reading-copy-size);
  line-height: var(--reading-copy-leading);
  font-kerning: normal;
  font-variant-ligatures: contextual;
}

:where(p, li, blockquote) {
  text-wrap: pretty;
  overflow-wrap: break-word;
  orphans: 3;
  widows: 3;
}

:where(h1, h2, h3, h4) {
  text-wrap: balance;
  overflow-wrap: break-word;
  break-after: avoid;
  orphans: 3;
  widows: 3;
}

:where(bdi, [dir="ltr"], [lang="en"], code, kbd, samp, pre) {
  direction: ltr;
  unicode-bidi: isolate;
}

:where(input[type="email"], input[type="url"], input[type="tel"]) {
  direction: ltr;
  text-align: left;
}

/* Hero and high-level explanatory copy */
.home-page .hero-lead,
.inner-page :is(.page-hero-copy, .landing-hero-copy) > p {
  max-inline-size: var(--reading-measure-wide);
  font-size: clamp(1.02rem, .38vw + .95rem, 1.16rem);
  line-height: 1.95;
}

.inner-page :is(.page-hero-copy, .landing-hero-copy) > p {
  max-inline-size: 38rem;
}

.home-page :is(.section-heading, .split-heading) > p,
.home-page :is(.performance-copy, .honesty-copy, .faq-intro) > p,
.inner-page .split-heading > p,
.inner-page .contact-details > p {
  max-inline-size: var(--reading-measure-compact);
  font-size: var(--reading-copy-size);
  line-height: var(--reading-copy-leading);
}

.home-page :is(.section-heading, .split-heading) > p,
.inner-page .split-heading > p {
  margin-block-end: 0;
}

/* Home-page long copy: raise small decorative text to a readable floor. */
.home-page .service-row p,
.home-page .quality-card p,
.home-page .performance-copy > p,
.home-page .honesty-copy p,
.home-page .insight-card p,
.home-page .project-copy p {
  font-size: clamp(.9375rem, .16vw + .91rem, 1rem);
  line-height: 1.9;
}

.home-page .service-row p { max-inline-size: 50ch; }
.home-page .quality-card p { max-inline-size: 48ch; }
.home-page .performance-copy > p { max-inline-size: 58ch; }
.home-page .honesty-copy p { max-inline-size: 56ch; }

.home-page .check-list li {
  max-inline-size: 52ch;
  font-size: clamp(.9375rem, .14vw + .91rem, 1rem);
  line-height: 1.9;
}

/* FAQ is reading content, not microcopy. */
.accordion summary {
  font-size: clamp(.98rem, .18vw + .94rem, 1.05rem);
  line-height: 1.75;
}

.accordion details > div > p,
.home-page .accordion details > div > p {
  max-inline-size: 42rem;
  font-size: var(--reading-copy-size);
  line-height: var(--reading-copy-leading);
}

/* Inner-page content bands and cards. */
.inner-page .content-band .prose {
  inline-size: min(100%, var(--reading-measure));
  max-inline-size: var(--reading-measure);
}

/* Legal pages are reference documents, not narrow editorial articles. */
.inner-page .structural-band-article > .container > .prose:not(.article-content) {
  inline-size: min(100%, 900px);
  max-inline-size: 900px;
  margin-inline: auto;
}

.inner-page .prose :is(p, li),
.prose :is(p, li) {
  font-size: var(--reading-copy-size);
  line-height: var(--reading-copy-leading);
}

.prose p { margin-block-end: 1.25em; }
.prose p:last-child { margin-block-end: 0; }

/* Reading panels: a measured cadence, not a box around every paragraph. */
.inner-page :is(
  .structural-band-intro .prose > p:first-child,
  .content-band .prose > h3 + p,
  .article-content > section > p,
  .article-content > section > p:first-of-type,
  .article-content > section > p:nth-of-type(3n),
  .article-content > section > h3 + p,
  .structural-band-article > .container > .prose:not(.article-content) > section > p,
  .structural-band-article > .container > .prose:not(.article-content) > section > p:first-of-type,
  .structural-band-article > .container > .prose:not(.article-content) > section > p:nth-of-type(3n)
) {
  position: relative;
  margin-block: .75rem 1.55rem;
  padding: clamp(1.05rem, 1.4vw, 1.4rem) clamp(1.15rem, 1.8vw, 1.7rem);
  border: 1px solid rgb(41 72 232 / 8%);
  border-inline-start: 0;
  background:
    linear-gradient(to left, rgb(41 72 232 / 2.5%) 1px, transparent 1px),
    linear-gradient(135deg, #fdfdff, #f8faff);
  background-size: 76px 100%, 100% 100%;
  color: #344054;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
}

.inner-page :is(
  .content-band .prose > h3:nth-of-type(3n + 2) + p,
  .article-content > section:nth-child(3n + 2) > p:first-of-type,
  .article-content > section > p:nth-of-type(3n + 1),
  .structural-band-article > .container > .prose:not(.article-content) > section:nth-child(3n + 2) > p:first-of-type
) {
  border-color: rgb(104 113 134 / 10%);
  background:
    linear-gradient(to left, rgb(104 113 134 / 2%) 1px, transparent 1px),
    linear-gradient(135deg, #fefdfa, #faf9f5);
  background-size: 76px 100%, 100% 100%;
}

.inner-page :is(
  .content-band .prose > h3:nth-of-type(3n) + p,
  .article-content > section:nth-child(3n) > p:first-of-type,
  .article-content > section > p:nth-of-type(3n + 2),
  .structural-band-article > .container > .prose:not(.article-content) > section:nth-child(3n) > p:first-of-type
) {
  border-color: rgb(61 181 198 / 11%);
  background:
    linear-gradient(to left, rgb(61 181 198 / 2.5%) 1px, transparent 1px),
    linear-gradient(135deg, #fcfefe, #f6fbfb);
  background-size: 76px 100%, 100% 100%;
}

.inner-page :is(
  .structural-band-intro .prose > p:first-child,
  .content-band .prose > h3 + p,
  .article-content > section > p,
  .article-content > section > p:first-of-type,
  .article-content > section > p:nth-of-type(3n),
  .article-content > section > h3 + p,
  .structural-band-article > .container > .prose:not(.article-content) > section > p,
  .structural-band-article > .container > .prose:not(.article-content) > section > p:first-of-type,
  .structural-band-article > .container > .prose:not(.article-content) > section > p:nth-of-type(3n)
)::after {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 0;
  inline-size: 10px;
  aspect-ratio: 1;
  background: #7fe5f1;
  clip-path: polygon(100% 0, 0 0, 100% 100%);
}

.prose :is(ul, ol) {
  margin-block: 1.1em 1.55em;
  padding-inline-start: 1.4em;
}

.prose li { padding-inline-start: .25em; }
.prose li + li { margin-block-start: .5em; }

.prose h2 {
  margin-block: clamp(2.5rem, 5vw, 4.25rem) .8em;
  font-size: clamp(1.35rem, .75vw + 1.15rem, 1.82rem);
  line-height: 1.62;
}

.prose h3 {
  margin-block: 2.15em .7em;
  font-size: clamp(1.12rem, .35vw + 1.03rem, 1.34rem);
  line-height: 1.68;
}

.prose blockquote {
  max-inline-size: 42rem;
  margin-block: clamp(2rem, 5vw, 3.75rem);
  font-size: clamp(1.04rem, .25vw + .98rem, 1.18rem);
  line-height: 1.95;
}

.inner-page .content-band :is(.feature-card, .info-card) p,
.inner-page .listing-card p {
  max-inline-size: 48ch;
  font-size: clamp(.9375rem, .15vw + .91rem, 1rem);
  line-height: 1.9;
}

.inner-page .content-band :is(.feature-card, .info-card) h3,
.inner-page .listing-card :is(h2, h3) {
  line-height: 1.62;
}

.listing-card .card-meta,
.article-meta {
  line-height: 1.75;
}

/* Editorial templates: stable central measure with non-competing side rails. */
.inner-page .article-layout {
  grid-template-columns: minmax(10.5rem, 13rem) minmax(0, 37rem) minmax(11.5rem, 14rem);
  justify-content: center;
  gap: clamp(2rem, 3.6vw, 4.25rem);
}

.inner-page .article-content {
  inline-size: 100%;
  max-inline-size: 37rem;
}

.inner-page .article-content > p:first-of-type,
.inner-page .article-content > section:first-child > p:first-of-type {
  max-inline-size: 37rem;
  margin-block-end: 1.65em;
  color: var(--graphite);
  font-size: clamp(1.08rem, .34vw + 1rem, 1.25rem);
  line-height: 1.95;
}

.inner-page .article-content > section + section {
  margin-block-start: clamp(2.75rem, 6vw, 5rem);
}

.inner-page .article-content > section > :is(h2, h3):first-child {
  margin-block-start: 0;
}

.inner-page .article-content > section > h2:first-child {
  position: relative;
  padding-inline-start: 1.65rem;
}

.inner-page .article-content > section > h2:first-child::before {
  content: "";
  position: absolute;
  inset-block-start: .72em;
  inset-inline-start: .15rem;
  inline-size: .72rem;
  block-size: .72rem;
  border: 1px solid var(--inner-blue, var(--primary));
  background: radial-gradient(circle, #5de1ee 0 2px, transparent 2.5px);
  transform: translateY(-50%) rotate(45deg);
}

.inner-page .section-related-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem .75rem;
  margin-block: 2rem 0;
  padding-block-start: 1rem;
  border-block-start: 1px solid rgb(41 72 232 / 16%);
  font-size: .78rem;
  line-height: 1.8;
}

.inner-page .section-related-links span { color: #667085; }
.inner-page .section-related-links a {
  padding: .35rem .65rem;
  border: 1px solid rgb(41 72 232 / 22%);
  color: var(--inner-blue, var(--primary));
  text-decoration: none;
  transition: border-color 180ms ease, background-color 180ms ease;
}
.inner-page .section-related-links a:hover { border-color: var(--inner-blue, var(--primary)); background: rgb(41 72 232 / 5%); }

.inner-page .article-toc {
  position: sticky;
  inset-block-start: 104px;
  max-block-size: calc(100svh - 9rem);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
  padding-block: 1.35rem;
  padding-inline: 1.45rem .6rem;
  border-inline-start: 1px solid var(--inner-line, var(--line));
  transition: scrollbar-color 180ms ease;
}

.inner-page .article-toc-toggle { display: none; }
.inner-page .article-toc-list { display: block; }

.inner-page .article-toc strong {
  display: block;
  margin-block-end: .8rem;
  color: var(--graphite);
  font-size: .78rem;
  font-weight: 780;
  letter-spacing: -.012em;
  line-height: 1.7;
}

.inner-page .article-toc a {
  position: relative;
  display: block;
  margin-block: .12rem;
  padding: .62rem .72rem;
  border-radius: 2px;
  color: var(--muted);
  font-size: .8125rem;
  font-weight: 450;
  line-height: 1.82;
  transition: color 180ms ease, background-color 180ms ease, font-weight 180ms ease;
}

.inner-page .article-toc a::before {
  content: "";
  position: absolute;
  inset-block: 18%;
  inset-inline-start: -1.48rem;
  inline-size: 3px;
  border-radius: 99px;
  background: transparent;
  transform: scaleY(.35);
  transition: background-color 180ms ease, transform 180ms ease;
}

.inner-page .article-toc a:hover,
.inner-page .article-toc a:focus-visible {
  color: var(--inner-blue, var(--primary));
  background: rgb(41 72 232 / 6%);
}

.inner-page .article-toc a.is-active,
.inner-page .article-toc a[aria-current="location"] {
  color: var(--inner-blue, var(--primary));
  background: linear-gradient(90deg, rgb(41 72 232 / 3%), rgb(41 72 232 / 10%));
  font-weight: 750;
}

.inner-page .article-toc a.is-active::before,
.inner-page .article-toc a[aria-current="location"]::before {
  background: linear-gradient(180deg, #5de1ee, var(--inner-blue, var(--primary)));
  transform: scaleY(1);
}

.inner-page .article-toc:hover,
.inner-page .article-toc:focus-within {
  scrollbar-color: rgb(41 72 232 / 16%) transparent;
}

.inner-page .article-toc::-webkit-scrollbar { inline-size: 3px; }
.inner-page .article-toc::-webkit-scrollbar-track { background: transparent; }
.inner-page .article-toc::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: transparent;
}
.inner-page .article-toc:hover::-webkit-scrollbar-thumb,
.inner-page .article-toc:focus-within::-webkit-scrollbar-thumb {
  background: rgb(41 72 232 / 15%);
}

.inner-page .article-aside p {
  font-size: .9375rem;
  line-height: 1.9;
}

/* Forms and guided help: labels and hints stay readable without becoming body copy. */
.field label,
.field legend {
  font-size: .875rem;
  line-height: 1.7;
}

.field :is(input, textarea, select) {
  font-size: 1rem;
  line-height: 1.6;
}

.checkbox-field label,
.form-status,
.choice-card label small {
  font-size: .875rem;
  line-height: 1.75;
}

.choice-card label strong { line-height: 1.65; }

/* Tablet: remove the tertiary rail before it squeezes the article. */
@media (max-width: 1199px) {
  .inner-page .article-layout {
    grid-template-columns: minmax(10.5rem, 12rem) minmax(0, 37rem);
    gap: clamp(2rem, 5vw, 3.75rem);
  }

  .inner-page .article-aside { display: none; }
}

@media (max-width: 959px) {
  .inner-page .article-layout {
    grid-template-columns: minmax(0, 37rem);
    justify-content: center;
  }

  .inner-page .article-toc {
    position: static;
    max-block-size: none;
    overflow: visible;
    padding-block: 1rem;
    padding-inline: 0;
    border-inline-start: 0;
    border-block: 1px solid var(--inner-line, var(--line));
  }

  .inner-page .article-toc-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 1.5rem;
  }

  .inner-page .article-toc strong { grid-column: 1 / -1; }
  .inner-page .article-toc a::before { display: none; }
}

/* Mobile Persian reading: use the safe width, align long copy to the reading edge,
   and keep roughly 28–38 Persian characters on a typical line. */
@media (max-width: 639px) {
  :root {
    --reading-copy-size: 1.125rem;
    --reading-copy-leading: 1.92;
  }

  body { font-size: 1rem; }

  :where(
    .hero-lead,
    .page-hero-copy > p,
    .landing-hero-copy > p,
    .split-heading > p,
    .section-heading > p,
    .performance-copy > p,
    .honesty-copy > p,
    .faq-intro > p,
    .final-cta-shell > p,
    .contact-details > p,
    .prose
  ) {
    max-inline-size: 100%;
    text-align: start;
  }

  .home-page .hero-lead {
    font-size: 1rem;
    line-height: 1.92;
  }

  .inner-page :is(.page-hero-copy, .landing-hero-copy) > p {
    font-size: 1.0625rem;
    line-height: 1.92;
  }

  .prose p { margin-block-end: 1.15em; }

  .prose :is(ul, ol) {
    margin-block: .9em 1.35em;
    padding-inline-start: 1.25em;
  }

  .prose h2 {
    margin-block: 2.5rem .75em;
    font-size: clamp(1.28rem, 5.7vw, 1.55rem);
    line-height: 1.64;
  }

  .prose h3 {
    margin-block: 2em .65em;
    font-size: clamp(1.1rem, 4.8vw, 1.28rem);
    line-height: 1.68;
  }

  .prose blockquote {
    margin-block: 2rem;
    padding: 1.25rem 1.15rem;
    font-size: 1rem;
    line-height: 1.92;
  }

  .inner-page .article-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2.5rem;
  }

  .inner-page .article-toc {
    padding-block: 0;
    border-block: 1px solid var(--inner-line, var(--line));
    background: rgb(250 252 255 / 86%);
  }

  .inner-page .article-toc-toggle {
    inline-size: 100%;
    min-block-size: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1rem;
    border: 0;
    background: transparent;
    color: var(--graphite);
    font: 780 .92rem/1.7 Vazirmatn, Tahoma, sans-serif;
    text-align: start;
    cursor: pointer;
  }

  .inner-page .article-toc-toggle i {
    position: relative;
    inline-size: 30px;
    block-size: 30px;
    flex: 0 0 30px;
    border: 1px solid rgb(41 72 232 / 28%);
    background: #fff;
    clip-path: polygon(0 0, calc(100% - 5px) 0, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
  }

  .inner-page .article-toc-toggle i::before,
  .inner-page .article-toc-toggle i::after {
    content: "";
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: 50%;
    inline-size: 12px;
    block-size: 1.5px;
    background: var(--inner-blue, var(--primary));
    transform: translate(-50%, -50%);
    transition: opacity 180ms ease, transform 180ms ease;
  }

  .inner-page .article-toc-toggle i::after { transform: translate(-50%, -50%) rotate(90deg); }
  .inner-page .article-toc.is-open .article-toc-toggle i::after { opacity: 0; transform: translate(-50%, -50%) rotate(0); }

  .inner-page .article-toc-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    max-block-size: 0;
    overflow: hidden;
    padding-inline: .55rem;
    opacity: 0;
    visibility: hidden;
    transition: max-block-size 280ms ease, opacity 180ms ease, visibility 180ms ease, padding 280ms ease;
  }

  .inner-page .article-toc.is-open .article-toc-list {
    max-block-size: min(68svh, 620px);
    overflow-x: hidden;
    overflow-y: auto;
    padding-block: .2rem 1rem;
    opacity: 1;
    visibility: visible;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgb(41 72 232 / 14%) transparent;
  }

  .inner-page .article-toc strong { display: none; }
  .inner-page .article-toc a { padding-block: .72rem; font-size: .875rem; }

  .inner-page .article-content,
  .inner-page .content-band .prose { inline-size: 100%; }

  .inner-page .article-content > p:first-of-type {
    font-size: 1.125rem;
    line-height: 1.95;
  }

  .inner-page .article-content > section:first-child > p:first-of-type {
    font-size: 1.125rem;
    line-height: 1.95;
  }

  .inner-page .article-content > section > h2:first-child {
    padding-inline-start: 1.5rem;
  }

  .accordion summary {
    min-block-size: 76px;
    font-size: 1rem;
    line-height: 1.75;
  }

  .accordion details > div > p,
  .home-page .accordion details > div > p {
    font-size: 1rem;
    line-height: 1.92;
  }

  .home-page :is(.service-row, .quality-card, .insight-card) p,
  .home-page :is(.performance-copy, .honesty-copy, .project-copy) p,
  .inner-page .content-band :is(.feature-card, .info-card) p,
  .inner-page .listing-card p {
    font-size: 1rem;
    line-height: 1.9;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Heading scale V3 — H1 remains the shared hero anchor; H2–H6 step down ~25%. */
.home-page :is(.section-heading h2, .approach-sticky h2, .types-head h2, .quality-title h2, .process-copy h2, .technology-intro h2, .performance-copy h2, .faq-intro h2, .honesty-grid h2) {
  font-size: clamp(1rem, 1.4vw, 1.6rem);
  line-height: 1.58;
}

.home-page .project-copy h3 { font-size: clamp(.9rem, 1.36vw, 1.52rem); line-height: 1.66; }
.home-page :is(.editorial-step h3, .service-row h3) { font-size: clamp(.86rem, .76vw, .92rem); }
.home-page .type-feature h3 { font-size: clamp(.9rem, .96vw, 1.02rem); }
.home-page .quality-main h3 { font-size: clamp(.9rem, .98vw, 1.06rem); }
.home-page :is(.quality-card h3, .tech-decisions h3) { font-size: .86rem; }
.home-page .feature-insight h3,
.home-page .final-cta-shell h2 { font-size: clamp(1.05rem, 1.5vw, 1.68rem); line-height: 1.62; }
.home-page .insight-card:not(.feature-insight) h3 { font-size: clamp(.86rem, .82vw, .94rem); }

.inner-page .content-aside h2,
.inner-page .contact-details h2 { font-size: clamp(.9rem, 1.12vw, 1.18rem); line-height: 1.74; }
.inner-page :is(.split-heading, .faq-intro, .contact-details, .form-shell) h2 {
  font-size: clamp(.94rem, 1.12vw, 1.22rem);
  line-height: 1.74;
}
.inner-page .prose h2 { font-size: clamp(.92rem, .45vw + .78rem, 1.15rem); line-height: 1.76; }
.inner-page .prose h3 { font-size: clamp(.86rem, .22vw + .82rem, .94rem); line-height: 1.82; }
.inner-page .content-band :is(.feature-card, .info-card) h3 { font-size: clamp(.84rem, .2vw + .8rem, .9rem); line-height: 1.78; }
.inner-page .listing-card h2 { font-size: clamp(.84rem, .86vw, .94rem); line-height: 1.76; }
.inner-page .listing-card:first-child h2 { font-size: clamp(1.02rem, 1.48vw, 1.6rem); line-height: 1.64; }
.journal-listing .listing-card h2,
.journal-listing .listing-card:first-child h2 {
  max-inline-size: 24ch;
  font-size: clamp(.92rem, 1.04vw, 1.12rem);
  line-height: 1.72;
}
.journal-listing .listing-card:nth-child(6n + 1) h2,
.journal-listing .listing-card:nth-child(6n + 6) h2 {
  max-inline-size: 20ch;
  font-size: clamp(1.05rem, 1.34vw, 1.42rem);
  line-height: 1.66;
}
.inner-page .wizard-step h2 { font-size: clamp(.84rem, .98vw, .98rem); line-height: 1.76; }
.inner-page .final-cta-shell h2 { font-size: clamp(1.05rem, 1.5vw, 1.68rem); line-height: 1.62; }
.site-footer .footer-manifesto h2 { font-size: clamp(.92rem, 1.32vw, 1.38rem); line-height: 1.78; }

body :is(h4, h5, h6) { line-height: 1.72; }
body h4 { font-size: .74rem; }
body h5 { font-size: .7rem; }
body h6 { font-size: .66rem; }

@media (max-width: 700px) {
  .inner-page :is(
    .structural-band-intro .prose > p:first-child,
    .content-band .prose > h3 + p,
    .article-content > section > p,
    .article-content > section > p:first-of-type,
    .article-content > section > p:nth-of-type(3n),
    .article-content > section > h3 + p,
    .structural-band-article > .container > .prose:not(.article-content) > section > p,
    .structural-band-article > .container > .prose:not(.article-content) > section > p:first-of-type,
    .structural-band-article > .container > .prose:not(.article-content) > section > p:nth-of-type(3n)
  ) {
    margin-block: .65rem 1.2rem;
    padding: 1rem 1.05rem;
    background-size: 56px 100%, 100% 100%;
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
  }

  .home-page :is(.section-heading h2, .approach-sticky h2, .types-head h2, .quality-title h2, .process-copy h2, .technology-intro h2, .performance-copy h2, .faq-intro h2, .honesty-grid h2) {
    font-size: clamp(.94rem, 3.7vw, 1.16rem);
  }
  .home-page .project-copy h3 { font-size: .96rem; }
  .home-page .feature-insight h3,
  .home-page .final-cta-shell h2,
  .inner-page .final-cta-shell h2 { font-size: 1.05rem; }
  .inner-page .prose h2 { font-size: clamp(.92rem, 3.7vw, 1.02rem); }
  .inner-page .prose h3 { font-size: clamp(.86rem, 3.4vw, .94rem); }
  .site-footer .footer-manifesto h2 { font-size: .96rem; }
}
