/* Responsive shop navigation. */
.store-header{gap:24px}
.store-header .brand{min-width:0;flex:1}
.store-header .brand-logo{flex-shrink:0}
.store-header .brand-mark{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.store-header nav{min-width:0}
.store-header .nav-button{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.store-header>.cart-link{display:inline-flex;align-items:center;flex-shrink:0;min-height:44px;color:var(--text);text-decoration:none;font-weight:600;white-space:nowrap}
.store-menu-toggle{display:none}
@media(max-width:760px){
    .store-header{height:68px;padding:0 14px;gap:12px}
    .store-header .brand{flex:1;flex-shrink:1;gap:8px}
    .store-header .brand-logo{width:42px;height:42px}
    .store-header .brand:has(.brand-logo) .brand-mark{display:none}
    .store-header .brand-mark{font-size:.85rem;letter-spacing:.03em}
    .store-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:.85rem;cursor:pointer}
    .store-header>.cart-link{font-size:.85rem}
    .store-header nav{display:none;position:absolute;left:0;right:0;top:100%;max-height:calc(100dvh - 68px);overflow-y:auto;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--background);box-shadow:0 12px 24px #0002}
    .store-header nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:4px}
    .store-header nav a,.store-header .nav-button{display:flex;align-items:center;min-height:48px;max-width:100%;padding:12px;border-radius:8px;text-align:left;font-size:1rem;overflow-wrap:anywhere;white-space:normal}
    .store-header nav>a:first-child{display:flex}
    .store-header nav a:hover,.store-header .nav-button:hover{background:var(--surface)}
}
.store-menu-toggle:focus-visible,.store-header a:focus-visible,.store-header .nav-button:focus-visible{outline:2px solid var(--brand);outline-offset:3px}

/* Home page. */
@media(max-width:600px){
    .landing-hero{padding:32px 18px}
    .landing-hero h1{font-size:clamp(1.8rem,7.5vw,2.4rem);line-height:1.2;overflow-wrap:anywhere}
    .landing-hero p{font-size:1rem;line-height:1.65;margin-bottom:24px}
    .landing-hero .hero-actions{display:grid;gap:10px}
    .landing-hero .hero-actions .button{width:100%;min-height:48px}
    .landing-reassurance{line-height:1.6}
    .landing-section{padding:28px 18px}
    .landing-section h2,.catalogue .section-title h2{font-size:1.5rem;line-height:1.4}
    .landing-modules,.landing-process{gap:14px}
    .landing-modules article,.landing-process article{padding:20px}
    .landing-pack-card h3{margin:8px 0}
    .landing-pack-card .landing-pack-description{margin:12px 0;line-height:1.65}
    .landing-pack-more-slot:empty{display:none}
    .landing-pack-actions{gap:8px;padding-top:8px}
    .landing-pack-actions a,.landing-pack-more{display:flex;align-items:center;min-height:44px}
    .showcase-toolbar{padding:12px;gap:5px}
    .showcase-toolbar small{min-width:0;margin-left:6px;overflow-wrap:anywhere}
    .showcase-toolbar>span{flex-shrink:0}
    .showcase-copy{padding:20px}
    .showcase-copy .button,.landing-cta>.button{width:100%}
    .home-categories{gap:12px}
    .category-card{height:120px}
}

/* Catalogue and product cards. */
.product-card,.product-content{min-width:0}
.product-content h3,.product-content p,.product-content small{overflow-wrap:anywhere}
.product-description-toggle{display:inline-flex;align-items:center;min-height:44px;padding:4px 0;border:0;background:transparent;color:var(--brand);font:inherit;text-decoration:underline;cursor:pointer}
.product-feedback a{color:var(--brand)}
.product-content .product-feedback{min-height:0;margin-bottom:0;font-size:.85rem}
@media(max-width:600px){
    .catalogue{padding:28px 18px 40px}
    .catalogue .section-title{margin-bottom:20px;gap:16px}
    .catalogue-filters{gap:8px;margin-bottom:20px}
    .catalogue-filters .button{min-height:44px;padding:9px 12px;font-size:.85rem;max-width:100%;overflow-wrap:anywhere}
    .product-grid{gap:18px}
    .product-image{aspect-ratio:16/10}
    .product-content{padding:18px}
    .product-content p{min-height:0;line-height:1.6}
    .product-footer{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:16px}
    .product-footer .button{width:100%;min-height:48px}
}

/* Guided configuration. */
.wizard-step-status{margin:20px 0}
.wizard-step-status p{line-height:1.6;overflow-wrap:anywhere}
.wizard-step-status progress{display:block;width:100%;height:8px;accent-color:var(--brand)}
.wizard-summary-link{display:none}
#configuration-step,#configuration-summary{scroll-margin-top:88px}
.configurator-layout>*{min-width:0}
.summary>div{gap:12px}
.summary>div>span{min-width:0;flex:1;overflow-wrap:anywhere}
.summary>div>strong{max-width:60%;text-align:right;overflow-wrap:anywhere}
.configurator-question legend,.wizard-review strong{overflow-wrap:anywhere}
.configuration-choice-content strong{overflow-wrap:anywhere}
@media(max-width:600px){
    .page-section{padding:28px 18px 40px}
    .page-section h1{font-size:clamp(1.5rem,6vw,2rem);line-height:1.4;overflow-wrap:anywhere}
    .wizard-progress{display:none}
    .wizard-summary-link{display:flex;align-items:center;min-height:44px;color:var(--brand);font-size:.9rem;line-height:1.5}
    .configurator-questions{gap:16px}
    .configurator-questions .form-card{padding:18px;min-width:0}
    .configurator-question legend{max-width:100%;font-size:1rem}
    .configurator-questions .configuration-choice{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;padding:14px}
    .configuration-choice .configuration-product-image{width:80px;height:60px}
    .configuration-choice .configuration-choice-content{grid-column:1/-1;min-width:0;padding-top:0}
    .wizard-review{align-items:flex-start;gap:10px}
    .wizard-review>div{min-width:0;overflow-wrap:anywhere}
    .wizard-review .text-button{flex-shrink:0;margin:0;min-height:44px}
    .wizard-actions{position:sticky;bottom:0;z-index:2;gap:8px;margin-top:0;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:var(--background)}
    .wizard-actions:empty{display:none}
    .wizard-actions .button{padding:12px;font-size:.9rem}
}
@media(max-height:500px){.wizard-actions{position:static}}

