/* Shared readability layer. Load after the existing shared and page styles.
   Reading copy: 18px. Secondary copy/actions: 16px. Labels/captions: 14px.
   Display headings, illustration geometry and animation behavior stay intact. */
body {
  font-size: 18px;
  line-height: 1.7;
  --muted: #535d4f;
}

/* Primary reading copy, including the longer technical and company stories. */
body .hero .hero-copy > p:not([class]),
body .embeds-hero .embed-deck + p,
body .section-heading > p,
body .quote-intro > p,
body .supports-copy > p,
body .home-story p,
body .material-route p,
body .directory-intro,
body .about-hero-copy p,
body .about-hero-copy .about-lead,
body .story-copy p,
body .story-copy .story-opening,
body .about-conviction p,
body .about-next p,
body .fab-intro-grid p,
body .fab-process-copy > p,
body .fab-process-copy > p.fab-lead,
body .fab-connected-heading > p,
body .process-heading > p,
body .custom-support-copy > p,
body .support-capabilities p,
body .custom-embed-heading > p,
body .embed-design-review p,
body .illustration-notes p,
body .technical-reference p,
body .technical-reference li {
  font-size: 18px;
  line-height: 1.75;
}
body .technical-reference > article p,
body .technical-reference .reference-content > p,
body .technical-reference > article > ul,
body .technical-reference .reference-content > ul {
  max-width: 72ch;
}
body .technical-reference h4 {
  font-size: 18px;
  line-height: 1.4;
}

/* Summaries and lists stay compact enough for multi-column cards. */
body .capability > p,
body .process-grid p,
body .home-route-card p,
body .directory-link p,
body .material-copy p,
body .materials-next p,
body .material-quote-note ul,
body .gallery-intro > p,
body .equipment-callout p,
body .specialty-copy p,
body .quoting-story > p,
body .stack-heading > p,
body .stack-principles p,
body .mission-copy p,
body .support-checklist,
body .quote-checklist ul,
body .pipe-page .quote-checklist ul,
body .embeds-page .quote-checklist ul,
body .fab-subprocesses p,
body .fab-review li,
body .fab-route p,
body .scope-grid p,
body .process-aside > p,
body .detail-body p,
body .detail-body ul,
body .function-card > p,
body .family-examples ul,
body .rooftop-content > p,
body .custom-detail-list strong,
body .custom-detail-list span,
body .custom-support-copy > .custom-people,
body .embed-card > p,
body .embed-card > ul,
body .custom-embed-details article p,
body .embed-workflow li > p,
body .technical-reference .reference-descriptor,
body .reference-descriptor,
body .technical-reference .reference-note,
body .technical-reference .reference-notice,
body .technical-reference .reference-sources,
body .technical-reference .reference-reviewed {
  font-size: 16px;
  line-height: 1.75;
}
body .capability > p,
body .function-card > p,
body .embed-card > p {
  min-height: 0;
}
body .function-card .small-link,
body .embed-card > .small-link {
  margin-top: 20px;
}
body .technical-reference table {
  font-size: 16px;
  line-height: 1.65;
  min-width: 760px;
}
body .technical-reference caption {
  line-height: 1.6;
}
body .technical-reference .reference-table-wrapper {
  max-width: 100%;
  overscroll-behavior-x: contain;
}
body .technical-reference .reference-name,
body .reference-name {
  font-size: 20px;
  line-height: 1.45;
}
body .detail-title strong,
body .capability h3,
body .scope-grid h3,
body .process h3,
body .fab-subprocesses h3,
body .stack-principles h3,
body .materials-next h3 {
  font-size: 20px;
  line-height: 1.35;
}
body .fab-review h3,
body .quote-checklist h3 {
  font-size: 16px;
  line-height: 1.5;
}
body .detail-title > span,
body .support-capabilities li,
body .fab-route strong,
body .fab-specialty-link strong {
  font-size: 18px;
  line-height: 1.5;
}

