@font-face {
  font-family: Archivo;
  src: url("../assets/fonts/archivo-latin.woff2") format("woff2");
  font-weight: 400 900;
  font-display: swap;
}
@font-face {
  font-family: "Plex Mono";
  src: url("../assets/fonts/plexmono-latin.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
:root {
  --ink: #0b1530;
  --blue: #244ce2;
  --paper: #fbfcfe;
  --ice: #eaf1fb;
  --line: #c9d4e6;
  --muted: #526078;
  --ease: cubic-bezier(0.2, 0.7, 0.1, 1);
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 130px;
}
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font:
    18px/1.55 Archivo,
    Arial,
    sans-serif;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: default;
  opacity: 0.45;
}
[hidden] {
  display: none !important;
}
p,
h1,
h2,
h3,
h4,
figure {
  margin: 0;
}
h1,
h2,
h3,
h4 {
  line-height: 1.05;
  font-weight: 600;
  letter-spacing: -0.05em;
}
h1 {
  font-size: clamp(3.5rem, 7.8vw, 8rem);
}
h2 {
  font-size: clamp(2.5rem, 4.8vw, 5rem);
}
h3 {
  font-size: clamp(1.75rem, 2.7vw, 2.8rem);
}
h4 {
  font-size: 1.25rem;
  letter-spacing: -0.025em;
}
p {
  max-width: 65ch;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 5px;
}
.wrap {
  width: min(1400px, calc(100% - 112px));
  margin-inline: auto;
}
.eyebrow {
  font:
    14px/1.5 "Plex Mono",
    monospace;
  letter-spacing: 0.04em;
  font-weight: 400;
}
.caption {
  font-size: 14px;
  line-height: 1.55;
  color: var(--muted);
}
.cobalt {
  color: var(--blue);
}
.skip {
  position: fixed;
  top: -100px;
  left: 16px;
  z-index: 100;
  background: white;
  padding: 14px;
}
.skip:focus {
  top: 16px;
}
.review-ribbon {
  display: flex;
  justify-content: space-between;
  padding: 10px 56px;
  background: var(--ink);
  color: white;
  font:
    12px/1.4 "Plex Mono",
    monospace;
  gap: 16px;
}
.review-ribbon a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.review-ribbon {
  align-items: center;
}
.review-ribbon .ribbon-service {
  margin-left: auto;
  white-space: nowrap;
}
.review-ribbon .motion-control {
  color: white;
}
.review-ribbon .motion-select {
  color: white;
  border-color: #67748e;
  padding: 5px 8px;
  min-height: 32px;
}
.review-ribbon .motion-select option {
  color: var(--ink);
  background: white;
}
.report-index {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  padding: 26px 0;
  border-bottom: 1px solid var(--line);
}
.report-index a {
  font-size: 15px;
  padding: 10px 0;
}
.report-index span {
  display: block;
  color: var(--blue);
  font:
    13px "Plex Mono",
    monospace;
  margin-bottom: 8px;
}
.report-index a:hover {
  color: var(--blue);
}
.report-next {
  margin-top: 24px;
}
@media (max-width: 700px) {
  .review-ribbon {
    flex-wrap: wrap;
    gap: 8px 16px;
  }
  .review-ribbon > span {
    width: 100%;
  }
  .review-ribbon .ribbon-service {
    margin-left: 0;
  }
  .review-ribbon .ribbon-previous {
    margin-left: auto;
  }
  .report-index {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 20px;
  }
}
@media (max-width: 600px) {
  .review-ribbon .ribbon-previous {
    display: none;
  }
}
.masthead {
  display: flex;
  align-items: center;
  gap: 32px;
  padding-block: 28px;
}
.brand {
  width: 215px;
  flex: none;
}
.brand img {
  width: 100%;
  height: auto;
}
.masthead nav {
  display: flex;
  gap: 23px;
  margin-left: auto;
  align-items: center;
  font-size: 15px;
}
.masthead nav a {
  padding: 12px 0;
  border-bottom: 2px solid transparent;
}
.masthead nav a:hover,
.masthead nav a[aria-current] {
  border-color: var(--blue);
  color: var(--blue);
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 23px;
  background: var(--blue);
  color: white;
  border: 1px solid var(--blue);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  text-align: center;
  min-height: 48px;
  transition:
    background 0.2s,
    transform 0.2s;
}
.button:hover {
  background: #1838b4;
  transform: translateY(-2px);
}
.button.light {
  background: white;
  border-color: white;
  color: var(--ink);
}
.button.secondary {
  background: transparent;
  color: var(--blue);
}
.header-cta {
  font-size: 14px;
  padding: 13px 17px;
}
.menu-toggle {
  background: transparent;
  border: 1px solid var(--line);
  padding: 10px 14px;
}
.text-link {
  display: inline-block;
  width: fit-content;
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.4;
  transition: color 0.2s;
}
.text-link:hover {
  color: var(--blue);
}
.hero {
  padding-top: 38px;
}
.positioning {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--ink);
  padding: 19px 0 28px;
  gap: 14px;
  font-size: clamp(1.25rem, 2.4vw, 2.25rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  color: var(--blue);
}
.positioning b {
  font-weight: 400;
}
.hero h1 {
  font-size: clamp(3.5rem, 8.8vw, 8.5rem);
  line-height: 0.98;
  letter-spacing: -0.065em;
  padding-top: 13px;
}
.hero h1 > span {
  display: block;
}
.hero-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  margin: 42px 0;
}
.hero-intro > p {
  font-size: clamp(1.25rem, 1.8vw, 1.8rem);
  line-height: 1.35;
  max-width: 28ch;
}
.hero-intro > div {
  max-width: 450px;
  justify-self: end;
}
.hero-intro .button {
  margin-top: 26px;
}
.down-now {
  margin-top: 16px;
  font-size: 15px;
}
.down-now a {
  text-decoration: underline;
  text-underline-offset: 4px;
  white-space: nowrap;
}
.hero-intro .down-now {
  color: var(--muted);
}
.hero-intro .down-now a {
  color: var(--ink);
}
.hero-photo {
  position: relative;
  overflow: hidden;
}
.hero-photo > img {
  width: 100%;
  aspect-ratio: 2.5;
  object-fit: cover;
  object-position: center 57%;
}
.hero-photo figcaption {
  display: flex;
  justify-content: space-between;
  background: var(--ink);
  color: white;
  padding: 16px 22px;
  font:
    12px/1.6 "Plex Mono",
    monospace;
  gap: 18px;
}
.photo-stamp {
  position: absolute;
  right: 30px;
  top: 28px;
  background: var(--blue);
  color: white;
  padding: 20px 22px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.04em;
  transform: rotate(3deg);
}
.photo-stamp small {
  display: block;
  font:
    10px/1.5 "Plex Mono",
    monospace;
  letter-spacing: 0.05em;
  margin-top: 13px;
}
.hero-base {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  padding-block: 20px;
  font-size: 14px;
  gap: 20px;
}
.hero-base .text-link {
  font-size: 14px;
}
.ownership {
  background: var(--ink);
  color: white;
  padding: 96px 0 104px;
}
.ownership :focus-visible {
  outline-color: white;
}
.ownership-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 44px 70px;
}
.ownership h2 {
  grid-column: 1 / -1;
}
.ownership-grid > div {
  grid-column: 2;
}
.ownership-grid p {
  font-size: clamp(1.15rem, 1.5vw, 1.4rem);
  line-height: 1.5;
  color: #c7d4ea;
  max-width: 38ch;
  margin-bottom: 26px;
}
.ownership .text-link:hover {
  color: white;
}
.clients {
  padding-bottom: 90px;
}
.section-line {
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 25px 0;
  gap: 20px;
}
.section-line h2 {
  font-size: 26px;
  letter-spacing: -0.035em;
}
.section-line p {
  font-size: 16px;
  color: var(--muted);
}
/* Logo wall: one column per industry, three marks each. Marks carry their own optical
   width and height from home.mjs, so the tiles only centre them. */
