/* V21: a shared reading scale for the home, family, guide and privacy pages. */
:root{
  --type-body:1.0625rem;
  --type-ui:1rem;
  --type-label:.875rem;
  --type-meta:.8125rem;
}
html{font-size:100%}
body{font-size:var(--type-body);line-height:1.75;letter-spacing:0}
h1,h2,h3{letter-spacing:-.025em}
.hero h1,.family-copy h1{font-weight:700}
.eyebrow,.hero .eyebrow,.excavator-copy>.eyebrow{font-size:.75rem;letter-spacing:.1em;line-height:1.7}

/* Navigation and actions keep their own readable scale. */
#main-nav{gap:clamp(12px,1.4vw,22px)}
#main-nav>a,#catalog-menu-toggle,.detail-nav a,.guide-header nav a{font-size:.9375rem}
.button,.button.small,.hero .hero-actions>.button,.start-section .part-lookup .button,
.direct-contact-actions .button,.family-request .button,.detail-header .detail-nav .button{font-size:var(--type-ui);line-height:1.5;min-height:48px}
.text-link,.route-link,.application-copy .route-link,.excavator-actions .text-link,
.excavator-actions .button,.product-card-bottom .add-inquiry{font-size:var(--type-ui);line-height:1.6}
.card-quote-link,.family-add,.family-related .related-card span{font-size:.9375rem;line-height:1.65}
.product-card-bottom{flex-wrap:wrap;gap:12px 16px}
.product-card-bottom .card-quote-link,.filter-tabs button{font-size:.9375rem;line-height:1.65}
.menu-toggle{font-size:var(--type-ui)}
.mega-menu button,.mega-menu a,.menu-quote p{font-size:.9375rem;line-height:1.7}
.menu-heading{font-size:var(--type-meta)}
.topline,.topline .wrap>div,.topline .wrap>span{font-size:.75rem;line-height:1.6}

/* Main copy: previously scattered between 11px and 14px. */
.hero-description,.section-heading>p,.start-heading p,.product-info p,
.application-copy p,.excavator-copy>p:not(.eyebrow),.sany-request-card>p,
.supply-intro>p:not(.eyebrow),.supply-options p,.sourcing-checks p,
.global-copy>p:not(.eyebrow),.about-copy>p,.steps p,.resource-card p,
.inquiry-copy>p:not(.eyebrow),.contact-first>p,.family-description,
.family-specs>p,.family-help p,.family-help li,.faq-list details p{font-size:var(--type-body);line-height:1.8}
.hero-description{max-width:36rem}
.hero-categories,.hero-email,.hero-facts p,.start-alternatives,.start-alternatives a,
.equipment-context p,.product-subtypes li,.supply-options li,.system-copy>p,
.system-copy dt,.system-copy dd,.contact-checklist li,.export-details dd{font-size:var(--type-ui);line-height:1.75}
.product-info h3,.resource-card h3,.excavator-copy h3{font-size:1.625rem;line-height:1.25}
.sourcing-checks h3,.journey-stages h3{font-size:1.5rem;line-height:1.3}
.contact-first>h3,.family-specs h2,.family-help h2,.related-heading{font-size:1.875rem;line-height:1.25}
.start-heading h2{font-size:1.875rem;line-height:1.2}
.about-copy>.large-copy{font-size:1.5rem;line-height:1.55}
.journey-stages p,.business-photo-grid figcaption p,.business-proof-grid .business-photo-grid figcaption p,
.supplier-process-copy>p:not(.eyebrow),.business-photo-foot p{font-size:var(--type-ui);line-height:1.75}
.export-details dt,.faq-list summary,.system-details>summary,.system-tabs button{font-size:var(--type-ui);line-height:1.65}
.excavator-filter-routes strong{font-size:var(--type-ui)}
.excavator-filter-routes button>span{font-size:var(--type-label);line-height:1.7}
.application-name{font-size:var(--type-ui)}
.related-card h3{font-size:1.25rem;line-height:1.3}

