/* ==========================================================================
   Portal de Encomendas — Loja (V92 Executive)
   Folha de estilos única da área pública: loja, carrinho, encomendas e login.
   Substitui style.css + store-premium.css. As cores da marca (--primary e
   gradiente do hero) são definidas no Admin e injetadas inline na página.
   ========================================================================== */

/* ---------- Tokens ---------- */
:root{
  --primary:#1d4ed8;
  --primary-dark:color-mix(in srgb,var(--primary) 80%,black);
  --primary-light:color-mix(in srgb,var(--primary) 9%,white);
  --primary-soft:color-mix(in srgb,var(--primary) 16%,white);
  --hero-start:#0f172a; --hero-end:#1e3a8a;

  --bg:#f4f5f7; --surface:#ffffff; --surface-2:#f8f9fb; --white:#ffffff;
  --text:#0f172a; --ink:#0f172a; --ink-2:#334155; --text-muted:#64748b; --muted-2:#94a3b8;
  --border:#e4e7ec; --line:#e4e7ec; --line-2:#eef0f3;
  --success:#15803d; --success-bg:#ecfdf3; --warning:#b45309; --warning-bg:#fff8eb;
  --danger:#b91c1c; --danger-bg:#fef2f2; --promo:#c2410c; --promo-bg:#fff4ed;

  --radius:14px; --radius-sm:10px; --radius-lg:20px;
  --shadow:0 1px 2px rgba(15,23,42,.04),0 6px 20px rgba(15,23,42,.05);
  --shadow-lg:0 24px 60px rgba(15,23,42,.18);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --nav-h:68px; --cart-w:420px; --max:1440px;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.modal-open{overflow:hidden}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-dark)}
img{max-width:100%;display:block}
h1,h2,h3,h4{margin:0;color:var(--ink);letter-spacing:-.015em;line-height:1.2}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 28px}
.section{padding-top:22px;padding-bottom:48px}

/* ---------- Botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink-2);font-weight:650;font-size:.92rem;line-height:1;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s,color .15s,transform .15s;text-decoration:none}
.btn:hover{border-color:#cfd4dc;background:var(--surface-2);color:var(--ink)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.6;cursor:not-allowed}
.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 28%,transparent)}
.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}
.btn-success{background:#15803d;border-color:#15803d;color:#fff;box-shadow:0 8px 20px rgba(21,128,61,.25)}
.btn-success:hover{background:#166534;border-color:#166534;color:#fff}
.btn-outline{background:var(--surface)}
.btn-sm{min-height:34px;padding:0 12px;font-size:.84rem;border-radius:10px}
.btn-link{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border-radius:10px;color:var(--ink-2);font-weight:600;font-size:.9rem}
.btn-link:hover{background:var(--surface-2);color:var(--ink)}

/* ---------- Formulários ---------- */
.form-group{margin-bottom:16px}
.form-label{display:block;margin-bottom:6px;font-size:.84rem;font-weight:650;color:var(--ink-2)}
.form-control{width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);transition:border-color .15s,box-shadow .15s}
.form-control:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-light)}
textarea.form-control{min-height:auto;line-height:1.5}
input[type="file"].form-control{padding:9px 12px}

