:root {
  --ink: #17231f;
  --forest: #12372f;
  --bone: #f4f0e7;
  --paper: #fffdf8;
  --copper: #bf6842;
  --copper-dark: #935039;
  --sage: #a8b8a9;
  --sage-pale: #dce4dc;
  --line: rgba(23, 35, 31, 0.18);
  --muted: #5e6863;
  --display: "Bodoni Moda", Georgia, serif;
  --body: "Public Sans", Arial, sans-serif;
  --page: min(100% - 48px, 1260px);
  --shadow: 0 28px 80px rgba(18, 55, 47, 0.12);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 108px; }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, summary { cursor: pointer; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2 {
  font-family: var(--display);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 0.98;
}
h2 { max-width: 820px; margin-bottom: 26px; font-size: clamp(2.6rem, 5.4vw, 5.6rem); }
h3, h4 { line-height: 1.18; }
:focus-visible { outline: 3px solid var(--copper); outline-offset: 4px; }

.skip-link {
  position: fixed; z-index: 100; top: 10px; left: 10px;
  padding: 10px 14px; color: var(--paper); background: var(--ink);
  transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }
.preview-bar {
  display: flex; min-height: 36px; align-items: center; justify-content: center; gap: 24px;
  padding: 6px 24px; color: var(--paper); background: var(--copper-dark);
  font-size: .72rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase;
}
.preview-bar span + span { opacity: .75; }

.site-header {
  position: sticky; z-index: 50; top: 0;
  display: flex; width: 100%; min-height: 82px; align-items: center; justify-content: space-between;
  padding: 0 max(24px, calc((100vw - 1260px) / 2));
  border-bottom: 1px solid rgba(255,255,255,.14); color: var(--paper); background: var(--forest);
}
.brand { display: flex; flex-direction: column; text-decoration: none; }
.brand-name {
  font-family: var(--display); font-size: 1.5rem; font-weight: 600;
  letter-spacing: -.035em; line-height: 1;
}
.brand-role {
  margin-top: 6px; color: var(--sage); font-size: .66rem;
  font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
}
.site-nav { display: flex; align-items: center; gap: 28px; }
.site-nav a { font-size: .83rem; font-weight: 500; text-decoration: none; }
.site-nav a:not(.nav-cta):hover { color: var(--sage-pale); }
.nav-cta { min-height: 44px; padding: 10px 18px; border: 1px solid rgba(255,255,255,.4); }
.nav-cta:hover { color: var(--forest); background: var(--paper); }
.menu-toggle { display: none; }

.hero {
  position: relative; display: grid; min-height: 830px;
  grid-template-columns: minmax(0,1.05fr) minmax(390px,.95fr); grid-template-rows: 1fr auto;
  gap: 20px 50px; padding: 110px max(24px, calc((100vw - 1260px) / 2)) 0;
  overflow: hidden; color: var(--paper); background: var(--forest);
}
.hero::before {
  position: absolute; inset: 0; content: ""; opacity: .2;
  background-image: linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px);
  background-size: 100% 96px; pointer-events: none;
}
.hero-copy, .hero-visual { position: relative; z-index: 1; }
.hero-copy { align-self: center; padding-bottom: 90px; }
.hero-kicker, .section-label, .solution-type, .fit-result-label {
  margin-bottom: 22px; color: var(--copper); font-size: .72rem;
  font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
}
.hero-kicker { color: var(--sage-pale); }
.hero h1 { max-width: 780px; margin-bottom: 34px; font-size: clamp(4rem, 7.3vw, 7.6rem); }
.hero-lede {
  max-width: 675px; margin-bottom: 34px; color: rgba(255,253,248,.79); font-size: 1.12rem;
}
.hero-actions, .form-actions { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.button {
  display: inline-flex; min-height: 50px; align-items: center; justify-content: center;
  padding: 13px 22px; border: 1px solid transparent; border-radius: 0;
  font-size: .84rem; font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none;
}
.button-primary { color: var(--paper); background: var(--copper); }
.button-primary:hover { background: var(--copper-dark); }
.button-light { color: var(--forest); background: var(--paper); }
.button-light:hover { background: var(--sage-pale); }
.button-quiet { border-color: var(--line); color: var(--ink); background: transparent; }
.button-quiet:hover { background: var(--bone); }
.text-link, .manufacturer-link { font-size: .85rem; font-weight: 600; text-underline-offset: 5px; }

.hero-visual { min-height: 580px; align-self: end; }
.hero-visual img {
  position: absolute; z-index: 2; right: -4%; bottom: -4%; width: min(92%,520px);
  filter: drop-shadow(0 36px 30px rgba(0,0,0,.25));
}
.hero-orbit {
  position: absolute; top: 13%; right: -7%; width: min(35vw,500px); aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.26); border-radius: 50%;
}
.hero-orbit::before, .hero-orbit::after {
  position: absolute; inset: 12%; border: 1px solid rgba(255,255,255,.16);
  border-radius: inherit; content: "";
}
.hero-orbit::after { inset: 28%; }
.hero-note {
  position: absolute; z-index: 3; display: flex; min-width: 160px; flex-direction: column;
  padding: 14px 16px; border-top: 1px solid rgba(255,255,255,.45);
  background: rgba(18,55,47,.86);
}
.hero-note span {
  margin-bottom: 4px; color: var(--sage); font-size: .65rem;
  letter-spacing: .1em; text-transform: uppercase;
}
.hero-note strong { font-family: var(--display); font-size: 1.05rem; font-weight: 500; }
.hero-note-top { top: 8%; left: 2%; }
.hero-note-bottom { right: 0; bottom: 12%; }
.decision-strip {
  position: relative; z-index: 4; grid-column: 1 / -1;
  display: grid; grid-template-columns: .8fr 2.2fr; gap: 30px; align-items: center;
  padding: 24px 0; border-top: 1px solid rgba(255,255,255,.2);
}
.decision-strip p { margin: 0; color: var(--sage-pale); font-family: var(--display); font-size: 1.3rem; }
.decision-strip ul {
  display: grid; margin: 0; padding: 0; grid-template-columns: repeat(4,1fr);
  gap: 18px; list-style: none;
}
.decision-strip li {
  position: relative; padding-left: 14px; color: rgba(255,253,248,.72);
  font-size: .77rem; line-height: 1.45;
}
.decision-strip li::before {
  position: absolute; top: .45em; left: 0; width: 4px; height: 4px;
  border-radius: 50%; background: var(--copper); content: "";
}

