@import url("https://fonts.googleapis.com/css2?family=Outfit:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=Syne:wght@400;500;600;700;800&display=swap");

/* hub-layout.css
   andrew-hillman.com — flagship 2026 editorial.
   Syne (display) + Outfit (body) via Google Fonts display=swap.
   Paper #FFF6EE, ink #111827, hero ELECTRIC COBALT #2563EB, accent CORAL #FF5A3C.
   Linked last. No font-size !important on body so the a11y overlay wins.
   Visual only. */

:root {
  --bg: #FFF6EE !important;
  --paper: #FFF6EE !important;
  --paper-soft: #FFE8D6 !important;
  --panel: #FFFFFF !important;
  --sheet: #FFFFFF !important;
  --ink: #111827 !important;
  --ink-2: #374151 !important;
  --ink-mid: #374151 !important;
  --ink-quiet: #4B5563 !important;
  --ink-soft: #111827 !important;
  --body: "Outfit", system-ui, sans-serif !important;
  --line: #FFD4C4 !important;
  --hairline: #FFD4C4 !important;
  --rule: #FFD4C4 !important;
  --rule-soft: #FFD4C4 !important;
  --gold: #FF5A3C !important;
  --gold-deep: #9A3412 !important;
  --gold-ink: #9A3412 !important;
  --gold-dk: #9A3412 !important;
  --gold-dk-ink: #9A3412 !important;
  --navy: #2563EB !important;
  --navy-ink: #111827 !important;
  --cobalt: #2563EB !important;
  --coral: #FF5A3C !important;
  --accent: #FF5A3C !important;
  --accent-primary: #2563EB !important;
  --accent-primary-deep: #1D4ED8 !important;
  --accent-warm: #FF5A3C !important;
  --accent-warm-ink: #9A3412 !important;
  --accent-warm-deep: #9A3412 !important;
  --accent-hot: #FF5A3C !important;
  --accent-deep: #9A3412 !important;
  --accent-ink: #9A3412 !important;
  --cream: #FFF6EE !important;
  --bg-paper: #FFF6EE !important;
  --bg-paper-deep: #FFE8D6 !important;
  --bg-elev: #FFFFFF !important;
  --portrait-cream: #FFF6EE;
  --portrait-navy: #111827;
  --portrait-gold: #FF5A3C;
  --display: "Syne", system-ui, sans-serif !important;
  --serif: "Syne", system-ui, sans-serif !important;
  --sans: "Outfit", system-ui, sans-serif !important;
  --mono: "Outfit", system-ui, sans-serif !important;
  --measure: 65ch;
}

html { overflow-x: hidden; }

