/* Storefront V2: scoped rules prevent homepage/Admin selector collisions. */
.shop-page{background:#fbfaf7;color:#163e33}
.shop-page .wrap{width:min(1200px,calc(100% - 40px));max-width:100%;margin-inline:auto}
.shop-page main,.shop-page .navbar,.shop-page .shop-controls,.shop-page .shop-search{min-width:0}
.shop-page .navbar{gap:16px;flex-wrap:wrap;padding-block:14px}
.shop-page .shop-hero{padding:36px 0 24px;background:linear-gradient(120deg,#edf5ed,#faf5e9)}
.shop-page .shop-hero-grid{display:block}
.shop-page .shop-hero-card{display:none}
.shop-page .shop-hero-copy{max-width:760px}
.shop-page .shop-hero h1{font-size:clamp(30px,4vw,52px);line-height:1.08;letter-spacing:-.035em;margin:12px 0 16px}
.shop-page .shop-hero p{font-size:16px;line-height:1.7;max-width:650px}
.shop-page .shop-hero .btn{margin-top:10px}
.shop-page .shop-catalogue{padding:32px 0 48px}
.shop-page .shop-section-heading{display:block}
.shop-page h2{font-size:clamp(25px,3vw,36px);line-height:1.18;letter-spacing:-.025em}
.shop-page .shop-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,220px) auto;align-items:end;gap:16px;margin:24px 0 18px}
.shop-page .shop-search{min-width:0;width:100%;background:#fff;border-radius:12px}
.shop-page .shop-search input{min-width:0;min-height:48px;font-size:16px}
.shop-page .shop-sort{display:grid;gap:5px;font-size:13px;font-weight:700}
.shop-page .shop-sort select{width:100%;min-height:48px;border:1px solid #cad7ce;border-radius:12px;background:#fff;color:#163e33;padding:10px;font:inherit;font-size:16px}
.shop-page .shop-result-count{white-space:normal;align-self:center}
.shop-page .category-filter{display:flex;flex-wrap:wrap;gap:8px;overflow:visible;padding:0 0 18px;border-bottom:1px solid #dce5dd}
.shop-page .category-filter button{max-width:100%;white-space:normal;min-height:42px;border-radius:10px;padding:9px 13px;font-size:13px;background:#fff;color:#254d40;border:1px solid #cfddd3}
.shop-page .category-filter button.active{background:#15624a;border-color:#15624a;color:#fff}
.shop-page .product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:24px 0 40px;min-width:0}
.shop-page .product-grid>.product-card{position:relative;inset:auto;left:auto;right:auto;bottom:auto;top:auto;width:auto;max-width:none;margin:0;padding:0;display:flex;flex-direction:column;border:1px solid #dce5dd;border-radius:18px;background:#fff;min-width:0;text-decoration:none;box-shadow:0 4px 16px #173d3008}
.shop-page .product-card-media{position:relative;aspect-ratio:1;min-height:0;height:auto;background:#f1f5ed;overflow:hidden}
.shop-page .product-card-media img{width:100%;height:100%;max-height:none;object-fit:contain;padding:22px;filter:none}
.shop-page .product-card-body{display:flex;flex:1;flex-direction:column;padding:18px;gap:10px}
.shop-page .product-brand{font-size:11px;letter-spacing:.08em;color:#60776b;font-weight:700;text-transform:uppercase}
.shop-page .product-card h3{font-size:18px;line-height:1.4;margin:0;overflow-wrap:anywhere}
.shop-page .product-card-description{font-size:13px;line-height:1.55;color:#687c70;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.shop-page .product-card-footer{margin-top:auto;padding-top:12px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid #eaf0eb}
.shop-page .product-price{font-size:21px;color:#174e3a}.shop-page .product-unit{display:block;font-size:12px!important;text-transform:none!important;font-weight:400!important;letter-spacing:0;color:#6e7e74!important}
.shop-page .product-link{font-size:13px;font-weight:700}.shop-page .shop-empty{margin:24px 0;padding:38px 20px;background:#fff;border-radius:18px}
.shop-page .shop-assurance{padding:30px 0}.shop-page .shop-assurance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.shop-page [hidden]{display:none!important}.shop-page :focus-visible{outline:3px solid #d5a747;outline-offset:3px}
/* Sidebar keeps its footer visible while the growing navigation scrolls. */
.admin-app .sidebar{height:100vh;height:100dvh;overflow:hidden;padding-bottom:max(16px,env(safe-area-inset-bottom))}
.admin-app .sidebar-head,.admin-app .sidebar-foot{flex-shrink:0}
.admin-app .admin-nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;align-content:start;overscroll-behavior:contain;padding-bottom:12px}
.admin-app .sidebar-foot{margin-top:0;background:#fff}.admin-app [data-logout]{min-height:44px}
.admin-app .catalogue-management,.admin-app .cm-layout,.admin-app .cm-list-card,.admin-app .cm-editor,.admin-app .cm-toolbar,.admin-app .cm-row{min-width:0;max-width:100%}
.admin-app .cm-division-tabs,.admin-app .cm-resource-tabs{flex-wrap:wrap;overflow:visible;min-width:0}
.admin-app .cm-division-tabs button.active,.admin-app .cm-resource-tabs button.active{background:#155f45;border-color:#155f45;color:#fff}
.admin-app .cm-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto}.admin-app .cm-toolbar input{width:100%;min-width:0}
.admin-app .cm-row-head{min-width:0;align-items:flex-start}.admin-app .cm-row-head>strong{min-width:0;overflow-wrap:anywhere}.admin-app .cm-status{flex-shrink:0}
.admin-app .cm-primary{background:#155f45;color:#fff}.admin-app .cm-form-grid>*{min-width:0}
@media(max-width:1000px){.shop-page .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-page .shop-hero-grid{grid-template-columns:1fr}.shop-page .desktop-nav{display:none}.admin-app .cm-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.shop-page .wrap{width:calc(100% - 28px)}.shop-page .navbar{gap:10px}.shop-page .nav-actions{flex-wrap:wrap;gap:8px}.shop-page .shop-hero{padding:24px 0}.shop-page .shop-controls{grid-template-columns:minmax(0,1fr);gap:12px}.shop-page .shop-result-count{margin:0}.shop-page .product-grid{gap:12px}.shop-page .product-card-body{padding:12px}.shop-page .product-card h3{font-size:15px}.shop-page .product-price{font-size:18px}.shop-page .product-card-media img{padding:12px}.shop-page .product-card-description{display:none}.shop-page .shop-assurance-grid{grid-template-columns:1fr}.admin-app .cm-toolbar{grid-template-columns:minmax(0,1fr)}.admin-app .cm-toolbar .button{width:100%}.admin-app .cm-form-grid,.admin-app .cm-descriptions{grid-template-columns:minmax(0,1fr)}.admin-app .cm-editor input,.admin-app .cm-editor select,.admin-app .cm-editor textarea{min-width:0;font-size:16px}}
@media(max-width:360px){.shop-page .product-grid{grid-template-columns:minmax(0,1fr)}}