.intro-section, .portfolio-section, .approach-section, .faq-section {
  width: var(--page); margin-inline: auto; padding: 130px 0;
}
.intro-section {
  display: grid; grid-template-columns: .28fr 1.25fr .8fr; gap: 40px;
  border-bottom: 1px solid var(--line);
}
.human-story {
  display: grid;
  min-height: 640px;
  grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
  color: var(--paper);
  background: var(--ink);
}
.human-story figure {
  min-height: 540px;
  margin: 0;
  overflow: hidden;
}
.human-story img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 44%;
  filter: saturate(.76) contrast(.96);
}
.human-story > div {
  display: flex;
  padding: clamp(54px,8vw,118px);
  flex-direction: column;
  justify-content: center;
}
.human-story h2 {
  max-width: 700px;
  margin: 14px 0 22px;
  color: var(--paper);
}
.human-story p:not(.section-label) {
  max-width: 620px;
  color: rgba(255,253,248,.76);
}
.human-story .text-link {
  margin-top: 28px;
  color: var(--paper);
}
.section-number { color: var(--copper); font-family: var(--display); font-size: 4rem; }
.intro-heading h2 { font-size: clamp(3.2rem,5.5vw,5.8rem); }
.intro-body { padding-top: 52px; color: var(--muted); font-size: 1.04rem; }
.question-rail {
  display: grid; width: var(--page); margin: 0 auto 130px;
  grid-template-columns: repeat(4,1fr); border: 1px solid var(--line); border-right: 0;
}
.question-rail article { min-height: 250px; padding: 30px; border-right: 1px solid var(--line); }
.question-rail span, .approach-flow article > span {
  color: var(--copper); font-size: .7rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
}
.question-rail h3 {
  margin: 42px 0 14px; font-family: var(--display); font-size: 1.55rem; font-weight: 500;
}
.question-rail p { margin: 0; color: var(--muted); font-size: .88rem; }

