.configurator{align-items:start}.product-visual{position:sticky;top:20px}.product-image img{aspect-ratio:1;object-fit:contain}.gallery-label{margin:10px 0 8px;text-align:center;font-size:14px}.color-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.color-gallery button{min-width:0;padding:3px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.color-gallery button.active{border:2px solid var(--brand);padding:2px;box-shadow:0 0 0 2px #fff inset}.color-gallery img{display:block;width:100%;aspect-ratio:1;object-fit:contain;border-radius:5px}.available-colors{margin:9px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.from-price{display:inline-block;background:#eaf8ed;color:#176b32;border-radius:8px;padding:10px 14px;font-weight:700}.config-block{border-top:1px solid var(--line);padding:22px 0}.config-block h2{font-size:22px;margin:0 0 14px}.color-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.color-choice{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px;text-align:left;font:inherit;font-weight:700;cursor:pointer}.color-choice.active{border:2px solid var(--brand);padding:9px}.color-choice i{width:25px;height:25px;border-radius:50%;background:var(--swatch);border:1px solid #aeb5b7;box-shadow:inset 0 0 0 2px #fff}.size-options{border:1px solid var(--line);border-radius:10px;overflow:hidden}.size-row{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line)}.size-row:last-child{border:0}.size-row>span{font-size:13px;color:var(--muted)}.size-row .size-stock b{color:#176b32}.size-row.unavailable{background:#f6f7f7;color:#8a9295}.stepper{display:grid;grid-template-columns:36px 42px 36px;align-items:center}.stepper button{height:34px;border:1px solid var(--line);background:var(--soft);font-size:19px;cursor:pointer}.stepper button:disabled{opacity:.35;cursor:not-allowed}.stepper output{text-align:center;font-weight:800}.stock-public-note{margin:12px 0 0;padding:11px 13px;border-left:3px solid #d99119;background:#fff8e8;color:#6b561e;font-size:13px}.personalization-options{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.personalization-options label input{position:absolute;opacity:0}.personalization-options span{display:block;border:1px solid var(--line);border-radius:9px;padding:12px;cursor:pointer;font-weight:700}.personalization-options input:checked+span{border:2px solid var(--brand);padding:11px;background:#fff7f3}.config-summary-wrap{background:var(--soft);padding:38px 24px}.config-summary{max-width:1100px;margin:auto;display:grid;grid-template-columns:1fr 360px;gap:50px}.config-summary h2{margin-top:0}.selection-lines p,#selection-lines p{display:flex;justify-content:space-between;max-width:500px;border-bottom:1px solid var(--line);padding:7px 0;margin:0}.totals{background:#fff;padding:22px;border-radius:12px}.totals>div{display:flex;justify-content:space-between;padding:7px 0}.totals .grand{font-size:20px;border-top:1px solid var(--line);margin-top:7px;padding-top:14px}.totals .cta{width:100%;margin-top:15px}@media(max-width:760px){.product-visual{position:static}.color-gallery{display:flex;overflow-x:auto;padding:2px 1px 7px;scroll-snap-type:x proximity}.color-gallery button{flex:0 0 68px;scroll-snap-align:start}.color-options,.personalization-options,.config-summary{grid-template-columns:1fr}.config-summary{gap:22px}}
/* Compact colour selector for products with many variants. */
.colors-config-block h2{font-size:18px;margin-bottom:10px}.colors-config-block .color-options{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:6px}.colors-config-block .color-choice{gap:7px;min-height:38px;border-radius:8px;padding:7px 8px;font-size:12.5px;line-height:1.15}.colors-config-block .color-choice.active{padding:6px 7px}.colors-config-block .color-choice i{width:19px;height:19px;flex:0 0 19px}.colors-config-block .color-instructions{padding:10px 12px;margin-bottom:10px;font-size:13px}.colors-config-block .color-instructions strong{font-size:14px}.colors-config-block .combined-colors{margin-top:10px;padding:9px 11px;font-size:13px}@media(max-width:760px){.colors-config-block .color-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Image-card selector inspired by the compact catalogue configurator. */
.colors-config-block .color-options{display:flex;gap:8px;overflow-x:auto;padding:3px 2px 10px;scroll-snap-type:x proximity;scrollbar-width:thin}.colors-config-block .color-choice{position:relative;display:flex;flex:0 0 94px;min-height:116px;flex-direction:column;justify-content:flex-start;gap:4px;padding:6px;border:2px solid var(--line);border-radius:10px;text-align:center;scroll-snap-align:start}.colors-config-block .color-choice.active{padding:6px;border-color:var(--brand);box-shadow:0 0 0 2px #ef4c2320}.colors-config-block .color-choice img{display:block;width:72px;height:72px;object-fit:contain;background:#fff}.colors-config-block .color-choice-name{display:block;width:100%;font-size:10.5px;line-height:1.05;font-weight:850;text-transform:uppercase}.colors-config-block .color-choice-count{position:absolute;top:4px;right:4px;padding:2px 5px;font-size:9px}.colors-config-block .color-choice.active:before{content:none}@media(max-width:760px){.colors-config-block .color-options{display:flex}.colors-config-block .color-choice{flex-basis:88px;min-height:108px}.colors-config-block .color-choice img{width:66px;height:66px}}

/* Balanced product sheet: keeps large catalogues usable above the fold. */
.product.configurator{grid-template-columns:minmax(360px,440px) minmax(0,1fr);gap:48px;align-items:start;max-width:1180px;padding-top:38px}
.configurator .product-visual{width:100%;min-width:0}
.configurator .product-image{display:grid;place-items:center;width:100%;height:440px;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:14px}
.configurator .product-image img{display:block;width:100%;height:100%;max-width:440px;max-height:440px;object-fit:contain}
.configurator>div:last-child{min-width:0}
.configurator>div:last-child>h1{font-size:clamp(36px,4.1vw,54px);line-height:1;max-width:700px}
.configurator .color-gallery{grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;max-height:238px}
.configurator .color-gallery button{padding:2px;border-radius:7px}
.configurator .color-gallery button.active{padding:1px}
.configurator .color-gallery img{width:100%;height:auto;background:#fff}
.configurator .available-colors{max-height:54px;overflow:auto}
.colors-config-block .color-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));overflow:visible;gap:7px;padding:2px 0 8px}
.colors-config-block .color-choice{width:100%;min-width:0;min-height:108px;flex:initial;padding:5px}
.colors-config-block .color-choice.active{padding:5px}
.colors-config-block .color-choice img{width:64px;height:64px;max-width:100%;margin:auto}
@media(max-width:900px){.product.configurator{grid-template-columns:minmax(290px,380px) minmax(0,1fr);gap:30px}.configurator .product-image{height:380px}.configurator>div:last-child>h1{font-size:38px}.configurator .color-gallery{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:760px){.product.configurator{grid-template-columns:1fr;padding-top:24px;gap:24px}.configurator .product-image{height:auto;aspect-ratio:1}.configurator .product-image img{max-width:none;max-height:none}.configurator .color-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));max-height:245px;overflow-y:auto}.colors-config-block .color-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.colors-config-block .color-choice{min-height:102px}.colors-config-block .color-choice img{width:60px;height:60px}}
@media(max-width:420px){.colors-config-block .color-choice-name{font-size:9.5px}}

