:root {
  --fluid-nav: clamp(.625rem, .12vw + .55rem, .6875rem);
  --fluid-label: clamp(.625rem, .12vw + .55rem, .6875rem);
  --fluid-small: clamp(.75rem, .12vw + .65rem, .8125rem);
  --fluid-body: clamp(.875rem, .15vw + .72rem, .9375rem);
  --fluid-card-title: clamp(1rem, .2vw + .82rem, 1.125rem);
  --fluid-page-gutter: clamp(1.125rem, 5vw, 6rem);
  --fluid-section-space: clamp(3.5rem, 6.5vw, 6.75rem);
}

html { text-size-adjust: 100%; }
body { overflow-x: clip; }
h1, h2, h3 { text-wrap: balance; overflow-wrap: break-word; }
p, li, address { text-wrap: pretty; }

/* Shared navigation and footer sizing */
.nav-links a,
.catalog-nav > a, .catalog-menu > a,
.corp-nav > a, .corp-menu > a,
.park-nav > a, .park-menu > a { font-size: var(--fluid-nav); }

.quote-button, .catalog-quote, .corp-quote, .park-quote,
.hero-actions a, .detail-actions a, .hero-link,
.corp-cta > a, .park-cta > a, .location-panel > a { font-size: var(--fluid-label); }

.catalog-brand, .corp-brand, .park-brand {
  height: auto;
  overflow: visible;
}

.catalog-brand img, .corp-brand img, .park-brand img {
  height: auto;
  object-fit: contain;
}

.catalog-footer p, .catalog-footer address,
.corp-footer, .park-footer,
.footer-contact a, .footer-address { font-size: var(--fluid-small); }

/* Home */
.hero-copy { width: clamp(32.5rem, 36vw, 41rem); }
.hero-copy h1 { font-size: calc(clamp(2.5rem, 2.9vw, 3.6rem) * .9); }
.hero-copy > p { max-width: 36rem; font-size: var(--fluid-body); }
.hero-features { width: min(100%, 39rem); }
.hero-features span, .stats span, .service-features span { font-size: var(--fluid-label); }
.hero-features b { font-size: var(--fluid-small); }
.category-card h2 { font-size: var(--fluid-card-title); }
.stats strong { font-size: calc(clamp(1.45rem, .65vw + 1.15rem, 2rem) * .9); }
.excellence-copy h2, .catalog-copy h2 { font-size: calc(clamp(1.55rem, .8vw + 1.2rem, 2.15rem) * .9); }
.excellence-copy p { font-size: var(--fluid-small); }
.excellence-copy a, .machine-card h3, .catalog-copy a, .socials { font-size: var(--fluid-label); }

/* Product catalog and detail pages */
.catalog-hero { padding-inline: var(--fluid-page-gutter); }
.catalog-breadcrumbs, .catalog-eyebrow, .catalog-result,
.filter-chip, .detail-category, .related-heading a { font-size: var(--fluid-small); }
.catalog-count span, .product-card-group { font-size: var(--fluid-label); }
.catalog-hero h1 { font-size: calc(clamp(2.75rem, 5.4vw, 6rem) * .9); }
.catalog-hero p:not(.catalog-eyebrow), .detail-lead { font-size: var(--fluid-body); }
.catalog-main, .detail-shell { padding-inline: var(--fluid-page-gutter); }
.product-card h2 { font-size: var(--fluid-card-title); }
.product-card p, .detail-note { font-size: var(--fluid-small); }
.detail-info h1 { font-size: calc(clamp(2.25rem, 3.7vw, 4.25rem) * .9); }
.related-heading h2 { font-size: calc(clamp(1.75rem, 2.25vw, 2.75rem) * .9); }

