/* Assortment-led homepage. Scoped to avoid changes to category and checkout views. */
.shop-home { background:#fff; padding-bottom:36px; }
.shop-assurances { display:flex; justify-content:space-between; gap:12px; padding-block:13px; color:#40506a; font-size:12px; }
.shop-assurances > * { display:flex; align-items:center; gap:7px; text-decoration:none; }
.shop-assurances svg { color:#3159a3; }
.shop-intro { display:grid; grid-template-columns:1fr 1.1fr; align-items:center; gap:26px; padding:24px 30px; background:#edf2fc; border-radius:18px; overflow:hidden; }
.shop-kicker { margin:0 0 10px; font-size:12px; font-weight:750; letter-spacing:.09em; text-transform:uppercase; color:#4a6085; }
.shop-intro h1 { margin:0; color:#14274b; font-size:clamp(32px,3.5vw,45px); line-height:1.03; letter-spacing:-.045em; }
.shop-intro__copy > p:not(.shop-kicker) { color:#40516e; font-size:14px; margin:16px 0 20px; }
.shop-cta { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:44px; padding:11px 20px; border-radius:8px; background:#2c53a2; color:#fff; text-decoration:none; font-size:14px; font-weight:750; }
.shop-cta:hover { background:#173c83; }
.shop-home a:focus-visible { outline:3px solid #3565b5; outline-offset:4px; }
.shop-intro__products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:center; }
.shop-intro__item { padding:12px 10px; border-radius:12px; background:#fff; text-decoration:none; color:#172d53; box-shadow:0 8px 20px rgb(31 62 120 / 7%); transition:transform .15s; }
.shop-intro__item:nth-child(2) { margin-top:36px; }
.shop-intro__item:nth-child(3) { margin-top:-20px; }
.shop-intro__item:hover { transform:translateY(-3px); }
.shop-intro__item img { width:100%; height:115px; object-fit:contain; }
.shop-intro__item span { display:flex; align-items:center; justify-content:space-between; gap:4px; min-height:40px; font-size:12px; font-weight:750; line-height:1.4; padding-top:8px; }
.shop-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:19px; }
.shop-heading h2 { margin:0; color:#162b50; font-size:clamp(23px,2.4vw,29px); line-height:1.2; letter-spacing:-.03em; }
.shop-heading p { margin:7px 0 0; color:#617086; font-size:14px; }
.shop-heading > a { color:#2e55a2; font-size:13px; font-weight:750; text-decoration:none; flex-shrink:0; }
.shop-heading > a:hover { text-decoration:underline; }
.shop-departments { padding-top:30px; scroll-margin-top:20px; }
.shop-departments__grid { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:13px; }
.shop-department { color:#203555; text-decoration:none; text-align:center; font-size:12px; line-height:1.35; }
.shop-department__image { height:108px; display:grid; place-items:center; padding:13px; margin-bottom:10px; border:1px solid #edf0f4; border-radius:12px; background:#fff; transition:border-color .15s; }
.shop-department__image img { width:100%; height:80px; object-fit:contain; }
.shop-department:hover .shop-department__image { border-color:#8da7d0; }
.shop-department:hover strong { text-decoration:underline; }
.shop-shortcuts { display:flex; gap:8px; flex-wrap:wrap; margin-top:21px; }
.shop-shortcuts a { display:inline-flex; align-items:center; min-height:38px; padding:7px 12px; background:#f4f6f9; border:1px solid #e8ecf2; border-radius:7px; color:#40526c; text-decoration:none; font-size:12px; }
.shop-shortcuts a:hover { background:#e8effb; }
.shop-shelf { padding-top:38px; }
.shop-products { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.shop-products .product-card { box-shadow:none; border-radius:12px; }
.shop-products .product-card__image { height:180px; padding:20px; }
.shop-products .product-card__body { padding:16px; }
.shop-products .product-card h3 { min-height:44px; font-size:14px; line-height:1.4; margin:5px 0 10px; }
.shop-products .product-price { font-size:22px; }
.shop-products .product-price small { font-size:11px; }
.shop-products .product-card__purchase { margin-top:10px; }
.shop-products .product-card__purchase > button[type=submit] { border-radius:7px; min-height:42px; }
.shop-products .product-card__purchase > label { font-size:12px; }
.shop-products .stock-status { font-size:12px; margin:6px 0 0; }
.shop-products .product-card__delivery { color:#516079; font-size:12px; margin:2px 0 0; }
.shop-products .product-card__unit { font-size:11px; margin:3px 0 5px; color:#667085; }
.shop-features { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding-top:34px; }
.shop-feature { display:grid; grid-template-columns:1fr 160px; align-items:center; gap:16px; padding:27px; border-radius:13px; background:#f6eee3; color:#2c3545; text-decoration:none; }
.shop-feature--cleaning { background:#eaf3eb; }
.shop-feature h2 { font-size:25px; line-height:1.13; letter-spacing:-.03em; margin:0 0 24px; }
.shop-feature span { display:flex; gap:12px; align-items:center; font-size:13px; font-weight:750; }
.shop-feature img { width:160px; height:155px; object-fit:contain; mix-blend-mode:multiply; }
.shop-feature:hover span { text-decoration:underline; }
.shop-repeat { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:28px 32px; margin-top:42px; background:#edf2fc; border-radius:14px; }
.shop-repeat h2 { margin:0; color:#192f54; font-size:27px; }
.shop-repeat p:last-child { margin:6px 0 0; color:#52617a; font-size:14px; }
.shop-repeat__links { display:flex; flex-direction:column; align-items:center; gap:12px; font-size:13px; }
.shop-help { display:flex; flex-wrap:wrap; align-items:center; gap:18px; font-size:13px; color:#56627a; margin-top:28px; }
.shop-help p { flex:1 1 340px; margin:0; }
.shop-help strong { color:#24395c; }
.shop-help a { color:#2e55a2; }
@media(max-width:1000px) {
 .shop-intro { padding:28px; grid-template-columns:1fr 1fr; gap:18px; }
 .shop-intro__products { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .shop-intro__item:nth-child(3) { display:none; }
 .shop-departments__grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:17px; }
 .shop-department__image { height:100px; }
 .shop-feature { grid-template-columns:1fr 110px; padding:23px; }
 .shop-feature img { width:110px; height:125px; }
 .shop-products { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 .shop-assurances { font-size:11px; justify-content:center; padding-block:10px; }
 .shop-assurances { flex-wrap:wrap; gap:8px 18px; }
 .shop-assurances > :first-child { flex-basis:100%; justify-content:center; font-weight:750; }
 .shop-assurances > :nth-child(2),.shop-assurances > :nth-child(3) { display:flex; }
 .shop-intro { grid-template-columns:1fr; padding:23px; gap:20px; border-radius:12px; }
 .shop-intro h1 { font-size:37px; }
 .shop-intro__copy > p:not(.shop-kicker) { font-size:13px; margin:12px 0 16px; }
 .shop-desktop-break { display:none; }
 .shop-intro__products { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
 .shop-intro__item,.shop-intro__item:nth-child(2),.shop-intro__item:nth-child(3) { margin:0; display:block; padding:8px; border-radius:8px; box-shadow:none; }
 .shop-intro__item img { height:72px; }
 .shop-intro__item span { font-size:10px; min-height:32px; padding-top:5px; }
 .shop-intro__item svg { display:none; }
 .shop-departments { padding-top:25px; }
 .shop-heading { align-items:start; flex-wrap:wrap; gap:9px; margin-bottom:15px; }
 .shop-heading > a { font-size:12px; }
 .shop-heading p { font-size:12px; }
 .shop-departments__grid { gap:15px 10px; }
 .shop-department { font-size:11px; }
 .shop-department__image { height:76px; padding:8px; margin-bottom:7px; border-radius:9px; }
 .shop-department__image img { height:60px; }
 .shop-shortcuts { gap:7px; margin-top:19px; }
 .shop-shortcuts a { font-size:11px; min-height:38px; padding:6px 9px; }
 .shop-shelf { padding-top:30px; }
 .shop-products { gap:10px; }
 .shop-products .product-card__image { height:137px; padding:13px; }
 .shop-products .product-card__body { padding:11px; }
 .shop-products .product-card h3 { font-size:12px; min-height:51px; }
 .shop-products .product-price { font-size:19px; }
 .shop-products .product-card__purchase { display:flex; flex-direction:column; gap:7px; }
 .shop-products .quantity-control { width:100%; }
 .shop-products .product-card__purchase > button[type=submit] { width:100%; padding-inline:4px; font-size:12px; }
 .shop-products .product-card__purchase > small { font-size:10px; }
 .shop-features { grid-template-columns:1fr; gap:12px; padding-top:25px; }
 .shop-feature { grid-template-columns:1fr 120px; padding:22px; }
 .shop-feature h2 { font-size:25px; margin-bottom:17px; }
 .shop-feature img { width:120px; height:130px; }
 .shop-repeat { flex-direction:column; align-items:start; padding:24px; gap:19px; margin-top:30px; }
 .shop-repeat__links { align-items:start; }
 .shop-help { gap:14px; }
}
@media(prefers-reduced-motion:reduce) { .shop-intro__item { transition:none; } }

.shop-image-unavailable { color:#69768a; font-size:12px; text-align:center; padding:22px; }

@media(max-width:600px) {
 .shop-intro { padding:20px 23px; }
 .shop-intro h1 { font-size:31px; }
 .shop-intro h1 br { display:none; }
 .shop-intro__products { display:none; }
 .shop-kicker { font-size:10px; margin-bottom:8px; }
 .shop-intro__copy > p:not(.shop-kicker) { margin:10px 0 13px; }
}
.shop-assurances__terms { margin-top:-5px; margin-bottom:12px; color:#617086; font-size:10px; text-align:center; }
.shop-assurances__terms a { color:inherit; }
.shop-home [hidden] { display:none !important; }
.shop-carousel-controls { display:flex; gap:8px; }
.shop-carousel-controls button { width:42px; height:42px; background:#fff; color:#234e97; border:1px solid #d8e2f0; border-radius:50%; cursor:pointer; font-size:20px; }
.shop-carousel-controls button:disabled { opacity:.35; cursor:default; }
.shop-carousel-controls button:focus-visible,.shop-discovery__track:focus-visible { outline:3px solid #3565b5; outline-offset:3px; }
.shop-discovery__track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding:4px 2px 14px; }
.shop-discovery__track > .product-card { flex:0 0 calc((100% - 48px)/4); scroll-snap-align:start; }
@media(max-width:1000px) { .shop-discovery__track > .product-card { flex-basis:calc((100% - 32px)/3); } }
@media(max-width:600px) { .shop-discovery__track > .product-card { flex-basis:calc((100% - 10px)/2); } .shop-assurances__terms { font-size:9px; } .shop-discovery .shop-heading { align-items:center; } }
