@import url("../fonts/poppins-local.css");

/* ============ Texas IP Law design system ============
   Reference: yarbroughblackstone.com (Poppins, editorial rhythm)
   Palette: Cobalt #1F3FD1 (signature) · Vermilion #E4572E (related reading)
            Citron #E3D53C (guides) · Evergreen #0F5E4F (depth) */

:root {
  --cobalt: #1F3FD1;
  --vermilion: #E4572E;
  --citron: #E3D53C;
  --evergreen: #0F5E4F;
  --white: #FFFFFF;
  --black: #000000;
  --ink-soft: #1a1a1a;
  --hairline: #e6e6e6;
  --font: "Poppins", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --wrap: 1180px;
  --gutter: clamp(20px, 4vw, 48px);
}

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

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  /* Anchor offset: the header compacts to a 64px bar on scroll, plus 20px
     of breathing room. Single approach; no scroll-margin on targets. */
  scroll-padding-top: 84px;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  margin: 0;
  font-family: var(--font);
  font-weight: 300;
  font-size: 1.125rem;           /* 18px desktop */
  line-height: 1.7;
  color: var(--black);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
}
@media (max-width: 700px) {
  body { font-size: 1.0625rem; } /* 17px mobile */
}

h1, h2, h3, h4 {
  font-weight: 500;              /* Poppins Medium */
  line-height: 1.2;
  letter-spacing: normal;        /* title case, normal tracking */
  margin: 0 0 0.6em;
  text-wrap: balance;
}
h1 { font-size: clamp(2.4rem, 5.5vw, 4.25rem); }
h2 { font-size: clamp(1.7rem, 3.4vw, 2.5rem); }
h3 { font-size: clamp(1.25rem, 2.2vw, 1.6rem); }

p { margin: 0 0 1.2em; }
p:last-child { margin-bottom: 0; }

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

/* ---------- Links: underlined text only, never color alone ---------- */
a {
  color: var(--black);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: text-decoration-thickness 0.15s ease;
}
a:hover { text-decoration-thickness: 3px; }
.on-dark a, a.on-dark { color: var(--white); }

/* ---------- Focus: 2px outline, offset 3px ---------- */
:focus-visible {
  outline: 2px solid var(--cobalt);
  outline-offset: 3px;
}
.on-dark :focus-visible, :focus-visible.on-dark,
.field-cobalt :focus-visible, .field-evergreen :focus-visible,
.field-black :focus-visible, .slideshow :focus-visible {
  outline-color: var(--white);
}
a:focus:not(:focus-visible) { outline: none; }

/* ---------- Layout ---------- */
.wrap {
  max-width: var(--wrap);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}
.section { padding: clamp(64px, 9vw, 128px) 0; }

/* Full-bleed color fields */
.field-cobalt   { background: var(--cobalt); color: var(--white); }
.field-vermilion{ background: var(--vermilion); color: var(--black); }
.field-citron   { background: var(--citron); color: var(--black); }
.field-evergreen{ background: var(--evergreen); color: var(--white); }
.field-black    { background: var(--black); color: var(--white); }
.field-white    { background: var(--white); color: var(--black); }
.field-cobalt a, .field-evergreen a, .field-black a { color: var(--white); }
.field-vermilion a, .field-citron a { color: var(--black); }

/* ---------- Brand atoms ---------- */
/* Category label: small black square + uppercase text */
.cat-label {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin: 0 0 1.2em;
}
.cat-label::before {
  content: "";
  width: 0.72em; height: 0.72em;
  background: currentColor;
  flex: none;
}
.on-dark .cat-label::before,
.field-cobalt .cat-label::before,
.field-evergreen .cat-label::before,
.field-black .cat-label::before { background: var(--white); }

/* Section heading with square marker */
.section-head {
  display: flex;
  align-items: baseline;
  gap: 0.55em;
  margin-bottom: 1.6em;
}
.section-head::before {
  content: "";
  width: 0.42em; height: 0.42em;
  background: var(--black);
  flex: none;
  transform: translateY(-0.08em);
}
.section-head h2 { margin: 0; }
.on-dark .section-head::before,
.field-cobalt .section-head::before,
.field-evergreen .section-head::before,
.field-black .section-head::before { background: var(--white); }