/* Clear, comfortably sized navigation and calls to action. */
body .button,
body .hero .hero-actions .button,
body .draft-actions .button,
body .specialty-section .button,
body .custom-actions .button,
body .custom-embed-heading .button,
body .text-link,
body .hero .hero-actions .text-link,
body .hero .text-link,
body .custom-actions .text-link,
body .equipment-callout .text-link,
body .mission-copy .text-link,
body .embed-workflow > .text-link,
body .small-link,
body .function-card .small-link,
body .rooftop-card .small-link,
body .embed-card > .small-link,
body .process-aside .small-link,
body .process-aside button,
body .route-action,
body .fab-quote-link,
body .function-nav a,
body .function-nav .custom-function-link,
body .embed-category-nav a,
body .materials-jumpnav a,
body .material-page-reference-link,
body .technical-reference > nav a,
body .directory-resources a {
  font-size: 16px;
  line-height: 1.5;
}
body .button {
  min-height: 54px;
  max-width: 100%;
  white-space: normal;
}
body .text-link,
body .small-link,
body .process-aside button {
  min-height: 44px;
  align-items: center;
}
body .button > span[aria-hidden],
body .small-link > span[aria-hidden],
body .text-link > span[aria-hidden] {
  flex-shrink: 0;
}
body .email-link {
  font-size: 18px;
  line-height: 1.5;
  min-height: 44px;
  max-width: 100%;
  overflow-wrap: anywhere;
}
body .menu-toggle {
  font-size: 16px;
  line-height: 1.4;
  min-height: 44px;
}
body .site-header nav {
  font-size: 16px;
  line-height: 1.5;
}
body .site-header nav a {
  min-height: 44px;
}
@media (min-width: 1101px) {
  body .site-header { gap: 20px; }
  body .site-header nav { gap: 18px; font-size: 14px; }
  body .site-header nav .nav-cta { gap: 18px; padding: 12px 15px; }
}

/* Supporting information should remain legible, including the concept labels. */
body .eyebrow,
body .hero .eyebrow,
body .specialty-copy .eyebrow,
body .mission-copy .eyebrow,
body .integrated-stack .eyebrow,
body .quoting-headline .eyebrow,
body .equipment-callout .eyebrow,
body .about-hero .eyebrow,
body .about-conviction .eyebrow,
body .about-next .eyebrow,
body .custom-support-copy .eyebrow,
body .custom-embeds .eyebrow,
body .fabrication-page .quote-intro > .eyebrow,
body .technical-reference .eyebrow {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: .06em;
}
body .hero-bottom,
body .hero .hero-bottom,
body .breadcrumb,
body .fab-breadcrumb,
body .embed-breadcrumb,
body .route-index,
body .material-number,
body .chapter-label > span,
body .fab-process-header,
body .fab-process-nav a > span:first-child,
body .function-kicker,
body .rooftop-content .function-kicker,
body .family-examples > span,
body .rooftop-drawing-heading,
body .rooftop-concept-label,
body .rooftop-applications span,
body .embed-kicker,
body .embed-companion > span,
body .custom-embed-details article > span,
body .support-capabilities li > span,
body .stack-principles article > span,
body .fab-specialty-link small {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: .04em;
}
body .hero-bottom,
body .breadcrumb,
body .fab-breadcrumb,
body .embed-breadcrumb,
body .family-examples > span,
body .function-kicker,
body .fab-process-header {
  color: #53614b;
}
body .hero-copy > .lead-time-note,
body .pipe-hero .hero-copy > .trade-name-note,
body .scope-note,
body .support-functions .scope-note,
body .quote-speed-note,
body .quoting-story .human-quote-note,
body .gallery-intro .concept-note,
body .quote-checklist p,
body .embeds-page .quote-checklist p,
body .fabrication-page .quote-intro > p.fab-timing-note,
body .fab-concept-note,
body .fab-process-copy > p.fab-scope-note,
body .process-aside small,
body .rooftop-content > .rooftop-review,
body .embed-scope-note,
body .embed-photo-intro,
body .embed-photo-slot,
body .product-gallery-intro,
body .product-photo-note,
body .photo-needed,
body .chapter-label .learning-note,
body .story-copy .story-source,
body .embed-companion a > span {
  font-size: 16px;
  line-height: 1.7;
}
body .quote-email-note {
  font-size: 16px !important; /* Replaces the existing 12px !important rule. */
  line-height: 1.7;
}
body .hero-copy > .lead-time-note,
body .pipe-hero .hero-copy > .trade-name-note,
body .scope-note,
body .support-functions .scope-note,
body .fab-concept-note,
body .fab-process-copy > p.fab-scope-note {
  color: #53614b;
}

