.btn-white{ background:var(--white); color:var(--green-deep); }

.btn-white:hover{ box-shadow:var(--shadow-md); }

nav.primary a.active{ color:var(--green-deep); }

.util-btn.active{ color:var(--green-deep); }

section.bg-white{ background:var(--white); }

section.bg-warm{ background:var(--warm); }

section.bg-soft{ background:var(--soft); }

.section-link{ font-size:14px; font-weight:700; color:var(--green-deep); display:flex; align-items:center; gap:6px; flex-shrink:0; white-space:nowrap; padding-bottom:4px; }

.section-link svg{ width:15px; height:15px; }

.product-card{
    position:relative; background:var(--white); border:1px solid var(--line); border-radius:var(--r-card);
    padding:14px; display:flex; flex-direction:column; gap:10px; flex-shrink:0;
    transition:box-shadow .2s ease, transform .2s ease;
  }

.product-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }

.product-link{ display:contents; }

.product-art{ aspect-ratio:1/1; background:var(--warm); border-radius:10px; overflow:hidden; position:relative; }

.product-art svg{ width:100%; height:100%; transition:transform .3s ease; }

.product-card:hover .product-art svg{ transform:scale(1.05); }

.save-tag{ position:absolute; top:8px; left:8px; background:var(--deep-panel-bg); color:var(--deep-panel-fg); font-size:10.5px; font-weight:800; padding:4px 8px; border-radius:6px; letter-spacing:.02em; }

.stock-tag{ position:absolute; top:8px; left:8px; background:var(--ink-soft); color:var(--white); font-size:10.5px; font-weight:800; padding:4px 8px; border-radius:6px; letter-spacing:.02em; }

.product-name{ font-size:14.5px; font-weight:700; line-height:1.3; min-height:2.6em; }

.price-row{ display:flex; align-items:baseline; gap:8px; }

.price-now{ font-size:16.5px; font-weight:800; }

.price-prev{ font-size:13px; color:var(--ink-soft); text-decoration:line-through; }

.card-control{ height:40px; }

.add-btn{
    display:flex; align-items:center; justify-content:center; gap:6px; width:100%; height:100%;
    background:var(--soft); color:var(--green-deep); border:none; border-radius:var(--r-btn);
    padding:10px; font-weight:700; font-size:13.5px; transition:background .15s ease, color .15s ease;
  }

.add-btn:hover{ background:var(--green); color:var(--on-green); }

.add-btn:disabled{ background:var(--warm); color:var(--ink-soft); cursor:not-allowed; }

.add-btn svg{ width:16px; height:16px; }

.qty-stepper{
    display:flex; align-items:center; justify-content:space-between; width:100%; height:100%;
    background:var(--green); border-radius:var(--r-btn); padding:0 4px;
  }

.qty-stepper.pulse{ animation:qtyPulse .22s ease; }

@keyframes qtyPulse{ 0%{ transform:scale(1); } 40%{ transform:scale(1.04); } 100%{ transform:scale(1); } }

.qty-btn{
    width:30px; height:30px; border-radius:8px; background:rgba(255,255,255,.16); color:var(--on-green);
    border:none; font-size:17px; font-weight:800; line-height:1; display:flex; align-items:center; justify-content:center;
    transition:background .15s ease;
  }

.qty-btn:hover{ background:rgba(255,255,255,.32); }

.qty-value{ color:var(--on-green); font-weight:800; font-size:14.5px; min-width:20px; text-align:center; font-variant-numeric:tabular-nums; }

.grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }

@media (max-width:640px){ .grid{ grid-template-columns:repeat(2,1fr); gap:12px; } }

@media (max-width:640px){ .product-card{ padding:10px; } }

.breadcrumb{ padding:16px 0 0; font-size:13px; color:var(--ink-soft); display:flex; align-items:center; gap:6px; }

.breadcrumb a:hover{ color:var(--green-deep); }

.breadcrumb .current{ color:var(--ink); font-weight:600; }

.cart-head{ padding:14px 0 28px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }

.cart-head h1{ font-size:32px; }

.cart-head .count{ color:var(--ink-soft); font-size:14.5px; margin-top:6px; }

.clear-link{ font-size:12.5px; font-weight:700; color:var(--green-deep); background:none; border:none; }

.clear-link:hover{ text-decoration:underline; }

.cart-layout{ display:grid; grid-template-columns:1fr 360px; gap:36px; align-items:flex-start; padding-bottom:24px; }

@media (max-width:900px){ .cart-layout{ grid-template-columns:1fr; } }

.cart-items-panel{ background:var(--white); border:1px solid var(--line); border-radius:var(--r-card); overflow:hidden; }

