/* Shared proportional scale. Phi = 1.618; sqrt(phi) = 1.272.
   Reading type: 16 -> 20 -> 26 -> 33 -> 42px. Dense copy 14px; labels 13px.
   Spacing: 8 -> 13 -> 21 -> 34 -> 55px. Explicit Elementor choices win. */
:root {
    --gi-reading:16px; --gi-dense:14px; --gi-small:13px;
    --gi-card:20px; --gi-subtitle:26px;
    --gi-section:clamp(26px,2.8vw,33px); --gi-title:clamp(33px,3.8vw,42px);
    --gi-leading:1.618; --gi-s1:8px; --gi-s2:13px; --gi-s3:21px; --gi-s4:34px; --gi-s5:55px;
    --qa-body:var(--gi-reading); --qa-small:var(--gi-small); --qa-list:var(--gi-reading);
    --qa-title:var(--gi-title); --qa-section:var(--gi-section); --qa-gap:var(--gi-s3);
}
body.gray-design-site.gray-qa { font-size:var(--gi-reading); line-height:var(--gi-leading); }
body.gray-design-site.gray-qa #primary.gray-main :is(h1,.factory-title) {
    font-size:var(--gi-title); line-height:1.15; letter-spacing:-.03em; font-weight:500; overflow-wrap:break-word;
}
body.gray-design-site.gray-qa #primary.gray-main h2:not(.factory-title) {
    font-size:var(--gi-section); line-height:1.22; letter-spacing:-.025em; font-weight:500;
    margin-top:0; margin-bottom:var(--gi-s3); overflow-wrap:break-word;
}
body.gray-design-site.gray-qa #primary.gray-main h3 {
    font-size:var(--gi-card); line-height:1.3; letter-spacing:-.015em; font-weight:500;
    margin-top:0; margin-bottom:var(--gi-s2); overflow-wrap:break-word;
}
body.gray-design-site.gray-qa #primary.gray-main h4 { font-size:var(--gi-reading); line-height:1.4; font-weight:600; }
body.gray-design-site.gray-qa #primary.gray-main :is(p,li) { font-size:var(--gi-reading); line-height:var(--gi-leading); }
body.gray-design-site.gray-qa #primary.gray-main :is(.eyebrow,.breadcrumbs,.results-meta,.image-reference-note,figcaption,.material,.tag,.lab-index,#process-caption,.gray-hero-count) {
    font-size:var(--gi-small); line-height:1.5; letter-spacing:normal;
}
body.gray-design-site.gray-qa #primary.gray-main .eyebrow { font-weight:600; letter-spacing:.12em; }
body.gray-design-site.gray-qa #primary.gray-main .section { padding-top:var(--gi-s4); padding-bottom:var(--gi-s4); }
body.gray-design-site.gray-qa #primary.gray-main .section-heading { margin-bottom:var(--gi-s3); gap:var(--gi-s3); }
body.gray-design-site.gray-qa #primary.gray-main :is(.page-mast p,.about-story p,.about-purpose p) { max-width:72ch; }
body.gray-design-site.gray-qa #primary.gray-main .stats strong { font-size:42px; line-height:1.15; font-weight:500; }
body.gray-design-site.gray-qa #primary.gray-main .stats span { font-size:var(--gi-small); line-height:1.5; }
/* Repeated cards share type, padding and image proportions; copy is never cropped. */
body.gray-design-site.gray-qa #primary.gray-main :is(.range-showcase-card,.product-card,.related-card,.category-card,.cotton-card) { min-width:0; }
body.gray-design-site.gray-qa #primary.gray-main :is(.range-showcase-card p,.range-showcase-card li,.range-showcase-card .text-button,.product-info .spec,.range-description) {
    font-size:var(--gi-dense); line-height:var(--gi-leading); max-height:none;
}
body.gray-design-site.gray-qa #primary.gray-main .range-showcase-card h3 { font-size:var(--gi-card); min-height:0; line-height:1.3; }
body.gray-design-site.gray-qa #primary.gray-main .range-showcase-card .fabric-feature-list { margin-top:0; margin-bottom:var(--gi-s3); }
body.gray-design-site.gray-qa #primary.gray-main .range-showcase-card .fabric-feature-list li { margin-bottom:var(--gi-s1); }
body.gray-design-site.gray-qa #primary.gray-main :is(.related-card strong,.cotton-card strong,.category-card h2,.category-card h3,.product-info h3) {
    font-size:var(--gi-card); line-height:1.3; font-weight:500;
}
body.gray-design-site.gray-qa #primary.gray-main :is(.related-card img,.cotton-card img,.category-card img,.product-photo) { aspect-ratio:16 / 10; }
body.gray-design-site.gray-qa #primary.gray-main :is(.related-card img,.cotton-card img,.category-card img) { width:100%; height:auto; object-fit:cover; }
body.gray-design-site.gray-qa #primary.gray-main :is(.product-grid,.related-grid,.category-grid,.cotton-grid,.about-path-grid,.rd-expertise-grid) { gap:var(--gi-s3); }
body.gray-design-site.gray-qa #primary.gray-main .fabricated-row { gap:var(--gi-s4); padding-top:var(--gi-s4); padding-bottom:var(--gi-s4); align-items:start; }
body.gray-design-site.gray-qa #primary.gray-main .fabricated-copy h2 { font-size:var(--gi-subtitle); line-height:1.25; margin:var(--gi-s1) 0 var(--gi-s2); }
body.gray-design-site.gray-qa #primary.gray-main .fabricated-copy ul { gap:0 var(--gi-s3); margin:var(--gi-s3) 0; }
body.gray-design-site.gray-qa #primary.gray-main .fabricated-copy li { font-size:var(--gi-reading); line-height:var(--gi-leading); padding:var(--gi-s2) 0; }
/* Same disclosure dimensions on Home and R&D. */
body.gray-design-site.gray-qa #primary.gray-main :is(.process-list summary,.lab-row summary) { min-height:55px; padding:13px 0; line-height:1.4; gap:13px; }
body.gray-design-site.gray-qa #primary.gray-main :is(.process-list summary strong,.lab-row summary h3) { font-size:18px; line-height:1.4; font-weight:500; margin:0; }
body.gray-design-site.gray-qa #primary.gray-main :is(.process-list details p,.lab-detail p,.lab-detail li) { font-size:var(--gi-dense); line-height:var(--gi-leading); }
body.gray-design-site.gray-qa #primary.gray-main .lab-detail h4 { font-size:var(--gi-reading); line-height:1.4; }
body.gray-design-site.gray-qa #primary.gray-main .lab-player #lab-slide-count { font-size:var(--gi-small); }
/* Named people and policy subsections sit one level below section headings. */
body.gray-design-site.gray-qa #primary.gray-main .leadership h2 { font-size:var(--gi-card); line-height:1.3; margin-bottom:var(--gi-s1); }
body.gray-design-site.gray-qa #primary.gray-main .policy-page h2 { font-size:var(--gi-subtitle); line-height:1.3; margin-top:var(--gi-s4); margin-bottom:var(--gi-s2); }
body.gray-design-site.gray-qa #primary.gray-main .contact-addresses h3 { font-size:var(--gi-reading); line-height:1.4; }
body.gray-design-site.gray-qa #primary.gray-main :is(.contact-addresses p,.leadership p) { font-size:var(--gi-dense); line-height:var(--gi-leading); }
body.gray-design-site.gray-qa #primary.gray-main .large-email { font-size:var(--gi-reading); line-height:var(--gi-leading); overflow-wrap:anywhere; }
body.gray-design-site.gray-qa #primary.gray-main :is(td,th,dt,dd,.detail-specs,.spec-table dt,.spec-table dd) { font-size:var(--gi-dense); line-height:var(--gi-leading); }
body.gray-design-site.gray-qa #primary.gray-main .technical-sheet h2 { font-size:var(--gi-subtitle); }
body.gray-design-site.gray-qa #primary.gray-main :is(.technical-sheet p,.technical-sheet li) { font-size:var(--gi-dense); }
body.gray-design-site.gray-qa #primary.gray-main label { font-size:var(--gi-dense); line-height:1.5; }
body.gray-design-site.gray-qa #primary.gray-main :is(input,textarea,select) { font-size:var(--gi-reading); line-height:1.5; min-height:44px; }
body.gray-design-site.gray-qa :is(.navigation-step,.text-button,.btn,.fabric-gallery-controls button,.lab-player button) { font-size:var(--gi-dense); line-height:1.4; }
body.gray-design-site.gray-qa :is(.navigation-step,.btn,.fabric-gallery-controls button,.lab-player button) { min-height:44px; }
body.gray-design-site.gray-qa header :is(nav>a,.manufacturing-toggle) { font-size:var(--gi-dense); line-height:1.4; }
body.gray-design-site.gray-qa .mega-menu :is(a,button) { font-size:var(--gi-dense); line-height:1.5; }
/* Footer: one heading size and one copy size across every column. */
body.gray-design-site.gray-qa .site-footer .footer-main { gap:var(--gi-s4); align-items:start; }
body.gray-design-site.gray-qa .site-footer .footer-main h3 { font-size:16px; line-height:1.4; font-weight:600; letter-spacing:0; margin:0 0 var(--gi-s2); }
body.gray-design-site.gray-qa .site-footer .footer-main :is(p,a:not(.brand),.footer-contact-item,.footer-contact-item p,.footer-contact-item strong) {
    font-size:var(--gi-dense); line-height:var(--gi-leading); letter-spacing:0; font-weight:400;
}
body.gray-design-site.gray-qa .site-footer .footer-main .footer-contact-item strong { font-weight:500; }
body.gray-design-site.gray-qa .site-footer .footer-main .footer-navigation .elementor-widget-gray-design-leaf > .elementor-widget-container > a:not(.brand),
body.gray-design-site.gray-qa .site-footer .footer-main .footer-contact .elementor-widget-gray-design-leaf > .elementor-widget-container > :is(a,p),
body.gray-design-site.gray-qa .site-footer .footer-main .footer-intro .elementor-widget-gray-design-leaf > .elementor-widget-container > p {
    font-size:var(--gi-dense); line-height:var(--gi-leading); margin:0 0 var(--gi-s1); max-width:100%;
}
body.gray-design-site.gray-qa .site-footer .footer-main .footer-contact a.gray-footer-email[href^="mailto:"] { font-size:var(--gi-dense); line-height:var(--gi-leading); margin:0 0 var(--gi-s2); gap:0 8px; }
body.gray-design-site.gray-qa .site-footer .gray-footer-email-label { font-size:inherit; font-weight:500; color:#bbb; }
body.gray-design-site.gray-qa .site-footer .footer-bottom,body.gray-design-site.gray-qa .site-footer .footer-bottom a { font-size:12px; line-height:1.5; }
@media(max-width:767px) {
    body.gray-design-site.gray-qa #primary.gray-main .section { padding-top:var(--gi-s3); padding-bottom:var(--gi-s3); }
    body.gray-design-site.gray-qa #primary.gray-main .fabricated-row { padding-top:var(--gi-s3); padding-bottom:var(--gi-s3); gap:var(--gi-s3); }
    body.gray-design-site.gray-qa .site-footer .footer-main { gap:var(--gi-s3); }
}
@media(max-width:480px) {
    body.gray-design-site.gray-qa .site-footer .footer-main { grid-template-columns:minmax(0,1fr); }
    body.gray-design-site.gray-qa .site-footer .footer-main>.footer-contact { grid-column:auto; grid-row:auto; }
}
/* Additional undersized labels found by the route audit. */
body.gray-design-site.gray-qa #primary.gray-main .leadership a[href^="mailto:"],
body.gray-design-site.gray-qa #primary.gray-main .catalog-sidebar a {
    font-size:var(--gi-dense); line-height:var(--gi-leading); overflow-wrap:break-word;
}
body.gray-design-site.gray-qa #primary.gray-main .catalog-sidebar a span { font-size:var(--gi-small); }
body.gray-design-site.gray-qa #primary.gray-main .cert-item>span { font-size:var(--gi-small); line-height:1.5; }
body.gray-design-site.gray-qa #primary.gray-main .product-photo { max-height:none; height:auto; }
body.gray-design-site.gray-qa #primary.gray-main .contact-addresses a[href^="mailto:"] {
    font-size:var(--gi-reading); line-height:var(--gi-leading); overflow-wrap:anywhere;
}
body.gray-design-site.gray-qa #primary.gray-main :is(.about-capability-band span,.about-path-grid article span,.leadership span,#process-photo-count,[data-gray-photo-count],.fabric-gallery-controls span) {
    font-size:var(--gi-small); line-height:1.5;
}
body.gray-design-site.gray-qa #primary.gray-main .about-capability-band strong { font-size:42px; line-height:1.15; font-weight:500; }
body.gray-design-site.gray-qa #primary.gray-main :is(.weight-label,.related-card>span) { font-size:var(--gi-small); line-height:1.5; }
body.gray-design-site.gray-qa #primary.gray-main .product-photo .view { font-size:var(--gi-dense); line-height:1.4; }
body.gray-design-site.gray-qa #primary.gray-main :is(.about-path-grid article,.rd-expertise-grid article) { padding:var(--gi-s3); }
body.gray-design-site.gray-qa #primary.gray-main :is(#range-prev,#range-next):hover { color:#fff; }
body.gray-design-site.gray-qa #primary.gray-main :is(#range-prev,#range-next):focus-visible { outline:2px solid #fff; outline-offset:3px; }