.fit-section {
  display: grid; padding: 130px max(24px, calc((100vw - 1260px) / 2));
  grid-template-columns: .72fr 1.28fr; gap: 70px; color: var(--paper); background: var(--ink);
}
.fit-intro { position: sticky; top: 130px; align-self: start; }
.fit-intro h2 { max-width: 470px; font-size: clamp(3.3rem,5.4vw,5.6rem); }
.fit-intro > p:last-child { max-width: 430px; color: rgba(255,253,248,.68); }
.fit-tool { display: grid; grid-template-columns: 1fr; gap: 34px; }
.fit-options { border-top: 1px solid rgba(255,255,255,.24); }
.fit-options button {
  display: grid; width: 100%; min-height: 72px; grid-template-columns: 44px 1fr;
  gap: 10px; align-items: center; padding: 14px 8px; border: 0;
  border-bottom: 1px solid rgba(255,255,255,.18); color: rgba(255,253,248,.68);
  background: transparent; text-align: left;
}
.fit-options button:hover, .fit-options button[aria-checked="true"] {
  color: var(--paper); background: rgba(255,255,255,.045);
}
.fit-options button[aria-checked="true"] { box-shadow: inset 4px 0 0 var(--copper); }
.fit-options button span { color: var(--copper); font-size: .72rem; letter-spacing: .1em; }
.fit-result { padding: 38px; color: var(--ink); background: var(--bone); }
.fit-result h3 {
  margin-bottom: 18px; font-family: var(--display);
  font-size: clamp(2.2rem,3.5vw,3.4rem); font-weight: 500;
}
.fit-result ul { margin: 26px 0; padding-left: 20px; }
.fit-result li { margin-bottom: 8px; }
.fit-price {
  margin: 30px 0 22px; padding-top: 18px; border-top: 1px solid var(--line);
  font-size: .83rem; font-weight: 600;
}

