/* Shared type hierarchy. Intentional overrides replace the older page-specific
   font rules, while leaving layout, pricing emphasis and the Bline logo intact. */
:root{--bline-font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
html body{font-family:var(--bline-font)!important;font-size:1rem;line-height:1.6}
body :is(button,input,select,textarea,label,legend,summary),body #bline-header{font-family:var(--bline-font)!important}
body :is(h1,h2,h3,h4,h5,h6){font-family:var(--bline-font)!important;font-weight:500!important;overflow-wrap:break-word}
body h1{font-size:clamp(2rem,4vw,3.5rem)!important;line-height:1.15!important;letter-spacing:-.025em!important}
body h2{font-size:clamp(1.5rem,2.5vw,2.25rem)!important;line-height:1.25!important;letter-spacing:-.02em!important}
body h3{font-size:clamp(1.125rem,1.7vw,1.4rem)!important;line-height:1.35!important;letter-spacing:-.01em!important}
body :is(h4,h5,h6){line-height:1.4!important;letter-spacing:normal!important}
body :is(.manual-upgrades,.order-page,.portal-header) h1,body:has(#requestForm) h1,body:has(#payOrder) h1{font-size:clamp(1.875rem,3vw,2.5rem)!important}
body main p:not(:where([class*="price"],[class*="total"])){font-size:1rem!important;line-height:1.6!important}
body :is(input,select,textarea){font-size:1rem!important;line-height:1.5}
body main :is(label,legend,summary){font-size:1rem;line-height:1.5}
body :is(.btn,.button,.auto-button,main button,dialog button,.text-link,.explore-link,.collection-package-link,.shop-shortcuts a,.section-nav a,.feature-actions a,.hero-actions>a,.brand-switch a){font-size:.9375rem!important;font-weight:500!important;line-height:1.45!important;white-space:normal}
body :is(.help,.tax-note,.smallprint,.availability-note,.collection-delivery,.photo-note,.category-tile p,.feature-product small,.breadcrumbs,.bedding-benefits,.weave-benefits){font-size:.875rem!important;line-height:1.55!important}
body :is(.eyebrow,.overline,.section-label){font-size:.75rem!important;letter-spacing:.1em!important;font-weight:600!important;line-height:1.5!important}
body :is(.weave-price,.retail-price,.full-product-price,.total,.price){font-weight:600!important;line-height:1.4}
body main :is(p,li){overflow-wrap:break-word}
body #bline-header .bline-primary > a,body #bline-header .bline-shop > a,body #bline-header .bline-shop-menu a{font-size:.9375rem;line-height:1.5}
body #bline-header :is(.bline-menu-toggle,.bline-actions button,.bline-actions a){font-size:.875rem;line-height:1.4}
/* Serif is reserved for Weave's editorial imagery, not its product controls. */
body.weave-store .hero-copy h1,body.weave-store :is(.story-card,.bedding-story) h2{font-family:Georgia,"Times New Roman",serif!important;font-weight:400!important;letter-spacing:-.02em!important}
body.weave-store .hero-copy h1{font-size:clamp(2.25rem,4.2vw,3.5rem)!important;line-height:1.12!important}
body.weave-store .weave-hero{height:auto;min-height:36rem;display:grid;align-items:end;padding:4rem 0}
body.weave-store .hero-copy{position:relative;left:auto;bottom:auto;width:min(36rem,90%);margin-left:max(5%,calc((100% - 1280px)/2))}
body.weave-store .weave-hero:after{background:linear-gradient(90deg,rgba(15,24,17,.78),rgba(15,24,17,.22) 82%)}
body.weave-store .hero-copy :is(h1,p,.eyebrow){color:#fff}
body :is(.full-product-grid,.bedding-hero,.hero-grid,.auto-hero,.upgrades-hero)>*{min-width:0}
body .hero-actions{flex-wrap:wrap;gap:1rem}
@media(max-width:750px){
 body h1{font-size:2rem!important}
 body.weave-store .hero-copy h1{font-size:2.25rem!important}
 body.weave-store .weave-hero{min-height:30rem;padding:2.5rem 0 3.5rem}
 body.weave-store .hero-copy{width:calc(100% - 3rem);margin:0 1.5rem}
 body.weave-store .hero-copy p{max-width:none}
 body .hero-actions>*{max-width:100%}
 body .feature-actions{flex-wrap:wrap}
 body .feature-actions>*{min-height:2.75rem;display:inline-flex;align-items:center}
 body .full-product-grid,body .product-buy{min-width:0}
}
/* Switch to the same accessible menu when enlarged text no longer fits. */
body #bline-header.bline-compact .bline-logo{margin-right:auto}
body #bline-header.bline-compact .bline-menu-toggle{display:block}
body #bline-header.bline-compact .bline-primary{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:12px 20px 24px;background:#fff;border-bottom:1px solid #d6e2d6;max-height:calc(100dvh - 72px);overflow:auto}
body #bline-header.bline-compact .bline-primary.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}
body #bline-header.bline-compact .bline-primary>a,body #bline-header.bline-compact .bline-shop>a{display:block;padding:13px 0;white-space:normal}
body #bline-header.bline-compact .bline-shop{flex-wrap:wrap;justify-content:space-between}
body #bline-header.bline-compact .bline-shop-menu{position:static;flex-basis:100%;min-width:0;padding:0 0 8px 16px;box-shadow:none;border:0}
body #bline-header.bline-compact .bline-shop:not(.is-open) .bline-shop-menu{display:none}
body #bline-header.bline-compact .bline-shop-menu a{white-space:normal}
/* Readable secondary text on light product panels. */
body :is(.category-tile p,.feature-product small,.breadcrumbs,.brand-switch a){color:#596457}
body :is(.product-buy,.tex-product-buy) h1{font-size:clamp(1.75rem,2.7vw,2.25rem)!important}
body:has(#order) h1,body:has(#loginForm) h1{font-size:clamp(1.875rem,3vw,2.5rem)!important}

/* Keep the first content row close to the shared navigation on every page type. */
:root{--bline-header-clearance:24px}
body.bline-site:not(.automation-page) main>.hero,
body.bline-site main>.shop-intro,
body main>.page-header,
body main>.ch-hero{padding-top:calc(72px + var(--bline-header-clearance))}
body.bline-site:not(.automation-page) main>.hero .hero-grid{align-items:start}
body.automation-page main{padding-top:calc(72px + var(--bline-header-clearance))}
body.automation-page .auto-hero{align-items:start}
body.upgrade-store main{padding-top:24px}
body.upgrade-store .upgrades-hero{align-items:start}
body main.manual-upgrades,body main.upgrade-detail{padding-top:24px}
body .upgrade-crumbs{margin:0 0 24px}
body:has(link[href*="css/orders.css"]) main{margin-top:24px}
@media(max-width:1250px){
 body.bline-site:not(.automation-page) main>.hero,
 body.bline-site main>.shop-intro,
 body main>.page-header,
 body main>.ch-hero{padding-top:calc(68px + var(--bline-header-clearance))}
 body.automation-page main{padding-top:calc(68px + var(--bline-header-clearance))}
}

/* The footer has one brand block and one links block containing three groups. */
body .footer{padding:32px 0 20px}
body .footer .footer-grid{grid-template-columns:minmax(220px,1fr) minmax(0,3fr);gap:clamp(28px,5vw,72px);margin-bottom:24px}
body .footer .footer-brand .nav-logo{color:#fff}
body .footer .footer-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,3vw,48px)}
body .footer .footer-links ul{list-style:none;margin:0;padding:0}
body .footer .footer-links h4{margin:0 0 10px}
body .footer .footer-links li{margin:0 0 8px}
body .footer .footer-bottom{padding-top:16px}
body .footer .footer-acknowledgment{margin-top:0}
body .footer .bline-site-version{margin-top:12px;padding-top:8px}
@media(max-width:700px){
 body .footer .footer-grid{grid-template-columns:1fr;gap:24px}
 body .footer .footer-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
}
@media(max-width:470px){body .footer .footer-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