.brand-groups {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
}
.brand-group h3 {
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0;
  color: var(--muted);
}
.brand-group ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
}
.brand-group li {
  display: grid;
  place-items: center;
  height: 88px;
  padding: 12px;
  background: var(--ice);
}
.brand-group li.dark {
  background: var(--ink);
}
.brand-group img {
  max-width: 100%;
  height: auto;
}
.coverage-chapter {
  background: var(--ink);
  color: white;
  padding: 88px 0 40px;
  overflow: hidden;
}
.coverage-chapter :focus-visible {
  outline-color: white;
}
.chapter-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 35px;
}
.chapter-heading h2 {
  margin-top: 18px;
}
.scale-fact {
  padding-top: 8px;
}
.scale-fact strong {
  font-size: clamp(6rem, 12vw, 12rem);
  line-height: 0.85;
  letter-spacing: -0.1em;
  font-weight: 500;
  display: block;
}
.scale-fact strong span {
  font-size: 0.4em;
  vertical-align: top;
  letter-spacing: -0.05em;
}
.scale-fact p {
  text-align: right;
  margin-top: 18px;
  font-size: 22px;
}
.coverage-figure {
  margin: 15px auto 40px;
}
.static-map {
  width: min(100%, 1150px);
  margin: auto;
  pointer-events: none;
}
.static-map svg {
  width: 100%;
  height: auto;
  display: block;
  max-height: 680px;
}
.state-shape {
  fill: #315bea;
  stroke: #0b1530;
  stroke-width: 90;
  stroke-linejoin: round;
}
.state-shape[data-coverage="partner"] {
  fill: #657797;
}
.state-shape[data-region="partner-network"] {
  fill: #657797;
}
.state-shape[data-coverage="partial"] {
  fill: url("#partial-state");
}
.coverage-figure figcaption {
  display: flex;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
  font-size: 14px;
}
.coverage-figure figcaption > span {
  display: flex;
  align-items: center;
  gap: 9px;
}
.legend-dot {
  display: inline-block;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #315bea;
}
.legend-dot.partner {
  background: #657797;
}
.legend-dot.partial {
  background: repeating-linear-gradient(45deg, #315bea 0 3px, #bad2ff 3px 6px);
}
.delivery-model {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  border-top: 1px solid #50607d;
  padding-top: 32px;
}
.delivery-model article + article {
  border-left: 1px solid #50607d;
  padding-left: 70px;
}
.delivery-model h3 {
  margin: 18px 0;
  font-size: clamp(1.8rem, 3vw, 3rem);
}
.delivery-model p:not(.eyebrow) {
  color: #c7d4ea;
  max-width: 42ch;
}
.chapter-foot {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  align-items: center;
  border-top: 1px solid #50607d;
  margin-top: 36px;
  padding-top: 23px;
}
.chapter-foot p {
  font-size: 14px;
  color: #bdcce2;
}
.chapter-foot .text-link:hover {
  color: white;
}
.service-chapter .chapter-foot {
  border-top-color: var(--line);
}
.service-chapter .chapter-foot p {
  color: var(--ink);
  font-size: 17px;
  max-width: 52ch;
}
.service-chapter .chapter-foot .text-link:hover {
  color: var(--blue);
}
.chapter-foot-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
}
.service-chapter,
.report-chapter,
.industries-preview {
  padding-block: 105px;
}
.section-heading {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 45px;
  margin-bottom: 54px;
}
.service-row {
  display: grid;
  grid-template-columns: 60px 1fr 1fr 100px;
  gap: 35px;
  align-items: start;
  border-top: 1px solid var(--line);
  padding: 32px 0;
  transition: background 0.2s;
}
.service-row:last-child {
  border-bottom: 1px solid var(--line);
}
.service-row h3 {
  font-size: 32px;
  max-width: 15ch;
}
.service-row p {
  color: var(--muted);
  font-size: 17px;
}
.row-action {
  font-size: 14px;
  text-decoration: underline;
  text-underline-offset: 5px;
  align-self: end;
}
.service-row:hover h3 {
  color: var(--blue);
}
/* Services page rows are information, not links: no hover affordance. */
.service-row.is-static:hover h3 {
  color: inherit;
}
.service-row.is-static:before {
  display: none;
}
.restoration {
  background: var(--ice);
  padding: 100px 0;
}
.restoration-grid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 45px;
}
.restoration h2 {
  font-size: clamp(4rem, 9vw, 9rem);
  color: var(--blue);
  margin-bottom: 34px;
}
.restoration p:not(.eyebrow) {
  max-width: 48ch;
  margin-bottom: 20px;
}
.restoration .lead {
  font-size: 26px;
  color: var(--ink);
}
.report-layout {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  align-items: center;
  gap: 85px;
}
.report-sheet {
  background: white;
  border: 1px solid var(--line);
  box-shadow: 0 18px 40px #0b15300b;
  transform: rotate(-1deg);
}
.report-sheet > a {
  display: block;
  overflow: hidden;
  max-height: 680px;
}
.report-sheet img {
  width: 100%;
  height: auto;
}
.report-sheet figcaption {
  padding: 18px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  border-top: 1px solid var(--line);
  font-size: 12px;
  flex-wrap: wrap;
}
.report-sheet figcaption a {
  font-size: 14px;
  text-decoration: underline;
}
.report-explanation h3 {
  font-size: clamp(2.3rem, 3.6vw, 3.5rem);
  margin-bottom: 30px;
  letter-spacing: -0.05em;
  white-space: normal;
}
.report-explanation ol {
  list-style: none;
  counter-reset: proof;
  padding: 0;
  margin: 0;
}
.report-explanation li {
  counter-increment: proof;
  border-top: 1px solid var(--line);
  padding: 24px 0 24px 46px;
  position: relative;
}
.report-explanation li:before {
  content: "0" counter(proof);
  position: absolute;
  left: 0;
  top: 24px;
  font:
    14px "Plex Mono",
    monospace;
  color: var(--blue);
}
.report-explanation li p {
  margin-top: 10px;
  color: var(--muted);
}
.report-explanation .caption {
  margin: 12px 0 26px;
}
.industries-preview {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
  border-top: 1px solid var(--line);
}
.industries-preview h2 {
  font-size: clamp(2.5rem, 4vw, 4.3rem);
  margin: 20px 0 38px;
}
.industries-preview img {
  aspect-ratio: 1.4;
  object-fit: cover;
}
.industry-links > a {
  display: block;
  border-top: 1px solid var(--line);
  padding: 30px 0;
}
.industry-links > a:first-child {
  padding-top: 0;
  border-top: 0;
}
.industry-links h3 {
  font-size: 32px;
  margin-bottom: 15px;
}
.industry-links p {
  color: var(--muted);
  margin-bottom: 19px;
}
.closing {
  padding: 80px 0;
  background: var(--blue);
  color: white;
}
.closing :focus-visible {
  outline-color: white;
}
.closing-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 100px;
  align-items: end;
}
.closing h2 {
  font-size: clamp(3rem, 5.2vw, 5.5rem);
}
.closing-grid > div > p:not(.eyebrow) {
  max-width: 39ch;
  margin-bottom: 26px;
}
.closing-grid > div > p.down-now {
  margin: 14px 0 0;
}
.plain-email {
  display: block;
  margin-top: 20px;
  text-decoration: underline;
  text-underline-offset: 5px;
  font-size: 17px;
}
.footer {
  padding: 50px 0 25px;
}
.footer-top {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 60px;
}
.footer-top img {
  width: 250px;
  height: auto;
}
.footer-top > p {
  font-size: 16px;
  color: var(--muted);
}
.footer-top strong {
  display: block;
  color: var(--ink);
  margin-top: 10px;
  font-weight: 500;
}
.footer-top > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  font-size: 16px;
  gap: 7px;
}
.footer-top .eyebrow {
  margin-bottom: 6px;
  color: var(--muted);
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  border-top: 1px solid var(--line);
  margin-top: 40px;
  padding-top: 22px;
  gap: 20px;
}
.footer-bottom > div {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
}
.page-intro {
  padding-block: 70px 80px;
  border-top: 1px solid var(--line);
}
.page-intro h1 {
  margin: 24px 0 32px;
  max-width: 14ch;
}
.page-intro .intro-copy {
  font-size: clamp(1.2rem, 2vw, 1.7rem);
  max-width: 50ch;
  color: var(--muted);
}
.motion-off {
  scroll-behavior: auto;
}
.motion-off * {
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
}
.motion-off *::before,
.motion-off *::after {
  animation: none !important;
  transition: none !important;
}
.menu-toggle {
  display: none;
}
.compact {
  padding-top: 0;
}
.equipment-strip {
  background: var(--ink);
  color: #d0dcf0;
  padding: 22px 0;
  font:
    14px/1.5 "Plex Mono",
    monospace;
  letter-spacing: 0.025em;
}
.two-ledgers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 100px;
  padding-block: 85px;
}
.ledger h2 {
  font-size: 36px;
  margin-bottom: 26px;
}
.ledger dl {
  margin: 0;
}
.ledger dl > div {
  border-top: 1px solid var(--line);
  padding: 25px 0;
}
.ledger dt {
  font-size: 23px;
  line-height: 1.2;
  letter-spacing: -0.03em;
  font-weight: 500;
  margin-bottom: 12px;
}
.ledger dd {
  margin: 0;
  color: var(--muted);
}
.decision-strip {
  background: var(--ice);
  padding: 75px 0;
}
.decision-strip h2 {
  margin: 22px 0 26px;
  max-width: 20ch;
}
.decision-strip p:not(.eyebrow) {
  max-width: 55ch;
  margin-bottom: 26px;
}
.resource-strip {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 70px;
  padding-block: 90px;
  border-bottom: 1px solid var(--line);
  align-items: center;
}
.resource-strip h2 {
  font-size: clamp(2.5rem, 4vw, 4.2rem);
  margin: 22px 0;
}
.resource-strip p:not(.eyebrow) {
  max-width: 45ch;
  color: var(--muted);
  margin-bottom: 22px;
}
.report-crop {
  display: block;
  max-height: 410px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: white;
  box-shadow: 0 12px 32px #0b15300c;
}
.report-crop img {
  width: 100%;
}
.related {
  padding-block: 70px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 35px;
}
.related > a {
  border-top: 1px solid var(--line);
  padding-top: 24px;
}
.related > .eyebrow {
  grid-column: 1 / -1;
}
[aria-invalid="true"] {
  outline: 2px solid #a32d20;
  outline-offset: 3px;
}
.study-legend {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
}
.study-legend i {
  width: 22px;
  height: 12px;
  background: #b7cadc;
  border: 1px solid #d7e7f8;
}
.related h3 {
  font-size: 30px;
  margin-bottom: 14px;
}
.related p {
  color: var(--muted);
  margin-bottom: 20px;
}
.industry-aside img {
  aspect-ratio: 1.35;
  object-fit: cover;
  margin-bottom: 26px;
}
.industry-aside p:not(.eyebrow) {
  margin: 18px 0 24px;
  color: var(--muted);
}
.coverage-list {
  padding-block: 90px;
}
.coverage-list dl {
  margin: 0;
}
.coverage-list dl > div {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 35px;
  border-top: 1px solid var(--line);
  padding: 25px 0;
}
.coverage-list dt {
  font-size: 26px;
  font-weight: 500;
  letter-spacing: -0.03em;
}
.coverage-list dd {
  margin: 0;
  color: var(--muted);
}
.coverage-inquiry {
  background: var(--ice);
  padding: 40px;
  margin-top: 35px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px 50px;
}
.coverage-inquiry p {
  color: var(--muted);
}
.coverage-inquiry .button {
  grid-column: 2;
  justify-self: start;
}
.about-photo img {
  width: 100%;
  max-height: 620px;
  object-fit: cover;
}
.about-photo figcaption {
  font:
    12px "Plex Mono",
    monospace;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}