.portfolio-heading {
  display: grid; grid-template-columns: 1.3fr .7fr; gap: 70px; margin-bottom: 80px; align-items: end;
}
.portfolio-heading > p { color: var(--muted); font-size: .88rem; }
.solution { padding: 90px 0; border-top: 1px solid var(--line); }
.solution-copy > p:not(.solution-type, .question-callout) {
  max-width: 690px; color: var(--muted); font-size: 1.04rem;
}
.solution-copy h3 {
  max-width: 800px; margin-bottom: 24px; font-family: var(--display);
  font-size: clamp(2.7rem,5vw,5rem); font-weight: 500; letter-spacing: -.035em;
}
.solution-imaging { display: grid; grid-template-columns: .7fr 1.3fr; gap: 70px; }
.plain-facts { margin: 44px 0; }
.plain-facts div { padding: 18px 0; border-top: 1px solid var(--line); }
.plain-facts dt {
  margin-bottom: 5px; font-size: .74rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .08em;
}
.plain-facts dd { margin: 0; color: var(--muted); font-size: .88rem; }
.imaging-lineup {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; align-items: stretch;
}
.imaging-lineup article { display: flex; min-width: 0; flex-direction: column; background: var(--bone); }
.portfolio-review-note {
  margin: 0 0 48px;
  padding: 24px 28px;
  border-left: 3px solid var(--copper);
  background: rgba(191,104,66,.08);
}
.portfolio-review-note strong { display: block; margin-bottom: 6px; }
.portfolio-review-note p { max-width: 1050px; margin: 0; }
.imaging-lineup img { width: 100%; aspect-ratio: 1 / 1.05; object-fit: contain; padding: 22px; }
.imaging-lineup article > div { padding: 22px; border-top: 1px solid var(--line); }
.imaging-lineup h4 {
  margin: 0 0 8px; font-family: var(--display); font-size: 1.45rem; font-weight: 500;
}
.imaging-lineup p { min-height: 90px; color: var(--muted); font-size: .78rem; }
.imaging-lineup span, .starting-price {
  color: var(--copper-dark); font-size: .75rem; font-weight: 600;
}
.solution-imaging > .manufacturer-link { grid-column: 2; }
.solution-split {
  display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
  gap: 90px; align-items: center;
}
.solution-reverse .product-image { order: 2; }
.product-image {
  min-height: 500px; display: grid; place-items: center; overflow: hidden; background: var(--bone);
}
.product-image img { max-width: 72%; max-height: 540px; object-fit: contain; }
.product-placeholder {
  max-width: 12ch;
  color: var(--copper-dark);
  font-family: var(--display);
  font-size: clamp(2.2rem, 4.6vw, 4.6rem);
  line-height: .92;
  letter-spacing: -.035em;
}
.product-image-pen { min-height: 390px; }
.product-image-pen img { width: 86%; max-width: 720px; }
.product-image-rf img { max-height: 560px; }
.check-list { margin: 30px 0; padding: 0; list-style: none; }
.check-list li { position: relative; padding: 12px 0 12px 30px; border-top: 1px solid var(--line); }
.check-list li::before { position: absolute; top: 15px; left: 2px; color: var(--copper); content: "✓"; }
.question-callout {
  margin: 28px 0; padding: 22px; border-left: 3px solid var(--copper);
  background: var(--bone); font-size: .88rem;
}
.secondary-solutions {
  display: grid; margin-top: 20px; grid-template-columns: repeat(3,1fr);
  border: 1px solid var(--line); border-right: 0;
}
.secondary-solutions article {
  display: flex; min-height: 370px; flex-direction: column; padding: 34px; border-right: 1px solid var(--line);
}
.secondary-solutions h3 {
  margin-bottom: 18px; font-family: var(--display); font-size: 2.1rem; font-weight: 500;
}
.secondary-solutions p:not(.solution-type) { color: var(--muted); }
.secondary-solutions .starting-price { margin-top: auto; padding: 20px 0 12px; }
.secondary-solutions a { font-size: .8rem; font-weight: 600; text-underline-offset: 4px; }

.practice-section {
  padding: 130px max(24px, calc((100vw - 1260px) / 2)); color: var(--paper); background: var(--forest);
}
.practice-heading { display: grid; grid-template-columns: .55fr 1.45fr; gap: 60px; align-items: start; }
.practice-heading h2 { max-width: 930px; }
.practice-list {
  display: grid; margin-top: 70px; grid-template-columns: repeat(2,1fr);
  border-top: 1px solid rgba(255,255,255,.2);
}
.practice-list article {
  display: grid; grid-template-columns: 50px .8fr 1.2fr; gap: 20px;
  padding: 36px 24px 36px 0; border-bottom: 1px solid rgba(255,255,255,.2);
}
.practice-list article:nth-child(odd) { padding-right: 40px; border-right: 1px solid rgba(255,255,255,.2); }
.practice-list article:nth-child(even) { padding-left: 40px; }
.practice-list span { color: var(--copper); font-size: .74rem; }
.practice-list h3 { margin: 0; font-family: var(--display); font-size: 1.6rem; font-weight: 500; }
.practice-list p { margin: 0; color: rgba(255,253,248,.67); font-size: .85rem; }

