/* One public typography scale for the group and six product sites. Admin and memorial pages do not include this file. */
:root{--type-body:18px;--type-lead:20px;--type-label:14px;--type-nav:17px;--type-button:17px;--type-card:28px;--type-h1:clamp(35.2px,4vw,60.8px);--type-h2:clamp(34px,3.6vw,52px);--type-h3:28px;--type-product:clamp(28.8px,3.2vw,46.4px)}
body{font-size:var(--type-body)!important;line-height:1.7!important}
h1,.hero h1,.metal .hero h1,.group-intro h1,.section-hero h1,.tv-title{font-size:var(--type-h1)!important;line-height:1.14!important}
h2,.section-heading h2,.catalog-heading h2,.production-grid h2,.contact-band h2,.section-contact h2,.section-story h2,.tv-section-heading h2{font-size:var(--type-h2)!important;line-height:1.2!important}
h3,h4,.steps h3,.tv-material-grid h4,.tv-address-grid h3{font-size:var(--type-h3)!important;line-height:1.3!important}
p,.steps p,.description,.detail-copy,.service-content,.capabilities li,.tv-construction-copy p,.tv-protection-bottom p,.tv-arctic-story,.tv-factory-copy,.tv-finish-copy p,.tv-request-copy>p:not(.tv-kicker),.contacts-grid p,.section-story>div>p:not(.eyebrow),.section-contact>div>p:not(.eyebrow){font-size:var(--type-body)!important;line-height:1.7!important}
.lead,.hero .lead,.hero-aside p,.section-hero-description,.product-info>.lead,.group-intro>div>p,.group-intro .intro-side p,.tv-lead{font-size:var(--type-lead)!important;line-height:1.7!important;white-space:normal!important}
.eyebrow,.tv-kicker,.category-label,.tv-model-type,.brand small,.feature-line,.hero-topline .eyebrow{font-size:var(--type-label)!important;line-height:1.6!important;letter-spacing:.075em}
.header nav,.site-header .navigation,.header .header-phone,.header-direction-label,.production-header .header-direction-label{font-size:var(--type-nav)!important;line-height:1.5!important}
.button,.tv-button,.solid-button,.text-link,.tv-text-link,.text-cta,.actions .button,.actions .text-link,.hero .actions .button,.hero .actions .text-link,.group-card-copy .card-cta,.group-home-button,.group-home-link,.home-button,.category-tabs a,.category-filters button,.pagination a,.menutoggle{font-size:var(--type-button)!important;line-height:1.45!important}
.button,.tv-button,.solid-button,.group-home-button,.group-home-link,.home-button{min-height:52px}
.button span,.tv-button span,.solid-button span,.group-home-link span,.group-home-button span,.home-button span{font-size:22px!important}
.brand>span,.header .brand>span{font-size:24px!important;line-height:1.25!important}
.card-copy h3,.catalog-card-copy h3,.home-category-copy h3,.capability-category-copy h3,.group-card h2,.tv-model h3,.direction-copy h3,.direction-card h2{font-size:var(--type-card)!important;line-height:1.3!important;overflow-wrap:anywhere}
.card-short,.capability-category-copy p,.group-card-copy>p:not(.eyebrow),.tv-material-grid p,.tv-service-list p{font-size:var(--type-body)!important;line-height:1.7!important}
.card-price,.card-price strong,.tv-model-price,.tv-model-price strong{font-size:22px!important;line-height:1.5!important}
.card-price a,.card-price span,.catalog-card-more,.home-category-link,.tv-model-link,.service-links a{font-size:var(--type-button)!important;line-height:1.5!important}
.product-info h1,.detail-grid .catalog-title{font-size:var(--type-product)!important;line-height:1.2!important;overflow-wrap:anywhere}
.product-price,.detail-price{font-size:38px!important;line-height:1.3!important}
.description h2,.product-info .description h2,.detail-copy h2{font-size:30px!important;line-height:1.3!important}
input,select,textarea,.catalog-toolbar input,.catalog-toolbar select,.catalog-search input,.product-specs{font-size:var(--type-body)!important;line-height:1.55!important}
label,.tv-field label{font-size:var(--type-nav)!important;line-height:1.5!important}
.breadcrumbs,.breadcrumbs a,.page-toolbar .breadcrumbs,.muted,.product-info>.muted,.notice,.product-info>.notice,.price-note,.price-note p,.price-note span,.catalog-count,.result-count,.product-note,.catalog-footnote,.photo-tag,.photo-tag span,figcaption,.hero-photo figcaption,.photo-gallery figcaption,.footer-bottom,.footer-bottom span,.footer-bottom a,.site-footer>span,.tv-note,.tv-model-spec,.tv-model-spec span,.tv-model-price del,.tv-sale-label,.tv-documents span,.errorlist,.consent,.consent span,.tv-consent,.tv-consent label,.tv-consent span{font-size:var(--type-label)!important;line-height:1.6!important}
.footer-grid,.footer-grid p,.footer-grid a,.site-footer a,.section-contact-info>p,.contact-directory p,.contact-directory a{font-size:var(--type-nav)!important;line-height:1.6!important}
.footer-brand,.footer-grid .footer-brand{font-size:28px!important;line-height:1.3!important}
.contact-phone,.footer-grid .contact-phone,.contacts-grid .contact-phone,.section-contact-phone,.tv-contact-links a:first-child{font-size:28px!important;line-height:1.4!important}
.contact-email,.contacts-grid .contact-email,.section-contact-email{font-size:22px!important;line-height:1.5!important;overflow-wrap:anywhere}
.hero-facts span,.hero-facts strong,.tv-hero-facts span{line-height:1.4!important}
.hero-facts span,.tv-hero-facts span{font-size:var(--type-label)!important}
/* Reserve enough room for longer, larger labels without forcing a fixed header height. */
.header .brand{flex-shrink:1;min-width:0}.header nav{flex-shrink:0}.header .group-home-button,.header .group-home-link{flex-shrink:0}
.homepage .hero-aside{min-width:0}.homepage .hero-aside p{max-width:100%;white-space:normal!important}
.production-grid .group-visual.linked-hero-visual{aspect-ratio:3/2!important;background:transparent}
.production-grid .group-visual.linked-hero-visual .section-photo,.section-hero-media.linked-hero-visual .section-photo{object-fit:contain!important;object-position:center!important}
@media(max-width:1150px){.header{flex-wrap:wrap;row-gap:16px}.header .header-phone{display:none}.header nav{margin-left:auto}}
@media(max-width:800px){:root{--type-nav:16px;--type-button:16px}.header .brand>span{font-size:22px!important}.header-direction-label,.production-header .header-direction-label{font-size:var(--type-label)!important}.homepage .hero-main{grid-template-columns:1fr}.homepage .hero-aside{max-width:none}}
@media(max-width:720px){:root{--type-body:17px;--type-lead:18px;--type-label:14px;--type-card:24px;--type-h1:35.2px;--type-h2:36px;--type-h3:26px;--type-product:30.4px}.header .brand small{font-size:11px!important;letter-spacing:.02em}.header nav{flex-shrink:1}.header .brand>span{font-size:22px!important}.header .group-home-button,.header .group-home-link{width:100%}.card-price,.card-price strong,.tv-model-price,.tv-model-price strong{font-size:20px!important}.card-price{flex-wrap:wrap}.card-price span,.card-price a{font-size:15px!important}.category-tabs a{white-space:normal}.photo-tag{flex-wrap:wrap;gap:5px!important}.photo-tag span{font-size:12px!important}.contact-phone,.footer-grid .contact-phone,.contacts-grid .contact-phone,.section-contact-phone,.tv-contact-links a:first-child{font-size:26px!important}.contact-email,.contacts-grid .contact-email,.section-contact-email{font-size:20px!important}.tv-sale-label{font-size:11px!important}.group-card-copy,.home-category-copy{min-width:0}}
@media(max-width:360px){:root{--type-h1:32px;--type-h2:34px;--type-product:28.8px;--type-card:22px}.header .brand>span{font-size:20px!important}}
/* Secondary navigation and metadata use the same readable label size. */
.groupbar,.groupbar .wrap,.groupbar a,.groupbar span,.steps li>span,.tv-service-list>div>span,.tv-material-grid article>span,.tv-factory-grid figcaption span,.nav-count,.header-contact-label,.contact-label,.catalog-card-copy>p,.tv-documents p,.tv-address-grid>div>span,.tv-address-grid p,.location-label,.section-topline>span{font-size:var(--type-label)!important;line-height:1.6!important}
.tv-section-nav,.tv-section-nav a{font-size:var(--type-nav)!important;line-height:1.5!important}
/* Long Russian names must wrap inside their card instead of widening a narrow page. */
h1,h2,h3,h4,p,li,dt,dd,.card-short,.tv-material-grid article{overflow-wrap:anywhere}
@media(max-width:720px){.section-heading{flex-wrap:wrap}.section-heading>div{min-width:0;flex:1 1 220px}.section-heading>.text-link{align-self:flex-end}.tv-material-grid article{min-width:0}}
@media(max-width:480px){.tv-material-grid{grid-template-columns:minmax(0,1fr)}.tv-material-grid img{height:180px}}
@media(max-width:360px){.products{grid-template-columns:minmax(0,1fr)}}
@media(max-width:360px){:root{--type-h1:30.4px}}

/* Owner-selected headings: half the existing responsive h1 scale. */
body h1.heading-half{font-size:calc(var(--type-h1) / 2)!important;letter-spacing:-.025em!important}