/* Captions and gallery controls. Explicit selectors avoid altering SVG text. */
body .image-top,
body .hero-slideshow .image-top,
body .hero-visual figcaption,
body .hero-visual figcaption span:last-child,
body .pipe-hero .technical-hero figcaption,
body .fab-hero .hero-visual figcaption span:last-child,
body .hero-slideshow figcaption .slide-concept-note,
body .drawing-label,
body .drawing-footer,
body .fab-visual-label,
body .fab-technical-visual figcaption,
body .fab-design-visual figcaption,
body .fab-technical-visual figcaption > span,
body .fab-design-visual figcaption > span,
body .fab-photo figcaption,
body .fab-photo figcaption > span:last-child,
body .about-hero-image figcaption,
body .custom-support-visual figcaption,
body .custom-support-visual figcaption span,
body .embed-visual-label,
body .embed-hero-visual figcaption,
body .embed-hero-visual figcaption span,
body .support-photo-grid figcaption > span,
body .support-photo-grid small,
body .photo-index,
body .photo-concept,
body .product-gallery-label,
body .embeds-page .product-gallery-label,
body .product-thumb-caption,
body .photo-dialog-heading small,
body .photo-dialog-attribution,
body .process-motion-toolbar,
body .slideshow-controls [data-slideshow-toggle] {
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: .02em;
}
body .hero-visual figcaption span:last-child,
body .fab-technical-visual figcaption > span,
body .fab-design-visual figcaption > span {
  opacity: 1;
}
body #product-photo-caption,
body .gallery-next {
  font-size: 16px;
  line-height: 1.7;
}
body .product-gallery-label,
body .drawing-label,
body .drawing-footer,
body .fab-visual-label,
body .rooftop-drawing-heading,
body .fab-process-header {
  flex-wrap: wrap;
  gap: 8px 16px;
}
body .product-thumb-caption {
  align-items: flex-start;
  min-height: 48px;
  padding: 12px;
}
body .product-thumb-caption > span:last-child {
  flex-shrink: 0;
}
body .photo-dialog-attribution a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  overflow-wrap: anywhere;
}
body .photo-concept,
body .custom-support-visual figcaption span {
  white-space: normal;
}
body .fab-design-visual { color: #3d5434; }
body .drawing-footer { color: #b6cbd9; }
body .drawing-label { color: #c5d8e5; }
body .footer-label { color: #bbc6b4; }

/* The slideshow's controls and caption form a bottom-aligned stack. Their
   heights can grow with text wrapping without covering one another. */
body .hero-slideshow {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
body .hero-slideshow .slideshow-controls {
  position: relative;
  inset: auto;
  flex-shrink: 0;
  align-self: flex-start;
  margin: 0 28px 14px;
}
body .hero-slideshow figcaption {
  position: relative;
  inset: auto;
  flex-shrink: 0;
  max-width: none;
  margin: 0 28px 25px;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0;
}
body .hero-slideshow figcaption .slide-concept-note {
  margin-top: 5px;
}
body .hero-slideshow .image-top,
body .hero-visual .image-top {
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 8px 18px;
}
body .hero-visual .image-top > span {
  min-width: 0;
}
body .hero-visual:not(.technical-hero) .image-top > span {
  padding: 4px 7px;
  color: #fff;
  background: rgba(15, 26, 32, .8);
  border-radius: 2px;
}
body .hero-visual:not(.technical-hero) figcaption {
  padding: 12px 14px;
  background: rgba(15, 26, 32, .8);
  color: #fff;
}
body .hero-visual figcaption,
body .custom-support-visual figcaption,
body .embed-hero-visual figcaption {
  flex-wrap: wrap;
}
body .fab-hero .hero-visual figcaption span:last-child {
  max-width: none;
  text-align: left;
}

/* Technical hero artwork uses actual layout space for its larger labels. */
body .pipe-hero .technical-hero {
  display: flex;
  flex-direction: column;
}
body .pipe-hero .technical-hero .image-top {
  position: relative;
  inset: auto;
  flex-shrink: 0;
  margin: 24px 28px 0;
}
body .pipe-hero .technical-hero .hero-image {
  position: static;
  inset: auto;
  flex: 1 1 0;
  min-height: 0;
  height: auto;
  padding: 20px 0;
  object-fit: contain;
}
body .pipe-hero .technical-hero figcaption {
  position: relative;
  inset: auto;
  flex-shrink: 0;
  margin: 0 28px 25px;
}
body .technical-custom-visual figcaption {
  background: #f5f5f0;
}

/* RFQ input, disclosure, preview, and footer text. */
body .form-subtitle,
body .field label,
body .field input,
body .field select,
body .field textarea,
body .email-preview > p,
body .email-preview .draft-recipient,
body .email-preview pre,
body .draft-heading button,
body .footer-main > div a,
body .footer-navigation {
  font-size: 16px;
  line-height: 1.6;
}
body .field label span,
body .form-note,
body .email-preview .copy-status,
body .footer-label,
body .footer-bottom {
  font-size: 14px;
  line-height: 1.6;
}
body .field input,
body .field select,
body .field textarea {
  min-height: 48px;
  min-width: 0;
}
body .field input::placeholder,
body .field textarea::placeholder {
  color: #626d5b;
}
body .field label { margin-bottom: 9px; }
body .field { min-width: 0; }
body .draft-heading button { min-height: 44px; min-width: 44px; }
body .draft-heading h3 { min-width: 0; }
body .footer-bottom { align-items: center; flex-wrap: wrap; }
body .footer-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
body .footer-main > div a { display: inline-flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
body .footer-navigation { gap: 0 25px; }
body .footer-navigation a { padding-block: 8px; }

/* Give larger text room at intermediate widths, without changing menu logic. */
@media (max-width: 1100px) {
  body .process-motion-toolbar { flex-wrap: wrap; }
  body .form-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
  body .site-header nav { max-height: calc(100dvh - 78px); overflow-y: auto; }
}
@media (max-width: 1000px) and (min-width: 761px) {
  body .fabrication-capabilities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .fabrication-capabilities .capability,
  body .fabrication-capabilities .capability:nth-child(3n + 1) {
    border-left: 0;
    padding: 25px 23px 30px 0;
  }
  body .fabrication-capabilities .capability:nth-child(even) {
    border-left: 1px solid var(--line);
    padding-left: 23px;
  }
  body .fabrication-capabilities .capability:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }
  body .embed-card-grid { grid-template-columns: minmax(0, 1fr); }
  body .embed-card + .embed-card { border-left: 0; border-top: 1px solid var(--line); }
  body .embed-card h3 { min-height: 0; }
  body .fab-subprocesses { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  body .hero-actions { align-items: flex-start; gap: 12px 22px; }
  body .hero-bottom { align-items: flex-start; }
  body .hero-bottom .crosshair { flex-shrink: 0; margin-top: 3px; }
  body .hero .eyebrow { align-items: flex-start; }
  body .hero .eyebrow .line { margin-top: 9px; }
  body .hero-slideshow .slideshow-controls { margin-left: 5%; margin-right: 5%; }
  body .hero-slideshow figcaption { margin: 0 5% 22px; }
  body .pipe-hero .technical-hero { height: auto; min-height: 430px; }
  body .pipe-hero .technical-hero .image-top { margin: 22px 5% 0; }
  body .pipe-hero .technical-hero .hero-image { flex: 1 1 auto; height: 230px; }
  body .pipe-hero .technical-hero figcaption { margin: 0 5% 22px; }
  body .embed-hero-visual figcaption span { text-align: left; }
  body .fab-hero .hero-visual figcaption { display: block; }
  body .fab-hero .hero-visual figcaption span:last-child { margin-top: 7px; }
  body .about-hero-image figcaption { right: 5%; }
  body .about-image-wordmark { bottom: 78px; }
  body .custom-support-visual figcaption { flex-direction: column; gap: 8px; }
  body .fabrication-photos figcaption { flex-wrap: wrap; align-items: flex-start; gap: 10px; }
  body .support-capabilities li { align-items: flex-start; }
  body .support-capabilities li > span { padding-top: 4px; }
  body .function-grid { grid-template-columns: minmax(0, 1fr); }
  body .function-card + .function-card { border-left: 0; border-top: 1px solid var(--line); }
  body .function-card h3 { min-height: 0; }
  body .function-card > p { max-width: 100%; }
  body .function-nav a,
  body .embed-category-nav a { min-width: 0; gap: 9px; }
  body .function-nav .custom-function-link { margin-left: 0; padding-left: 0; }
  body .pipe-intro-band { font-size: 18px; line-height: 1.4; }
  body .fab-process-nav a { gap: 10px; }
  body .fab-process-nav strong { min-width: 0; }
  body .footer-main { grid-template-columns: minmax(0, 1fr) auto; }
  body .footer-main > p { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
  body .footer-main > div { grid-column: 1 / -1; grid-row: 3; }
  body .footer-main .back-top { grid-column: 2; grid-row: 1; }
}
@media (max-width: 480px) {
  body .fab-subprocesses { grid-template-columns: minmax(0, 1fr); }
  body .process-aside { grid-template-columns: 1fr; }
  body .process-aside > *,
  body .process-aside > p { grid-column: 1; grid-row: auto; }
  body .detail-body { padding-left: 0; padding-right: 0; }
  body .support-capabilities ul { grid-template-columns: minmax(0, 1fr); }
  body .fab-process-nav { grid-template-columns: minmax(0, 1fr); }
  body .fab-process-nav a,
  body .fab-process-nav a:nth-child(even) {
    padding: 17px 0;
    border-left: 0;
  }
  body .fab-process-nav a + a { border-top: 1px solid #ffffff38; }
  body .embed-band { flex-wrap: wrap; gap: 10px 18px; }
  body .embed-band span:nth-child(even) { display: none; }
  body .hero .hero-actions .button,
  body .draft-actions .button { gap: 16px; }
  body .product-thumbs { grid-template-columns: minmax(0, 1fr); }
  body .technical-reference th,
  body .technical-reference td { padding: 14px; }
}