body {
  overflow-x: hidden;
  font-family: var(--sans);
  font-size: 16.5px;
  color: var(--ink);
  background-color: #FFF6EE;
  background-image:
    radial-gradient(ellipse 90% 42% at 50% -8%, rgba(37, 99, 235, 0.10), transparent 58%);
  line-height: 1.55;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

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


img.link-icon,
img[src*="icons.duckduckgo.com"],
svg.link-icon {
  width: 14px;
  height: 14px;
  max-width: 14px;
  max-height: 14px;
  object-fit: contain;
  display: inline-block;
  vertical-align: -2px;
  margin-right: 6px;
  flex-shrink: 0;
}
svg.link-icon { overflow: visible; }

/* Wordmark: existing AH mark + name. Syne bold, tight tracking. No new graphic. */
.brand,
a.brand,
.nav-name,
a.nav-name,
.brand-mark,
.wordmark {
  font-family: "Syne", var(--sans);
  font-weight: 700;
  letter-spacing: -0.03em;
  text-decoration: none;
  color: var(--ink);
}
.wordmark {
  display: inline-block;
  line-height: 1;
}
.nav-name em,
.brand em,
.wordmark em,
.nav-name i {
  font-style: normal !important;
  font-weight: 700;
  letter-spacing: -0.034em;
  color: inherit !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}
.logo-mark {
  background: #2563EB !important;
  background-image: none !important;
  font-family: "Syne", var(--sans);
  font-weight: 800;
  letter-spacing: -0.06em;
}
.brand img,
.nav .brand img,
.logo-mark,
img[src*="logo-mark"] {
  width: 30px !important;
  height: 30px !important;
  max-width: 32px;
  object-fit: contain;
  border-radius: 7px;
}

/* Lucide-like icons */
.icon-svg,
.chip svg,
.ornament-icon svg,
svg[stroke="currentColor"] {
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.chip svg { width: 18px; height: 18px; }

hr.ornament::before,
.ornament-divider::before {
  content: "" !important;
  display: inline-block;
  width: 18px;
  height: 18px;
  vertical-align: middle;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M12 4v16'/><path d='M8 8c2.5 2 3.5 2 4 0s1.5-2 4 0'/><path d='M8 16c2.5-2 3.5-2 4 0s1.5 2 4 0'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><path d='M12 4v16'/><path d='M8 8c2.5 2 3.5 2 4 0s1.5-2 4 0'/><path d='M8 16c2.5-2 3.5-2 4 0s1.5 2 4 0'/></svg>") center / contain no-repeat;
  font-size: 0 !important;
  color: var(--coral);
}

img[src*="temple-emanu-el"],
img[src*="scottish-rite"] {
  height: 40px !important;
  width: auto !important;
  max-width: 180px !important;
  max-height: 48px !important;
  object-fit: contain;
}

img[src*="parish-episcopal-building"],
img[src*="parish-episcopal-campus-map"],
img[src*="lamplighter-hillman-innovation-lab"],
img[src*="lamplighter-hillman-interior"],
img[src*="lamplighter-eastin-innovation-lab"] {
  width: 180px !important;
  height: 180px !important;
  max-width: 180px !important;
  max-height: 180px !important;
  object-fit: cover;
  border-radius: 6px;
}

.ah-infographic { margin: 48px auto; max-width: 520px; text-align: center; }
.ah-infographic img {
  width: 100%;
  max-width: 520px;
  height: auto;
  margin: 0 auto;
  display: block;
}

h1, h2, h3, .hero-split h1, .block h2, .stat .n,
.display, [class*="hero-headline"], [class*="section-title"] {
  font-family: var(--display);
  text-wrap: balance;
  color: var(--ink);
}

h1, .hero-split h1 {
  font-size: clamp(2.4rem, 6vw, 4.6rem);
  font-weight: 700;
  letter-spacing: -0.034em;
  line-height: 0.98;
  margin-bottom: 0.55em;
}

h2, .block h2 {
  font-size: clamp(1.45rem, 3vw, 2.2rem);
  font-weight: 700;
  letter-spacing: -0.022em;
  line-height: 1.16;
  margin-bottom: 0.5em;
}

h3 { font-size: 1.15rem; font-weight: 700; letter-spacing: -0.012em; margin-bottom: 0.4em; }

.wrap,
.nav-in,
.stats .row,
.press-strip .ps-in {
  max-width: 1160px;
}

.block p.lede,
.block p.body,
#verified-identity p,
#mentoring p,
#giving .wrap > div > p,
#faq > div > div:not(:first-child),
#authored-work p,
p.lede, .lede, .hs-lede {
  max-width: var(--measure);
}

.block p.lede, p.lede, .lede {
  max-width: 65ch;
  font-size: clamp(1.05rem, 1.6vw, 1.2rem);
  line-height: 1.5;
}

.kicker,
.hs-eyebrow,
.ps-lbl,
.hero .eyebrow,
.lbl-eyebrow,
.lbl-pageeyebrow,
.eyebrow,
#verified-identity > .wrap > div:first-child,
#authored-work .wrap > div:first-child,
#mentoring .wrap > div:first-child,
#giving .wrap > div:first-child,
#faq > div > div:first-child,
#ma-record > div > div:first-child {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  color: var(--gold-deep);
  font-family: var(--sans);
  letter-spacing: 0.16em;
}

.block h2,
.block p.lede,
#verified-identity h2,
#authored-work h2,
#mentoring h2,
#giving h2,
#faq h2,
#ma-record h2,
#focus h2,
#insights h2 {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.block p.lede,
#verified-identity p,
#mentoring p,
#giving .wrap > div > p {
  margin-left: auto;
  margin-right: auto;
}

figcaption { text-align: center; }

section,
section.block,
.block {
  padding-block: clamp(3rem, 6vw, 6rem);
}

.nav {
  background: rgba(255, 246, 238, 0.90);
  border-bottom: 1px solid var(--coral);
}

.hero-split {
  border-bottom: 1px solid var(--coral);
  min-height: 92vh;
  column-gap: 0;
}
.hero-split::after { content: none; }