/* Shopping basket. */
.cart-layout>*{min-width:0}
.line-info{min-width:0;overflow-wrap:anywhere}
.line-info>small{display:block;margin-top:6px}
.cart-quantity{margin:0;min-width:0}
.cart-line .cart-quantity input{width:100%;min-height:44px;font-size:1rem}
.line-remove{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0}
.cart-summary-link{display:none}
#cart-summary{scroll-margin-top:88px}
@media(max-width:600px){
    .cart-summary-link{display:flex;align-items:center;min-height:44px;margin-bottom:16px;color:var(--brand);line-height:1.5}
    .cart-line{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"info remove" "quantity total";gap:16px 10px;padding:20px 0}
    .cart-line .line-mark{display:none}
    .cart-line .line-info{grid-area:info}
    .cart-line .line-info h3{font-size:1rem;line-height:1.5}
    .cart-line .cart-quantity{grid-area:quantity;width:90px;align-self:end}
    .cart-line>.line-total{grid-area:total;align-self:end;text-align:right;max-width:140px;overflow-wrap:anywhere;padding-bottom:12px}
    .cart-line .line-remove{grid-area:remove;align-self:start}
    .cart-line .pack-components{padding-left:18px;line-height:1.6}
    .summary{padding:18px}
    .summary .button{min-height:48px}
}

/* Customer forms and confirmations. */
.checkout-layout>*{min-width:0}
.form-field{min-width:0;margin-bottom:18px}
.form-field>label{margin-bottom:4px}
.validation-message{color:var(--text);border-left:3px solid var(--brand);padding:6px 10px;font-size:.85rem;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:600px){
    .form-card{padding:18px;min-width:0}
    .field-grid{gap:0}
    label{min-width:0;line-height:1.5}
    label input,label textarea,.section-title input{min-width:0;width:100%;max-width:100%;font-size:16px;min-height:48px}
    .contact-consent input,.terms-consent input[type=checkbox]{width:22px;min-height:22px;height:22px;max-width:22px;flex-shrink:0}
    .configuration-choice input{width:22px;height:22px;min-height:22px;max-width:22px;margin-top:0}
    .terms-consent label{flex-direction:row;align-items:flex-start;line-height:1.6}
    .contact-captcha{padding:14px;gap:12px}
    .contact-captcha .button{width:100%;min-height:44px;padding:12px;font-size:.9rem;white-space:normal}
    .demo-request .button{width:100%;min-height:48px;margin:8px 0 0}
    .account-card{margin-top:20px}
    .account-card .text-button{min-height:44px}
    .success-card{margin:20px auto;padding:24px 18px;overflow-wrap:anywhere}
    .success-card .button{width:100%;min-height:48px;margin-top:10px}
}

/* Shared touch targets, dialogs and footer. */
.button,.text-button,.terms-link{min-height:44px}
.button{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}
.button:focus-visible,.text-button:focus-visible,.product-description-toggle:focus-visible,.icon-button:focus-visible,.wizard-summary-link:focus-visible,.cart-summary-link:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
input:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
main h1:focus:not(:focus-visible){outline:none}
footer{height:auto;min-height:80px;padding-top:18px;padding-bottom:18px;gap:14px}
footer>*{min-width:0;overflow-wrap:anywhere}
.terms-dialog{padding:0;max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.terms-dialog>header{position:sticky;top:0;z-index:1;margin:0;padding:18px 20px;background:var(--background);border-bottom:1px solid var(--border)}
.terms-dialog h2{font-size:clamp(1.1rem,4vw,1.6rem);overflow-wrap:anywhere}
.terms-content{padding:20px}
.pack-details-header{position:sticky;top:0;z-index:1;background:var(--surface)}
@media(max-width:600px){
    footer{align-items:center;text-align:center;padding:20px 18px;gap:8px}
    footer .terms-link{padding:10px 0}
    .pack-details-header{align-items:center;gap:12px}
    .pack-details-header .landing-pack-icon{width:64px;height:64px}
    .pack-details-dialog h2{font-size:1.3rem}
    .pack-details-dialog .button{min-height:44px}
    .terms-dialog>header{padding:16px;gap:12px}
    .terms-content{padding:16px;font-size:.95rem;line-height:1.7}
    .shop-maintenance{padding:48px 18px;min-height:60vh}
    .shop-maintenance img{max-width:100%}
}
@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    .product-card{transition:none}
    .product-card:hover{transform:none}
}
