/* Customer storefront; scoped components preserve the back-office styles. */
.store-navigation { background:#fff; border-bottom:1px solid #e2e8e5; }
.store-navigation .container { display:flex; gap:30px; overflow-x:auto; scrollbar-width:thin; }
.store-navigation a { flex-shrink:0; padding:17px 0; text-decoration:none; font-size:13px; font-weight:700; border-bottom:3px solid transparent; }
.store-navigation a:hover,.store-navigation a[aria-current] { color:#0c655b; border-bottom-color:#0c655b; }
.store-navigation a:focus-visible,.store-category-links a:focus-visible,.route-shop :focus-visible { outline:3px solid #178d80; outline-offset:4px; }
.route-shop { background:#fafbf8; }
.route-shop .shop-main { padding-top:24px; }
.store-hero { display:grid; grid-template-columns:1.12fr 1fr; min-height:375px; border-radius:20px; overflow:hidden; background:#e9efdf; position:relative; }
.store-hero-copy { padding:44px; position:relative; z-index:1; }
.store-eyebrow { font-size:11px; font-weight:800; letter-spacing:1.7px; color:#426452; }
.store-hero h1 { font-size:clamp(34px,4.5vw,57px); letter-spacing:-2px; line-height:1.05; margin:18px 0; color:#153d35; }
.store-hero h1 em { font-style:normal; color:#48755a; }
.store-hero p { max-width:420px; font-size:15px; line-height:1.7; color:#3c554b; }
.store-hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0 20px; }
.route-shop .btn-primary { background:#145b50; border-color:#145b50; color:#fff; }
.route-shop .btn-primary:hover { background:#0f443c; }
.route-shop .btn-secondary { background:#fff; color:#1b4e42; border-color:#d0dcd3; }
.store-hero-note { font-size:11px; color:#426452; }
.store-print-scene { position:relative; min-height:360px; background:radial-gradient(ellipse at 60% 60%,#c2d2b7 0,transparent 65%); }
.print-poster { position:absolute; width:225px; height:292px; left:22%; top:42px; padding:22px; background:#135b50; transform:rotate(9deg); box-shadow:10px 20px 32px #23422a33; color:#e7f0cd; }
.print-poster>span { font-size:9px; letter-spacing:2px; }
.print-poster strong { display:block; font-size:49px; line-height:1; letter-spacing:-2px; margin-top:22px; }
.print-poster i { display:block; width:48px; height:48px; border-radius:50%; background:#ebba73; margin-top:18px; }
.print-card { position:absolute; background:#fffaf0; width:210px; padding:25px; left:7%; top:245px; transform:rotate(-12deg); box-shadow:2px 8px 0 #e2dacb,4px 13px 0 #f5eee0,8px 22px 25px #23422a29; }
.print-card span { font-size:27px; line-height:1; font-weight:900; color:#195c4d; display:block; }
.print-card small { display:block; font-size:8px; letter-spacing:1.8px; margin-top:19px; color:#46614d; }
.print-sticker { position:absolute; width:103px; height:103px; border-radius:50%; background:#eeac82; right:9%; top:260px; display:grid; place-content:center; text-align:center; font-weight:800; font-size:22px; line-height:1; color:#4a3224; transform:rotate(14deg); box-shadow:0 7px 15px #23422a22; }
.store-service-strip { display:grid; grid-template-columns:repeat(3,1fr); padding:22px 0; border-bottom:1px solid #e0e6dc; gap:18px; }
.store-service-strip span { display:flex; align-items:center; justify-content:center; gap:10px; font-size:12px; color:#40564b; }
.store-service-strip i { color:#1a7767; font-size:16px; }
.store-section-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:32px 0 17px; }
.store-section-heading h2 { font-size:24px; letter-spacing:-.7px; margin:5px 0 0; color:#193d33; }
.store-section-heading a { color:#225c4a; font-size:13px; font-weight:700; text-underline-offset:4px; }
.store-category-links { display:flex; gap:12px; overflow-x:auto; padding:3px 3px 13px; }
.store-category-links a { flex:1 0 175px; max-width:255px; background:#fff; border:1px solid #dce5d7; border-radius:12px; padding:18px; display:grid; grid-template-columns:1fr auto; gap:9px; text-decoration:none; transition:background .15s; }
.store-category-links a:hover { background:#edf3e8; }
.store-category-links span { grid-column:1/-1; font-weight:700; font-size:14px; color:#244c3e; }
.store-category-links small { font-size:11px; color:#586b60; }
.store-category-links i { font-size:12px; color:#396950; }
#catalogue { scroll-margin-top:120px; min-width:0; }
#catalogue[aria-busy=true] { opacity:.5; cursor:progress; }
.store-filters { background:#fff; border:1px solid #dce5d7; padding:20px; border-radius:12px; display:grid; grid-template-columns:1.4fr 1.1fr 1fr 1fr; gap:16px; }
.store-filters>div { min-width:0; }
.store-filters label { display:block; font-size:11px; font-weight:700; color:#486151; margin-bottom:7px; }
.store-filters input,.store-filters select { width:100%; min-width:0; border:1px solid #cfdacf; background:#fff; padding:11px; border-radius:6px; font:inherit; font-size:13px; color:#243e30; min-height:42px; }
.store-filter-actions { display:flex; align-items:flex-end; gap:15px; }
.store-filter-actions a { padding-bottom:12px; font-size:12px; }
.route-shop .shop-controls { background:transparent; border:0; box-shadow:none; padding:18px 0; margin:0; font-size:12px; color:#52675b; }
.route-shop .product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.route-shop .product-card { border-radius:12px; box-shadow:none; border-color:#dce5d7; display:flex; flex-direction:column; }
.route-shop .product-card-content { flex:1; display:flex; flex-direction:column; gap:12px; padding:18px; }
.route-shop .product-card-content>form,.route-shop .product-card-content>.btn { margin-top:auto; }
.route-shop .product-image { background:#f0f2e9; aspect-ratio:1.2; }
.route-shop .product-image img { object-fit:contain; }
.route-shop .product-category { color:#48664c; background:transparent; padding:0; font-size:10px; letter-spacing:.7px; text-transform:uppercase; }
.route-shop .product-card h3 { font-size:16px; line-height:1.4; }
.route-shop .product-card-content>p:not(.price) { font-size:12px; min-height:36px; }
.route-shop .product-card .status-badge { font-size:10px; align-self:flex-start; }
.route-shop .product-card .price { font-size:15px; color:#1a5f4c; }
.route-shop .product-card form { grid-template-columns:auto 64px 1fr; }
.route-shop .product-card .btn { font-size:12px; justify-content:center; }
.route-shop .pagination { align-items:center; margin:28px 0; font-size:13px; }
.store-how { margin:42px 0 15px; display:grid; grid-template-columns:1fr 1.5fr; gap:40px; background:#eef2e9; border-radius:16px; padding:32px; color:#264937; }
.store-how h2 { font-size:26px; letter-spacing:-.7px; line-height:1.25; }
.store-how a { font-size:13px; }
.store-how ol { list-style:none; counter-reset:steps; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; padding:0; }
.store-how li { counter-increment:steps; font-size:13px; }
.store-how li:before { content:'0' counter(steps); display:block; font-size:26px; color:#5b7b5e; margin-bottom:16px; }
.store-how p { font-size:12px; line-height:1.65; }
.store-breadcrumb { display:flex; gap:12px; font-size:12px; margin-bottom:20px; }
.store-line-estimate { border:1px solid #d4e3d5; background:#f2f7ed; border-radius:9px; display:grid; grid-template-columns:1fr auto; gap:8px; padding:18px; margin:20px 0; }
.store-line-estimate strong { color:#185e4c; font-size:24px; }
.store-line-estimate small { grid-column:1/-1; color:#48644f; }
.store-help { border-top:1px solid #dce5d7; margin:24px 0 12px; padding-top:18px; font-size:13px; }
.store-help summary { cursor:pointer; font-weight:700; }
.store-help p { padding-top:12px; }
.customer-next-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:20px 0 28px; }
.customer-next-steps a { display:flex; gap:14px; align-items:center; padding:21px; background:#edf5ef; border:1px solid #d2e4d7; border-radius:12px; text-decoration:none; color:#22533e; }
.customer-next-steps small { display:block; line-height:1.5; margin-top:7px; color:#496851; }
.customer-next-steps i { font-size:22px; }
.store-progress { display:flex; list-style:none; justify-content:center; gap:28px; font-size:13px; padding:0; margin:0 0 24px; color:#647469; }
.store-progress [aria-current] { color:#175d47; font-weight:700; }
.store-progress a { text-decoration:none; }
@media(min-width:960px) { .route-shop .product-details { align-self:start; } }
@media(max-width:1000px) { .route-shop .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .store-hero-copy { padding:32px; } .store-print-scene { transform:scale(.85); transform-origin:center; } .store-how { grid-template-columns:1fr; gap:10px; } .store-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .store-navigation .container { gap:22px; } .store-hero { grid-template-columns:1fr; } .store-hero-copy { padding:28px; } .store-hero h1 { font-size:43px; } .store-print-scene { display:none; } .store-service-strip { grid-template-columns:1fr; gap:13px; align-items:start; } .store-service-strip span { justify-content:flex-start; } .route-shop .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .store-section-heading { align-items:flex-start; flex-direction:column; gap:12px; } .store-filters { padding:16px; gap:12px; } .store-filter-search { grid-column:1/-1; } .store-filter-actions { align-items:center; flex-wrap:wrap; } .store-filter-actions a { padding:0; } .store-how { padding:24px; } .store-how ol { grid-template-columns:1fr; gap:14px; } .store-how li:before { float:left; margin:0 16px 22px 0; } .customer-next-steps { grid-template-columns:1fr; } .store-progress { gap:16px; font-size:11px; } }
@media(max-width:460px) { .route-shop .product-grid { grid-template-columns:1fr; } .route-shop .product-image { aspect-ratio:1.55; } .store-hero-actions { display:grid; } .store-filters { grid-template-columns:1fr 1fr; } .store-filters .store-filter-actions { grid-column:1/-1; } .store-filter-actions .btn { flex:1; } }