/* Captions and secondary information remain smaller, with a readable floor. */
.fine-print,.hero-location,.hero-facts span,.product-index,.product-label,
.catalog-count,.catalog-note p,.catalog-note a,.catalog-search-row p,.part-lookup>span,
.hero-diorama figcaption,.hero-diorama figcaption>span,.journey-stages>li>span,
.journey-figure>figcaption p,.journey-figure>figcaption a,.family-image-note,
.family-context span,.family-badges span,.family-art>span,.detail-breadcrumb,
.about-tags span,.sourcing-checks span,.system-tabs button span,.system-art>span,
.resource-card-copy>span,.resource-art>span,.business-photo-grid figcaption>span,
.process-caption,.globe-route-note,.excavator-visual-3d>p,.excavator-visual-3d>span,
.contact-first>p.fine-print,.supplier-process-copy>p.fine-print{font-size:var(--type-meta);line-height:1.7}
.hero-diorama figcaption{flex-wrap:wrap;gap:8px 20px}
.family-context,.family-specs dl>div{font-size:.9375rem;line-height:1.75}
.contact-list>a>span,.contact-list>div>span{font-size:var(--type-meta);line-height:1.6}
.contact-list strong{font-size:1.25rem;line-height:1.65}
.equipment-context label>span,.application-note,.machine-card .brand-index,
.sany-request-card .brand-index,.sany-request-card .eyebrow,.global-copy .eyebrow,
.dialog-grid .eyebrow,.other-brands .fine-print,.product-dialog>.fine-print,
.system-section-note,.quote-deliverables>span{font-size:var(--type-meta);line-height:1.75}
.machine-types,.machine-caption,.machine-action,.quote-deliverables p{font-size:var(--type-ui);line-height:1.75}
.application-band .motion-toggle,.business-photo-foot .text-link{font-size:.9375rem;line-height:1.65}
.resource-sheet b{font-size:var(--type-label)}
.equipment-context>div>span,.application-band .eyebrow,.other-brand-header>span,
.brand-section>.wrap>.fine-print{font-size:var(--type-meta);line-height:1.7}

/* Form text and dialogs use real type sizes, without requiring browser zoom. */
.part-lookup>label,.catalog-search-row label,.inquiry-form label,.family-request label,
.quote-list-row label,.equipment-context label{font-size:var(--type-label);line-height:1.65}
.part-lookup input,.catalog-search-row input,.equipment-context select,
.inquiry-form input,.inquiry-form select,.inquiry-form textarea,
.family-request input,.family-request select,.quote-list-row input,.quote-list-row select{font-size:var(--type-ui);line-height:1.5;min-height:48px}
.family-request legend,.optional-inquiry>summary,.advanced-fields summary{font-size:var(--type-ui);line-height:1.6}
.family-request>p{font-size:.9375rem;line-height:1.75}
.family-request>p.family-request-note,.inquiry-form .details-hint,.inquiry-form .consent,
.advanced-fields summary span,.form-footnote,.form-actions>span{font-size:var(--type-meta);line-height:1.75}
.family-request .family-actions{flex-wrap:wrap}
.inquiry-form .consent span,.inquiry-form .consent a{font-size:inherit;line-height:inherit}
.inquiry-form label.consent{font-size:var(--type-meta);line-height:1.75}
.dialog-grid p,.dialog-grid li,.dialog-prompt,.quote-list-dialog>p,
.quote-dialog>p,.quote-list-empty p{font-size:var(--type-ui);line-height:1.75}
.dialog-prompt{display:block;margin-bottom:8px}
.quote-dialog pre{font-size:.9375rem;line-height:1.75}
.quote-list-row h3{font-size:1.125rem;line-height:1.4}
.quote-count{font-size:.875rem!important}