.hero-split .hs-text {
  background: #2563EB !important;
  background-image: none !important;
  color: #FFF6EE;
  padding-top: 120px !important;
  padding-bottom: 120px !important;
  padding-right: 72px !important;
}
.hero-split .hs-text::before { background: none !important; }

.hero-split .hs-eyebrow {
  color: #FFF6EE;
  margin-bottom: 28px;
}
.hero-split .hs-lede {
  max-width: 46ch;
  font-size: clamp(1.05rem, 1.6vw, 1.22rem);
  line-height: 1.5;
  color: #FFF6EE;
  margin-bottom: 40px;
}
.hero-split .hs-cta { margin-bottom: 8px; }
.hero-split .hs-badges { margin-top: 40px; gap: 10px; }
.hero-split .hs-badges li {
  border-color: rgba(255, 246, 238, 0.42);
  color: #FFF6EE;
}

.hero-split .hs-photo {
  position: relative;
  background: #FFF6EE;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 56px 48px;
  min-height: 0;
  box-shadow: inset 1px 0 0 var(--coral);
}
.hero-split .hs-photo::after { content: none !important; display: none !important; }

.hs-mat {
  width: min(100%, 420px);
  padding: 18px 18px 22px;
  background: var(--portrait-cream);
  border: 1px solid var(--ink);
  box-shadow:
    0 0 0 8px var(--portrait-cream),
    0 0 0 9px var(--coral),
    0 28px 64px rgba(17, 24, 39, 0.14);
}

.hero-split .hs-photo picture,
.hero-split .hs-photo img,
.hs-mat picture,
.hs-mat img {
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center top !important;
}

.hero-split .hs-photo .speaking-portrait {
  margin: 0 auto;
  box-shadow: none;
  border: 0;
  padding: 0;
  background: transparent;
  max-width: none;
  width: 100%;
}

.speaking-portrait,
.hero-portrait,
figure.speaking-portrait {
  --portrait-cream: #FFF6EE;
  --portrait-navy: #111827;
  --portrait-gold: #FF5A3C;
  box-sizing: border-box;
  max-width: 300px;
  width: min(78vw, 300px);
  margin: 0.35rem auto;
  padding: 10px 10px 18px;
  background: var(--portrait-cream);
  border: 1px solid var(--portrait-navy);
  box-shadow:
    0 0 0 6px var(--portrait-cream),
    0 0 0 7px var(--portrait-gold),
    0 22px 48px rgba(17, 24, 39, 0.12);
  border-radius: 1px;
  position: relative;
  z-index: 1;
}

.speaking-portrait::before,
.speaking-portrait::after,
.hero-portrait::before,
.hero-portrait::after {
  content: none !important;
  display: none !important;
}

.speaking-portrait picture,
.hero-portrait picture,
.speaking-portrait img,
.hero-portrait img {
  display: block !important;
  width: 100% !important;
  max-width: 280px !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center top !important;
  margin-left: auto !important;
  margin-right: auto !important;
  border-radius: 0;
  border: 1px solid rgba(17, 24, 39, 0.22);
  box-shadow: none !important;
  filter: none;
  background: #FFE8D6;
}

.speaking-portrait figcaption,
.hero-portrait figcaption {
  text-align: center;
  margin-top: 0.9rem;
  font-family: var(--sans);
  font-size: 0.64rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #4B5563;
}

.exp-about2 img {
  max-width: 280px !important;
  height: auto !important;
  object-fit: contain;
}

.card {
  background: #FFFFFF;
  border-color: var(--line);
  box-shadow: 0 1px 0 rgba(255, 90, 60, 0.35);
}