/* Corporate, contact and sectors pages */
.eyebrow, .section-kicker, .breadcrumbs { font-size: var(--fluid-label); }
.about-hero h1 { font-size: calc(clamp(3.25rem, 5.5vw, 6.25rem) * .9); }
.contact-hero h1 { font-size: calc(clamp(3.5rem, 6.8vw, 7.5rem) * .9); }
.sectors-hero h1 { font-size: calc(clamp(3.25rem, 5.8vw, 6.5rem) * .9); }
.about-hero-copy > p:not(.eyebrow),
.contact-hero-copy > p:not(.eyebrow),
.sectors-hero-copy > p:not(.eyebrow),
.sector-intro > p, .story-columns p,
.capability-heading > p:last-child, .corp-cta > p,
.contact-prep p, .sector-process-heading > p:last-child { font-size: var(--fluid-body); }
.story-heading h2, .capability-heading h2, .journey-intro h2,
.value-heading h2, .corp-cta h2, .contact-prep h2,
.location-panel h2, .sector-intro h2, .sector-process-heading h2 {
  font-size: calc(clamp(2.5rem, 4.25vw, 5rem) * .9);
}
.story-lead { font-size: calc(clamp(1.25rem, 1.45vw, 2rem) * .9); }
.capability-card h3, .journey-list h3, .value-grid h3,
.contact-prep h3, .sector-process h3 { font-size: var(--fluid-card-title); }
.capability-card p, .journey-list p, .value-grid p,
.sector-card-copy > p:nth-of-type(2), .sector-process li p { font-size: var(--fluid-small); }
.hero-year span, .about-hero-visual > p,
.contact-quick > p, .contact-quick span,
.contact-cards span, .contact-cards small, .coordinate span,
.sector-visual figcaption, .collage-mark span,
.sector-result, .sector-card-copy > p:first-child,
.sector-card li, .sector-card a { font-size: var(--fluid-label); }
.sector-card h3 { font-size: calc(clamp(1.45rem, 1.75vw, 2.25rem) * .9); }

/* Keep the introductory hero copy calmer and easier to scan on wide screens. */
@media (min-width: 1181px) {
  .about-hero h1 {
    font-size: calc(clamp(3.25rem, 4.25vw, 4.75rem) * .9);
    line-height: .94;
    letter-spacing: -.045em;
  }

  .sectors-hero h1 {
    font-size: calc(clamp(3.25rem, 4.45vw, 5rem) * .9);
    line-height: .92;
    letter-spacing: -.05em;
  }
}

/* Machine park */
.park-hero h1 { font-size: calc(clamp(3.25rem, 5.8vw, 6.75rem) * .9); }
.hero-lead, .park-intro-copy > p, .line-summary { font-size: var(--fluid-body); }
.park-intro h2, .heritage-heading h2, .park-cta h2,
.line-content h2 { font-size: calc(clamp(2.5rem, 4.35vw, 5rem) * .9); }
.line-jump a, .machine-group strong { font-size: var(--fluid-small); }
.machine-group small, .machine-group h3 { font-size: var(--fluid-label); }
.visual-note, .hero-metrics dd, .line-label,
.line-visual span, .heritage-strip figcaption { font-size: var(--fluid-label); }

@media (min-width: 1500px) {
  .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .catalog-main, .detail-shell { padding-block-end: 7rem; }
  .capability-grid { gap: 1.25rem; }
  .capability-card p, .value-grid p, .sector-card-copy > p:nth-of-type(2),
  .machine-group small { line-height: 1.7; }
}

@media (max-width: 1180px) {
  .hero-copy { width: min(100%, 38rem); }
  .hero-copy h1 { font-size: calc(clamp(2.35rem, 4vw, 3.2rem) * .9); }
  .hero-copy > p { font-size: calc(clamp(.9rem, 1.1vw, 1rem) * .9); }
}

@media (max-width: 820px) {
  :root {
    --fluid-nav: .66rem;
    --fluid-label: .6875rem;
    --fluid-small: .8125rem;
    --fluid-body: .875rem;
    --fluid-section-space: 4rem;
  }

  .catalog-nav, .corp-nav, .park-nav, .nav-links {
    scrollbar-width: thin;
    overscroll-behavior-inline: contain;
  }

  .about-story, .capability-section, .journey-section, .value-section,
  .contact-prep, .sector-intro, .sector-browser, .sector-process,
  .park-intro, .heritage-strip, .park-cta {
    padding-block: var(--fluid-section-space);
  }

  .about-hero-copy, .contact-hero-copy, .sectors-hero-copy,
  .park-hero-copy { padding-block: 3.5rem; }

  .about-hero-visual, .park-hero-visual { min-height: clamp(21rem, 70vw, 31rem); }
  .sectors-hero-collage { min-height: clamp(23rem, 82vw, 34rem); }
  .map-frame, .map-frame iframe { min-height: clamp(22rem, 75vw, 30rem); }
  .production-line { min-height: 0; }
  .line-visual { min-height: clamp(22rem, 78vw, 31rem); }
  .line-content { padding-block: 3.75rem; }
}