.cart-items-head{
    display:grid; grid-template-columns:90px 1fr 100px 140px 100px; gap:16px; align-items:center;
    padding:14px 20px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft);
    border-bottom:1px solid var(--line);
  }

@media (max-width:700px){ .cart-items-head{ display:none; } }

.cart-item{
    display:grid; grid-template-columns:90px 1fr 100px 140px 100px; gap:16px; align-items:center;
    padding:18px 20px; border-bottom:1px solid var(--line);
  }

.cart-item:last-child{ border-bottom:none; }

.cart-item-art{ width:80px; height:80px; background:var(--warm); border-radius:10px; overflow:hidden; display:block; }

.cart-item-art svg{ width:100%; height:100%; }

.cart-item-info{ min-width:0; }

.cart-item-name{ font-size:14.5px; font-weight:700; display:block; margin-bottom:3px; }

.cart-item-name:hover{ color:var(--green-deep); text-decoration:underline; }

.cart-item-meta{ font-size:12.5px; color:var(--ink-soft); margin-bottom:8px; }

.cart-item-remove{
    display:inline-flex; align-items:center; gap:5px; background:none; border:none; color:var(--ink-soft);
    font-size:12.5px; font-weight:600; padding:0;
  }

.cart-item-remove:hover{ color:#C0272D; }

.cart-item-price{ font-size:14.5px; font-weight:700; color:var(--ink-soft); }

.cart-item-total{ font-size:15.5px; font-weight:800; text-align:right; }

.cart-item .qty-stepper{ width:120px; height:40px; }

@media (max-width:700px){ .cart-item{
      grid-template-columns:80px 1fr; grid-template-areas:"art info" "art price" "art qty"; row-gap:8px;
    } }

@media (max-width:700px){ .cart-item-art{ grid-area:art; } }

@media (max-width:700px){ .cart-item-info{ grid-area:info; } }

@media (max-width:700px){ .cart-item-price{ grid-area:price; } }

@media (max-width:700px){ .cart-item-price::before{ content:"Price: "; color:var(--ink-soft); font-weight:600; } }

@media (max-width:700px){ .cart-item-qty{ grid-area:qty; } }

@media (max-width:700px){ .cart-item-total{ display:none; } }

.cart-summary{
    background:var(--white); border:1px solid var(--line); border-radius:var(--r-card);
    padding:22px; position:sticky; top:96px;
  }

.cart-summary h3{ font-size:17px; margin-bottom:16px; }

.summary-row{ display:flex; align-items:center; justify-content:space-between; font-size:14px; color:var(--ink); padding:9px 0; }

.summary-row span:first-child{ color:var(--ink-soft); }

.summary-note{ font-size:12.5px; color:var(--green-deep); background:var(--soft); padding:9px 12px; border-radius:8px; margin:6px 0 4px; }

.summary-total{ border-top:1px solid var(--line); margin-top:6px; padding-top:14px; font-size:16px; font-weight:800; }

.summary-total span:first-child{ color:var(--ink); font-weight:800; }

.promo-row{ display:flex; gap:8px; margin:16px 0 6px; }

.promo-row input{
    flex:1; border:1.5px solid var(--line-strong); border-radius:var(--r-btn); padding:10px 12px; min-width:0;
    font-size:13.5px; font-family:inherit; color:var(--ink); background:var(--warm);
  }

.promo-row input:focus{ outline:none; border-color:var(--green); background:var(--white); }

.promo-msg{ font-size:12px; color:var(--ink-soft); min-height:1.4em; margin-bottom:10px; }

.continue-shopping{ display:block; text-align:center; font-size:13.5px; font-weight:700; color:var(--green-deep); margin-top:14px; }

.continue-shopping:hover{ text-decoration:underline; }

.summary-trust{ display:flex; flex-direction:column; gap:8px; margin-top:20px; padding-top:18px; border-top:1px solid var(--line); }

.summary-trust span{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink-soft); }

.summary-trust svg{ width:15px; height:15px; color:var(--green); flex-shrink:0; }

.cart-empty{ display:none; flex-direction:column; align-items:center; text-align:center; gap:16px; padding:90px 20px; }

.cart-empty.show{ display:flex; }

.cart-empty svg{ width:56px; height:56px; color:var(--ink-soft); }

.cart-empty h2{ font-size:22px; }

.cart-empty p{ color:var(--ink-soft); font-size:14.5px; max-width:36ch; }

.suggestions-section{ padding:48px 0 80px; }

.suggestions-section h2{ font-size:22px; margin-bottom:20px; }