.stats { border-color: var(--coral); background: #FFFFFF; }
.stat { border-left-color: rgba(255, 90, 60, 0.45); }

.btn { font-size: 14.5px; padding: 13px 24px; min-height: 44px; }
.chip { width: 44px; height: 44px; min-width: 44px; min-height: 44px; }

/* Italic names: solid ink, never color:transparent clip. */
h1 em, h2 em, h3 em,
.hero h1 em, .hero-split h1 em,
.cover-title em, .lb-title em,
.nav-name em, .section-title em,
.card h3 em, .faq-q em {
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

.hero-split .hs-text,
.hero-split .hs-text h1,
.hero-split .hs-text h1 em,
.hero-split .hs-text em,
.hero-split .hs-lede,
.hero-split .hs-eyebrow,
.hero-split .hs-badges li {
  color: #FFF6EE !important;
  -webkit-text-fill-color: #FFF6EE !important;
  background-image: none !important;
}

.kicker,
.ps-lbl,
.hero .eyebrow,
.lbl-eyebrow,
.lbl-pageeyebrow,
.lbl-badge--accent,
[class*="section-eyebrow"],
[class*="section-label"] {
  color: var(--ink) !important;
}

a,
.nav-links a,
.brand,
.block p.body a,
.card .more,
footer .fl a,
footer .pl a {
  color: var(--ink);
}
p a, li a, dd a, .block p.body a, .card .more {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.nav-links a, .brand, .btn, a.btn { text-decoration: none; }

.btn, .btn-primary, a.btn-primary, .btn-pri, a.btn-pri,
button.send, #inquire button.send {
  background: #FF5A3C !important;
  background-image: none !important;
  color: #111827 !important;
  border-color: #FF5A3C !important;
}
.btn-ghost, .btn.ghost, a.btn-ghost {
  background: transparent !important;
  color: #111827 !important;
  border-color: #111827 !important;
}
.hero-split .btn-light,
.hero-split .btn-light:hover,
.hero-split .btn,
.hero-split a.btn {
  background: #FF5A3C !important;
  color: #111827 !important;
  border-color: #FF5A3C !important;
}
.hero-split .btn-outline,
.hero-split .btn-outline:hover {
  background: transparent !important;
  color: #FFF6EE !important;
  border: 2px solid #FFF6EE !important;
}

.stats, .block.alt, .press-strip, .hero-split,
#social-cluster-bar, #verified-identity, #authored-work, #mentoring {
  border-image: none !important;
}
.facts { border-image: none !important; border-left: 3px solid #FF5A3C !important; }

.signature-monogram {
  font-family: "Syne", var(--sans) !important;
  font-style: normal !important;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink) !important;
}

/* Mobile-first: stack, 44px taps, wrap nav, scale type, no overflow. */
@media (max-width: 860px) {
  .hero-split {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .hero-split .hs-photo {
    order: -1;
    height: auto !important;
    min-height: 0 !important;
    padding: 36px 22px 28px;
    box-shadow: inset 0 -1px 0 var(--coral);
  }
  .hero-split .hs-text {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
    padding-right: 28px !important;
  }
  .hs-mat { width: min(86vw, 340px); }
}

@media (max-width: 640px) {
  html, body { overflow-x: hidden; }
  body { font-size: 16px; line-height: 1.55; }
  h1, .hero-split h1, .hero h1, .cover-title {
    font-size: 2rem;
    line-height: 1.15;
    letter-spacing: -0.03em;
  }
  h2, .block h2 { font-size: 1.35rem; line-height: 1.2; }
  h3 { font-size: 1.05rem; }
  .wrap, .nav-in, .press-strip, .press-strip .ps-in,
  .stats .row, footer, #social-cluster-bar,
  header.hero, .hero {
    padding-left: 20px;
    padding-right: 20px;
  }
  .hero-split .hs-text {
    padding: 36px 20px !important;
  }
  .hero-split .hs-photo { padding: 24px 20px; }
  .hero-split .hs-cta,
  .cta, .btnrow {
    display: flex;
    flex-direction: column;
    width: 100%;
    align-items: stretch;
  }
  .btn, a.btn, .btn-primary, a.btn-primary, .btn-ghost, .btn-outline,
  .btn-light, .nav-cta, button.send {
    width: 100%;
    min-height: 44px;
    justify-content: center;
    box-sizing: border-box;
  }
  .nav-in {
    flex-wrap: wrap;
    gap: 10px;
  }
  .nav-links {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    gap: 8px 12px;
  }
  .nav-links a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .hs-mat, .speaking-portrait, .hero-portrait, figure.speaking-portrait {
    max-width: min(100%, 248px);
    width: min(82vw, 248px);
  }
  .speaking-portrait img, .hero-portrait img,
  .speaking-portrait picture, .hero-portrait picture {
    max-width: 100% !important;
  }
  .brand img, .logo-mark, img[src*="logo-mark"] {
    width: 28px !important;
    height: 28px !important;
  }
  img[src*="temple-emanu-el"],
  img[src*="scottish-rite"] {
    max-width: 140px !important;
    height: 32px !important;
  }
  .stats .row, .grid, .vlist, .grid2 { grid-template-columns: 1fr !important; }
}

@media (max-width: 520px) {
  .speaking-portrait,
  .hero-portrait,
  figure.speaking-portrait {
    max-width: 248px;
    width: min(82vw, 248px);
  }
}

/* Tools restore — visibility + 44px tap only. */
.skip-to-content:focus,
.skip-to-content:focus-visible,
a.skip-to-content:focus,
.skip:focus,
.skip:focus-visible,
.skip-link:focus,
.skip-link:focus-visible,
a.skip-link:focus {
  position: fixed !important;
  left: 12px !important;
  top: 12px !important;
  width: auto !important;
  height: auto !important;
  min-width: 44px;
  min-height: 44px;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  display: inline-flex !important;
  align-items: center;
  z-index: 2147483646 !important;
}

.enh-bar, .enh-panel, .enh-lang {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.enh-btn, .enh-toggle, .enh-step, .enh-reset {
  min-width: 44px;
  min-height: 44px;
}

.nav-cta, .btn, a.btn, .btn-pri, a.btn-pri, .btn-sec,
button.send, #inquire button.send, #inquire input, #inquire select,
.dl .btn, .dl a.btn, a[download] {
  min-height: 44px;
}

.index a, nav.az a, nav.index a {
  min-width: 44px;
  min-height: 44px;
  box-sizing: border-box;
}

.cc-search, input.cc-search, input[type="search"] {
  min-height: 44px;
  box-sizing: border-box;
}

#site-search-modal {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 10, 0.85);
  z-index: 10000;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 6rem 1rem 1rem;
}
#site-search-modal.open { display: flex !important; }
#site-search-modal-inner {
  background: #fff;
  max-width: 720px;
  width: 100%;
  border-radius: 14px;
  padding: 1.5rem;
  max-height: 75vh;
  overflow-y: auto;
}
#site-search-close {
  min-width: 44px;
  min-height: 44px;
  background: transparent;
  border: none;
  cursor: pointer;
  float: right;
  font-size: 1.4rem;
}