@media (max-width: 540px) {
  :root {
    --fluid-page-gutter: 1.125rem;
    --fluid-body: .875rem;
    --fluid-small: .8125rem;
  }

  .hero-copy { padding: 2.25rem 1.125rem 0; }
  .hero-copy h1 { font-size: calc(clamp(2rem, 9vw, 2.45rem) * .9); }
  .hero-copy > p { margin-block: 1rem 1.15rem; line-height: 1.5; }
  .hero-features { gap: .7rem; }
  .hero-features svg { width: 2.5rem; height: 2.5rem; }
  .hero-actions { margin-top: 1.25rem; }

  .catalog-hero { padding-block: 2.75rem; }
  .catalog-hero h1 { font-size: calc(clamp(2.35rem, 10.8vw, 2.85rem) * .9); line-height: .95; }
  .catalog-hero p:not(.catalog-eyebrow) { margin-top: 1.15rem; }
  .catalog-main { padding-block: 1.75rem 4rem; }
  .product-card-copy { padding: 1rem 1.05rem 1.15rem; }
  .detail-info h1 { font-size: calc(clamp(2rem, 9.5vw, 2.6rem) * .9); }

  .about-hero h1, .contact-hero h1, .sectors-hero h1,
  .park-hero h1 { font-size: calc(clamp(2.55rem, 11.5vw, 3.15rem) * .9); line-height: .9; }
  .story-heading h2, .capability-heading h2, .journey-intro h2,
  .value-heading h2, .corp-cta h2, .contact-prep h2,
  .location-panel h2, .sector-intro h2, .sector-process-heading h2,
  .park-intro h2, .heritage-heading h2, .park-cta h2,
  .line-content h2 { font-size: calc(clamp(2.05rem, 9.5vw, 2.65rem) * .9); }

  .about-hero-copy, .contact-hero-copy, .sectors-hero-copy,
  .park-hero-copy { padding: 3rem 1.125rem; }
  .about-story, .capability-section, .journey-section, .value-section,
  .contact-prep, .corp-cta, .sector-intro, .sector-browser,
  .sector-process, .park-intro, .heritage-strip, .park-cta {
    padding-inline: 1.125rem;
    padding-block: 3.25rem;
  }

  .about-hero-visual, .park-hero-visual { min-height: 20rem; }
  .sectors-hero-collage { min-height: 22rem; }
  .map-frame, .map-frame iframe { min-height: 21rem; }
  .line-visual { min-height: 21rem; }
  .capability-card, .value-grid article { min-height: auto; }
  .capability-card { padding-bottom: .5rem; }
  .sector-card { min-height: 0; }
  .sector-card-copy { padding: 1.25rem; }
  .hero-metrics { margin-top: 2rem; }
}

/* Let home content set its height instead of clipping it into viewport rows. */
.hero { --home-nav-height: 96px; }
.navbar { height: var(--home-nav-height); }
.brand img { transform: none; }
.hero-media, .hero-shade { top: var(--home-nav-height); }
.hero { height: auto; min-height: 484px; padding-bottom: 30px; }
.hero-copy > p { font-size: 13px; }
.hero-features span, .stats span, .service-features span { font-size: 9px; }
.hero-features b { font-size: 12px; }
.category-card h2 { font-size: 14px; }
.excellence-copy p { font-size: 12px; }
.excellence-copy a, .machine-card h3 { font-size: 10px; }
.excellence { height: auto; min-height: 176px; }
.catalog-copy { height: auto; min-height: 136px; }

@media (min-width: 1181px) {
  .content-grid { height: auto; min-height: calc(100vh - 94px); }
  .main-column { height: auto; grid-template-rows: auto 220px 78px minmax(176px, 1fr); }
  .side-column { height: auto; grid-template-rows: minmax(542px, 1fr) 134px 254px; }
  .hero { height: auto; }
  .nav-links a { font-size: 10px; }
  .navbar { grid-template-columns: 220px minmax(0, 1fr) 96px; column-gap: 10px; }
  .brand, .brand img { width: 210px; }
  .nav-links { gap: 8px; }
  .hero-copy { width: min(550px, 100%); }
  .hero-copy h1 { font-size: clamp(34px, 2.5vw, 42px); }
  .hero-features { width: 100%; }
  .footer { grid-template-columns: 230px 290px minmax(280px, 1fr) 170px; padding-inline: 30px; }
  .footer-address { padding-left: 24px; }
  .socials { padding-left: 16px; }
}

@media (max-width: 720px) {
  .hero { --home-nav-height: 116px; }
  .navbar { grid-template-rows: 74px 42px; }
  .home-products-dropdown { top: calc(var(--home-nav-height) - 4px); }
  .hero { min-height: 650px; padding-bottom: 32px; }
  .hero-copy { width: 100%; }
  .hero-actions a { min-width: 0; }
}

@media (min-width: 1181px) and (max-width: 1300px) {
  .navbar { grid-template-columns: 170px minmax(0, 1fr) 86px; column-gap: 8px; }
  .brand, .brand img { width: 165px; }
  .nav-links { gap: 6px; }
  .nav-links a { font-size: 9.5px; }
}
