/* Graphic Steel type roles. Every active page loads these values before its layout CSS. */
:root{
  --gs-font-campaign: Arial, Helvetica, sans-serif;
  --gs-font-display: Arial, Helvetica, sans-serif;
  --gs-font-body: Arial, Helvetica, sans-serif;
  --gs-type-body-size: clamp(16px, 1.3vw, 22px);
  --gs-type-body-line: 1.5;
  --gs-type-eyebrow-size: 16px;
  --gs-type-eyebrow-line: 1.25;
  --gs-type-eyebrow-tracking: .14em;
  --gs-type-button-size: 16px;
  --gs-type-button-line: 1.25;
  --gs-type-seo-heading-size: clamp(19px, 2vw, 35px);
  --gs-type-campaign-size: clamp(76px, 18.85cqw, 384px);
  --gs-type-page-title-size: clamp(43px, 4.7vw, 80px);
  --gs-type-page-title-editorial-size: clamp(58px, 7.8vw, 120px);
  --gs-type-company-title-size: clamp(84px, 17vw, 260px);
  --gs-type-product-title-size: clamp(64px, 6.4vw, 98px);
  --gs-type-section-title-size: clamp(42px, 5.25vw, 94px);
  --gs-type-detail-section-title-size: clamp(42px, 5.25vw, 66px);
  --gs-type-section-title-compact-size: clamp(36px, 3.6vw, 60px);
  --gs-type-category-title-size: clamp(36px, 3.4vw, 60px);
  --gs-type-category-card-title-size: clamp(28px, 2.35vw, 38px);
}
@media (max-width: 1020px) {
  :root { --gs-type-seo-heading-size: 21px; }
}
@media (max-width: 760px) {
  :root {
    --gs-type-company-title-size: clamp(64px, 16.5vw, 125px);
    --gs-type-body-size: 16px;
    --gs-type-eyebrow-size: 13px;
    --gs-type-button-size: 14px;
    --gs-type-seo-heading-size: 18px;
    --gs-type-campaign-size: clamp(88px, 28cqw, 170px);
    --gs-type-section-title-size: clamp(42px, 5.25vw, 65px);
    --gs-type-detail-section-title-size: clamp(42px, 5.25vw, 65px);
    --gs-type-section-title-compact-size: 36px;
    --gs-type-category-title-size: 40px;
    --gs-type-category-card-title-size: 32px;
    --gs-type-page-title-size: 43px;
  }
}
@media (max-width: 640px) {
  :root {
    --gs-type-page-title-editorial-size: clamp(54px, 15vw, 78px);
    --gs-type-product-title-size: clamp(54px, 10vw, 64px);
  }
}
@media (max-width: 400px) {
  :root { --gs-type-page-title-size: 38px; }
}

/* User-authorized Arial heading trial, 12 October 2026. */
body :is(h1,h2,h3,h4,h5,h6){font-family:Arial,Helvetica,sans-serif!important;font-weight:700!important;line-height:1.15;}
:root{--gs-type-company-title-size:clamp(48px,6vw,88px);--gs-type-section-title-size:clamp(32px,3.4vw,56px);--gs-type-detail-section-title-size:clamp(32px,3.4vw,56px);--gs-type-section-title-compact-size:clamp(28px,2.8vw,42px)}
@media(max-width:760px){:root{--gs-type-company-title-size:clamp(38px,9vw,56px);--gs-type-section-title-size:32px;--gs-type-detail-section-title-size:32px;--gs-type-section-title-compact-size:28px}}

/* User-requested bold Poppins comparison, 12 October 2026. */
@font-face{font-family:'Regan Poppins';src:url("../../regan-assets-82350f5146b4/assets/media/graphic-steel/poppins-700.ttf") format('truetype');font-weight:700;font-style:normal;font-display:swap}
:root{--gs-font-display:'Regan Poppins',Arial,Helvetica,sans-serif;--gs-font-campaign:'Regan Poppins',Arial,Helvetica,sans-serif}
body :is(h1,h2,h3,h4,h5,h6){font-family:'Regan Poppins',Arial,Helvetica,sans-serif!important;font-weight:700!important}

/* Readable headings; labels and brand slogans retain their own treatment. */
body main :is(h1,h2,h3,h4,h5,h6)[data-sentence-case] {
  text-transform: none !important;
}

/* Shared hierarchy approved 12 October 2026: page / section / card / subheading. */
:root {
  --gs-heading-page: 64px;
  --gs-heading-section: 42px;
  --gs-heading-card: 28px;
  --gs-heading-sub: 24px;
  --gs-type-page-title-size: var(--gs-heading-page);
  --gs-type-page-title-editorial-size: var(--gs-heading-page);
  --gs-type-company-title-size: var(--gs-heading-page);
  --gs-type-product-title-size: var(--gs-heading-page);
  --gs-type-section-title-size: var(--gs-heading-section);
  --gs-type-detail-section-title-size: var(--gs-heading-section);
  --gs-type-section-title-compact-size: var(--gs-heading-section);
  --gs-type-category-title-size: var(--gs-heading-section);
  --gs-type-category-card-title-size: var(--gs-heading-card);
}
html body #regan-page-content#regan-page-content h1 { font-size:var(--gs-heading-page)!important;line-height:1.15!important; }
html body #regan-page-content#regan-page-content h2 { font-size:var(--gs-heading-section)!important;line-height:1.2!important; }
html body #regan-page-content#regan-page-content h3 { font-size:var(--gs-heading-card)!important;line-height:1.25!important; }
html body #regan-page-content#regan-page-content h4 { font-size:var(--gs-heading-sub)!important;line-height:1.3!important; }
html body #regan-page-content#regan-page-content :is(h5,h6) { font-size:20px!important;line-height:1.3!important; }
html body #regan-page-content#regan-page-content .gs-hero #hero-title { font-size:28px!important; }
@media(max-width:760px) {
  :root { --gs-heading-page:44px;--gs-heading-section:32px;--gs-heading-card:24px;--gs-heading-sub:22px; }
  html body #regan-page-content#regan-page-content .gs-hero #hero-title { font-size:20px!important; }
}

/* User-selected hero title treatment; content headings retain sentence case. */
html body #regan-page-content#regan-page-content h1 {
  text-transform: uppercase !important;
}

/* Mixed heading roles, 13 October 2026. Reading headings are the default;
   the shared presentation script marks page/display headings explicitly.
   main is intentional: some templates put the content ID on their hero only. */
html body main :is(h2,h3,h4,h5,h6),
html body #regan-page-content#regan-page-content :is(h2,h3,h4,h5,h6) {
  text-transform:none!important;
}
html body main th[data-sentence-case] { text-transform:none!important; }
html body main h1,
html body main :is(h1,h2,h3,h4,h5,h6)[data-heading-case="display"],
html body #regan-page-content#regan-page-content :is(h1,h2,h3,h4,h5,h6)[data-heading-case="display"] {
  text-transform:uppercase!important;
}

/* Homepage order steps use sentence case beneath the section heading. */
html body #regan-page-content#regan-page-content .gs-steps h4 {
  text-transform:none!important;
}