#site-tools-bar {
  position: fixed;
  bottom: 1rem;
  right: 1rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
}
#site-tools-bar .stb-btn,
.stb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  min-width: 44px;
  min-height: 44px;
  background: #111827;
  color: #fff;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
  font-size: 1.1rem;
  position: relative;
}
.stb-btn[data-label]::after {
  content: attr(data-label);
  position: absolute;
  right: 56px;
  white-space: nowrap;
  background: #111827;
  color: #fff;
  padding: 0.45rem 0.8rem;
  border-radius: 6px;
  font-size: 0.85rem;
  opacity: 0;
  pointer-events: none;
}
.stb-btn:hover::after,
.stb-btn:focus::after { opacity: 0.98; }

#google_translate_widget {
  position: fixed;
  bottom: 1rem;
  right: 5rem;
  z-index: 9998;
  background: #fff;
  padding: 0.4rem 0.6rem;
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
  display: none;
}
#google_translate_widget.open { display: block !important; }

@media print {
  #site-tools-bar,
  #site-search-modal,
  #google_translate_widget,
  .enh-bar, .enh-panel, .enh-lang { display: none !important; }
}

/* ==== 2026-08-20 modern bg + type + fine print ====
   Visual only. Solid paper / light wash. Type hierarchy + 62–68ch measure. Body 16–16.5px / lh 1.55–1.6.
   Fine print 0.6875rem / 1.4 / centered. Linked last so these win. */

:root {
  --paper: #FFF6EE !important;
  --fine: rgba(17, 24, 39, 0.55) !important;
  --measure: 68ch;
}


html, body {
  background-color: #FFF6EE !important;
  background-image: none !important;
}
.hero-split .hs-text {
  background-color: #2563EB !important;
  background-image: none !important;
}



/* ----- Body rhythm (uniform across home + inner) ----- */
html body {
  font-size: 16.5px !important;
  line-height: 1.58 !important;
}
html body a:not(.btn):not(.cta):not(.cta-btn):not(.nl):not(.nav-links a):not(.brand) {
  font-size: inherit;
}
/* ----- Type hierarchy (home + inner pages share the system) ----- */
h1, .cover-title, .lb-title {
  text-wrap: balance;
  line-height: 1.12;
}
h2, .block h2, .sec-title, .section-title {
  text-wrap: balance;
  line-height: 1.18;
  margin-top: 1.65em;
  margin-bottom: 0.48em;
}
h3 {
  text-wrap: balance;
  line-height: 1.22;
  margin-top: 1.3em;
  margin-bottom: 0.38em;
}
h1 + p, h2 + p, h3 + p,
h1 + .lede, h2 + .lede, h3 + .lede {
  margin-top: 0.2em;
}