/* "Learn more" link with square that appears on hover */
.learn-more {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-weight: 400;
}
.learn-more::before {
  content: "";
  width: 0.6em; height: 0.6em;
  background: currentColor;
  opacity: 0;
  transform: translateX(-0.4em);
  transition: opacity 0.18s ease, transform 0.18s ease;
}
.learn-more:hover::before, .learn-more:focus-visible::before {
  opacity: 1;
  transform: translateX(0);
}

/* Currency line: "Law checked through" with square marker */
.currency-line {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em 1.6em;
  align-items: center;
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--ink-soft);
  margin: 0 0 2.5em;
  padding-bottom: 1.6em;
  border-bottom: 1px solid var(--hairline);
}
.currency-line .checked {
  display: inline-flex; align-items: center; gap: 0.55em;
}
.currency-line .checked::before {
  content: "";
  width: 0.62em; height: 0.62em;
  background: var(--black);
}

/* Standfirst under H1 */
.standfirst {
  font-size: clamp(1.15rem, 2.2vw, 1.45rem);
  font-weight: 300;
  line-height: 1.6;
  max-width: 44em;
}

/* Statement paragraph (homepage, about) */
.statement {
  font-weight: 500;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  line-height: 1.45;
  max-width: 32em;
}

/* Small print: Poppins Regular per accessibility adjustment */
.small-print, .site-footer, .disclaimer-note {
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 1.65;
}