/* Dense storefront layout: inspired by compact promotional-product shops. */
.product.configurator{grid-template-columns:330px minmax(0,1fr);gap:34px;padding-top:28px;padding-bottom:38px}
.configurator .product-visual{top:12px}
.configurator .product-image{height:330px;border-radius:12px}
.configurator .product-image img{max-width:330px;max-height:330px}
.configurator .gallery-label{margin:7px 0 6px;font-size:12px}
.configurator .color-gallery{display:flex;gap:5px;max-height:none;overflow-x:auto;overflow-y:hidden;padding:2px 1px 7px;scroll-snap-type:x proximity;scrollbar-width:thin}
.configurator .color-gallery button{flex:0 0 52px;width:52px;scroll-snap-align:start}
.configurator .available-colors{display:none}
.configurator>div:last-child>.eyebrow{margin:2px 0 7px;font-size:10px;line-height:1.35}
.configurator>div:last-child>h1{font-size:clamp(32px,3.4vw,46px);line-height:1.02;margin:0 0 12px;max-width:760px}
.configurator>div:last-child>.lead{font-size:16px;line-height:1.48;margin:0 0 16px;max-width:760px}
.configurator .from-price{padding:8px 12px;margin:0 0 10px;font-size:15px}
.configurator .price-tiers{margin:0 0 12px}
.configurator .price-tiers summary{padding:10px 13px}
.configurator .mix-promo-product{margin:12px 0;padding:11px 13px}
.configurator .mix-promo-product .mix-promo-symbol{width:30px;height:30px;font-size:20px}
.configurator .mix-promo-product strong{font-size:14px}
.configurator .mix-promo-product p{font-size:12px;line-height:1.35}
.configurator .config-block{padding:15px 0}
.configurator .config-block h2{font-size:18px;margin-bottom:9px}
.colors-config-block .color-instructions{margin:0 0 8px;padding:8px 10px;font-size:12px;line-height:1.35}
.colors-config-block .color-instructions strong{font-size:12px}
.colors-config-block .color-options{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:5px}
.colors-config-block .color-choice{min-height:88px;border-radius:8px;padding:4px}
.colors-config-block .color-choice.active{padding:4px}
.colors-config-block .color-choice img{width:50px;height:50px}
.colors-config-block .color-choice-name{font-size:9px;line-height:1.05}
.colors-config-block .combined-colors{margin-top:7px;padding:7px 9px;font-size:12px}
@media(max-width:900px){.product.configurator{grid-template-columns:280px minmax(0,1fr);gap:25px}.configurator .product-image{height:280px}.configurator .product-image img{max-width:280px;max-height:280px}.configurator>div:last-child>h1{font-size:34px}.colors-config-block .color-options{grid-template-columns:repeat(auto-fill,minmax(68px,1fr))}}
@media(max-width:760px){.product.configurator{grid-template-columns:1fr;gap:18px;padding-top:18px}.configurator .product-image{width:min(100%,360px);height:auto;margin:auto}.configurator .color-gallery{display:flex;max-height:none;overflow-x:auto}.configurator .color-gallery button{flex:0 0 52px}.configurator>div:last-child>h1{font-size:32px}.configurator>div:last-child>.lead{font-size:15px}.colors-config-block .color-options{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:480px){.colors-config-block .color-options{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Compact size picker: several sizes per row without losing stock information. */
.configurator .size-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:6px;border:0;border-radius:0;overflow:visible}
.configurator .size-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;gap:3px 7px;min-height:70px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}
.configurator .size-row:last-child{border:1px solid var(--line)}
.configurator .size-row>strong{align-self:center;font-size:14px;line-height:1.1}
.configurator .size-row>strong small{display:block;margin-top:2px;font-size:9px;color:var(--brand)}
.configurator .size-row>.size-stock{grid-column:1/-1;grid-row:2;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:9.5px;line-height:1.2;color:var(--muted)}
.configurator .size-row>.stepper{grid-column:2;grid-row:1;grid-template-columns:27px 30px 27px}
.configurator .stepper button{height:27px;padding:0;font-size:16px;line-height:1}
.configurator .stepper output{font-size:13px}
.configurator .size-row:has(output:not(:empty)){transition:border-color .15s ease,background .15s ease}
.configurator .size-row.unavailable{min-height:70px}
@media(max-width:980px){.configurator .size-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.configurator .size-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.configurator .size-row{padding:7px;grid-template-columns:minmax(0,1fr) auto}.configurator .size-row>.stepper{grid-template-columns:25px 27px 25px}.configurator .size-row>.size-stock{font-size:9px}}
