/* Shared type scale for every page. Keep these rules after component styles. */
:root{--text-size:1rem;--small-size:.875rem;--title-size:clamp(2.5rem,4.5vw,3.5rem);--heading-size:clamp(1.75rem,3vw,2rem);--subheading-size:1.375rem}
body{font-size:var(--text-size)}
body h1,body [data-home-showcase] .slide-title{font-size:var(--title-size)!important;line-height:1.12!important;letter-spacing:-.04em!important;overflow-wrap:anywhere}
body h2{font-size:var(--heading-size)!important;line-height:1.2!important;letter-spacing:-.025em!important;overflow-wrap:anywhere}
body h3,body h4,body h5,body h6{font-size:var(--subheading-size)!important;line-height:1.3!important;letter-spacing:-.015em!important;overflow-wrap:anywhere}
body p,body li,body address,body label,body input,body select,body textarea,body .lead,body .product-description table,body .request-preview pre{font-size:var(--text-size)!important;line-height:1.65}
body .button,body .text-link,body .product-detail-link,body .main-nav,body .shop-nav,body .subnav a,body .footer-links a,body .theme-tabs button,body .rotation-controls button{font-size:var(--text-size)!important}
body .eyebrow,body .small,body .price-note,body .product-sku,body .product-category,body .product-price-date,body figcaption,body small,body .upcoming-label{font-size:var(--small-size)!important;line-height:1.5}
body .product-price,body .detail-price{font-size:var(--subheading-size)!important;line-height:1.3;letter-spacing:0}
body .cart-line-price,body .request-item,body .request-item strong,body .summary-row,body .summary-row.subtotal strong{font-size:var(--text-size)!important}
/* Long titles and inquiry labels must fit narrow cards. */
.product-card-bottom{flex-wrap:wrap}.product-card-copy h2{min-height:0}.cart-summary .summary-row{flex-wrap:wrap}.request-item{grid-template-columns:minmax(0,1fr) auto}
/* One full-width row per menu item whenever the mobile toggle is shown. */
@media(max-width:1100px){
 .header-inner{flex-wrap:wrap;gap:12px 20px}
 .js .menu-toggle{display:flex}
 .main-nav,.js .main-nav.is-open{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-flow:row;align-items:stretch;width:100%;gap:6px;padding:12px 0;max-height:calc(100vh - 170px);max-height:calc(100dvh - 170px);overflow-y:auto;overscroll-behavior:contain}
 .js .main-nav{display:none}
 .main-nav>a,.main-nav>a:not(.button),.main-nav .button,.main-nav .cart-link{grid-column:1;display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:48px;margin:0;padding:12px 16px;text-align:left;white-space:normal;line-height:1.4}
 .main-nav .cart-link{gap:10px;border:1px solid var(--line)!important;border-radius:5px}
 .main-nav .cart-link:before{content:'Warenkorb';font-size:inherit}
}
@media(max-width:620px){.js .main-nav.is-open{display:grid}.theme-tabs{flex-wrap:wrap}.rotation-controls{flex-wrap:wrap}.request-item{grid-template-columns:1fr}}