/* ---------- Alertas ---------- */
.alert{padding:13px 16px;margin-bottom:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:.92rem;line-height:1.45}
.alert-success{background:var(--success-bg);border-color:#bfeacd;color:#14532d}
.alert-danger{background:var(--danger-bg);border-color:#f9caca;color:#7f1d1d}
.alert-warning{background:var(--warning-bg);border-color:#f6dfae;color:#78350f}
.alert code{font-size:.82rem;word-break:break-word}

/* ---------- Navbar ---------- */
.navbar{position:sticky;top:0;z-index:60;height:var(--nav-h);background:rgba(255,255,255,.88);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line)}
.navbar-inner{display:flex;align-items:center;gap:16px;height:100%;max-width:var(--max);margin:0 auto;padding:0 28px}
.navbar-brand{display:inline-flex;align-items:center;gap:12px;min-width:0;color:var(--ink);font-weight:800;font-size:1.06rem;letter-spacing:-.02em}
.navbar-brand svg{width:26px;height:26px;color:var(--primary);flex:none}
.navbar-brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.navbar-logo{height:40px;width:auto;max-width:180px;object-fit:contain}
.navbar-logo-fallback{display:inline-flex;align-items:center;gap:10px}
.navbar-actions{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav-greeting{margin-right:6px;color:var(--text-muted);font-size:.88rem;white-space:nowrap}
.nav-greeting strong{color:var(--ink)}
.btn-cart{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:42px;margin-left:6px;padding:0 16px;border:0;border-radius:12px;background:var(--primary);color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 28%,transparent)}
.btn-cart:hover{background:var(--primary-dark)}
.cart-badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#fff;color:var(--primary);font-size:.74rem;font-weight:800}

/* ---------- Carrossel ---------- */
.carousel{position:relative;max-width:calc(var(--max) - 56px);height:340px;margin:22px auto 0;border-radius:var(--radius-lg);overflow:hidden;background:#0f172a;box-shadow:var(--shadow)}
.carousel-track{display:flex;height:100%;transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.carousel-slide{position:relative;flex:0 0 100%;height:100%;background-size:cover;background-position:center}
.carousel-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,23,42,.78) 0%,rgba(15,23,42,.45) 45%,rgba(15,23,42,0) 75%)}
.carousel-content{position:absolute;left:44px;bottom:40px;z-index:2;max-width:min(520px,52%);color:#fff}
.carousel-promo-tag{display:inline-flex;align-items:center;margin-bottom:12px;padding:5px 12px;border-radius:999px;background:var(--promo);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.carousel-titulo{color:#fff;font-size:clamp(1.5rem,2.4vw,2.35rem);font-weight:800;line-height:1.1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.carousel-product-ref{margin-top:8px;color:rgba(255,255,255,.75);font-size:.86rem;font-weight:600}
.carousel-desc{margin-top:10px;color:rgba(255,255,255,.85);font-size:.98rem;max-width:460px}
.carousel-cta{display:inline-flex;align-items:center;margin-top:18px;min-height:44px;padding:0 20px;border:0;border-radius:12px;background:#fff;color:var(--ink);font-weight:750;font-size:.92rem;cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.carousel-cta:hover{background:var(--primary-light);color:var(--primary-dark)}
/* Slide de produto em promoção: fundo claro, produto à direita */
.carousel-slide.product-promo-slide{background:radial-gradient(circle at 78% 45%,var(--primary-soft),transparent 380px),linear-gradient(120deg,#fbfaf7 0%,#eef1f6 55%,#f7f4ee 100%)}
.product-promo-slide .carousel-overlay{background:linear-gradient(90deg,rgba(255,255,255,.85) 0%,rgba(255,255,255,.35) 50%,rgba(255,255,255,0) 75%)}
.product-promo-slide .carousel-content{color:var(--ink)}
.product-promo-slide .carousel-titulo{color:var(--ink)}
.product-promo-slide .carousel-product-ref{color:var(--text-muted)}
.product-promo-slide .carousel-cta{background:var(--primary);color:#fff;box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 30%,transparent)}
.product-promo-slide .carousel-cta:hover{background:var(--primary-dark);color:#fff}
.promo-product-stage{position:absolute;top:26px;bottom:26px;right:clamp(24px,5vw,72px);z-index:1;display:grid;place-items:center;aspect-ratio:1/1}
.promo-product-frame{width:100%;height:100%;padding:0;border-radius:24px;background:#fff;border:1px solid rgba(255,255,255,.9);box-shadow:0 24px 50px rgba(15,23,42,.14);overflow:hidden}
.promo-product-frame img{width:100%;height:100%;object-fit:contain}
.promo-product-placeholder{font-size:3rem}
.carousel-btn{position:absolute;top:50%;z-index:3;display:grid;place-items:center;width:42px;height:42px;margin-top:-21px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--ink);cursor:pointer;box-shadow:0 8px 20px rgba(15,23,42,.18);transition:transform .15s}
.carousel-btn:hover{transform:scale(1.06)}
.carousel-prev{left:16px}.carousel-next{right:16px}
.carousel-dots{position:absolute;left:0;right:0;bottom:14px;z-index:3;display:flex;justify-content:center;gap:6px}
.carousel-dot{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.55);cursor:pointer;transition:width .25s,background .25s}
.product-promo-slide~.carousel-dots .carousel-dot{background:rgba(15,23,42,.25)}
.carousel-dot.active{width:24px;background:#fff}

/* ---------- Hero (quando não há carrossel) ---------- */
.hero{position:relative;max-width:calc(var(--max) - 56px);margin:22px auto 0;border-radius:var(--radius-lg);overflow:hidden;color:#fff;box-shadow:var(--shadow)}
.hero-premium-inner{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:32px;align-items:center;padding:44px}
.hero-eyebrow{display:inline-block;margin-bottom:12px;font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.hero-logo{height:46px;width:auto;margin-bottom:14px;border-radius:10px;background:#fff;padding:5px}
.hero-copy h1{color:#fff;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:800}
.hero-copy p{margin-top:10px;color:rgba(255,255,255,.85);max-width:560px}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hero-action-primary,.hero-action-secondary{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border-radius:12px;font-weight:700}
.hero-action-primary{background:#fff;color:var(--ink)}
.hero-action-secondary{border:1px solid rgba(255,255,255,.35);color:#fff}
.hero-action-primary:hover{color:var(--primary-dark)}
.hero-action-secondary:hover{background:rgba(255,255,255,.1);color:#fff}
.hero-panel{display:grid;gap:12px}
.hero-panel-card{padding:20px;border-radius:16px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18)}
.hero-panel-card span,.hero-panel-grid span{display:block;font-size:.78rem;color:rgba(255,255,255,.75)}
.hero-panel-card strong{display:block;font-size:2.2rem;font-weight:800}
.hero-panel-card small{color:rgba(255,255,255,.7)}
.hero-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hero-panel-grid>div{padding:16px;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16)}
.hero-panel-grid strong{font-size:1.05rem}

/* ---------- Barra de filtros ---------- */
.filters-bar{position:sticky;top:var(--nav-h);z-index:40;max-width:calc(var(--max) - 56px);margin:22px auto 0;padding:16px 18px 12px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.filters-inner{display:flex;flex-direction:column;gap:12px}
.filters-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.filters-main .search-box{flex:2 1 300px}
.filters-main .filter-group{flex:1 1 150px;min-width:0}
.filters-main .filters-submit{flex:0 0 auto;min-height:46px;padding:0 22px}
.search-box{position:relative;display:flex;align-items:center;min-height:46px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:border-color .15s,box-shadow .15s}
.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-light)}
.search-submit{display:grid;place-items:center;flex:none;width:42px;height:44px;border:0;background:transparent;color:var(--muted-2);cursor:pointer}
.search-submit:hover{color:var(--primary)}
.search-box input{flex:1;min-width:0;height:44px;padding:0 8px 0 0;border:0;background:transparent;outline:0;color:var(--ink);font-weight:550}
.search-box input::placeholder{color:var(--muted-2);font-weight:500}
.search-box input::-webkit-search-cancel-button{cursor:pointer}
.search-clear{flex:none;width:34px;height:34px;margin-right:6px;border:0;border-radius:8px;background:var(--surface-2);color:var(--text-muted);cursor:pointer}
.search-clear:hover{background:var(--danger-bg);color:var(--danger)}
.filter-group{display:flex;flex-direction:column;gap:5px}
.filter-label{font-size:.72rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.filter-select{width:100%;height:46px;padding:0 36px 0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 14px center;appearance:none;-webkit-appearance:none;color:var(--ink);font-weight:600;font-size:.9rem;cursor:pointer;text-overflow:ellipsis}
.filter-select:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-light)}
.filter-select[data-empty="1"]{color:var(--muted-2)}
.filters-tools{align-items:center;padding-top:2px}
.promo-filter-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);font-weight:650;font-size:.86rem;cursor:pointer;transition:all .15s}
.promo-filter-chip:hover{border-color:#f3c9b0;background:var(--promo-bg);color:var(--promo)}
.promo-filter-chip.active{border-color:var(--promo);background:var(--promo);color:#fff}
.quick-order-chip:hover{border-color:var(--primary-soft);background:var(--primary-light);color:var(--primary-dark)}
.btn-clear-all{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;color:var(--danger);font-weight:650;font-size:.84rem}
.btn-clear-all:hover{background:var(--danger-bg);color:var(--danger)}
.view-switch{display:inline-flex;margin-left:auto;padding:4px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}
.view-switch-btn{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px;border-radius:9px;color:var(--text-muted);font-weight:650;font-size:.84rem}
.view-switch-btn:hover{color:var(--ink)}
.view-switch-btn.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(15,23,42,.1)}
.view-icon{font-size:.95rem}
.filter-active-info{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:22px}
.filter-active-badge{display:inline-flex;align-items:center;gap:8px;padding:4px 6px 4px 12px;border-radius:999px;background:var(--primary-light);color:var(--primary-dark);font-size:.8rem;font-weight:650}
.filter-active-badge.promo-active{background:var(--promo-bg);color:var(--promo)}
.filter-badge-remove{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.7);color:inherit;font-size:.7rem}
.filter-badge-remove:hover{background:#fff;color:var(--danger)}
.filter-count{margin-left:auto;color:var(--text-muted);font-size:.84rem;font-weight:650}

/* ---------- Atualização AJAX do catálogo ---------- */
.is-soft-loading{opacity:.55;transition:opacity .15s;pointer-events:none}
body.store-loading .filters-bar::after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--primary),transparent);background-size:200% 100%;animation:pv-loading 1s linear infinite}
@keyframes pv-loading{from{background-position:200% 0}to{background-position:-200% 0}}

/* ---------- Preços ---------- */
.product-price{color:var(--ink);font-weight:800;font-size:1.15rem;font-variant-numeric:tabular-nums}
.product-price-na{color:var(--text-muted);font-size:.86rem;font-weight:600}
.price-login-required{color:var(--primary)}
.price-discount-box{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.price-old{color:var(--muted-2);font-size:.82rem;font-weight:600;text-decoration:line-through}
.price-new{color:var(--danger);font-weight:800;font-variant-numeric:tabular-nums}
.discount-badge-v85{display:inline-flex;padding:2px 7px;border-radius:999px;background:var(--danger-bg);color:var(--danger);font-size:.72rem;font-weight:800}

/* ---------- Lista rápida ---------- */
.catalog-list-shell{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}
.catalog-list-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid var(--line-2)}
.catalog-list-toolbar strong{display:block;font-size:1rem;color:var(--ink)}
.catalog-list-toolbar span{color:var(--text-muted);font-size:.86rem}
.catalog-list-summary{text-align:right}
.catalog-list-summary span{display:block;color:var(--ink);font-weight:750}
.catalog-list-summary small{color:var(--muted-2);font-size:.76rem}
.catalog-list-head,.catalog-list-row{display:grid;align-items:center;gap:16px;padding:0 22px}
.catalog-list.prices-visible .catalog-list-head,.catalog-list.prices-visible .catalog-list-row{grid-template-columns:minmax(0,1fr) 170px 170px}
.catalog-list.prices-hidden .catalog-list-head,.catalog-list.prices-hidden .catalog-list-row{grid-template-columns:minmax(0,1fr) 170px}
.catalog-list-head{height:40px;background:var(--surface-2);border-bottom:1px solid var(--line-2);color:var(--text-muted);font-size:.72rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.catalog-list-head>div:not(:first-child){text-align:center}
.catalog-list-row{min-height:92px;padding-top:12px;padding-bottom:12px;border-bottom:1px solid var(--line-2);transition:background .15s}
.catalog-list-row:last-child{border-bottom:0}
.catalog-list-row:hover{background:#fafbfd}
.catalog-list-row.stock-zero-blocked{opacity:.6}
.catalog-list-product{display:flex;align-items:center;gap:16px;min-width:0}
.catalog-list-img{flex:none;display:block;width:76px;height:76px;padding:0;border:1px solid var(--line-2);border-radius:12px;background:#fff;cursor:zoom-in;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.catalog-list-img:hover:not(:disabled){border-color:var(--primary-soft);box-shadow:0 4px 12px rgba(15,23,42,.08)}
.catalog-list-img:disabled{cursor:default}
.catalog-list-img img{width:100%;height:100%;object-fit:contain;background:#fff}
.list-img-placeholder{display:grid;place-items:center;width:100%;height:100%;color:var(--muted-2);font-size:1.3rem}
.catalog-list-info{display:flex;flex-direction:column;gap:3px;min-width:0}
.catalog-list-info>strong{color:var(--ink);font-size:.95rem;font-weight:700;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.list-badges{display:flex;flex-wrap:wrap;gap:6px}
.list-family{display:inline-flex;padding:2px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line-2);color:var(--text-muted);font-size:.7rem;font-weight:750;letter-spacing:.03em;text-transform:uppercase}
.list-promo-badge{display:inline-flex;padding:2px 9px;border-radius:999px;background:var(--promo-bg);color:var(--promo);font-size:.7rem;font-weight:800}
.list-ref{color:var(--muted-2);font-size:.78rem;font-weight:600;font-variant-numeric:tabular-nums}
.list-stock-alert{font-size:.78rem;font-weight:650}
.list-stock-alert.stock-blocked,.product-stock-note.stock-blocked{color:var(--danger)}
.list-info-btn{align-self:flex-start;margin-top:2px;padding:0;border:0;background:none;color:var(--primary);font-size:.78rem;font-weight:650;cursor:pointer}
.list-info-btn:hover{text-decoration:underline}
.catalog-list-price{text-align:center;font-weight:800;font-size:1.02rem;color:var(--ink);font-variant-numeric:tabular-nums}
.catalog-list-price .price-discount-box{justify-content:center}
.catalog-list-actions{display:flex;align-items:center;justify-content:center;gap:6px}
.list-qty-btn{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .15s}
.list-qty-btn:hover:not(:disabled){border-color:var(--primary);background:var(--primary);color:#fff}
.list-qty-btn:disabled{opacity:.4;cursor:not-allowed}
.list-qty-input{width:60px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-align:center;font-weight:750;font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.list-qty-input::-webkit-outer-spin-button,.list-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.list-qty-input:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}

/* ---------- Cartões de produto ---------- */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.product-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow .2s,transform .2s,border-color .2s}
.product-card:hover{border-color:#d7dbe3;box-shadow:0 14px 34px rgba(15,23,42,.09);transform:translateY(-2px)}
.product-img-wrap{position:relative;aspect-ratio:1/1;background:#fff;border-bottom:1px solid var(--line-2);overflow:hidden}
.product-card-image-button{display:block;width:100%;height:100%;padding:0;border:0;background:#fff;cursor:zoom-in}
.product-card-image-button img{width:100%;height:100%;object-fit:contain;transition:transform .35s ease}
.product-card:hover .product-card-image-button img{transform:scale(1.03)}
.product-card-zoom-badge{position:absolute;right:12px;bottom:12px;padding:4px 10px;border-radius:999px;background:rgba(15,23,42,.75);color:#fff;font-size:.7rem;font-weight:700;opacity:0;transition:opacity .2s}
.product-card:hover .product-card-zoom-badge{opacity:1}
.product-img-placeholder{display:grid;place-items:center;width:100%;height:100%}
.cat-badge{position:absolute;top:12px;left:12px;max-width:calc(100% - 24px);padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.95)!important;border:1px solid var(--line);color:var(--ink-2);font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.promo-product-badge{position:absolute;top:12px;right:12px;padding:3px 10px;border-radius:999px;background:var(--promo);color:#fff;font-size:.7rem;font-weight:800}
.product-body{display:flex;flex-direction:column;gap:8px;flex:1;padding:16px 16px 18px}
.product-top-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.product-ref{color:var(--muted-2);font-size:.76rem;font-weight:650;font-variant-numeric:tabular-nums}
.info-wrap{position:relative}
.info-btn{display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:50%;cursor:pointer;opacity:.85}
.info-btn:hover{opacity:1}
.product-name{flex:1;color:var(--ink);font-weight:700;font-size:.95rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
.product-stock-note{font-size:.78rem;font-weight:650}
.product-purchase-row{display:flex;gap:8px;margin-top:4px}
.card-qty-stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.card-qty-stepper button{width:34px;height:40px;border:0;background:transparent;color:var(--ink);font-weight:700;font-size:1.05rem;cursor:pointer}
.card-qty-stepper button:hover{background:var(--surface-2)}
.card-qty-stepper input{width:42px;height:40px;border:0;text-align:center;font-weight:750;-moz-appearance:textfield}
.card-qty-stepper input::-webkit-outer-spin-button,.card-qty-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.card-qty-stepper input:focus{outline:0}
.btn-add{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;border:0;border-radius:12px;color:#fff;font-weight:750;font-size:.88rem;cursor:pointer;transition:background .15s}
.btn-add:disabled{opacity:.45;cursor:not-allowed}

/* ---------- Estado vazio e paginação ---------- */
.empty-state{padding:72px 24px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--text-muted)}
.empty-icon{font-size:2.6rem;margin-bottom:12px}
.empty-title{margin-bottom:6px;color:var(--ink);font-size:1.15rem;font-weight:750}
.pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:28px}
.page-btn{display:inline-grid;place-items:center;min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink-2);font-weight:650;font-size:.88rem;transition:all .15s}
.page-btn:hover{border-color:var(--primary);color:var(--primary)}
.page-btn.page-active{color:#fff}
.page-btn.page-disabled{opacity:.4;pointer-events:none}
.page-ellipsis{padding:0 4px;color:var(--muted-2)}
.pagination-info{margin-top:10px;text-align:center;color:var(--muted-2);font-size:.82rem}

/* ---------- Carrinho ---------- */
.cart-overlay{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.45);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.cart-overlay.open{opacity:1;visibility:visible}
.cart-panel{position:fixed;top:0;right:0;bottom:0;z-index:90;display:flex;flex-direction:column;width:min(var(--cart-w),100vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translateX(105%);transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.cart-panel.open{transform:none}
.cart-header{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line-2)}
.cart-header-copy{flex:1;min-width:0}
.cart-header h2{font-size:1.08rem;font-weight:800}
.cart-subtitle{margin-top:2px;color:var(--text-muted);font-size:.8rem}
.cart-top-total{text-align:right}
.cart-top-total span{display:block;color:var(--text-muted);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.cart-top-total strong{color:var(--ink);font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.cart-close{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:10px;background:var(--surface-2);color:var(--ink-2);cursor:pointer}
.cart-close:hover{background:var(--line-2)}
.cart-items{flex:1;overflow-y:auto;padding:6px 20px}
.cart-empty{padding:56px 10px;text-align:center;color:var(--muted-2);font-weight:600}
.cart-item{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;padding:14px 0;border-bottom:1px solid var(--line-2)}
.cart-item:last-child{border-bottom:0}
.cart-item-thumb{display:grid;place-items:center;width:64px;height:64px;padding:0;border:1px solid var(--line-2);border-radius:12px;background:#fff;overflow:hidden}
.cart-item-thumb-img{width:100%;height:100%;object-fit:contain}
.cart-item-thumb-empty{font-size:1.4rem}
.cart-item-info{min-width:0}
.cart-item-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.cart-item-name{color:var(--ink);font-weight:700;font-size:.9rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cart-item-ref{margin-top:2px;color:var(--muted-2);font-size:.76rem;font-weight:600}
.btn-remove-item{display:grid;place-items:center;flex:none;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--muted-2);cursor:pointer}
.btn-remove-item:hover{background:var(--danger-bg);color:var(--danger)}
.btn-remove-item svg{width:16px;height:16px}
.cart-item-controls-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.cart-item-qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.qty-btn{width:32px;height:32px;border:0;background:transparent;color:var(--ink);font-weight:700;cursor:pointer}
.qty-btn:hover{background:var(--surface-2)}
.qty-num{min-width:34px;text-align:center;font-weight:750;font-size:.88rem;font-variant-numeric:tabular-nums}
.cart-item-line-total{color:var(--ink);font-weight:800;font-size:.95rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.cart-item-line-total.price-hidden{color:var(--muted-2);font-weight:600;font-size:.8rem}
.cart-price-discount{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.cart-price-old{color:var(--muted-2);font-size:.76rem;text-decoration:line-through}
.cart-discount-badge{padding:1px 6px;border-radius:999px;background:var(--danger-bg);color:var(--danger);font-size:.68rem;font-weight:800}
.cart-stock-alert{margin-top:8px;padding:7px 10px;border-radius:9px;font-size:.76rem;font-weight:650;line-height:1.35}
.cart-stock-alert.warn{background:var(--warning-bg);border:1px solid #f6dfae;color:#78350f}
.cart-stock-alert.danger{background:var(--danger-bg);border:1px solid #f9caca;color:#7f1d1d}
.cart-item-obs-input{width:100%;margin-top:8px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;font-size:.82rem}
.cart-footer{padding:16px 20px 20px;border-top:1px solid var(--line-2);background:var(--surface-2)}
#cartNotas{min-height:46px;height:46px;margin-bottom:12px;resize:none;font-size:.88rem}
.cart-extra-dock{margin-bottom:12px}
.cart-extra-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:left;cursor:pointer}
.cart-extra-toggle strong{display:block;font-size:.86rem;color:var(--ink)}
.cart-extra-toggle small{display:block;margin-top:1px;color:var(--text-muted);font-size:.74rem}
.cart-extra-toggle em{flex:none;padding:4px 10px;border-radius:999px;background:var(--primary-light);color:var(--primary-dark);font-style:normal;font-weight:750;font-size:.74rem}
.cart-extra-dock.has-required-fields .cart-extra-toggle{border-color:#f6dfae;background:var(--warning-bg)}
.cart-extra-fields{display:none;margin-top:10px;max-height:32dvh;overflow-y:auto}
.cart-extra-fields.open,.cart-extra-dock.open .cart-extra-fields{display:block}
.cart-extra-title{display:none}
.cart-extra-label{display:block;margin:8px 0 4px;font-size:.78rem;font-weight:700;color:var(--ink-2)}
.cart-extra-input{width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.cart-extra-input:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}
.cart-extra-input.field-invalid{border-color:var(--danger);box-shadow:0 0 0 3px rgba(185,28,28,.12)}
.cart-summary{margin:0 0 12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cart-summary[hidden]{display:none}
.cart-summary div{display:flex;justify-content:space-between;gap:12px;padding:3px 0;color:var(--ink-2);font-size:.86rem}
.cart-summary dt{margin:0;font-weight:600}
.cart-summary dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}
.cart-summary .cart-summary-total{margin-top:6px;padding-top:9px;border-top:1px solid var(--line-2);color:var(--ink);font-size:1.02rem}
.cart-summary .cart-summary-total dd{font-weight:850}
.btn-checkout{width:100%;min-height:52px;font-size:1rem;font-weight:800;border-radius:14px}
.btn-checkout-spinner{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:pv-spin .8s linear infinite}
.btn-checkout.is-busy .btn-checkout-spinner{display:inline-block}
.btn-checkout.is-busy .btn-checkout-icon{display:none}
.btn-checkout:disabled{opacity:.8;cursor:progress}
@keyframes pv-spin{to{transform:rotate(360deg)}}

/* Carrinho fixo à direita em ecrãs largos (modo "fixo" do Admin) */
@media (min-width:1180px){
  body.cart-mode-fixo{padding-right:var(--cart-w)}
  body.cart-mode-fixo .cart-panel{transform:none;box-shadow:none;z-index:50}
  body.cart-mode-fixo .cart-overlay{display:none}
  body.cart-mode-fixo .cart-close{display:none}
}

/* ---------- Modais ---------- */
#loginModal{backdrop-filter:blur(4px)}
.modal{width:min(440px,100%);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line-2)}
.modal-header h3{font-size:1.05rem}
.modal-close{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:9px;background:var(--surface-2);cursor:pointer}
.modal-body{padding:20px 22px;color:var(--ink-2)}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;background:var(--surface-2);border-top:1px solid var(--line-2)}

.product-image-modal,.promo-modal{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:20px}
.product-image-modal.open,.promo-modal.open{display:flex}
.product-image-modal-backdrop,.promo-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.6);backdrop-filter:blur(4px)}
.product-image-modal-card{position:relative;display:flex;flex-direction:column;width:min(620px,92vw,calc(78vh - 40px));background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.product-image-modal-media{display:block;width:100%;aspect-ratio:1/1;padding:0;background:#fff}
.product-image-modal-media img{width:100%;height:100%;object-fit:contain}
.product-image-modal-caption{padding:14px 20px 16px;border-top:1px solid var(--line-2);background:var(--surface)}
.product-image-modal-caption span{display:block;color:var(--muted-2);font-size:.78rem;font-weight:650}
.product-image-modal-caption strong{display:block;margin-top:2px;color:var(--ink);font-size:1rem;line-height:1.35}
.product-image-modal-close,.promo-modal-close{position:absolute;top:12px;right:12px;z-index:2;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.95);color:var(--ink);font-size:1.4rem;line-height:1;cursor:pointer;box-shadow:0 4px 12px rgba(15,23,42,.15)}
.promo-modal-card{position:relative;display:grid;grid-template-columns:1fr 1fr;width:min(820px,100%);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.promo-modal-image{min-height:320px;background:linear-gradient(135deg,var(--hero-start),var(--hero-end));background-size:cover;background-position:center}
.promo-modal-body{display:flex;flex-direction:column;justify-content:center;gap:10px;padding:32px}
.promo-eyebrow{color:var(--promo);font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.promo-modal-body h2{font-size:1.5rem}
.promo-modal-body p{color:var(--ink-2)}
.promo-modal-action{display:inline-flex;align-self:flex-start;align-items:center;min-height:44px;margin-top:8px;padding:0 20px;border-radius:12px;background:var(--primary);color:#fff;font-weight:750}
.promo-modal-action:hover{background:var(--primary-dark);color:#fff}

/* Encomenda: processamento / confirmação / encomenda rápida */
.order-modal{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,23,42,.55);backdrop-filter:blur(4px)}
.order-modal[hidden]{display:none}
.order-modal-card{width:min(440px,100%);padding:30px 26px;border-radius:var(--radius-lg);background:var(--surface);text-align:center;box-shadow:var(--shadow-lg)}
.order-modal-card h3{margin:14px 0 6px;font-size:1.2rem}
.order-modal-card p{margin:0;color:var(--text-muted)}
.order-modal-processing,.order-modal-done{display:none}
.order-modal.is-processing .order-modal-processing,.order-modal.is-done .order-modal-done{display:block}
.order-modal-spinner{display:inline-block;width:44px;height:44px;border:4px solid var(--primary-light);border-top-color:var(--primary);border-radius:50%;animation:pv-spin .9s linear infinite}
.order-modal-check{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--success-bg);color:var(--success);font-size:1.6rem;font-weight:900}
.order-modal-number{display:block;margin:4px 0 10px;color:var(--ink);font-size:2.1rem;font-weight:900;letter-spacing:-.02em}
.order-modal-note{font-size:.86rem}
.order-modal-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px}
.quick-order-card{position:relative;width:min(580px,100%);text-align:left}
.quick-order-card h3{margin:0 0 6px}
.quick-order-card p{margin-bottom:14px;font-size:.9rem}
.quick-order-card textarea{width:100%;min-height:180px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font:13px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical}
.quick-order-card textarea:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-light)}
.quick-order-card .order-modal-actions{justify-content:flex-end}
.quick-order-close{position:absolute;top:14px;right:16px;border:0;background:transparent;color:var(--text-muted);font-size:1.5rem;line-height:1;cursor:pointer}
.qo-msg{margin-top:10px;padding:9px 12px;border-radius:10px;font-size:.85rem;line-height:1.45}
.qo-msg.success{background:var(--success-bg);border:1px solid #bfeacd;color:#14532d}
.qo-msg.warn{background:var(--warning-bg);border:1px solid #f6dfae;color:#78350f}
.qo-msg.danger{background:var(--danger-bg);border:1px solid #f9caca;color:#7f1d1d}

/* Tooltip global (descrição do produto) */
.global-tooltip{position:absolute;z-index:140;display:none;max-width:320px;padding:10px 12px;border-radius:10px;background:#0f172a;color:#f1f5f9;font-size:.82rem;line-height:1.45;box-shadow:var(--shadow-lg);white-space:pre-line}
.global-tooltip::after{content:"";position:absolute;left:50%;bottom:-6px;width:12px;height:12px;margin-left:-6px;background:#0f172a;transform:rotate(45deg)}
.global-tooltip.tip-below::after{top:-6px;bottom:auto}

/* Notificações */
.toast-container{position:fixed;left:50%;bottom:24px;z-index:150;display:flex;flex-direction:column;align-items:center;gap:8px;transform:translateX(-50%);pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;max-width:min(460px,92vw);padding:12px 16px;border-radius:12px;background:#0f172a;color:#fff;font-size:.88rem;font-weight:600;box-shadow:var(--shadow-lg);animation:pv-toast .25s ease-out}
.toast>span:first-child{display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.15);font-size:.75rem}
.toast.success>span:first-child{background:#16a34a}
.toast.danger>span:first-child{background:#dc2626}
.toast.info>span:first-child{background:var(--primary)}
@keyframes pv-toast{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- Rodapé ---------- */
.public-company-footer{margin-top:40px;border-top:1px solid var(--line);background:var(--surface)}
.public-footer-inner{display:flex;align-items:center;gap:16px;max-width:var(--max);margin:0 auto;padding:22px 28px;color:var(--text-muted);font-size:.84rem}
.public-footer-inner img{height:34px;width:auto;border-radius:6px}
.public-footer-inner strong{display:block;color:var(--ink)}

/* ---------- Login / registo / definir password ---------- */
body.auth-modern{min-height:100vh;background:radial-gradient(1000px 600px at 85% -10%,var(--primary-soft),transparent 60%),radial-gradient(800px 500px at -10% 110%,#e9edf5,transparent 60%),var(--bg)}
.auth-page{display:grid;place-items:center;min-height:100vh;padding:24px}
.auth-card{width:min(440px,100%);padding:34px 32px;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 70px rgba(15,23,42,.12)}
.auth-card h1{font-size:1.45rem}
.auth-card p{color:var(--text-muted)}
.auth-logo{margin-bottom:26px;text-align:center}
.auth-logo-img{height:64px;width:auto;max-width:220px;margin:0 auto 16px;object-fit:contain}
.auth-logo h1{margin-bottom:6px}
.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--muted-2);font-size:.8rem}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.auth-card .btn-primary{min-height:48px}

/* ---------- As minhas encomendas (complementa o <style> da página) ---------- */
body.account-modern .page-wrap{max-width:1180px}
body.account-modern .page-title{font-size:1.6rem}
body.account-modern .enc-card,body.account-modern .info-card,body.account-modern .empty-enc{border:1px solid var(--line);border-radius:var(--radius-lg)!important;box-shadow:var(--shadow)!important}
body.account-modern .enc-card:hover{transform:none}
.payment-proof-status{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px}
.payment-proof-file{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 14px;margin-bottom:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:.88rem}
.payment-proof-file strong{width:100%;color:var(--ink)}
.payment-proof-file small{color:var(--text-muted)}
.payment-upload-form{display:flex;flex-direction:column;gap:10px}
.payment-upload-form label{font-size:.84rem;font-weight:650;color:var(--ink-2)}
.extra-field-line{padding:3px 0;font-size:.88rem;color:var(--ink-2)}
.extra-field-line strong{color:var(--ink);font-weight:650}

/* ---------- Responsivo ---------- */
@media (max-width:1100px){
  .hero-premium-inner{grid-template-columns:1fr;padding:32px}
  .catalog-list.prices-visible .catalog-list-head,.catalog-list.prices-visible .catalog-list-row{grid-template-columns:minmax(0,1fr) 130px 150px}
}
@media (max-width:860px){
  :root{--nav-h:60px}
  .container{padding:0 16px}
  .navbar-inner{padding:0 16px;gap:8px}
  .nav-greeting{display:none}
  .btn-link{padding:0 8px;font-size:.84rem}
  .carousel,.hero,.filters-bar{margin-left:16px;margin-right:16px}
  .carousel{height:280px}
  .carousel-content{left:22px;right:22px;bottom:30px;max-width:none}
  .promo-product-stage{display:none}
  .product-promo-slide .carousel-overlay{background:linear-gradient(90deg,rgba(255,255,255,.9),rgba(255,255,255,.6))}
  .filters-bar{position:static;padding:14px}
  .filters-main .search-box{flex-basis:100%}
  .filters-main .filters-submit{flex:1 1 100%}
  .view-switch{margin-left:0}
  .catalog-list-head{display:none}
  .catalog-list.prices-visible .catalog-list-row,.catalog-list.prices-hidden .catalog-list-row{grid-template-columns:1fr auto;grid-template-areas:"prod prod" "price actions";gap:10px 12px;padding:14px 16px}
  .catalog-list-product{grid-area:prod}
  .catalog-list-price{grid-area:price;text-align:left}
  .catalog-list-price .price-discount-box{justify-content:flex-start}
  .catalog-list-actions{grid-area:actions}
  .catalog-list.prices-hidden .catalog-list-actions{grid-column:1/-1;justify-content:flex-start}
  .catalog-list-img{width:64px;height:64px}
  .promo-modal-card{grid-template-columns:1fr}
  .promo-modal-image{min-height:200px}
  .public-footer-inner{flex-direction:column;text-align:center;padding:20px 16px}
}
@media (max-width:520px){
  .navbar-logo{height:32px;max-width:120px}
  .btn-cart{padding:0 12px}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .product-purchase-row{flex-direction:column}
  .card-qty-stepper{justify-content:space-between}
  .auth-card{padding:26px 20px}
}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
