:root {
  --shop-ink: #122033;
  --shop-muted: #667085;
  --shop-border: #e6eaf0;
  --shop-soft: #f6f8fb;
  --shop-brand: #165dff;
  --shop-accent: #15a66d;
  --shop-radius: 18px;
}

body.storefront-page { background: #fff; color: var(--shop-ink); }
.shop-trustbar { background:#0e1b2b; color:#e9f0fa; font-size:.84rem; }
.shop-header { position:sticky; top:56px; z-index:1015; background:rgba(255,255,255,.96); backdrop-filter:blur(12px); border-bottom:1px solid var(--shop-border); }
.shop-logo { font-weight:800; font-size:1.15rem; color:var(--shop-ink); text-decoration:none; white-space:nowrap; }
.shop-search-wrap { position:relative; flex:1 1 420px; }
.shop-search { min-height:48px; border-radius:999px; padding-left:46px; padding-right:48px; background:var(--shop-soft); border-color:transparent; }
.shop-search:focus { background:#fff; border-color:#8bb3ff; box-shadow:0 0 0 .22rem rgba(22,93,255,.12); }
.shop-search-icon { position:absolute; left:17px; top:50%; transform:translateY(-50%); color:#667085; }
.shop-search-results { position:absolute; top:calc(100% + 8px); left:0; right:0; background:#fff; border:1px solid var(--shop-border); border-radius:16px; box-shadow:0 18px 45px rgba(18,32,51,.16); max-height:420px; overflow:auto; z-index:1080; }
.shop-search-result { display:flex; gap:.75rem; padding:.75rem; text-decoration:none; color:inherit; border-bottom:1px solid #f0f2f5; }
.shop-search-result:hover { background:#f5f8ff; }
.shop-search-thumb { width:48px; height:48px; object-fit:cover; border-radius:10px; background:#eef1f5; }
.shop-icon-btn { width:44px; height:44px; border-radius:14px; display:grid; place-items:center; position:relative; }
.shop-count-badge { position:absolute; right:-6px; top:-6px; min-width:20px; height:20px; display:grid; place-items:center; border-radius:999px; font-size:.7rem; }
.shop-location-select { min-width:190px; border-radius:14px; }
.shop-hero { border-radius:26px; overflow:hidden; background:linear-gradient(135deg,#102a56,#165dff 58%,#56a5ff); color:#fff; min-height:330px; position:relative; }
.shop-hero::after { content:""; position:absolute; width:420px; height:420px; border-radius:50%; background:rgba(255,255,255,.09); right:-100px; top:-180px; }
.shop-hero-content { position:relative; z-index:2; max-width:660px; padding:3.5rem; }
.shop-hero h1 { font-size:clamp(2rem,4vw,4rem); font-weight:850; line-height:1.04; }
.shop-hero .lead { color:#e5efff; }
.shop-section-title { font-size:1.55rem; font-weight:800; }
.shop-category-strip { display:flex; gap:.7rem; overflow:auto; padding-bottom:.45rem; scrollbar-width:thin; }
.shop-category-chip { border:1px solid var(--shop-border); background:#fff; border-radius:999px; padding:.7rem 1rem; white-space:nowrap; text-decoration:none; color:var(--shop-ink); font-weight:600; }
.shop-category-chip:hover,.shop-category-chip.active { border-color:var(--shop-brand); color:var(--shop-brand); background:#f3f7ff; }
.shop-feature-row { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(220px,280px); gap:1rem; overflow:auto; padding-bottom:.5rem; scroll-snap-type:x mandatory; }
.shop-feature-row > * { scroll-snap-align:start; }
.shop-catalog-layout { display:grid; grid-template-columns:270px minmax(0,1fr); gap:1.5rem; }
.shop-filter-panel { border:1px solid var(--shop-border); border-radius:var(--shop-radius); padding:1.1rem; height:max-content; position:sticky; top:145px; }
.shop-filter-group + .shop-filter-group { border-top:1px solid var(--shop-border); padding-top:1rem; margin-top:1rem; }
.shop-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.shop-product-card { border:1px solid var(--shop-border); border-radius:18px; overflow:hidden; background:#fff; transition:.18s ease; position:relative; min-width:0; }
.shop-product-card:hover { transform:translateY(-3px); box-shadow:0 15px 34px rgba(18,32,51,.12); border-color:#bfcef0; }
.shop-product-media { display:block; height:190px; position:relative; background:linear-gradient(135deg,#f5f7fa,#e8edf5); overflow:hidden; }
.shop-product-media img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.shop-product-card:hover .shop-product-media img { transform:scale(1.035); }
.shop-product-placeholder { height:100%; display:grid; place-items:center; font-size:3rem; color:#96a1b2; }
.shop-product-actions { position:absolute; right:.6rem; top:.6rem; display:grid; gap:.45rem; z-index:3; }
.shop-round-action { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; border:0; background:rgba(255,255,255,.94); box-shadow:0 4px 14px rgba(18,32,51,.15); }
.shop-round-action.active { color:#dc3545; }
.shop-product-badges { position:absolute; left:.6rem; top:.6rem; display:flex; flex-wrap:wrap; gap:.35rem; max-width:72%; z-index:3; }
.shop-product-body { padding:1rem; }
.shop-product-name { display:block; font-weight:750; color:var(--shop-ink); text-decoration:none; line-height:1.3; min-height:42px; }
.shop-product-desc { color:var(--shop-muted); font-size:.86rem; height:40px; overflow:hidden; margin:.45rem 0; }
.shop-price { font-size:1.25rem; font-weight:800; }
.shop-compare-price { color:#98a2b3; text-decoration:line-through; font-size:.86rem; }
.shop-stock { font-size:.78rem; }
.shop-add-btn { border-radius:12px; min-height:42px; font-weight:700; }
.shop-skeleton { min-height:340px; border-radius:18px; background:linear-gradient(90deg,#f1f3f6 25%,#fafbfc 37%,#f1f3f6 63%); background-size:400% 100%; animation:shop-loading 1.4s ease infinite; }
@keyframes shop-loading { 0%{background-position:100% 0}100%{background-position:0 0} }
.shop-pagination .page-link { border-radius:10px; margin:0 .2rem; border-color:var(--shop-border); color:var(--shop-ink); }
.shop-offcanvas { width:min(440px,100vw)!important; }
.shop-cart-line { display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:.8rem; padding:1rem 0; border-bottom:1px solid var(--shop-border); }
.shop-cart-thumb { width:72px; height:72px; object-fit:cover; border-radius:13px; background:#eef1f5; }
.shop-qty { display:flex; align-items:center; width:max-content; border:1px solid var(--shop-border); border-radius:10px; overflow:hidden; }
.shop-qty button { border:0; background:#fff; width:34px; height:32px; }
.shop-qty input { width:44px; border:0; text-align:center; outline:0; }
.shop-cart-summary { background:var(--shop-soft); border-radius:16px; padding:1rem; }
.shop-cart-row { display:flex; justify-content:space-between; gap:1rem; margin-bottom:.35rem; }
.shop-cart-total { font-size:1.55rem; font-weight:850; }
.shop-quick-gallery { min-height:390px; background:var(--shop-soft); border-radius:18px; overflow:hidden; display:grid; place-items:center; }
.shop-quick-gallery img { max-width:100%; max-height:460px; object-fit:contain; }
.shop-plan-card { border:1px solid var(--shop-border); border-radius:18px; padding:1.1rem; height:100%; position:relative; }
.shop-plan-card.featured { border:2px solid var(--shop-brand); box-shadow:0 12px 30px rgba(22,93,255,.13); }
.shop-plan-price { font-size:1.65rem; font-weight:850; }
.shop-trust-card { border:1px solid var(--shop-border); border-radius:16px; padding:1rem; height:100%; }
.shop-mobile-filter { display:none; }
.shop-empty { text-align:center; color:var(--shop-muted); padding:4rem 1rem; border:1px dashed var(--shop-border); border-radius:18px; }
.shop-checkout-shell { max-width:1180px; margin:auto; }
.shop-checkout-card { border:1px solid var(--shop-border); border-radius:20px; box-shadow:0 10px 30px rgba(18,32,51,.06); }
.shop-sticky-summary { position:sticky; top:90px; }

@media (max-width:1399.98px){ .shop-product-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (max-width:991.98px){
  .shop-header{top:56px}.shop-catalog-layout{grid-template-columns:1fr}.shop-filter-panel{position:static;display:none}.shop-filter-panel.show{display:block}.shop-mobile-filter{display:inline-flex}.shop-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.shop-hero-content{padding:2.3rem}.shop-location-select{min-width:150px}.shop-sticky-summary{position:static}
}
@media (max-width:575.98px){
  .shop-header{top:54px}.shop-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.shop-product-media{height:145px}.shop-product-body{padding:.75rem}.shop-product-desc{display:none}.shop-product-name{font-size:.9rem}.shop-price{font-size:1.05rem}.shop-add-btn{font-size:.82rem}.shop-hero{min-height:285px}.shop-hero-content{padding:1.8rem}.shop-hero h1{font-size:2rem}.shop-feature-row{grid-auto-columns:minmax(200px,74vw)}
}