.about-statement {
  padding: 25px 0;
}
.about-statement h2 {
  font-size: 52px;
  margin: 24px 0;
}
.about-statement p:not(.eyebrow) {
  margin-bottom: 24px;
  color: var(--muted);
}
.resource-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 75px;
  padding: 0 0 85px;
}
.resource-links > a {
  border-top: 1px solid var(--line);
  padding-top: 28px;
}
.resource-links h2 {
  font-size: 40px;
  margin: 20px 0;
}
.resource-links p:not(.eyebrow) {
  margin-bottom: 22px;
  color: var(--muted);
}
.procurement {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 70px;
  padding-bottom: 90px;
  align-items: start;
}
.capability-sheet {
  background: white;
  border: 1px solid var(--line);
  padding: 35px;
  box-shadow: 0 15px 40px #0b153007;
}
.sheet-head {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: start;
}
.text-button {
  border: 0;
  background: transparent;
  text-decoration: underline;
  text-underline-offset: 4px;
  padding: 0;
  font-size: 14px;
  color: var(--blue);
}
.capability-sheet dl {
  margin: 26px 0 0;
}
.capability-sheet dl > div {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 24px;
  border-top: 1px solid var(--line);
  padding: 17px 0;
  font-size: 16px;
}
.capability-sheet dt {
  color: var(--muted);
}
.capability-sheet dd {
  margin: 0;
}
.procurement aside h2 {
  font-size: 43px;
  margin-bottom: 25px;
}
.procurement aside ul {
  padding-left: 20px;
  display: grid;
  gap: 13px;
}
.procurement .caption {
  margin: 25px 0;
}
.contact-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding-block: 30px;
  margin-bottom: 75px;
}
.contact-split a {
  display: block;
  font-size: clamp(1.4rem, 2.8vw, 2.5rem);
  letter-spacing: -0.04em;
  font-weight: 500;
  color: var(--blue);
  margin: 12px 0;
}
.contact-split p:not(.eyebrow) {
  font-size: 15px;
  color: var(--muted);
}
.inquiry {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 75px;
  padding-bottom: 90px;
  align-items: start;
}
.form-section {
  padding-bottom: 35px;
  margin-bottom: 35px;
  border-bottom: 1px solid var(--line);
}
.form-section > .eyebrow {
  margin-bottom: 24px;
  color: var(--blue);
}
.form-section label:not(.state-options label):not(.service-choices label) {
  display: block;
  margin: 20px 0 8px;
  font-size: 16px;
  font-weight: 500;
}
.form-section label > span,
.form-section legend > span {
  font-size: 13px;
  color: var(--muted);
  font-weight: 400;
}
.form-section input:not([type="checkbox"]),
.form-section select,
.form-section textarea {
  width: 100%;
  border: 1px solid #8d9bb2;
  border-radius: 0;
  background: white;
  padding: 12px 14px;
  font-size: 16px;
  color: var(--ink);
  min-height: 49px;
}
.form-section input:focus,
.form-section textarea:focus {
  border-color: var(--blue);
}
.form-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.form-section fieldset {
  padding: 0;
  border: 0;
  margin: 25px 0 0;
  min-width: 0;
}
.form-section legend {
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 13px;
}
.states-field details {
  border: 1px solid #8d9bb2;
  background: white;
}
.states-field summary {
  padding: 14px;
  cursor: pointer;
  font-size: 16px;
}
.states-field summary span {
  float: right;
  font-size: 13px;
  color: var(--muted);
}
.state-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding: 8px 12px;
  max-height: 320px;
  overflow: auto;
  border-top: 1px solid var(--line);
}
.state-options label,
.service-choices label {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  font-size: 15px;
  cursor: pointer;
}
.state-options label > span,
.service-choices label > span {
  font-size: 15px;
  color: var(--ink);
}
input[type="checkbox"] {
  width: 19px;
  height: 19px;
  flex: none;
  accent-color: var(--blue);
}
.field-help {
  font-size: 13px;
  color: var(--muted);
  margin-top: 12px;
}
.service-choices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 20px;
}
.brief-sidebar {
  position: sticky;
  top: 24px;
  min-width: 0;
}
.brief-sheet {
  background: #fff;
  border: 1px solid var(--line);
  padding: 32px;
  box-shadow: 0 18px 50px #0b15300b;
}
.brief-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  padding-bottom: 23px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 25px;
}
.brief-heading img {
  width: 140px;
  height: auto;
}
.brief-heading > span {
  font:
    10px "Plex Mono",
    monospace;
  border: 1px solid #8796af;
  padding: 7px;
  color: var(--muted);
  white-space: nowrap;
  transform: rotate(3deg);
}
.brief-sheet h2 {
  font-size: 42px;
  margin: 18px 0 28px;
}
.brief-sheet dl {
  margin: 0;
}
.brief-sheet dl > div {
  padding: 15px 0;
  border-top: 1px solid var(--line);
  transition: background 0.9s;
}
.brief-sheet dt {
  font:
    12px "Plex Mono",
    monospace;
  color: var(--muted);
  margin-bottom: 7px;
}
.brief-sheet dd {
  font-size: 16px;
  margin: 0;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.brief-sheet .caption {
  margin-top: 18px;
}
.brief-line-changed {
  background: #eaf1fb;
}
#brief-actions {
  padding-top: 28px;
}
#brief-actions h3 {
  font-size: 31px;
  margin-bottom: 12px;
}
#brief-actions > p {
  font-size: 15px;
  color: var(--muted);
  margin-bottom: 16px;
}
.brief-action-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.brief-action-buttons .button {
  font-size: 14px;
  padding: 13px;
}
#brief-action-status {
  margin-top: 14px;
  color: var(--ink);
}
.form-errors {
  padding: 18px;
  border-left: 3px solid #b83222;
  background: #fff2ee;
  margin-bottom: 22px;
  color: #762217;
  font-size: 16px;
}
.form-errors ul {
  padding-left: 20px;
  margin: 12px 0 0;
}
.form-errors a {
  text-decoration: underline;
}
.service-row {
  position: relative;
}
.service-row:before {
  content: "";
  position: absolute;
  left: -15px;
  top: 25px;
  bottom: 25px;
  width: 3px;
  background: var(--blue);
  transform: scaleY(0);
  transform-origin: top;
}
/* Hover feedback animates only once the motion preference is resolved. */
body.motion-ready:not(.motion-off) .service-row:before {
  transition: transform 180ms;
}
.service-row:hover:before,
.service-row:focus-visible:before {
  transform: scaleY(1);
}
@media (max-width: 1000px) {
  .two-ledgers,
  .procurement,
  .inquiry {
    gap: 40px;
  }
  .related {
    grid-template-columns: 1fr 1fr;
  }
  .related > .eyebrow {
    grid-column: 1/-1;
  }
  .resource-strip {
    gap: 40px;
  }
  .capability-sheet {
    padding: 24px;
  }
  .brief-sheet {
    padding: 24px;
  }
  .brief-heading {
    flex-wrap: wrap;
    gap: 15px;
  }
  .brief-sheet h2 {
    font-size: 36px;
  }
  .service-choices {
    grid-template-columns: 1fr;
  }
  .form-pair {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 700px) {
  .two-ledgers,
  .resource-strip,
  .resource-links,
  .procurement,
  .contact-split,
  .inquiry {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .two-ledgers {
    padding-block: 55px;
  }
  .ledger h2 {
    font-size: 31px;
  }
  .resource-strip {
    padding-block: 55px;
  }
  .resource-strip h2 {
    font-size: 36px;
  }
  .resource-strip .report-crop {
    max-height: 330px;
  }
  .decision-strip {
    padding-block: 50px;
  }
  .related {
    grid-template-columns: 1fr;
    padding-block: 55px;
    gap: 30px;
  }
  .related > .eyebrow {
    grid-column: auto;
  }
  .coverage-list {
    padding-block: 55px;
  }
  .coverage-list dl > div {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .coverage-inquiry {
    grid-template-columns: 1fr;
    padding: 25px;
  }
  .coverage-inquiry .button {
    grid-column: 1;
  }
  .about-statement h2 {
    font-size: 40px;
  }
  .resource-links {
    padding-bottom: 55px;
  }
  .resource-links h2 {
    font-size: 35px;
  }
  .procurement {
    padding-bottom: 55px;
  }
  .procurement aside h2 {
    font-size: 37px;
  }
  .capability-sheet {
    padding: 22px;
  }
  .sheet-head {
    flex-direction: column;
  }
  .capability-sheet dl > div {
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .contact-split {
    gap: 30px;
    margin-bottom: 45px;
  }
  .contact-split > div + div {
    border-top: 1px solid var(--line);
    padding-top: 28px;
  }
  .contact-split a {
    font-size: 30px;
  }
  .inquiry {
    padding-bottom: 55px;
  }
  .brief-sidebar {
    position: static;
  }
  .brief-sheet {
    padding: 25px;
  }
  .brief-heading {
    flex-wrap: wrap;
  }
  .brief-sheet h2 {
    font-size: 38px;
  }
  .brief-action-buttons .button {
    font-size: 15px;
  }
  .service-choices {
    grid-template-columns: 1fr;
  }
  .form-section label > span,
  .form-section legend > span {
    font-size: 12px;
  }
  .state-options {
    grid-template-columns: 1fr 1fr;
  }
  .form-section {
    padding-bottom: 26px;
    margin-bottom: 26px;
  }
}
@media print {
  .procurement {
    display: block;
  }
  .procurement aside,
  .account-setup,
  .text-button,
  .review-ribbon,
  .brief-action-buttons {
    display: none !important;
  }
  .capability-sheet {
    box-shadow: none;
    border: 0;
    padding: 0;
  }
  .capability-sheet dl > div {
    break-inside: avoid;
  }
  .page-intro .intro-copy {
    font-size: 12pt;
  }
}
@media (min-width: 1600px) {
  .hero-photo > img {
    aspect-ratio: 2.75;
  }
}
.study-link {
  display: block;
  margin-top: 12px;
  text-decoration: underline;
  text-underline-offset: 5px;
  color: white;
}
.drive-study {
  background: var(--ink);
  color: white;
  padding: 50px 0;
}
.study-label {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  align-items: center;
  font:
    14px "Plex Mono",
    monospace;
}
.drive-image {
  width: 100%;
  height: auto;
  pointer-events: none;
  user-select: none;
  margin: 25px 0;
}
.drive-study figure figcaption {
  font-size: 16px;
  color: #cad6eb;
  max-width: 80ch;
  margin: 0 0 40px;
  line-height: 1.5;
}
.drive-study .text-link:hover {
  color: white;
}
.drive-study :focus-visible {
  outline-color: white;
}
@media (max-width: 650px) {
  .drive-study {
    padding-block: 35px;
  }
  .study-label {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
    font-size: 12px;
  }
  .drive-study figure figcaption {
    font-size: 14px;
  }
  .drive-image {
    margin-block: 25px;
  }
}
@media (max-width: 1150px) {
  .masthead {
    gap: 20px;
  }
  .masthead nav {
    gap: 15px;
    font-size: 14px;
  }
  .brand {
    width: 175px;
  }
  .header-cta {
    font-size: 13px;
    padding: 12px;
  }
  .wrap {
    width: calc(100% - 72px);
  }
  .review-ribbon {
    padding-inline: 36px;
  }
  .brand-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 32px;
  }
  .service-row {
    grid-template-columns: 35px 1fr 1fr;
    gap: 25px;
  }
  .service-row .row-action {
    grid-column: 2;
  }
  .report-layout {
    gap: 45px;
  }
  .industries-preview {
    gap: 55px;
  }
  .closing-grid {
    gap: 50px;
  }
}
@media (max-width: 1100px) {
  .masthead {
    flex-wrap: wrap;
    padding-block: 22px;
    gap: 18px;
  }
  .brand {
    width: 195px;
  }
  .menu-toggle:not([hidden]) {
    display: block;
    margin-left: auto;
  }
  .masthead .header-cta {
    display: none;
  }
  .masthead nav {
    width: 100%;
    order: 3;
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding: 12px 0;
    gap: 10px 25px;
  }
  .enhanced .masthead nav:not(.open) {
    display: none;
  }
  .hero {
    padding-top: 18px;
  }
  .positioning {
    font-size: clamp(1rem, 2.65vw, 1.45rem);
    gap: 9px;
  }
  .hero h1 {
    font-size: clamp(3.2rem, 8.7vw, 5.4rem);
  }
  .hero-intro {
    gap: 40px;
  }
  .ownership {
    padding-block: 72px 80px;
  }
  .ownership-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .ownership-grid > div {
    grid-column: auto;
  }
  .section-heading {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 35px;
  }
  .restoration-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .restoration-grid > div {
    padding-left: 20%;
  }
  .report-layout {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }
  .report-explanation h3 {
    font-size: 2.5rem;
  }
  .report-explanation li {
    padding-left: 33px;
  }
  .report-explanation li p {
    font-size: 16px;
  }
  .delivery-model {
    gap: 35px;
  }
  .delivery-model article + article {
    padding-left: 35px;
  }
  .footer-top {
    gap: 30px;
  }
  .footer-bottom {
    flex-direction: column;
  }
  .industries-preview {
    gap: 40px;
  }
  .industry-links h3 {
    font-size: 27px;
  }
  .service-chapter,
  .report-chapter,
  .industries-preview {
    padding-block: 70px;
  }
}
@media (max-width: 650px) {
  body {
    font-size: 16px;
  }
  .wrap {
    width: calc(100% - 40px);
  }
  .review-ribbon {
    padding-inline: 20px;
    font-size: 10px;
  }
  .review-ribbon span {
    max-width: 180px;
  }
  .masthead {
    padding-block: 18px;
  }
  .brand {
    width: 185px;
  }
  .positioning {
    justify-content: flex-start;
    flex-wrap: wrap;
    padding: 17px 0 22px;
    font-size: clamp(1rem, 4vw, 1.25rem);
    gap: 4px 10px;
  }
  .positioning span:first-child {
    flex-basis: 100%;
    font-size: 1.5em;
    line-height: 1.1;
    margin-bottom: 4px;
  }
  .positioning b:nth-child(2) {
    display: none;
  }
  .hero h1 {
    font-size: clamp(2.8rem, 8.9vw, 3.9rem);
    letter-spacing: -0.065em;
    line-height: 1.03;
  }
  .hero-intro {
    grid-template-columns: 1fr;
    gap: 24px;
    margin: 28px 0;
  }
  .hero-intro > p {
    font-size: 21px;
  }
  .hero-intro > div {
    justify-self: start;
  }
  .hero-photo > img {
    aspect-ratio: 1.35;
    object-position: 36% center;
  }
  .photo-stamp {
    font-size: 17px;
    padding: 13px;
    right: 15px;
    top: 16px;
  }
  .photo-stamp small {
    font-size: 8px;
    margin-top: 8px;
  }
  .hero-photo figcaption {
    font-size: 10px;
    padding: 13px;
    flex-direction: column;
    gap: 3px;
  }
  .hero-base {
    font-size: 12px;
    align-items: flex-start;
  }
  .hero-base > span {
    max-width: 24ch;
  }
  .hero-base .text-link {
    font-size: 13px;
    flex-shrink: 0;
  }
  .ownership {
    padding-block: 60px 64px;
  }
  .ownership h2 {
    font-size: 40px;
  }
  .section-line {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
  .section-line p {
    font-size: 15px;
  }
  .brand-groups {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
  /* One industry per row on a phone: the three marks sit side by side at 60% size. */
  .brand-group ul {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }
  .brand-group li {
    height: 64px;
    padding: 8px;
  }
  .brand-group img {
    width: calc(var(--w) * 0.6);
  }
  .clients {
    padding-bottom: 55px;
  }
  .coverage-chapter {
    padding-top: 55px;
  }
  .chapter-heading {
    gap: 20px;
  }
  .chapter-heading h2 {
    font-size: 36px;
  }
  .chapter-heading .eyebrow {
    font-size: 12px;
    max-width: 22ch;
  }
  .scale-fact {
    padding-top: 48px;
  }
  .scale-fact strong {
    font-size: 75px;
  }
  .scale-fact p {
    font-size: 14px;
    margin-top: 12px;
  }
  .coverage-figure {
    margin: 18px -12px 32px;
  }
  .coverage-figure figcaption {
    gap: 12px 18px;
    padding-inline: 12px;
    font-size: 12px;
  }
  .legend-dot {
    width: 10px;
    height: 10px;
  }
  .delivery-model {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .delivery-model article + article {
    padding: 30px 0 0;
    border-left: 0;
    border-top: 1px solid #50607d;
  }
  .delivery-model h3 {
    font-size: 33px;
    margin: 13px 0;
  }
  .chapter-foot {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
  }
  .chapter-foot p {
    font-size: 12px;
  }
  .service-chapter,
  .report-chapter,
  .industries-preview {
    padding-block: 60px;
  }
  .section-heading h2 {
    font-size: 39px;
  }
  .eyebrow {
    font-size: 12px;
  }
  .service-row {
    grid-template-columns: 28px 1fr;
    gap: 12px 16px;
    padding-block: 25px;
  }
  .service-row h3 {
    font-size: 30px;
    max-width: none;
  }
  .service-row p {
    grid-column: 2;
    font-size: 16px;
  }
  .service-row .row-action {
    font-size: 14px;
  }
  .restoration {
    padding-block: 55px;
  }
  .restoration-grid > div {
    padding-left: 0;
  }
  .restoration h2 {
    font-size: 76px;
  }
  .restoration .lead {
    font-size: 23px;
  }
  .report-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .report-sheet {
    margin-inline: 6px;
  }
  .report-sheet > a {
    max-height: 530px;
  }
  .report-sheet figcaption {
    font-size: 11px;
  }
  .report-explanation h3 {
    font-size: 37px;
  }
  .report-explanation li p {
    font-size: 16px;
  }
  .industries-preview {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .industries-preview h2 {
    font-size: 41px;
  }
  .industries-preview img {
    aspect-ratio: 1.75;
  }
  .industry-links h3 {
    font-size: 30px;
  }
  .closing {
    padding-block: 55px;
  }
  .closing-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .closing h2 {
    font-size: 49px;
  }
  .footer-top {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .footer-top img {
    width: 220px;
  }
  .footer-bottom {
    margin-top: 30px;
  }
  .footer-bottom > div {
    gap: 16px;
  }
  .page-intro {
    padding-block: 40px 50px;
  }
  .page-intro h1 {
    font-size: 52px;
    letter-spacing: -0.055em;
  }
  .page-intro .intro-copy {
    font-size: 20px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html:not(.motion-on) {
    scroll-behavior: auto;
  }
  html:not(.motion-on) *,
  html:not(.motion-on) *::before,
  html:not(.motion-on) *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
@media print {
  .review-ribbon,
  .masthead,
  .closing,
  .footer,
  dialog,
  .menu-toggle {
    display: none !important;
  }
  .wrap {
    width: 100%;
  }
  body {
    font-size: 12pt;
    background: white;
    color: black;
  }
  a {
    color: inherit;
  }
  .coverage-chapter {
    print-color-adjust: exact;
  }
  .page-intro {
    padding: 20px 0;
  }
  h1 {
    font-size: 32pt;
  }
}
/* Navigation and the report story share the established editorial grid. */
@media (max-width: 380px) {
  .page-intro h1 {
    font-size: 2.75rem;
  }
}
.masthead-shell {
  position: sticky;
  top: 0;
  z-index: 30;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.masthead {
  padding-block: 18px;
  gap: 24px;
}
.masthead .brand {
  width: 180px;
}
.masthead nav {
  gap: 18px;
  font-size: 14px;
}
.masthead .header-cta {
  white-space: nowrap;
}
.masthead nav .nav-contact {
  display: none;
}
.footer-browse {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 30px;
  padding: 0 0 35px;
  margin-bottom: 35px;
  border-bottom: 1px solid var(--line);
  font-size: 16px;
}
.footer-browse a {
  padding-block: 8px;
}
.footer-browse a:hover {
  color: var(--blue);
}
@media (max-width: 1100px) {
  .masthead nav .nav-contact {
    display: block;
    color: var(--blue);
  }
}
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-block: 22px;
  font-size: 14px;
  color: var(--muted);
}
.breadcrumbs a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.breadcrumbs + .page-intro {
  padding-top: 30px;
  border-top: 0;
}
.page-guide {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 26px;
  padding: 20px 0;
  border-top: 1px solid var(--line);
  font-size: 15px;
}
.page-guide > span {
  color: var(--muted);
  font-family: "Plex Mono", monospace;
  font-size: 12px;
  text-transform: uppercase;
}
.page-guide a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 36px;
}
.motion-control {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  color: var(--muted);
}
.page-guide .motion-control {
  margin-left: auto;
}
.motion-select {
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 0;
  color: var(--ink);
  padding: 8px;
  min-height: 40px;
  cursor: pointer;
}
.clients {
  padding-top: 28px;
  padding-bottom: 45px;
}
#services {
  padding-top: 65px;
}
.equipment-index {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  margin-bottom: 45px;
}
.equipment-index > a {
  border-top: 2px solid var(--ink);
  padding: 28px 0;
  transition: border-color 220ms;
}
.equipment-index > a:hover {
  border-color: var(--blue);
}
.equipment-index h3 {
  margin: 20px 0;
  font-size: clamp(2rem, 3.4vw, 3.4rem);
}
.equipment-index p:not(.eyebrow) {
  max-width: 45ch;
  color: var(--muted);
  margin-bottom: 22px;
}
.secondary-services .service-row {
  padding-block: 25px;
  grid-template-columns: 1fr 1fr 100px;
}
.service-chapter .section-heading {
  display: block;
}
@media (max-width: 1150px) {
  .secondary-services .service-row {
    grid-template-columns: 1fr 1fr;
  }
  .secondary-services .service-row .row-action {
    grid-column: 2;
  }
}
@media (max-width: 650px) {
  .secondary-services .service-row {
    grid-template-columns: 1fr;
  }
  .secondary-services .service-row p,
  .secondary-services .service-row .row-action {
    grid-column: auto;
  }
}
@media (min-width: 1101px) {
  .restoration-grid > div {
    grid-column: 2;
  }
}
.secondary-services .service-row h3 {
  font-size: clamp(1.5rem, 2.2vw, 2.3rem);
}
.report-explanation h2 {
  font-size: clamp(2.7rem, 4.5vw, 4.8rem);
  margin: 20px 0 30px;
  max-width: 12ch;
}
.report-explanation > p:not(.eyebrow) {
  margin-bottom: 24px;
}
.report-explanation .button {
  margin-bottom: 22px;
}
.report-sheet {
  max-width: 500px;
}
.report-sheet > img {
  box-shadow: 0 18px 42px #0b15301a;
  border: 1px solid var(--line);
}
.evidence-note {
  border-left: 3px solid var(--blue);
  background: var(--ice);
  padding: 22px 24px;
  margin-bottom: 28px;
}
.evidence-note dl {
  margin: 16px 0;
}
.evidence-note dl > div + div {
  margin-top: 14px;
}
.evidence-note dt {
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 3px;
}
.evidence-note dd {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
}
.evidence-status {
  font-size: 14px;
  color: var(--muted);
  margin-bottom: 16px;
}
.follow-through,
.account-setup {
  padding-block: 70px;
}
.follow-through .section-heading > p:last-child,
.account-setup .section-heading > p:last-child {
  max-width: 58ch;
  color: var(--muted);
  margin-top: 0;
}
@media (min-width: 1101px) {
  .follow-through .section-heading,
  .account-setup .section-heading {
    row-gap: 24px;
  }
  .follow-through .section-heading > p:last-child,
  .account-setup .section-heading > p:last-child {
    grid-column: 2;
  }
}
.constraint-ledger {
  margin-top: 35px;
  border-top: 2px solid var(--ink);
}
.constraint-ledger > div {
  display: grid;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
  gap: 36px;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
}
.constraint-ledger dt {
  font-size: clamp(1.3rem, 2vw, 1.8rem);
  letter-spacing: -0.035em;
  font-weight: 600;
}
.constraint-ledger dt > span {
  font:
    14px "Plex Mono",
    monospace;
  color: var(--blue);
  margin-right: 18px;
}
.constraint-ledger dd {
  margin: 0;
}
.constraint-ledger dd strong {
  font-size: 18px;
}
.constraint-ledger dd p {
  color: var(--muted);
  margin-top: 8px;
  max-width: 63ch;
}
.field-reference {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 30px;
  background: var(--ice);
  padding: 28px;
  margin-top: 25px;
}
.field-reference p {
  max-width: 66ch;
}
.field-reference .text-link {
  max-width: 25ch;
}
@media (max-width: 700px) {
  .constraint-ledger > div,
  .field-reference {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .follow-through,
  .account-setup {
    padding-block: 40px;
  }
  .evidence-note,
  .field-reference {
    padding: 20px;
  }
}
.report-story {
  overflow-x: clip;
  padding-block: 0 70px;
}
.report-story-note {
  color: var(--muted);
  font-size: 14px;
  max-width: none;
  border-bottom: 1px solid var(--line);
  padding-bottom: 25px;
}
.report-story-row {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr);
  gap: clamp(40px, 7vw, 115px);
  align-items: center;
  padding: 85px 20px;
  border-bottom: 1px solid var(--line);
}
.report-story-copy {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}
.report-story-copy h2 {
  font-size: clamp(2.3rem, 3.7vw, 4rem);
  margin: 20px 0 28px;
  letter-spacing: -0.045em;
}
.report-story-copy > p:not(.eyebrow) {
  color: var(--muted);
}
.report-takeaways {
  list-style: none;
  margin: 28px 0;
  padding: 0;
  border-top: 1px solid var(--line);
}
.report-takeaways li {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-size: 16px;
}
.report-takeaways li::before {
  content: "↗";
  color: var(--blue);
  margin-right: 14px;
}
.report-story-sheet {
  grid-column: 1;
  grid-row: 1;
  transform: rotate(-1.6deg);
}
.report-story-sheet img {
  width: 100%;
  height: auto;
  border: 1px solid #d7dce5;
  box-shadow: 0 22px 55px #0b153022;
}
.report-story-sheet figcaption {
  font:
    12px/1.5 "Plex Mono",
    monospace;
  padding-top: 20px;
  color: var(--muted);
}
.report-story-row:nth-of-type(even) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.18fr);
}
.report-story-row:nth-of-type(even) .report-story-copy {
  grid-column: 1;
}
.report-story-row:nth-of-type(even) .report-story-sheet {
  grid-column: 2;
  transform: rotate(1.6deg);
}
.report-transcript {
  margin-top: 28px;
  font-size: 14px;
  color: var(--muted);
}
.report-transcript summary {
  cursor: pointer;
  padding-block: 10px;
  min-height: 44px;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.report-transcript pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: inherit;
  line-height: 1.7;
  background: white;
  border: 1px solid var(--line);
  padding: 18px;
}
@media (max-width: 1100px) {
  .masthead {
    gap: 16px;
  }
  .masthead nav {
    gap: 8px 24px;
  }
  .masthead nav a {
    min-height: 44px;
  }
  .page-guide .motion-control {
    margin-left: 0;
  }
}
@media (max-width: 700px) {
  html {
    scroll-padding-top: 100px;
  }
  .masthead {
    padding-block: 14px;
  }
  .masthead .brand {
    width: 165px;
  }
  .page-guide {
    gap: 8px 20px;
    padding-block: 16px;
  }
  .page-guide > span {
    width: 100%;
  }
  .page-guide a {
    font-size: 14px;
  }
  .page-guide .motion-control {
    margin-left: auto;
  }
  .equipment-index {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: 25px;
  }
  .equipment-index > a {
    padding-block: 22px;
  }
  .equipment-index h3 {
    font-size: 2.2rem;
  }
  .report-story-row,
  .report-story-row:nth-of-type(even) {
    grid-template-columns: 1fr;
    padding: 50px 5px;
    gap: 35px;
  }
  .report-story-copy,
  .report-story-row:nth-of-type(even) .report-story-copy {
    grid-column: 1;
    grid-row: 1;
  }
  .report-story-sheet,
  .report-story-row:nth-of-type(even) .report-story-sheet {
    grid-column: 1;
    grid-row: 2;
    width: 95%;
    margin-inline: auto;
  }
  .report-story-copy h2 {
    font-size: 2.3rem;
  }
  .report-story {
    padding-bottom: 35px;
  }
  .report-story-note {
    font-size: 13px;
  }
  .report-sheet {
    margin-inline: auto;
    max-width: 420px;
  }
  .hero-photo > img {
    aspect-ratio: 1.6;
    object-position: 62% center;
  }
}
@media print {
  .breadcrumbs,
  .page-guide,
  .motion-control {
    display: none !important;
  }
  .masthead-shell {
    position: static;
  }
  .report-story-row {
    break-inside: avoid;
  }
  .report-story-sheet {
    transform: none !important;
  }
}
/* Homepage teaser: the report's own job photos under the summary, not a numbered list */
.evidence-note .job-photos {
  grid-template-columns: repeat(3, minmax(0, 110px));
  margin-top: 18px;
}
.report-explanation .job-photos li {
  counter-increment: none;
  border-top: 0;
  padding: 0;
}
.report-explanation .job-photos li::before {
  content: none;
}
/* Service call reports (service-reports.json): homepage job, full reports, job references */
.job-report {
  padding-block: 105px;
}
.job-report-head {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 45px;
  align-items: end;
  margin-bottom: 40px;
}
.job-report-head h2 {
  font-size: clamp(2.7rem, 4.5vw, 4.8rem);
  max-width: 13ch;
}
.job-report-head p,
.service-report-head p {
  color: var(--muted);
}
.job-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 44px;
  margin: 0;
  padding: 18px 0;
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.job-strip div {
  min-width: 0;
}
.job-strip dt {
  font-size: 13px;
  color: var(--muted);
}
.job-strip dd,
.report-ref,
.report-table td {
  margin: 0;
  font:
    15px/1.45 "Plex Mono",
    monospace;
  overflow-wrap: anywhere;
}
.job-body {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(36px, 6vw, 90px);
  align-items: start;
  margin-top: 40px;
}
.job-photos {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 180px));
  gap: 10px;
}
.job-photos img {
  width: 100%;
  height: auto;
  background: var(--ice);
}
.job-lines {
  margin: 0 0 28px;
}
.job-lines > div {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  gap: 20px;
  border-top: 1px solid var(--line);
  padding: 18px 0;
}
.job-lines dt {
  font-weight: 700;
  font-size: 16px;
}
.job-lines dd {
  margin: 0;
  max-width: 60ch;
}
.service-reports {
  padding-block: 10px 90px;
}
.service-report + .service-report {
  margin-top: 90px;
}
.service-report-head {
  margin-bottom: 28px;
}
.service-report-head h2 {
  font-size: clamp(2.3rem, 4vw, 4rem);
  margin: 10px 0 12px;
}
.service-report .job-lines {
  margin-top: 30px;
}
.job-photos.all {
  display: flex;
  flex-wrap: wrap;
  gap: 28px 18px;
  margin-block: 20px 50px;
}
/* grow by aspect ratio (3:4 portrait, 15:8 landscape) so a row shares one height */
.job-photos.all li {
  flex: 0.75 1 0;
  min-width: 130px;
}
.job-photos.all li.wide {
  flex: 1.875 1 0;
  min-width: 250px;
}
.job-photos figcaption {
  font-size: 14px;
  line-height: 1.45;
  color: var(--muted);
  margin-top: 10px;
}
.report-tables {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px 70px;
  align-items: start;
}
.report-table {
  width: 100%;
  border-collapse: collapse;
}
.report-table caption {
  text-align: left;
  font-weight: 700;
  padding-bottom: 12px;
}
.report-table th,
.report-table td {
  border-top: 1px solid var(--line);
  padding: 12px 0;
  text-align: left;
  vertical-align: top;
}
.report-table th {
  font-weight: 400;
}
.report-table td {
  text-align: right;
}
.job-ref {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 50px;
  align-items: center;
  background: var(--ice);
  padding: 50px;
  margin-bottom: 20px;
}
.job-ref h2 {
  font-size: clamp(2rem, 3.2vw, 3.2rem);
  margin-bottom: 18px;
  max-width: 20ch;
}
.job-ref p {
  margin-bottom: 20px;
}
.job-ref .text-link + .text-link {
  margin-left: 28px;
}
.job-ref .job-photos {
  grid-template-columns: repeat(auto-fit, minmax(0, 180px));
  grid-auto-flow: column;
}
.every-visit {
  padding-block: 70px;
}
/* how-we-work has no page intro; its every-visit heading is the H1 at section-heading size */
.every-visit .section-heading h1 {
  font-size: clamp(2.5rem, 4.8vw, 5rem);
  letter-spacing: -0.03em;
}
@media (max-width: 700px) {
  .every-visit .section-heading h1 {
    font-size: 39px;
  }
}
.visit-spec {
  margin: 0;
  border-top: 2px solid var(--ink);
}
.visit-spec > div {
  display: grid;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
  gap: 36px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.visit-spec dt {
  font-weight: 600;
  font-size: 20px;
  letter-spacing: -0.02em;
}
.visit-spec dd {
  margin: 0;
  color: var(--muted);
  max-width: 60ch;
}
.every-visit .chapter-foot {
  border-top: 0;
}
.every-visit .chapter-foot p,
.account-setup .chapter-foot p {
  color: var(--muted);
}
.related > .related-label {
  grid-column: 1 / -1;
  font-size: 20px;
  letter-spacing: -0.02em;
}
.related > a:hover h3 {
  color: var(--blue);
}
@media (max-width: 1100px) {
  .job-report-head,
  .job-body {
    grid-template-columns: 1fr;
  }
  .job-report-head {
    gap: 18px;
  }
  .job-photos {
    grid-template-columns: repeat(4, minmax(0, 180px));
  }
}
@media (max-width: 700px) {
  .job-report {
    padding-block: 60px;
  }
  .job-strip {
    gap: 12px 28px;
  }
  .job-photos {
    grid-template-columns: repeat(2, minmax(0, 180px));
  }
  .job-lines > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .job-photos.all li,
  .job-photos.all li.wide {
    flex: 1 1 calc(50% - 9px);
    min-width: 0;
    max-width: 300px;
  }
  .report-tables,
  .job-ref,
  .visit-spec > div {
    grid-template-columns: 1fr;
  }
  .visit-spec > div {
    gap: 6px;
  }
  .job-ref {
    padding: 28px 20px;
    gap: 28px;
  }
  .job-ref .job-photos {
    grid-auto-flow: row;
  }
  .job-ref .text-link + .text-link {
    margin-left: 0;
    display: table;
    margin-top: 14px;
  }
}
.job-strip dd.plain {
  font:
    16px/1.45 Archivo,
    Arial,
    sans-serif;
}
.industry-aside .text-link + .text-link {
  margin-left: 28px;
}
/* Staged 2025 figures (proof.json), ruled like a page from an operations report. Size follows
   importance: calls first, sites second, the rest in one uneven row. */
.numbers {
  padding-block: 54px 76px;
}
.numbers h2 {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0;
  color: var(--muted);
  margin-bottom: 16px;
}
.numbers ul {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 2px solid var(--ink);
}
.numbers li {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 24px 24px 28px 0;
  border-bottom: 1px solid var(--line);
}
.numbers li + li {
  padding-left: 24px;
  border-left: 1px solid var(--line);
}
.numbers li:nth-child(1) {
  grid-column: span 7;
}
.numbers li:nth-child(2) {
  grid-column: span 5;
}
.numbers li:nth-child(3) {
  grid-column: span 3;
  padding-left: 0;
  border-left: 0;
}
.numbers li:nth-child(4) {
  grid-column: span 2;
}
.numbers li:nth-child(5) {
  grid-column: span 4;
}
.numbers li:nth-child(6) {
  grid-column: span 3;
}
.numbers strong {
  font-size: clamp(2.2rem, 3.4vw, 3.4rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.05em;
  font-variant-numeric: tabular-nums;
}
.numbers li:nth-child(1) strong {
  font-size: clamp(4.5rem, 10.5vw, 10.5rem);
  color: var(--blue);
}
.numbers li:nth-child(2) strong {
  font-size: clamp(3.2rem, 6.2vw, 6.4rem);
}
.numbers span {
  margin-top: 14px;
  font-size: 18px;
  line-height: 1.35;
}
.numbers small {
  margin-top: 6px;
  max-width: 36ch;
  font-size: 14px;
  line-height: 1.45;
  color: var(--muted);
}
/* The Irving compressor job (proof.json story): a real day, three times from the call record. */
.repair {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(36px, 6vw, 96px);
  align-items: start;
  padding-block: 84px 105px;
  border-top: 1px solid var(--line);
}
.repair-head h2 {
  font-size: clamp(2.3rem, 3.8vw, 4rem);
  max-width: 14ch;
  margin-bottom: 34px;
}
.repair-job {
  margin: 0;
  border-top: 2px solid var(--ink);
}
.repair-job div {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.repair-job dt {
  font-size: 14px;
  color: var(--muted);
}
.repair-job dd {
  margin: 0;
  font-size: 16px;
}
.repair-timeline {
  margin: 0;
  padding: 0;
  list-style: none;
}
.repair-timeline li {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 22px;
}
.repair-timeline time {
  padding-top: 3px;
  font:
    17px/1.5 "Plex Mono",
    monospace;
  color: var(--blue);
  white-space: nowrap;
}
.repair-timeline p {
  position: relative;
  padding: 0 0 36px 28px;
  border-left: 2px solid var(--line);
  font-size: clamp(1.15rem, 1.5vw, 1.35rem);
  line-height: 1.45;
}
.repair-timeline p::before {
  content: "";
  position: absolute;
  top: 9px;
  left: -7px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--paper);
  border: 2px solid var(--blue);
}
/* Nine hours pass between on site and done; the rail says so. */
.repair-timeline li:nth-child(2) p {
  padding-bottom: 88px;
}
.repair-timeline li:last-child p {
  padding-bottom: 6px;
  border-left-color: transparent;
}
.repair-timeline li:last-child p::before {
  background: var(--blue);
}
.repair-parts {
  max-width: none;
  margin: 34px 0 0 134px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 16px;
  color: var(--muted);
}
.repair-parts span {
  display: block;
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
}
.repair-result {
  margin: 26px 0 0 134px;
  font-size: clamp(1.6rem, 2.4vw, 2.3rem);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.04em;
}
/* 3D lab pieces in the page. The frame holds the poster until the model paints. */
.embed-3d {
  margin-bottom: 64px;
}
.embed-frame {
  position: relative;
  height: max(520px, 70vh);
  overflow: hidden;
  background: var(--ink);
}
.embed-poster,
.embed-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.embed-poster {
  object-fit: cover;
}
.embed-frame iframe {
  display: block;
  border: 0;
}
.embed-3d figcaption {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px 32px;
  padding-top: 14px;
  font-size: 15px;
  color: var(--muted);
}
.embed-3d figcaption .text-link {
  flex: none;
  color: var(--ink);
}
.embed-section {
  padding-bottom: 16px;
}
@media (max-width: 1100px) {
  .repair {
    grid-template-columns: 1fr;
  }
  .numbers li:nth-child(n + 3) {
    grid-column: span 6;
  }
  .numbers li:nth-child(5) {
    padding-left: 0;
    border-left: 0;
  }
}
@media (max-width: 700px) {
  .numbers {
    padding-block: 36px 50px;
  }
  .numbers li:nth-child(n) {
    grid-column: span 12;
    padding: 18px 0 20px;
    border-left: 0;
  }
  .numbers li:nth-child(n + 3) {
    grid-column: span 6;
  }
  .numbers li:nth-child(2n + 4) {
    padding-left: 16px;
    border-left: 1px solid var(--line);
  }
  .numbers li:nth-child(n + 3) strong {
    font-size: 2rem;
  }
  .numbers span {
    font-size: 16px;
  }
  .numbers small {
    font-size: 13px;
  }
  .repair {
    padding-block: 56px 70px;
  }
  .repair-timeline li {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .repair-timeline time {
    padding-left: 28px;
    border-left: 2px solid var(--line);
  }
  .repair-timeline li:last-child time {
    border-left-color: var(--line);
  }
  /* On phones the time sits above the text, so the stop marker moves up to the time. */
  .repair-timeline time {
    position: relative;
  }
  .repair-timeline time::before {
    content: "";
    position: absolute;
    top: 9px;
    left: -7px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid var(--blue);
  }
  .repair-timeline li:last-child time::before {
    background: var(--blue);
  }
  .repair-timeline p::before {
    display: none;
  }
  .repair-timeline li:nth-child(2) p {
    padding-bottom: 56px;
  }
  .repair-parts,
  .repair-result {
    margin-left: 0;
  }
  .embed-frame {
    height: 560px;
  }
  .embed-3d {
    margin-bottom: 44px;
  }
  .embed-3d figcaption {
    flex-direction: column;
  }
}
/* Polish round (specs/ai-feel-review.md). Later rules here override the layers above. */
h1,
.page-intro h1 {
  letter-spacing: -0.035em;
}
h2 {
  letter-spacing: -0.03em;
}
h3,
h4 {
  letter-spacing: -0.015em;
}
.hero h1 {
  letter-spacing: -0.045em;
}
.scale-fact strong {
  letter-spacing: -0.06em;
}
/* Interior pages: a headline sized to read, then the page's own artifact. */
.page-intro {
  padding-block: 44px 52px;
}
.page-intro h1 {
  font-size: clamp(2.25rem, 4.2vw, 4rem);
  line-height: 1.08;
  max-width: 24ch;
  margin: 14px 0 22px;
}
.page-intro .intro-copy {
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
}
.intro-row {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 24px 64px;
  align-items: end;
}
.intro-figure {
  display: grid;
  gap: 6px;
  border-top: 2px solid var(--ink);
  padding-top: 16px;
}
.intro-figure strong {
  font-size: clamp(3rem, 6vw, 5.5rem);
  line-height: 0.95;
  font-weight: 600;
  letter-spacing: -0.045em;
  color: var(--blue);
}
.intro-figure span {
  font-size: 16px;
  line-height: 1.45;
  color: var(--muted);
  max-width: 36ch;
}
.logo-row {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.logo-row li {
  display: grid;
  place-items: center;
  width: 132px;
  height: 64px;
  padding: 12px;
  border: 1px solid var(--line);
  background: white;
}
.logo-row li.dark {
  background: var(--ink);
}
.logo-row img {
  max-height: 36px;
  width: 100%;
  object-fit: contain;
}
.intro-row .logo-row {
  align-self: end;
}
/* Service and industry bodies: the list gets the width, the proof sits beside it. */
.service-body {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 40px 72px;
  padding-block: 56px 80px;
  align-items: start;
}
.service-proof,
.industry-aside {
  display: grid;
  gap: 18px;
  justify-items: start;
  border-top: 2px solid var(--ink);
  padding-top: 22px;
}
.service-proof p,
.industry-aside p {
  margin: 0;
  color: var(--ink);
}
.industry-aside .aside-label {
  font-size: 16px;
  color: var(--muted);
}
.industry-aside figure img {
  width: min(100%, 330px);
  aspect-ratio: auto;
  margin: 0;
}
.industry-aside figcaption {
  margin-top: 10px;
  font-size: 15px;
  color: var(--muted);
}
.embed-section {
  padding-top: 8px;
}
/* Industries index: a job photo from each kind of site with the name and one line under it.
   Photos are portrait phone shots, never wider than the smallest native width (300px), one ratio.
   On phones each row puts the photo beside the text. */
.industry-photos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 300px));
  justify-content: space-between;
  gap: 40px 32px;
  border-top: 1px solid var(--line);
  padding: 36px 0 80px;
}
.industry-photos > article {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.industry-photos figure {
  order: -1;
  margin: 0;
}
.industry-photos h2 {
  font-size: clamp(1.35rem, 1.8vw, 1.75rem);
  margin: 0 0 8px;
}
.industry-photos p {
  margin: 0;
  max-width: 40ch;
  color: var(--muted);
}
.industry-photos img,
.photo-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border: 1px solid var(--line);
}
.photo-placeholder {
  display: grid;
  place-items: center;
  padding: 20px;
  background: repeating-linear-gradient(-45deg, transparent 0 10px, var(--line) 10px 11px);
}
.photo-placeholder span {
  padding: 4px 8px;
  background: white;
  font-size: 14px;
  color: var(--muted);
  text-align: center;
}
@media (max-width: 1100px) {
  .industry-photos {
    grid-template-columns: repeat(2, minmax(0, 300px));
    justify-content: start;
    gap: 48px 56px;
  }
}
@media (max-width: 700px) {
  .industry-photos {
    display: block;
    padding: 0 0 50px;
    border-top: 0;
  }
  .industry-photos > article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 132px;
    align-items: start;
    gap: 16px 20px;
    border-top: 1px solid var(--line);
    padding: 30px 0;
  }
  .industry-photos figure {
    order: 0;
  }
}
/* About: Blake's two paragraphs, then the truck. */
.about-intro .intro-copy + .intro-copy {
  margin-top: 1em;
}
.about-photo {
  padding-bottom: clamp(48px, 6vw, 80px);
}
/* Home: the goal, stated once, next to the Irving job. */
.restoration {
  padding: 64px 0;
}
.restoration-grid {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: end;
  gap: 28px 64px;
}
.restoration-grid > div {
  grid-column: auto;
  padding-left: 0;
}
.restoration h2 {
  font-size: clamp(3rem, 6.5vw, 6.5rem);
  margin-bottom: 0;
}
.restoration p:not(.eyebrow) {
  font-size: 19px;
}
.repair-links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 28px;
  margin: 34px 0 0 134px;
}
/* Closing strip: one line, email, phone. No headline. */
.closing {
  padding: 30px 0;
}
.closing-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px 48px;
}
.closing-strip p {
  margin: 0;
  max-width: 72ch;
  font-size: 18px;
}
.closing-strip a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.closing-strip .down-now {
  margin: 0;
  white-space: nowrap;
}
/* Plain labels where mono was decoration. */
.footer-label,
.sheet-label {
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 6px;
}
.form-label,
.contact-split p.form-label {
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 16px;
}
.brief-heading > span {
  font: 14px/1.4 Archivo, Arial, sans-serif;
  border: 0;
  padding: 0;
  transform: none;
}
.brief-sheet dt {
  font: 600 13px/1.4 Archivo, Arial, sans-serif;
}
.about-photo img {
  max-height: 520px;
}
/* Service report photos: one grid, one aspect ratio; the controller shot at native size. */
.job-photos.all {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px 18px;
}
.job-photos.all li,
.job-photos.all li.wide {
  min-width: 0;
}
.job-photos.all li img {
  aspect-ratio: 3 / 4;
  object-fit: cover;
}
.job-photos.all li.wide img {
  aspect-ratio: auto;
  width: auto;
  max-width: 100%;
}
@media (max-width: 1000px) {
  .intro-row,
  .service-body,
  .restoration-grid {
    grid-template-columns: 1fr;
  }
  .repair-links {
    margin-left: 0;
  }
}
@media (max-width: 700px) {
  .job-photos.all {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .logo-row li {
    width: 112px;
    height: 56px;
  }
  .closing-strip .down-now {
    white-space: normal;
  }
}
.hero-intro > p {
  max-width: 46ch;
  font-size: clamp(1.15rem, 1.5vw, 1.45rem);
}
.intro-row {
  align-items: start;
}
.intro-copy a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 4px;
  white-space: nowrap;
}
#irving .repair-head h2 {
  max-width: 18ch;
}
.service-proof .intro-figure {
  border-top: 0;
  padding-top: 0;
}