/* Inner pages: same faces, calmer scale, not cramped */
body > .wrap > h1,
main > .wrap > h1,
main > h1:first-child,
body > .wrap h1 {
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  line-height: 1.14;
  margin: 0.15em 0 0.4em;
  max-width: 22ch;
}
body > .wrap > h2,
main > .wrap > h2,
body > .wrap h2 {
  font-size: clamp(1.18rem, 2.2vw, 1.5rem);
  margin-top: 1.7em;
  margin-bottom: 0.45em;
}
body > .wrap > h3,
main > .wrap > h3,
body > .wrap h3 {
  font-size: 1.05rem;
  margin-top: 1.3em;
}

body > .wrap {
  max-width: 44rem;
  margin-inline: auto;
  padding: clamp(2.6rem, 5.5vw, 4.8rem) 1.25rem 3rem;
}
main > .wrap {
  padding-block: clamp(0.4rem, 2vw, 1.2rem);
}

/* Body measure ~60–68ch, paragraph air */
main p, article p, .wrap > p, .col-wide p, .col-narrow p,
.block p, .lede, p.lede, p.body, dd {
  max-width: 68ch;
}
main p, article p, .wrap > p, .col-wide p, .col-narrow p,
.block p.body, p.body {
  margin: 0 0 1.08em;
  line-height: 1.6;
}
.sub, p.sub {
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0 0 1.35em;
  color: var(--fine);
  max-width: 68ch;
}
a.back {
  display: inline-block;
  margin-bottom: 1.25rem;
  font-size: 0.92rem;
}

/* Lists: hanging indent (outside markers, wrap under text) */
main ul, main ol, article ul, article ol, .wrap ul, .wrap ol,
.col-wide ul, .col-narrow ul {
  max-width: 68ch;
  padding-left: 1.5em;
  margin: 0 0 1.2em;
  line-height: 1.6;
  list-style-position: outside;
}
main li + li, article li + li, .wrap li + li {
  margin-top: 0.4em;
}
main li, article li, .wrap li {
  padding-left: 0.25em;
  text-indent: 0;
}