.approach-heading { display: grid; grid-template-columns: .4fr 1.6fr; gap: 50px; }
.approach-flow { margin-top: 70px; border-top: 1px solid var(--line); }
.approach-flow article {
  display: grid; grid-template-columns: 90px 1fr 150px; gap: 24px; align-items: start;
  padding: 34px 0; border-bottom: 1px solid var(--line);
}
.approach-index { color: var(--copper); font-family: var(--display); font-size: 2rem; }
.approach-flow h3 { margin-bottom: 8px; font-family: var(--display); font-size: 1.75rem; font-weight: 500; }
.approach-flow p { max-width: 680px; margin: 0; color: var(--muted); }

.roi-section {
  display: grid; padding: 130px max(24px, calc((100vw - 1260px) / 2));
  grid-template-columns: .8fr 1.2fr; gap: 80px; background: var(--bone);
}
.roi-copy h2 { font-size: clamp(3.2rem,5vw,5rem); }
.roi-copy > p:not(.section-label, .roi-note) { max-width: 540px; color: var(--muted); }
.roi-note { max-width: 520px; margin-top: 30px; font-size: .76rem; }
.roi-calculator, .demo-form { padding: 40px; background: var(--paper); box-shadow: var(--shadow); }
.field { display: flex; min-width: 0; flex-direction: column; margin-bottom: 20px; }
.field label { margin-bottom: 7px; font-size: .77rem; font-weight: 600; }
.input-shell { display: flex; align-items: center; border-bottom: 1px solid var(--line); background: var(--bone); }
.input-shell span { padding-left: 16px; color: var(--muted); }
.input-shell input { width: 100%; border: 0; background: transparent; }
input, select, textarea {
  width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--line);
  border-radius: 0; color: var(--ink); background: var(--paper);
}
textarea { min-height: 130px; resize: vertical; }
input:focus, select:focus, textarea:focus {
  border-color: var(--forest); outline: 2px solid rgba(18,55,47,.14);
}
[aria-invalid="true"] { border-color: #a5302a; }
.roi-results { display: grid; margin-top: 32px; grid-template-columns: repeat(3,1fr); border: 1px solid var(--line); }
.roi-results > div {
  display: flex; min-height: 116px; flex-direction: column; justify-content: space-between;
  padding: 18px; border-right: 1px solid var(--line);
}
.roi-results > div:last-child { border-right: 0; }
.roi-results span {
  color: var(--muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .06em;
}
.roi-results strong { font-family: var(--display); font-size: 1.7rem; font-weight: 500; }
.roi-primary-result { color: var(--paper); background: var(--forest); }
.roi-primary-result span { color: var(--sage-pale); }
.calculator-footnote { margin: 14px 0 0; color: var(--muted); font-size: .7rem; }

.about-section {
  display: grid; padding: 130px max(24px, calc((100vw - 1260px) / 2));
  grid-template-columns: .55fr 1.45fr; gap: 80px; color: var(--paper); background: var(--ink);
}
.about-mark {
  display: grid; width: min(100%,400px); aspect-ratio: 1; place-items: center;
  border: 1px solid rgba(255,255,255,.24); border-radius: 50%; color: var(--sage);
  font-family: var(--display); font-size: clamp(5rem,10vw,10rem);
}
.about-copy h2 { font-size: clamp(3.2rem,5vw,5.3rem); }
.about-copy > p:not(.section-label, .about-boundary) {
  max-width: 750px; color: rgba(255,253,248,.75); font-size: 1.03rem;
}
.about-boundary {
  max-width: 750px; margin-top: 36px; padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.2); color: var(--sage-pale); font-size: .77rem;
}

.faq-section { display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; }
.faq-heading { position: sticky; top: 130px; align-self: start; }
.faq-heading h2 { font-size: clamp(3.1rem,5vw,5rem); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary {
  position: relative; padding: 24px 48px 24px 0; font-family: var(--display);
  font-size: 1.45rem; font-weight: 500; list-style: none;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after {
  position: absolute; top: 22px; right: 6px; color: var(--copper);
  content: "+"; font-family: var(--body); font-size: 1.4rem;
}
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { max-width: 700px; padding: 0 60px 24px 0; color: var(--muted); }

.demo-section {
  display: grid; padding: 130px max(24px, calc((100vw - 1260px) / 2));
  grid-template-columns: .72fr 1.28fr; gap: 90px; background: var(--sage-pale);
}
.demo-copy { position: sticky; top: 130px; align-self: start; }
.demo-copy h2 { font-size: clamp(3.2rem,5vw,5.3rem); }
.demo-copy > p:not(.section-label) { max-width: 500px; color: var(--muted); }
.demo-expect { max-width: 500px; margin-top: 38px; padding-top: 24px; border-top: 1px solid var(--line); }
.demo-expect > span {
  font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
}
.demo-expect ul { padding-left: 20px; }
.demo-expect li { margin-bottom: 8px; color: var(--muted); }
.field-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.field-error { min-height: 18px; margin-top: 4px; color: #8c2722; font-size: .7rem; }
.field-help { margin-top: 5px; color: var(--muted); font-size: .7rem; }
.consent-row {
  display: grid; grid-template-columns: 20px 1fr; gap: 12px; align-items: start;
  color: var(--muted); font-size: .78rem;
}
.consent-row input { width: 18px; min-height: 18px; margin: 3px 0 0; }
.consent-error { display: block; margin: 4px 0 18px 32px; }
.sms-consent-group {
  margin: 22px 0 28px; padding: 24px; border: 1px solid var(--line); background: var(--bone);
}
.sms-consent-group legend {
  padding: 0 8px; color: var(--ink); font-size: .82rem; font-weight: 600;
}
.sms-consent-group > p:first-of-type {
  margin-bottom: 18px; color: var(--muted); font-size: .76rem;
}
.sms-consent-group .consent-row + .consent-row { margin-top: 16px; }
.sms-disclosure {
  margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--line);
  color: var(--muted); font-size: .7rem;
}
.sms-disclosure a, .footer-meta a, .footer-links a { text-underline-offset: 3px; }
.form-status {
  margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--line);
  color: var(--muted); font-size: .72rem;
}
.demo-form button:disabled { cursor: wait; opacity: .7; }

.site-footer {
  padding: 70px max(24px, calc((100vw - 1260px) / 2)) 30px;
  color: var(--paper); background: var(--forest);
}
.footer-brand {
  display: flex; flex-direction: column; gap: 12px; padding-bottom: 38px;
  border-bottom: 1px solid rgba(255,255,255,.2);
}
.footer-brand > span:last-child { color: var(--sage); font-size: .84rem; }
.footer-meta { display: grid; padding: 30px 0; grid-template-columns: repeat(2,1fr); gap: 50px; }
.footer-meta p, .footer-bottom { color: rgba(255,253,248,.58); font-size: .7rem; }
.footer-bottom {
  display: flex; justify-content: space-between; padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.2);
}

.legal-page { background: var(--bone); }
.legal-header {
  display: flex; min-height: 88px; align-items: center; justify-content: space-between;
  padding: 0 max(24px, calc((100vw - 920px) / 2)); color: var(--paper); background: var(--forest);
}
.legal-back { font-size: .8rem; font-weight: 600; text-underline-offset: 5px; }
.legal-main {
  width: min(100% - 48px, 920px); margin: 0 auto; padding: 100px 0 120px;
}
.legal-main h1 {
  max-width: 820px; margin-bottom: 30px; font-family: var(--display);
  font-size: clamp(3.6rem,8vw,7rem); font-weight: 500; letter-spacing: -.045em; line-height: .98;
}
.legal-intro {
  max-width: 760px; margin-bottom: 64px; color: var(--muted); font-size: 1.1rem;
}
.legal-main section { padding: 34px 0; border-top: 1px solid var(--line); }
.legal-main section h2 {
  margin-bottom: 16px; font-family: var(--display); font-size: 2rem;
  font-weight: 500; letter-spacing: -.025em; line-height: 1.15;
}
.legal-main section p, .legal-main section li { max-width: 790px; color: var(--muted); }
.legal-main section li + li { margin-top: 8px; }
.legal-links {
  margin: 42px 0 0; padding-top: 28px; border-top: 1px solid var(--line);
  font-size: .82rem; font-weight: 600;
}

@media (max-width: 1050px) {
  :root { --page: min(100% - 40px,940px); }
  .site-nav { gap: 18px; }
  .site-nav a { font-size: .76rem; }
  .hero { min-height: 740px; grid-template-columns: 1.1fr .9fr; gap: 28px; }
  .hero h1 { font-size: clamp(3.8rem,7.5vw,6rem); }
  .hero-visual img { width: 100%; right: -10%; }
  .decision-strip { grid-template-columns: .5fr 2.5fr; }
  .intro-section { grid-template-columns: .22fr 1.25fr .9fr; }
  .question-rail { grid-template-columns: repeat(2,1fr); border-bottom: 0; }
  .question-rail article { border-bottom: 1px solid var(--line); }
  .fit-section { grid-template-columns: .65fr 1.35fr; gap: 40px; }
  .solution-imaging { grid-template-columns: 1fr; }
  .solution-imaging > .manufacturer-link { grid-column: 1; }
  .solution-split { gap: 50px; }
  .practice-list article { grid-template-columns: 40px 1fr; }
  .practice-list p { grid-column: 2; }
  .roi-section, .demo-section { gap: 45px; }
  .roi-results { grid-template-columns: 1fr; }
  .roi-results > div {
    min-height: 88px; border-right: 0; border-bottom: 1px solid var(--line);
  }
}

@media (max-width: 760px) {
  :root { --page: calc(100% - 32px); }
  html { scroll-padding-top: 80px; }
  h2 { font-size: clamp(2.7rem,13vw,4.1rem); }
  .preview-bar {
    min-height: 42px; gap: 8px; flex-direction: column; padding: 7px 16px;
    font-size: .6rem; line-height: 1.25; text-align: center;
  }
  .site-header { min-height: 70px; padding: 0 16px; }
  .menu-toggle {
    display: inline-flex; min-height: 44px; align-items: center; gap: 9px;
    padding: 8px 0 8px 12px; border: 0; color: var(--paper);
    background: transparent; font-size: .76rem;
  }
  .menu-lines, .menu-lines::before, .menu-lines::after {
    display: block; width: 20px; height: 1px; background: currentColor; content: "";
  }
  .menu-lines { position: relative; }
  .menu-lines::before { position: absolute; top: -6px; }
  .menu-lines::after { position: absolute; top: 6px; }
  .site-nav {
    position: absolute; top: 100%; left: 0; display: none; width: 100%;
    align-items: stretch; padding: 16px; gap: 0; flex-direction: column;
    border-top: 1px solid rgba(255,255,255,.15); background: var(--forest);
    box-shadow: 0 18px 30px rgba(0,0,0,.18);
  }
  .site-nav.is-open { display: flex; }
  .site-nav a {
    min-height: 48px; padding: 13px 8px; border-bottom: 1px solid rgba(255,255,255,.13);
    font-size: .88rem;
  }
  .nav-cta { margin-top: 10px; padding-inline: 14px !important; }
  .hero { display: block; min-height: auto; padding: 80px 16px 0; }
  .hero-copy { padding-bottom: 35px; }
  .hero h1 { font-size: clamp(3.5rem,17vw,5.2rem); }
  .hero-lede { font-size: 1rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-visual { min-height: 430px; }
  .hero-visual img { right: 1%; bottom: -4%; width: min(94%,410px); }
  .hero-orbit { top: 2%; right: -18%; width: 120%; }
  .hero-note { min-width: 138px; padding: 10px; }
  .hero-note-top { top: 4%; left: 0; }
  .hero-note-bottom { bottom: 3%; }
  .decision-strip { display: block; padding: 28px 0; }
  .decision-strip p { margin-bottom: 20px; }
  .decision-strip ul { grid-template-columns: 1fr; gap: 10px; }
  .intro-section, .portfolio-section, .approach-section, .faq-section { padding: 84px 0; }
  .intro-section { grid-template-columns: 1fr; gap: 20px; }
  .human-story { min-height: 0; grid-template-columns: 1fr; }
  .human-story figure { min-height: 440px; max-height: 620px; }
  .human-story > div { padding: 64px 24px; }
  .section-number { font-size: 2.2rem; }
  .intro-heading h2, .fit-intro h2, .solution-copy h3, .roi-copy h2,
  .about-copy h2, .faq-heading h2, .demo-copy h2 { font-size: clamp(2.8rem,13vw,4rem); }
  .intro-body { padding-top: 0; }
  .question-rail { grid-template-columns: 1fr; margin-bottom: 84px; }
  .question-rail article { min-height: 210px; }
  .fit-section, .roi-section, .about-section, .demo-section { display: block; padding: 84px 16px; }
  .fit-intro, .faq-heading, .demo-copy { position: static; margin-bottom: 44px; }
  .fit-result, .roi-calculator, .demo-form { padding: 26px 20px; }
  .portfolio-heading, .practice-heading, .approach-heading, .faq-section { display: block; }
  .portfolio-heading > p { margin-top: 30px; }
  .solution { padding: 70px 0; }
  .solution-split {
    display: flex; gap: 38px; flex-direction: column; align-items: stretch;
  }
  .solution-reverse .product-image { order: 0; }
  .product-image { min-height: 340px; }
  .imaging-lineup, .secondary-solutions { grid-template-columns: 1fr; }
  .imaging-lineup p { min-height: 0; }
  .secondary-solutions { border-bottom: 0; }
  .secondary-solutions article { min-height: 300px; border-bottom: 1px solid var(--line); }
  .practice-section { padding: 84px 16px; }
  .practice-list { grid-template-columns: 1fr; }
  .practice-list article, .practice-list article:nth-child(odd), .practice-list article:nth-child(even) {
    padding: 28px 0; border-right: 0;
  }
  .approach-flow article { grid-template-columns: 45px 1fr; }
  .approach-flow article > span { grid-column: 2; }
  .about-mark { width: 250px; margin-bottom: 55px; }
  .faq-list details p { padding-right: 0; }
  .field-row { grid-template-columns: 1fr; gap: 0; }
  .footer-meta { grid-template-columns: 1fr; gap: 10px; }
  .legal-header { min-height: 76px; padding: 0 16px; }
  .legal-main { width: calc(100% - 32px); padding: 70px 0 90px; }
  .legal-main h1 { font-size: clamp(3rem,15vw,4.6rem); }
  .legal-back { font-size: .7rem; }
}

@media (max-width: 420px) {
  .brand-name { font-size: 1.25rem; }
  .brand-role { font-size: .56rem; }
  .hero h1 { font-size: 3.35rem; }
  .hero-visual { min-height: 360px; }
  .hero-note { font-size: .72rem; }
  .button { width: 100%; }
  .hero-actions, .form-actions { width: 100%; gap: 12px; }
  .fit-options button { grid-template-columns: 34px 1fr; }
  .product-image { min-height: 290px; }
  .imaging-lineup article > div, .secondary-solutions article { padding: 20px; }
  .footer-bottom { gap: 18px; flex-direction: column; }
}

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