/* Compact, continuous fabric range; native controls live below the photographs and copy. */
body.gray-design-site.gray-qa #primary #range-carousel-viewport { scroll-snap-type:none; scroll-behavior:auto; }
body.gray-design-site.gray-qa #primary #range-carousel-track .range-showcase-card {
    flex:0 0 clamp(280px,30vw,400px); width:clamp(280px,30vw,400px); max-width:none;
}
body.gray-design-site.gray-qa #primary #range-carousel-track .range-showcase-card > .range-image-button,
body.gray-design-site.gray-qa #primary #range-carousel-track .range-showcase-card > .elementor-widget-gray-design-leaf > .elementor-widget-container > .range-image-button {
    height:200px; flex:0 0 200px;
}
body.gray-design-site.gray-qa #primary #technical-capabilities > .range-carousel-controls {
    display:flex; justify-content:flex-end; gap:13px; margin:21px 16px 0; padding:0;
}
@media(max-width:600px) {
    body.gray-design-site.gray-qa #primary #range-carousel-track .range-showcase-card { flex-basis:82vw; width:82vw; }
    body.gray-design-site.gray-qa #primary #range-carousel-track .range-showcase-card > .range-image-button,
    body.gray-design-site.gray-qa #primary #range-carousel-track .range-showcase-card > .elementor-widget-gray-design-leaf > .elementor-widget-container > .range-image-button { height:180px; flex-basis:180px; }
}