/* ----- Mobile stacks ----- */
@media (max-width: 640px) {
  html, body { overflow-x: hidden; }
  body { font-size: 16px !important; line-height: 1.55 !important; }
  h1, .hero h1, .cover-title, .lb-title, .phero h1, .hero-split h1 {
    font-size: 2rem !important;
    line-height: 1.15 !important;
    max-width: 100%;
  }

  .grid, .grid2, .cards3, .feature, .cols, .stats .row,
  .hero .in, .statement .row, .cover-grid, .port, .card-grid,
  .princ, .impact .row, .contact, .bigfoot .cols,
  .heroart .body, .statband .row {
    grid-template-columns: 1fr !important;
  }
  body > .wrap, main .wrap, .nav-in, footer {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .btnrow, .hero .btns, .hbtns, .cta {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
}

/* ----- Fine print: small, uniform, centered ----- */
/* Simple footers (copyright / legal / network strip) */
html body footer:not(.bigfoot):not(:has(.footer-inner)),
html body footer.fine:not(:has(.footer-inner)),
html body .fine {
  font-size: 0.6875rem !important;
  line-height: 1.4 !important;
  text-align: center !important;
  color: var(--fine) !important;
  padding: 1.25rem 1.25rem 2rem !important;
  max-width: 42rem;
  margin-inline: auto;
  letter-spacing: 0.01em;
}
html body footer:not(.bigfoot):not(:has(.footer-inner)) .wrap,
html body footer.fine:not(:has(.footer-inner)) .wrap {
  max-width: 42rem;
  margin-inline: auto;
  text-align: center !important;
}

/* Legal bits everywhere — including designed footers */
html body footer .legal,
html body footer p.legal,
html body footer .disclaimer,
html body footer .footer-bottom,
html body footer .footer-bottom div,
html body footer .ah-identity,
html body footer .ah-identity a,
html body footer .base,
html body footer .base span,
html body footer p.fine,
html body .legal,
html body p.legal,
html body .ah-identity,
html body [data-legal],
html body [data-legal] p,
html body [data-legal] div,
html body [data-legal] span,
html body [data-legal-band],
html body footer:not(:has(.footer-inner)):not(.bigfoot) p,
html body footer:not(:has(.footer-inner)):not(.bigfoot) li,
html body footer:not(:has(.footer-inner)):not(.bigfoot) small,
html body footer:not(:has(.footer-inner)):not(.bigfoot) .note,
html body footer:not(:has(.footer-inner)):not(.bigfoot) .fnet-h,
html body footer:not(:has(.footer-inner)):not(.bigfoot) .fl,
html body footer:not(:has(.footer-inner)):not(.bigfoot) .pl,
html body footer:not(:has(.footer-inner)):not(.bigfoot) .netf,
html body footer:not(:has(.footer-inner)):not(.bigfoot) span,
html body footer:not(:has(.footer-inner)):not(.bigfoot) a {
  font-size: 0.6875rem !important;
  line-height: 1.4 !important;
  text-align: center !important;
  color: var(--fine) !important;
}
html body [data-legal],
html body [data-legal-band],
html body .ah-identity,
html body .legal,
html body footer .disclaimer,
html body footer .footer-bottom,
html body footer .base {
  max-width: 42rem;
  margin-inline: auto;
}
html body footer .disclaimer,
html body footer .footer-bottom,
html body [data-legal] {
  padding: 1.25rem 1.25rem 2rem !important;
}

html body footer:not(:has(.footer-inner)):not(.bigfoot) a,
html body footer.fine:not(:has(.footer-inner)) a,
html body .fine a,
html body footer .legal a,
html body footer .pl a,
html body footer .fl a,
html body footer .ah-identity a,
html body footer .netf a,
html body footer .disclaimer a,
html body footer .footer-bottom a,
html body .legal a,
html body .ah-identity a,
html body [data-legal] a,
html body [data-legal] a[style],
html body .pl a {
  font-size: 0.6875rem !important;
  line-height: 1.4 !important;
  color: var(--fine) !important;
  text-decoration: underline !important;
  text-decoration-style: dotted !important;
  text-underline-offset: 2px;
  font-weight: 400 !important;
}

/* Designed footers keep brand / columns; legal strip only shrinks */
html body footer:has(.footer-inner),
html body footer.bigfoot {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}
html body footer:has(.footer-inner) .footer-inner,
html body footer:has(.footer-inner) .footer-inner a,
html body footer:has(.footer-inner) .footer-h,
html body footer:has(.footer-inner) .brand-mark,
html body footer.bigfoot .cols,
html body footer.bigfoot .cols a,
html body footer.bigfoot .blurb,
html body footer.bigfoot h3 {
  font-size: revert;
  line-height: revert;
  text-align: revert;
  color: revert;
  max-width: none;
}

html body footer.bigfoot .base,
html body footer.bigfoot .base span,
html body footer.bigfoot [data-legal],
html body footer.bigfoot [data-legal] p,
html body footer.bigfoot [data-legal] div,
html body footer.bigfoot [data-legal] span,
html body footer.bigfoot [data-legal] a {
  font-size: 0.6875rem !important;
  line-height: 1.4 !important;
  text-align: center !important;
  color: var(--fine-on-dark, rgba(255,255,255,0.62)) !important;
}
html body footer.bigfoot [data-legal],
html body footer.bigfoot .base {
  max-width: 42rem;
  margin-inline: auto;
  padding: 1.25rem 1.25rem 1.5rem !important;
}
html body footer.bigfoot [data-legal] a {
  text-decoration: underline !important;
  text-decoration-style: dotted !important;
  text-underline-offset: 2px;
}

html body footer:not(.bigfoot):not(:has(.footer-inner)) .fl,
html body footer:not(.bigfoot):not(:has(.footer-inner)) .pl {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 0.85rem;
  max-width: 42rem;
  margin-inline: auto;
}

/* Custom extra — footer monogram stamp (not a company logo) */
.ah-extra-stamp{
  display:flex;align-items:center;justify-content:center;gap:12px;
  margin:0 auto 18px;max-width:42rem;color:#111827;
  font-family:"Syne",var(--sans);font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:700;
}
.ah-extra-stamp .mono{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:9px;background:#2563EB;color:#fff;
  letter-spacing:-.04em;font-size:13px;
}
.ah-extra-stamp .rule{width:28px;height:3px;border-radius:2px;background:#FF5A3C}