/* ---------- Header ---------- */
.site-header {
  background: var(--white);
  border-bottom: 1px solid var(--hairline);
  position: sticky;
  top: 0;
  z-index: 200;
}
.site-header .bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 88px;
  transition: height 0.25s ease;
}
.site-header.compact .bar { height: 64px; }
.brand img {
  height: 44px;
  width: auto;
  transition: height 0.25s ease;
}
.site-header.compact .brand img { height: 34px; }
.footer-logo img { height: 110px; width: auto; display: block; }
/* Approved horizontal lockup: TEXAS [black square, white IP] LAW */
.brand .lockup {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  text-decoration: none;
}
.brand .lockup .word {
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--black);
  line-height: 1;
}
.brand .lockup .sqbox {
  width: 2.1em; height: 2.1em;
  background: var(--black);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
.brand .lockup .sqbox::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid var(--white);
  pointer-events: none;
}
.brand .lockup .sqbox span {
  color: var(--white);
  font-weight: 500;
  font-size: 0.82em;
  letter-spacing: 0.14em;
  text-indent: 0.14em;
  line-height: 1;
}
.menu-toggle {
  background: none;
  border: 0;
  cursor: pointer;
  width: 48px; height: 48px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 8px;
}
.menu-toggle .line {
  display: block;
  width: 30px; height: 2px;
  background: var(--black);
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.menu-toggle .label {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.menu-toggle[aria-expanded="true"] .line:first-child { transform: translateY(4.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .line:last-child { transform: translateY(-4.5px) rotate(-45deg); }

/* ---------- Desktop inline nav ----------
   Shown at widths where the five links fit beside the brand (720px);
   the hamburger toggle is hidden there. Focus uses the global
   :focus-visible 2px cobalt outline, visible on the white header. */
.header-nav { display: none; }
@media (min-width: 720px) {
  .header-nav { display: block; }
  .header-nav ul {
    list-style: none;
    margin: 0; padding: 0;
    display: flex;
    align-items: center;
    gap: 0.25em;
  }
  .header-nav a {
    text-decoration: none;
    font-weight: 500;
    font-size: 0.95rem;
    padding: 0.7em 0.85em;
    white-space: nowrap;
  }
  .header-nav a:hover,
  .header-nav a[aria-current="page"] {
    text-decoration: underline;
    text-decoration-thickness: 2px;
  }
  .menu-toggle { display: none; }
}

/* ---------- Full-screen menu ---------- */
.menu-overlay {
  position: fixed;
  inset: 0;
  background: var(--white);
  z-index: 300;
  overflow-y: auto;
  padding: clamp(80px, 12vh, 140px) 0 64px;
  transform: translateY(-100%);
  transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
  visibility: hidden;
}
.menu-overlay.open {
  transform: translateY(0);
  visibility: visible;
}
@media (prefers-reduced-motion: reduce) {
  .menu-overlay { transition: none; }
}
.menu-overlay nav ul { list-style: none; margin: 0; padding: 0; }
.menu-overlay nav > ul > li { margin-bottom: 1.1em; }
.menu-overlay nav a {
  text-decoration: none;
  font-weight: 500;
  font-size: clamp(1.6rem, 4vw, 2.6rem);
  line-height: 1.25;
}
.menu-overlay nav a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.menu-overlay .sub { margin: 0.5em 0 0 1.2em; }
.menu-overlay .sub a { font-weight: 300; font-size: clamp(1.05rem, 2.4vw, 1.4rem); }
.menu-overlay a[aria-current="page"]::before {
  content: "";
  display: inline-block;
  width: 0.42em; height: 0.42em;
  background: var(--black);
  margin-right: 0.55em;
  vertical-align: baseline;
}
.menu-close-hint {
  font-size: 0.85rem; font-weight: 400; color: var(--ink-soft);
  margin-top: 3em;
}

/* ---------- Slideshow ---------- */
.slideshow {
  position: relative;
  background: var(--black);
  overflow: hidden;
}
.slides {
  list-style: none;
  margin: 0; padding: 0;
  position: relative;
}
.slide {
  display: none;
  min-height: 520px;
}
.slide:first-child { display: grid; }
.js-slideshow .slide {
  position: absolute;
  inset: 0;
  display: grid;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease, visibility 0.6s;
  min-height: 0;
}
.js-slideshow .slide.is-active {
  opacity: 1;
  visibility: visible;
  position: relative;
  /* The active slide defines the hero's height: it must fill the 520px
     composition that .slides reserves. Without this, .slide-grid inherits
     min-height: 0 and the slide collapses to content height (~465px),
     leaving the absolutely positioned controls stranded in dead space
     below it. Mobile (below) re-collapses this to content height. */
  min-height: 520px;
}
@media (prefers-reduced-motion: reduce) {
  .js-slideshow .slide { transition: none; }
}
.js-slideshow .slides { min-height: 520px; }
.slide-grid {
  display: grid;
  grid-template-columns: 45% 55%;
  min-height: inherit;
  width: 100%;
}
.slide-photo { position: relative; min-height: 320px; }
.slide-photo img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.slide-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(40px, 6vw, 96px);
}
.slide-panel h2 {
  font-size: clamp(2rem, 4.6vw, 3.6rem);
  margin: 0 0 0.4em;
}
.slide-panel p.sub {
  font-size: clamp(1.05rem, 1.8vw, 1.3rem);
  margin: 0 0 1.6em;
  max-width: 30em;
}
.slide-panel .sq-mark {
  width: 14px; height: 14px;
  background: var(--black);
  margin-bottom: 1.4em;
}
.panel-cobalt { background: var(--cobalt); color: var(--white); }
.panel-cobalt .sq-mark { background: var(--black); }
.panel-evergreen { background: var(--evergreen); color: var(--white); }
.panel-evergreen .sq-mark { background: var(--white); }
.panel-citron { background: var(--citron); color: var(--black); }
.panel-vermilion { background: #C1431F; color: var(--white); }
.panel-vermilion .sq-mark { background: var(--white); }
.panel-black { background: var(--black); color: var(--white); }
.panel-black .sq-mark { background: var(--white); }
.panel-white { background: var(--white); color: var(--black); }
.panel-photo-text { color: var(--white); justify-content: flex-end; }
.panel-photo-text .sq-mark { background: var(--white); }

/* Slideshow controls */
.slide-controls {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px clamp(20px, 4vw, 48px);
  pointer-events: none;
}
.slide-controls button {
  pointer-events: auto;
  background: rgba(0,0,0,0.55);
  color: var(--white);
  border: 1px solid rgba(255,255,255,0.6);
  font-family: var(--font);
  font-weight: 400;
  font-size: 0.9rem;
  padding: 0.6em 1.1em;
  cursor: pointer;
}
.slide-controls button:hover { background: var(--black); }
.slide-indicators {
  pointer-events: auto;
  display: flex;
  gap: 12px;
  list-style: none;
  margin: 0; padding: 0;
  background: rgba(0,0,0,0.45);
  padding: 10px 14px;
}
.slide-indicators button {
  width: 14px; height: 14px;
  padding: 0;
  background: transparent;
  border: 2px solid var(--white);
  cursor: pointer;
}
.slide-indicators button[aria-current="true"] { background: var(--white); }
.slide-count {
  color: var(--white);
  font-size: 0.85rem; font-weight: 400;
  background: rgba(0,0,0,0.45);
  padding: 10px 14px;
}

@media (max-width: 860px) {
  .slide, .slide:first-child, .js-slideshow .slide.is-active { min-height: 0; }
  .js-slideshow .slides { min-height: 0; }
  .slide-grid { grid-template-columns: 1fr; }
  .slide-photo { min-height: 0; height: 52vw; max-height: 380px; }
  .slide-panel { padding: 36px 24px 76px; }
  .slide-controls { padding: 12px; }
}

/* ---------- Practice area sequences (YB pattern) ---------- */
.area-list { list-style: none; margin: 0; padding: 0; }
@media (min-width: 861px) {
  .area-list.two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(48px, 6vw, 96px);
    row-gap: 56px;
  }
}
.area-list li { margin-bottom: 48px; }
.area-list.two-col li { margin-bottom: 0; }
.area-list h3 { margin-bottom: 0.35em; }
.area-list h3 a { text-decoration: none; }
.area-list h3 a:hover { text-decoration: underline; }
.area-list p { max-width: 34em; margin-bottom: 0.9em; }

/* ---------- Editorial lists (guides / insights) ---------- */
.entry-list { list-style: none; margin: 0; padding: 0; }
.entry-list > li {
  padding: 2.2em 0;
  border-top: 1px solid var(--hairline);
}
.entry-list > li:last-child { border-bottom: 1px solid var(--hairline); }
.entry-list h3 { margin-bottom: 0.3em; }
.entry-list h3 a { text-decoration: none; }
.entry-list h3 a:hover { text-decoration: underline; }
.entry-list .deck { color: var(--ink-soft); max-width: 46em; margin-bottom: 0.6em; }
/* Search result excerpts: highlight matched terms with a quiet light-gray
   wash that stays inside the monochrome palette. This also overrides the
   browser default yellow mark background. */
mark {
  background: var(--hairline);
  color: inherit;
  padding: 0 0.15em;
  border-radius: 2px;
}
.entry-meta {
  font-size: 0.82rem;
  font-weight: 400;
  color: var(--ink-soft);
  display: flex; flex-wrap: wrap; gap: 0.4em 1.4em;
}

/* ---------- Guide template ---------- */
.guide-hero { position: relative; overflow: hidden; }
.guide-hero .slide-grid { min-height: 52vh; }
.in-short { padding: clamp(38px, 5vw, 72px) 0; }
.in-short p {
  font-weight: 500;
  font-size: clamp(1.25rem, 2.4vw, 1.7rem);
  line-height: 1.55;
  max-width: 40em;
}
.guide-body h2 { margin-top: 2.2em; }
.guide-body h2:first-child { margin-top: 0; }
/* Reading measure: ~65-75 characters per line at 18px Poppins. */
.guide-body { max-width: 36em; }
/* Scrollable table wrapper (comparison guide): deliberate table scrolling
   inside its container so the page never overflows horizontally. */
.table-scroll { overflow-x: auto; }
/* Overflow safeguards: long titles can never force page-wide horizontal
   scrolling (wide tables already scroll inside .table-scroll). */
h1, h2, h3 { overflow-wrap: break-word; }
.toc {
  border: 1px solid var(--hairline);
  padding: 1.4em 1.6em;
  margin: 0 0 2.5em;
  font-size: 0.95rem;
  font-weight: 400;
}
.toc strong { font-weight: 500; display: block; margin-bottom: 0.6em; }
.toc ol { margin: 0; padding-left: 1.3em; }
.toc li { margin-bottom: 0.35em; }
@media (min-width: 1000px) {
  .guide-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: clamp(40px, 5vw, 80px);
    align-items: start;
  }
  .guide-layout .toc { position: sticky; top: 120px; margin-bottom: 0; }
}
.misunderstandings dt { font-weight: 500; margin-top: 1.2em; }
.misunderstandings dd { margin: 0.2em 0 0; }
.questions-list { list-style: none; margin: 0; padding: 0; }
.questions-list li {
  font-weight: 500;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  padding: 0.9em 0;
  border-top: 1px solid rgba(255,255,255,0.25);
}
.questions-list li:last-child { border-bottom: 1px solid rgba(255,255,255,0.25); }
.disclaimer-note {
  border-top: 1px solid var(--hairline);
  margin-top: 3em;
  padding-top: 1.5em;
  color: var(--ink-soft);
}
/* "Report a correction" line placed near Sources on guide pages */
.correction-link {
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--ink-soft);
  margin-top: 2.5em;
}

/* ---------- Related reading band ---------- */
.related-band { padding: clamp(48px, 6vw, 80px) 0; }
.related-band h2 { margin-bottom: 1em; }
.related-band ul { list-style: none; margin: 0; padding: 0; }
.related-band li { margin-bottom: 0.9em; font-weight: 400; }
.related-band li:last-child { margin-bottom: 0; }

/* ---------- Practice page frame ---------- */
.situations { list-style: none; margin: 0; padding: 0; }
.situations li {
  padding: 1.1em 0 1.1em 2.2em;
  border-top: 1px solid var(--hairline);
  position: relative;
}
.situations li:last-child { border-bottom: 1px solid var(--hairline); }
.situations li::before {
  content: "";
  position: absolute; left: 0; top: 1.75em;
  width: 0.6em; height: 0.6em;
  background: var(--black);
}
.services-list { list-style: none; margin: 0; padding: 0; }
.services-list li { margin-bottom: 1.6em; max-width: 48em; }
.services-list h3 { margin-bottom: 0.25em; font-size: 1.2rem; }
.services-list p { margin: 0; color: var(--ink-soft); }

/* Timeline (patents signature) */
.timeline { list-style: none; margin: 2em 0 0; padding: 0; }
@media (min-width: 861px) {
  .timeline {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
  }
}
.timeline li { margin-bottom: 2em; }
.timeline .t-sq {
  width: 14px; height: 14px;
  background: var(--black);
  margin-bottom: 1em;
}
.timeline h3 { font-size: 1.15rem; margin-bottom: 0.3em; }
.timeline p { font-size: 0.95rem; color: var(--ink-soft); margin: 0 0 0.6em; }

/* Steps (trade secrets signature) */
.steps { list-style: none; margin: 0; padding: 0; counter-reset: step; }
.steps li {
  counter-increment: step;
  padding: 1.6em 0 1.6em 3.2em;
  border-top: 1px solid var(--hairline);
  position: relative;
}
.steps li:last-child { border-bottom: 1px solid var(--hairline); }
.steps li::before {
  content: "";
  position: absolute; left: 0; top: 2.1em;
  width: 0.7em; height: 0.7em;
  background: var(--black);
}
.steps h3 { margin-bottom: 0.3em; }

/* Comparison blocks (trademarks signature) */
.compare-grid { display: grid; gap: 40px; margin-top: 1.5em; }
@media (min-width: 861px) { .compare-grid { grid-template-columns: repeat(3, 1fr); } }
.compare-grid h3 { font-size: 1.2rem; }

/* Term grid (transactions signature) */
.term-grid { display: grid; gap: 32px; margin-top: 1.5em; }
@media (min-width: 861px) { .term-grid { grid-template-columns: repeat(3, 1fr); } }
.term-grid h3 { font-size: 1.15rem; margin-bottom: 0.25em; }
.term-grid p { font-size: 0.95rem; margin: 0; }

/* ---------- Insights ---------- */
.insight-hero-img { margin: 2.5em 0; }
.insight-hero-img img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.insight-hero-img figcaption { font-size: 0.82rem; font-weight: 400; color: var(--ink-soft); margin-top: 0.6em; }
.filters { display: flex; flex-wrap: wrap; gap: 0.6em 1.6em; margin: 0 0 2.5em; font-weight: 400; }
.filters a[aria-current="true"] { font-weight: 500; text-decoration-thickness: 3px; }
.pagination { display: flex; gap: 1.6em; margin-top: 2.5em; font-weight: 400; }

/* ---------- Search ---------- */
.search-form { display: flex; gap: 12px; margin: 2em 0; max-width: 640px; }
.search-form input[type="search"] {
  flex: 1;
  font-family: var(--font);
  font-weight: 300;
  font-size: 1.05rem;
  padding: 0.7em 1em;
  border: 2px solid var(--black);
  background: var(--white);
  color: var(--black);
}
.search-form button {
  font-family: var(--font);
  font-weight: 500;
  font-size: 1rem;
  padding: 0.7em 1.6em;
  background: var(--black);
  color: var(--white);
  border: 2px solid var(--black);
  cursor: pointer;
}
#search-results { list-style: none; margin: 0; padding: 0; }

/* ---------- About ---------- */
.portrait-frame {
  background: var(--black);
  aspect-ratio: 4/5;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  text-align: center;
  padding: 2em;
}
.portrait-frame img { width: 100%; height: 100%; object-fit: cover; }
.portrait-placeholder { font-weight: 500; font-size: 1.1rem; max-width: 16em; }
.portrait-placeholder small { display: block; font-weight: 300; font-size: 0.8rem; margin-top: 0.8em; opacity: 0.75; }
.about-grid { display: grid; gap: 48px; }
@media (min-width: 861px) {
  .about-grid { grid-template-columns: minmax(280px, 380px) 1fr; align-items: start; }
}
.bio-facts { list-style: none; margin: 0; padding: 0; }
.bio-facts li { margin-bottom: 0.9em; }
.bio-facts strong { font-weight: 500; }

/* ---------- Footer ---------- */
.site-footer { background: var(--black); color: var(--white); }
.site-footer a { color: var(--white); }
.footer-logo { background: var(--white); display: inline-block; padding: 18px 26px; margin-bottom: 2.5em; }
.footer-logo img { height: 40px; width: auto; display: block; }
.footer-grid { display: grid; gap: 40px; padding: 64px 0 48px; }
@media (min-width: 861px) {
  .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
}
.site-footer h2 {
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 1.2em;
  color: var(--white);
}
.footer-nav { list-style: none; margin: 0; padding: 0; }
.footer-nav li { margin-bottom: 0.7em; }
.footer-disclosure { border-top: 1px solid rgba(255,255,255,0.25); padding: 32px 0; }
.footer-disclosure p { margin-bottom: 1em; max-width: 70em; }
.copyright-line { padding: 0 0 40px; color: rgba(255,255,255,0.75); }

/* ---------- 404 ---------- */
.page-404 { text-align: left; padding: clamp(80px, 14vw, 180px) 0; }

/* ---------- Utilities ---------- */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.skip-link {
  position: absolute; left: 16px; top: -60px;
  background: var(--black); color: var(--white);
  padding: 0.8em 1.2em; z-index: 400;
  font-weight: 500; text-decoration: none;
  transition: top 0.2s ease;
}
.skip-link:focus { top: 12px; color: var(--white); }
main { display: block; }
.eyebrow-space { padding-top: clamp(40px, 6vw, 80px); }
/* The homepage introduction section sits directly under the slideshow
   hero; trim its top padding so the intro text begins sooner. */
.slideshow + .section { padding-top: clamp(48px, 7vw, 96px); }
.divider { border: 0; border-top: 1px solid var(--hairline); margin: 0; }