/* Supporting pages and the legal footer follow the same reading scale. */
.guide-chapter p,.guide-chapter li,.guide-contact p,.privacy-main p,.privacy-main li{font-size:var(--type-body);line-height:1.85}
.guide-page .guide-intro>div>p:not(.eyebrow){font-size:1.125rem;line-height:1.8}
.guide-toc strong,.guide-toc a,.guide-breadcrumb,.guide-table,.guide-note{font-size:.9375rem;line-height:1.75}
.photo-checks p,.photo-checks strong,.resource-download p{font-size:.9375rem;line-height:1.75}
.photo-checks span,.guide-chapter .chapter-number{font-size:var(--type-meta)}
.footer-top h3{font-size:1rem;line-height:1.6}
.footer-top p,.footer-top a,.footer-top span,.footer-top button,.footer-bottom,
.footer-bottom p,.footer-bottom p>span,.footer-bottom a,.guide-footer p,.guide-footer a{font-size:.875rem;line-height:1.8}
.footer-top>div>a,.footer-top>div>span,.footer-top>div>button{font-size:.875rem;line-height:1.8}
.footer-top>div>a:not(.brand){font-size:.875rem;line-height:1.8}

@media(max-width:1180px) and (min-width:851px){
  #main-nav{gap:12px}
  #main-nav>a,#catalog-menu-toggle{font-size:.875rem}
  .site-header .header-contact{font-size:.875rem;padding-inline:15px}
}
@media(max-width:1024px){
  .site-header .menu-toggle{display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:10px 14px;background:#fff;border:1px solid #a7bccb;border-radius:3px;color:var(--brand)}
  .site-header #main-nav{display:none;position:absolute;inset:100% 0 auto;flex-direction:column;align-items:stretch;gap:0;padding:14px;background:#fff;border:1px solid #c4d1db;box-shadow:0 14px 25px #14283f14;max-height:calc(100dvh - 115px);overflow-y:auto}
  .site-header #main-nav.open{display:flex}
  .site-header #main-nav>a,.site-header #catalog-menu-toggle{font-size:1rem;padding:12px 14px;min-height:48px}
  #main-nav .nav-dropdown,#catalog-menu-toggle{width:100%}
  #main-nav .mega-menu{position:static;display:grid;grid-template-columns:1fr;gap:24px;width:100%;padding:20px;box-shadow:none}
  #main-nav .menu-quote{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}
}
@media(max-width:850px){
  .hero-description,.section-heading>p{font-size:var(--type-body)}
  .hero .hero-actions>.button{font-size:var(--type-ui)}
  #main-nav>a,#catalog-menu-toggle{font-size:var(--type-ui)}
  .family-request .family-actions{flex-direction:column}
}
@media(max-width:600px){
  :root{--type-body:1rem}
  body{padding-bottom:80px}
  .section-heading h2,.brand-section .section-heading h2,.fitment-section .section-heading h2,
  .about-section h2,.inquiry-copy h2{font-size:2.125rem;line-height:1.15}
  .hero .eyebrow{font-size:.75rem}
  .hero-actions,.direct-contact-actions{flex-direction:column;align-items:stretch}
  .hero .hero-actions>.button,.direct-contact-actions .button{font-size:1rem;width:100%;min-height:50px}
  .hero-categories{font-size:1rem}
  .hero-facts{grid-template-columns:1fr;gap:13px}
  .hero-facts>div{border:0;padding:0}
  .start-heading h2{font-size:1.75rem}
  .start-alternatives{gap:14px}
  .product-info h3,.resource-card h3{font-size:1.625rem}
  .family-copy h1{font-size:2.625rem}
  .family-request .family-actions{flex-direction:column}
  .family-request .button{font-size:1rem;width:100%}
  .detail-header .detail-nav .button{font-size:.8125rem;padding-inline:12px;min-height:44px}
  .mobile-contact-bar a{font-size:.875rem;line-height:1.6}
  .catalog-search-row p,.catalog-count{font-size:.875rem}
  .topline .wrap>span{font-size:.75rem;letter-spacing:.025em}
  .topline .wrap>div{font-size:.75rem}
  .family-specs dl>div{font-size:.9375rem}
  .guide-page .guide-intro>div>p:not(.eyebrow){font-size:1rem}
}

/* V21: body copy in retained components must not inherit their older small sizes. */
.home-page .contact-first>p:not(.eyebrow):not(.fine-print){font-size:var(--type-body);line-height:1.8}
.home-page .supplier-process-copy>p:not(.eyebrow):not(.fine-print),.home-page .system-map-routes small{font-size:var(--type-ui);line-height:1.8}
