/* ═══════════════════════════════════════════════════════════
   PrimaveraShop — Folha de Estilos Principal v3
   Cores dinâmicas injectadas via <style> no PHP (--primary, etc.)
   ═══════════════════════════════════════════════════════════ */
:root {
  --primary:       #2563eb;
  --primary-dark:  #1d4ed8;
  --primary-light: #eff6ff;
  --success:       #10b981;
  --danger:        #ef4444;
  --warning:       #f59e0b;
  --text:          #1e293b;
  --text-muted:    #64748b;
  --border:        #e2e8f0;
  --bg:            #f8fafc;
  --white:         #ffffff;
  --radius:        12px;
  --shadow:        0 1px 3px rgba(0,0,0,.07), 0 4px 12px rgba(0,0,0,.05);
  --shadow-lg:     0 10px 40px rgba(0,0,0,.14);
  --hero-start:    #1e3a8a;
  --hero-end:      #0e7490;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html  { scroll-behavior: smooth; }
body  { font-family: 'Inter', system-ui, sans-serif; background: var(--bg); color: var(--text); line-height: 1.6; }
a     { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }
img   { display: block; max-width: 100%; }

/* ─── LAYOUT ─── */
.container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }
.section   { padding: 32px 24px 60px; max-width: 1280px; margin: 0 auto; }

/* ─── BUTTONS ─── */
.btn {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 10px 20px; border-radius: 9px; font-size: .92rem;
  font-weight: 700; cursor: pointer; border: none;
  transition: background .18s, transform .1s;
  text-decoration: none; line-height: 1; font-family: inherit;
}
.btn:hover  { text-decoration: none; }
.btn:active { transform: scale(.97); }
.btn-primary  { background: var(--primary); color: #fff; }
.btn-primary:hover  { background: var(--primary-dark); color: #fff; }
.btn-success  { background: var(--success); color: #fff; }
.btn-success:hover  { background: #059669; color: #fff; }
.btn-outline  { background: transparent; color: var(--primary); border: 2px solid var(--primary); }
.btn-outline:hover  { background: var(--primary-light); }
.btn-sm   { padding: 7px 14px; font-size: .85rem; }
.btn-link {
  background: none; border: none; cursor: pointer;
  color: var(--primary); font-size: .9rem; font-weight: 500;
  padding: 7px 10px; border-radius: 8px; transition: background .18s; font-family: inherit;
}
.btn-link:hover { background: var(--primary-light); text-decoration: none; }

/* ─── NAVBAR ─── */
.navbar {
  background: var(--white); border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 100;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.navbar-inner {
  max-width: 1280px; margin: 0 auto; padding: 0 24px;
  display: flex; align-items: center; gap: 16px; height: 64px;
}
.navbar-brand {
  font-size: 1.2rem; font-weight: 800; color: var(--primary);
  text-decoration: none; letter-spacing: -.4px;
  display: flex; align-items: center; gap: 10px; white-space: nowrap;
}
.navbar-brand svg { width: 26px; height: 26px; flex-shrink: 0; }
.navbar-logo { max-height: 44px; max-width: 180px; object-fit: contain; }
.navbar-logo-fallback { display: flex; align-items: center; gap: 8px; }
.navbar-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.nav-greeting   { font-size: .88rem; color: var(--text-muted); white-space: nowrap; }
.btn-cart {
  position: relative; background: var(--primary); color: #fff;
  border: none; border-radius: 50px; padding: 9px 18px;
  font-size: .88rem; font-weight: 700; cursor: pointer;
  display: flex; align-items: center; gap: 7px;
  transition: background .18s; white-space: nowrap; font-family: inherit;
}
.btn-cart:hover { background: var(--primary-dark); color: #fff; text-decoration: none; }
.cart-badge {
  background: var(--warning); color: #fff;
  border-radius: 50%; width: 19px; height: 19px;
  font-size: .7rem; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  position: absolute; top: -5px; right: -5px;
} 

/* ─── HERO SIMPLES ─── */
.hero {
  background: linear-gradient(135deg, var(--hero-start) 0%, var(--primary) 50%, var(--hero-end) 100%);
  color: #fff; text-align: center; padding: 56px 24px;
}
.hero-logo { max-height: 80px; margin: 0 auto 18px; object-fit: contain; }
.hero h1 { font-size: 2.1rem; font-weight: 800; margin-bottom: 10px; }
.hero p  { font-size: 1.05rem; opacity: .85; max-width: 500px; margin: 0 auto; }

/* ─── CARROSSEL ─── */
.carousel {
  position: relative; width: 100%; height: 300px;
  overflow: hidden; background: #0f172a;
}
.carousel-track {
  display: flex; height: 100%;
  transition: transform .55s cubic-bezier(.4,0,.2,1);
  will-change: transform;
}
.carousel-slide {
  min-width: 100%; height: 100%;
  background-size: cover; background-position: center;
  position: relative; flex-shrink: 0;
}
.carousel-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,.18) 0%, rgba(0,0,0,.62) 100%);
}
.carousel-content {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 0 60px 52px;
  max-width: 800px;
}
.carousel-titulo {
  font-size: 2.2rem; font-weight: 800; color: #fff;
  line-height: 1.2; margin-bottom: 10px;
  text-shadow: 0 2px 12px rgba(0,0,0,.4);
}
.carousel-desc {
  font-size: 1.05rem; color: rgba(255,255,255,.88);
  max-width: 560px; line-height: 1.6;
  text-shadow: 0 1px 6px rgba(0,0,0,.3);
}
/* Botões seta */
.carousel-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px; border-radius: 50%;
  background: rgba(255,255,255,.18); backdrop-filter: blur(6px);
  border: 1.5px solid rgba(255,255,255,.35);
  color: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, transform .2s;
  z-index: 10;
}
.carousel-btn:hover { background: rgba(255,255,255,.32); transform: translateY(-50%) scale(1.08); }
.carousel-prev { left: 18px; }
.carousel-next { right: 18px; }
/* Dots */
.carousel-dots {
  position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%);
  display: flex; gap: 8px; z-index: 10;
}
.carousel-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,.45); border: none; cursor: pointer;
  transition: background .2s, transform .2s; padding: 0;
}
.carousel-dot.active { background: #fff; transform: scale(1.3); }

/* ─── FILTERS BAR ─── */
.filters-bar {
  background: var(--white); border-bottom: 1px solid var(--border);
  position: sticky; top: 64px; z-index: 90;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.filters-inner {
  max-width: 1280px; margin: 0 auto; padding: 12px 24px;
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.search-box {
  display: flex; align-items: center; gap: 8px;
  background: var(--bg); border: 1.5px solid var(--border);
  border-radius: 9px; padding: 0 12px;
  min-width: 200px; flex: 1; max-width: 320px;
  transition: border-color .2s;
}
.search-box:focus-within { border-color: var(--primary); background: var(--white); }
.search-box input {
  border: none; background: transparent; padding: 9px 0;
  font-size: .9rem; width: 100%; outline: none; color: var(--text); font-family: inherit;
}
.search-clear { background: none; border: none; cursor: pointer; color: var(--text-muted); font-size: .85rem; padding: 2px 4px; border-radius: 4px; }
.search-clear:hover { color: var(--danger); background: #fee2e2; }
.filter-group { display: flex; align-items: center; gap: 6px; }
.filter-label { font-size: .78rem; font-weight: 700; color: var(--text-muted); white-space: nowrap; text-transform: uppercase; letter-spacing: .4px; }
.filter-select {
  padding: 8px 28px 8px 10px; border: 1.5px solid var(--border);
  border-radius: 9px; font-size: .88rem; color: var(--text); background: var(--white);
  background-image: 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'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 8px center;
  -webkit-appearance: none; appearance: none; cursor: pointer;
  outline: none; transition: border-color .18s; font-family: inherit;
}
.filter-select:focus { border-color: var(--primary); }
.btn-clear-all {
  font-size: .82rem; font-weight: 600; color: var(--danger);
  border: 1.5px solid #fecaca; background: var(--white); border-radius: 8px;
  padding: 6px 12px; cursor: pointer; white-space: nowrap; transition: background .18s;
}
.btn-clear-all:hover { background: #fee2e2; text-decoration: none; color: var(--danger); }

/* Badge de filtro activo */
.filter-active-info { margin-left: auto; display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.filter-active-badge {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--primary-light); color: var(--primary);
  border: 1px solid color-mix(in srgb, var(--primary) 25%, transparent);
  border-radius: 50px; padding: 4px 10px; font-size: .8rem; font-weight: 600;
}
.filter-badge-remove { color: var(--primary); font-size: .75rem; margin-left: 2px; }
.filter-badge-remove:hover { color: var(--danger); }
.filter-count { font-size: .85rem; color: var(--text-muted); white-space: nowrap; }

/* ─── PRODUCT GRID ─── */
.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
}

/* ─── PRODUCT CARD ─── */
.product-card {
  background: var(--white); border-radius: 14px;
  box-shadow: var(--shadow);
  /* SEM overflow:hidden — tooltip não é cortado */
  display: flex; flex-direction: column;
  transition: transform .2s, box-shadow .2s;
}
.product-card:hover { transform: translateY(-4px); box-shadow: 0 12px 36px rgba(0,0,0,.12); }

.product-img-wrap {
  position: relative; width: 100%; height: 196px;
  background: linear-gradient(135deg, #e0e7ff 0%, #f0f9ff 100%);
  border-radius: 14px 14px 0 0; flex-shrink: 0;
}
.product-img-wrap img {
  width: 100%; height: 100%; object-fit: cover;
  border-radius: 14px 14px 0 0; transition: transform .3s;
}
.product-card:hover .product-img-wrap img { transform: scale(1.04); }
.product-img-placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  border-radius: 14px 14px 0 0;
}
.cat-badge {
  position: absolute; top: 10px; left: 10px;
  background: rgba(37,99,235,.82); color: #fff;
  font-size: .7rem; font-weight: 700; padding: 3px 9px;
  border-radius: 50px; backdrop-filter: blur(4px);
  max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  pointer-events: none;
}

/* ─── Botão ℹ + Tooltip Global ─── */
.info-wrap { position: relative; display: inline-flex; flex-shrink: 0; }
.info-btn {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--primary); border: 2px solid rgba(255,255,255,.6);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 8px rgba(0,0,0,.18);
  transition: transform .15s, background .15s; padding: 0; flex-shrink: 0;
}
.info-btn:hover { transform: scale(1.12); }
.info-btn:focus { outline: 2px solid var(--primary-dark); outline-offset: 2px; }

.global-tooltip {
  display: none; position: absolute; z-index: 9999;
  width: 260px; max-width: calc(100vw - 24px);
  background: #1e293b; color: #fff;
  font-size: .83rem; line-height: 1.55; padding: 11px 14px;
  border-radius: 10px; box-shadow: 0 8px 28px rgba(0,0,0,.28);
  pointer-events: auto; word-break: break-word;
}
.global-tooltip::after {
  content: ''; position: absolute;
  top: 100%; left: 50%; transform: translateX(-50%);
  border: 7px solid transparent; border-top-color: #1e293b;
}
.global-tooltip.tip-below::after {
  top: auto; bottom: 100%;
  border-top-color: transparent; border-bottom-color: #1e293b;
}

/* ─── Card body ─── */
.product-top-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 4px; min-height: 24px; }
.product-body { padding: 14px 16px; display: flex; flex-direction: column; flex: 1; }
.product-ref  { font-size: .72rem; color: var(--text-muted); font-weight: 600; letter-spacing: .4px; text-transform: uppercase; }
.product-name { font-size: .97rem; font-weight: 700; color: var(--text); line-height: 1.35; margin-bottom: 10px; margin-top: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.product-price    { font-size: 1.3rem; font-weight: 800; color: var(--primary); margin-bottom: 12px; margin-top: auto; }
.product-price-na { font-size: .85rem; color: var(--text-muted); margin-bottom: 12px; margin-top: auto; font-style: italic; }
.btn-add {
  width: 100%; padding: 10px; border: none; border-radius: 9px;
  background: var(--primary); color: #fff;
  font-size: .9rem; font-weight: 700; cursor: pointer;
  transition: background .18s, transform .1s;
  display: flex; align-items: center; justify-content: center; gap: 6px; font-family: inherit;
}
.btn-add:hover  { background: var(--primary-dark); }
.btn-add:active { transform: scale(.97); }

/* ─── PAGINATION ─── */
.pagination { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 40px; flex-wrap: wrap; }
.page-btn {
  min-width: 38px; height: 38px; border-radius: 9px;
  border: 1.5px solid var(--border); background: var(--white); color: var(--text);
  font-size: .9rem; font-weight: 600; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  text-decoration: none; transition: all .18s; padding: 0 12px;
}
.page-btn:hover  { border-color: var(--primary); color: var(--primary); text-decoration: none; }
.page-active     { background: var(--primary) !important; border-color: var(--primary) !important; color: #fff !important; }
.page-disabled   { opacity: .38; pointer-events: none; }
.page-ellipsis   { color: var(--text-muted); padding: 0 4px; line-height: 38px; }
.pagination-info { text-align: center; margin-top: 12px; font-size: .84rem; color: var(--text-muted); }

/* ─── EMPTY STATE ─── */
.empty-state { text-align: center; padding: 80px 20px; color: var(--text-muted); }
.empty-icon  { font-size: 3.5rem; margin-bottom: 16px; }
.empty-title { font-size: 1.15rem; font-weight: 700; color: var(--text); margin-bottom: 8px; }

/* ─── ALERTS ─── */
.alert        { padding: 14px 18px; border-radius: var(--radius); margin-bottom: 20px; font-size: .92rem; }
.alert-danger { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
.alert-success{ background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }
.alert code   { font-size: .82rem; background: rgba(0,0,0,.06); padding: 2px 6px; border-radius: 4px; }

/* ─── FORM ─── */
.form-control {
  width: 100%; padding: 10px 14px; border: 1.5px solid var(--border);
  border-radius: 9px; font-size: .95rem; color: var(--text);
  outline: none; transition: border-color .2s; font-family: inherit; background: var(--white);
}
.form-control:focus { border-color: var(--primary); }

/* ─── CART PANEL ─── */
.cart-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 190; backdrop-filter: blur(2px); }
.cart-overlay.open { display: block; }
.cart-panel {
  position: fixed; top: 0; right: -420px; width: 420px; max-width: 96vw;
  height: 100vh; background: var(--white); z-index: 200;
  display: flex; flex-direction: column;
  box-shadow: -4px 0 40px rgba(0,0,0,.15);
  transition: right .3s cubic-bezier(.4,0,.2,1);
}
.cart-panel.open { right: 0; }
.cart-header { padding: 20px 24px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; }
.cart-header h2 { font-size: 1.15rem; font-weight: 800; }
.cart-close     { background: none; border: none; cursor: pointer; color: var(--text-muted); padding: 6px; border-radius: 8px; transition: background .18s; }
.cart-close:hover { background: var(--bg); color: var(--text); }
.cart-items     { flex: 1; overflow-y: auto; padding: 16px 24px; }
.cart-empty     { color: var(--text-muted); text-align: center; padding: 40px 0; font-size: .95rem; }
.cart-item      { display: flex; gap: 12px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--border); }
.cart-item:last-child { border-bottom: none; }
.cart-item-info { flex: 1; min-width: 0; }
.cart-item-name { font-size: .93rem; font-weight: 700; margin-bottom: 2px; word-break: break-word; }
.cart-item-ref  { font-size: .78rem; color: var(--text-muted); margin-bottom: 8px; }
.cart-item-qty  { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.qty-btn { width: 28px; height: 28px; border-radius: 7px; border: 1.5px solid var(--border); background: var(--white); cursor: pointer; font-size: 1rem; font-weight: 700; color: var(--text); display: flex; align-items: center; justify-content: center; transition: all .15s; }
.qty-btn:hover { border-color: var(--primary); color: var(--primary); }
.qty-num { font-size: .95rem; font-weight: 700; min-width: 20px; text-align: center; }
.cart-item-obs-input { width: 100%; padding: 7px 10px; border: 1.5px solid var(--border); border-radius: 8px; font-size: .82rem; color: var(--text); font-family: inherit; outline: none; transition: border-color .18s; }
.cart-item-obs-input:focus { border-color: var(--primary); }
.btn-remove-item { background: none; border: none; cursor: pointer; color: var(--text-muted); padding: 4px; border-radius: 6px; transition: all .15s; flex-shrink: 0; }
.btn-remove-item:hover { color: var(--danger); background: #fee2e2; }
.cart-footer { padding: 16px 24px; border-top: 1px solid var(--border); flex-shrink: 0; }

/* ─── MODAL ─── */
.modal { background: var(--white); border-radius: 16px; width: 100%; max-width: 420px; box-shadow: var(--shadow-lg); }
.modal-header { padding: 20px 24px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
.modal-header h3 { font-size: 1.1rem; font-weight: 700; }
.modal-close  { background: none; border: none; cursor: pointer; color: var(--text-muted); font-size: 1.1rem; padding: 4px; }
.modal-body   { padding: 20px 24px; }
.modal-footer { padding: 16px 24px; border-top: 1px solid var(--border); display: flex; gap: 10px; justify-content: flex-end; }

/* ─── TOAST ─── */
.toast-container { position: fixed; bottom: 24px; right: 24px; z-index: 9000; display: flex; flex-direction: column; gap: 10px; }
.toast { display: flex; align-items: center; gap: 10px; padding: 12px 18px; border-radius: 10px; font-size: .9rem; font-weight: 600; box-shadow: var(--shadow-lg); animation: slideIn .3s ease; max-width: 320px; }
.toast.success { background: var(--success); color: #fff; }
.toast.danger  { background: var(--danger);  color: #fff; }
.toast.info    { background: var(--primary);  color: #fff; }
@keyframes slideIn { from { transform: translateX(40px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

/* ─── FOOTER ─── */
footer { background: var(--white); border-top: 1px solid var(--border); text-align: center; padding: 24px; color: var(--text-muted); font-size: .88rem; margin-top: 40px; }

/* ─── AUTH PAGES ─── */
.auth-page  { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px; }
.auth-card  { background: var(--white); border-radius: 20px; padding: 40px; width: 100%; max-width: 420px; box-shadow: var(--shadow-lg); }
.auth-card h1 { font-size: 1.6rem; font-weight: 800; margin-bottom: 6px; }
.auth-card .subtitle { color: var(--text-muted); margin-bottom: 28px; font-size: .95rem; }
.form-group { margin-bottom: 18px; }
.form-label { display: block; font-size: .88rem; font-weight: 600; margin-bottom: 6px; }
.auth-footer { text-align: center; margin-top: 20px; font-size: .9rem; color: var(--text-muted); }

/* ─── RESPONSIVE ─── */
@media (max-width: 900px) {
  .carousel        { height: 360px; }
  .carousel-content{ padding: 0 40px 36px; }
  .carousel-titulo { font-size: 1.6rem; }
  .product-grid    { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
}
@media (max-width: 640px) {
  .carousel        { height: 280px; }
  .carousel-content{ padding: 0 20px 28px; }
  .carousel-titulo { font-size: 1.25rem; }
  .carousel-desc   { font-size: .9rem; }
  .carousel-btn    { width: 38px; height: 38px; }
  .hero h1         { font-size: 1.5rem; }
  .navbar-inner    { padding: 0 16px; gap: 10px; }
  .nav-greeting    { display: none; }
  .filters-inner   { padding: 10px 16px; gap: 8px; }
  .search-box      { max-width: 100%; flex: 1 1 100%; }
  .filter-label    { display: none; }
  .product-grid    { grid-template-columns: 1fr 1fr; gap: 12px; }
  .section         { padding: 20px 16px 48px; }
  .cart-panel      { width: 100%; max-width: 100%; }
  .toast-container { left: 16px; right: 16px; bottom: 16px; }
}
@media (max-width: 380px) {
  .product-grid { grid-template-columns: 1fr; }
}


/* ─── PWA INSTALL BUTTON ─── */
.pwa-install-btn{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 9500;
  border: none;
  background: var(--primary);
  color: #fff;
  font-weight: 800;
  padding: 12px 14px;
  border-radius: 14px;
  box-shadow: var(--shadow-lg);
  cursor: pointer;
}
.pwa-install-btn:hover{ background: var(--primary-dark); }
.pwa-install-btn.hidden{ display:none; }

/* ─── RESPONSIVE (ENTERPRISE) ─── */
@media (max-width: 1024px){
  .container, .section{ padding-left: 16px; padding-right: 16px; }
  .navbar-inner{ padding: 0 16px; }
}
@media (max-width: 768px){
  .navbar-inner{ gap: 10px; }
  .navbar-actions{ gap: 8px; }
  .nav-greeting{ display:none; }
  .navbar-logo{ max-width: 140px; }
  .btn-cart{ padding: 9px 14px; }
  .filters{ grid-template-columns: 1fr; }
  .section{ padding-top: 18px; }
  .modal{ max-width: 94vw; }
  .toast-container{ right: 12px; bottom: 12px; }
}
@media (max-width: 480px){
  .navbar-inner{ height: auto; padding: 10px 14px; flex-wrap: wrap; }
  .navbar-actions{ margin-left: 0; width: 100%; justify-content: space-between; }
  .btn{ padding: 10px 14px; }
  .btn-cart{ width: 100%; justify-content: center; }
  .product-img-wrap{ height: 170px; }
  .product-grid{ gap: 14px; }
}

/* ─── CART MODE CONFIGURÁVEL ─────────────────────────────────
   auto  = gaveta escondida (comportamento atual)
   fixo  = painel sempre visível à direita em desktop
*/
@media (min-width: 1180px) {
  body.cart-mode-fixo {
    padding-right: 420px;
  }
  body.cart-mode-fixo .cart-panel {
    right: 0;
    width: 420px;
    max-width: 420px;
    box-shadow: -12px 0 28px rgba(15,23,42,.10);
    border-left: 1px solid var(--border);
  }
  body.cart-mode-fixo .cart-overlay {
    display: none !important;
  }
  body.cart-mode-fixo .cart-close {
    display: none;
  }
  body.cart-mode-fixo .btn-cart {
    background: var(--primary-dark);
  }
  body.cart-mode-fixo .toast-container {
    right: 444px;
  }
}
@media (max-width: 1179px) {
  body.cart-mode-fixo {
    padding-right: 0;
  }
}

/* ─── CAMPOS DINÂMICOS DO CHECKOUT ─────────────────────────── */
.cart-extra-fields {
  margin-bottom: 14px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #f8fafc;
}
.cart-extra-title {
  font-size: .86rem;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 10px;
}
.cart-extra-label {
  display: block;
  font-size: .78rem;
  font-weight: 700;
  color: var(--text-muted);
  margin: 8px 0 5px;
}
.cart-extra-input {
  width: 100%;
  padding: 9px 10px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  font-size: .88rem;
  color: var(--text);
  background: var(--white);
  font-family: inherit;
  outline: none;
}
.cart-extra-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.10);
}
.extra-field-line{display:block;margin:4px 0}.extra-field-line strong{color:var(--text)}

/* Validação visual dos campos dinâmicos do checkout */
.cart-extra-input.field-invalid {
  border-color: var(--danger) !important;
  box-shadow: 0 0 0 3px rgba(239,68,68,.12) !important;
  background: #fff7f7;
}
.toast-container { z-index: 9800; }

/* V19 — Modern Responsive Platform */
:root{
  --primary:#3157c8;
  --primary-dark:#263f9e;
  --primary-light:#eef3ff;
  --accent:#d20a91;
  --accent-soft:#fde7f6;
  --text:#172033;
  --text-muted:#6b7890;
  --border:#e4eaf3;
  --bg:#f6f8fc;
  --white:#ffffff;
  --radius:18px;
  --shadow:0 10px 28px rgba(23,32,51,.055);
  --shadow-lg:0 24px 70px rgba(23,32,51,.16);
}
html{font-size:16px}body.modern-platform,body.auth-modern{font-family:"Inter","Aptos","Segoe UI Variable","Segoe UI",Roboto,Arial,sans-serif;background:radial-gradient(circle at 12% 0%,rgba(210,10,145,.075),transparent 340px),radial-gradient(circle at 92% 4%,rgba(49,87,200,.10),transparent 380px),var(--bg);color:var(--text);font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.container,.section{max-width:1440px}.navbar{background:rgba(255,255,255,.84);backdrop-filter:blur(18px);border-bottom:1px solid rgba(226,232,240,.78);box-shadow:0 14px 34px rgba(23,32,51,.055)}.navbar-inner{height:74px}.navbar-brand{font-weight:650;color:var(--text);letter-spacing:-.02em}.navbar-logo{max-height:50px;max-width:210px}.navbar-logo-fallback strong{font-weight:650}.navbar-actions .btn-link{font-weight:500;color:var(--text-muted)}.nav-greeting{font-weight:400;color:#7a879b}.btn,.btn-cart,.btn-add{font-weight:600;border-radius:14px}.btn-primary,.btn-cart,.btn-add{background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 12px 28px rgba(49,87,200,.18)}.btn-primary:hover,.btn-cart:hover,.btn-add:hover{background:linear-gradient(135deg,var(--primary-dark),#b80a80);transform:translateY(-1px)}.btn-outline{border:1px solid #d7e0ee;color:var(--primary);background:#fff}.cart-badge{background:var(--accent);box-shadow:0 0 0 4px rgba(210,10,145,.13)}.hero{padding:64px 24px 76px;background:linear-gradient(135deg,rgba(49,87,200,.96),rgba(210,10,145,.86)),radial-gradient(circle at 30% 20%,rgba(255,255,255,.20),transparent 300px);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.10),transparent 34%,rgba(255,255,255,.08));pointer-events:none}.hero>*{position:relative}.hero-logo{max-height:96px;background:rgba(255,255,255,.92);padding:10px;border-radius:24px;box-shadow:0 22px 48px rgba(15,23,42,.16)}.hero h1{font-weight:650;letter-spacing:-.045em;font-size:clamp(2rem,5vw,3.65rem)}.hero p{font-weight:400;opacity:.88;line-height:1.75}.carousel{height:360px;border-radius:0 0 34px 34px;box-shadow:0 24px 60px rgba(23,32,51,.14)}.carousel-overlay{background:linear-gradient(90deg,rgba(15,23,42,.72),rgba(15,23,42,.26),rgba(15,23,42,.62))}.carousel-titulo{font-weight:650;letter-spacing:-.045em}.carousel-desc{font-weight:400}.carousel-btn{border:1px solid rgba(255,255,255,.42);background:rgba(255,255,255,.16);box-shadow:0 10px 28px rgba(0,0,0,.14)}.filters-bar{top:74px;background:rgba(255,255,255,.84);backdrop-filter:blur(18px);border-bottom:1px solid rgba(226,232,240,.78);box-shadow:0 12px 30px rgba(23,32,51,.05)}.filters-inner{padding:16px 24px;gap:12px}.search-box{background:#fff;border:1px solid var(--border);border-radius:999px;min-height:46px;box-shadow:0 10px 24px rgba(23,32,51,.045)}.search-box:focus-within{border-color:#c7d2fe;box-shadow:0 0 0 4px rgba(49,87,200,.10)}.filter-label{font-weight:560;letter-spacing:.08em}.filter-select{border:1px solid var(--border);border-radius:14px;min-height:44px;box-shadow:0 8px 18px rgba(23,32,51,.035)}.btn-clear-all{border:1px solid #ffd2df;border-radius:14px;color:#b10d76;background:#fff}.filter-active-badge{background:var(--accent-soft);color:#a00872;border-color:#f8bfdf}.product-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:24px}.product-card{border:1px solid var(--border);border-radius:24px;background:rgba(255,255,255,.94);box-shadow:var(--shadow);overflow:hidden;transform:translateZ(0)}.product-card:hover{transform:translateY(-5px);box-shadow:0 22px 54px rgba(23,32,51,.12);border-color:#d8e2f2}.product-img-wrap{height:230px;border-radius:24px 24px 0 0;background:linear-gradient(135deg,#f6f8ff,#fff4fb)}.product-img-wrap img,.product-img-placeholder{border-radius:24px 24px 0 0}.cat-badge{background:rgba(49,87,200,.88);font-weight:560;letter-spacing:.02em;box-shadow:0 8px 18px rgba(49,87,200,.18)}.product-body{padding:18px}.product-ref{font-weight:560;color:#7a879b}.product-name{font-weight:600;color:var(--text);font-size:1rem;line-height:1.42}.product-price{font-weight:650;color:var(--primary);letter-spacing:-.035em}.info-btn{background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 8px 22px rgba(49,87,200,.18)}.global-tooltip{background:#172033;border:1px solid rgba(255,255,255,.10);box-shadow:0 18px 44px rgba(15,23,42,.24)}.page-btn{border:1px solid var(--border);border-radius:13px;background:#fff;font-weight:560}.page-active{background:linear-gradient(135deg,var(--primary),var(--accent))!important;border-color:transparent!important}.empty-state{border:1px dashed #d7e0ee;background:rgba(255,255,255,.74);border-radius:28px}.empty-title{font-weight:620}.form-control{border:1px solid var(--border);border-radius:14px;background:#fff;font-weight:400}.form-control:focus{border-color:#c7d2fe;box-shadow:0 0 0 4px rgba(49,87,200,.10)}.cart-overlay{background:rgba(23,32,51,.42);backdrop-filter:blur(5px)}.cart-panel{width:460px;right:-460px;box-shadow:-24px 0 70px rgba(23,32,51,.16);border-left:1px solid var(--border)}.cart-header{padding:22px 26px;background:linear-gradient(180deg,#fff,#fbfcff)}.cart-header h2{font-weight:650;color:var(--text)}.cart-items{padding:18px 26px}.cart-footer{padding:18px 26px;background:#fbfcff}.cart-item{border-bottom:1px solid #edf1f7}.cart-item-name{font-weight:600;color:var(--text)}.qty-btn{border:1px solid var(--border);font-weight:560;border-radius:10px}.cart-extra-fields{background:#fff;border-color:#e5ebf4;border-radius:18px}.cart-extra-title{font-weight:650}.cart-extra-label{font-weight:560}.cart-extra-input{border:1px solid var(--border);border-radius:13px}.toast{font-weight:560;border-radius:14px;box-shadow:0 22px 52px rgba(23,32,51,.18)}footer{background:rgba(255,255,255,.76);backdrop-filter:blur(14px);border-top:1px solid var(--border)}

/* Auth cliente moderno */
.auth-modern{min-height:100vh;background:radial-gradient(circle at 20% 0%,rgba(210,10,145,.12),transparent 320px),radial-gradient(circle at 88% 10%,rgba(49,87,200,.15),transparent 360px),linear-gradient(135deg,#f7f9fc,#eef3fb)}.auth-modern .auth-page{min-height:100vh}.auth-modern .auth-card{border:1px solid #e5ebf4;border-radius:30px;padding:36px;background:rgba(255,255,255,.92);box-shadow:0 30px 90px rgba(23,32,51,.13);backdrop-filter:blur(18px)}.auth-logo{text-align:center;margin-bottom:24px}.auth-logo-img{width:88px;height:88px;object-fit:contain;margin:0 auto 12px;background:#fff;border-radius:24px;padding:10px;box-shadow:0 16px 38px rgba(49,87,200,.10)}.auth-card h1{font-weight:650;letter-spacing:-.035em;color:var(--text)}.auth-card .subtitle,.auth-logo p{color:#6b7890;font-weight:400}.auth-divider{display:flex;align-items:center;gap:12px;color:#8b98ad;font-size:.82rem;margin:22px 0;text-transform:uppercase;letter-spacing:.08em}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#e5ebf4;flex:1}

/* Página de conta/encomendas */
.account-modern .navbar{position:sticky}.account-modern .section,.account-modern .container{max-width:1320px}.account-modern .card,.account-modern .order-card{border-radius:22px;border:1px solid var(--border);box-shadow:var(--shadow)}

@media (min-width:1180px){body.cart-mode-fixo{padding-right:460px}body.cart-mode-fixo .cart-panel{width:460px;max-width:460px}body.cart-mode-fixo .toast-container{right:484px}}
@media (max-width:1024px){.product-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.carousel{height:330px}.filters-bar{top:64px}.navbar-inner{height:64px}}
@media (max-width:720px){.navbar{position:sticky}.navbar-inner{height:auto;min-height:68px;align-items:flex-start}.navbar-brand{flex:1;min-width:0}.navbar-logo{max-width:155px}.navbar-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.navbar-actions .btn-link{background:#fff;border:1px solid var(--border);border-radius:12px;text-align:center;justify-content:center}.btn-cart{grid-column:1 / -1;width:100%;justify-content:center}.filters-bar{position:relative;top:0}.filters-inner{display:grid;grid-template-columns:1fr;gap:10px}.search-box{max-width:none}.filter-group{display:grid;grid-template-columns:1fr}.filter-select{width:100%}.filter-active-info{margin-left:0;justify-content:space-between}.hero{padding:42px 18px 52px}.hero-logo{max-height:78px}.carousel{height:270px;border-radius:0 0 22px 22px}.carousel-content{padding:0 24px 32px}.carousel-titulo{font-size:1.45rem}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.product-img-wrap{height:165px}.product-body{padding:14px}.product-name{font-size:.92rem}.product-price{font-size:1.08rem}.section{padding:18px 14px 44px}.cart-panel{width:100%;max-width:100%;right:-100%;border-radius:22px 22px 0 0}.cart-panel.open{right:0}.cart-header,.cart-items,.cart-footer{padding-left:18px;padding-right:18px}}
@media (max-width:420px){.product-grid{grid-template-columns:1fr}.product-img-wrap{height:220px}.auth-modern .auth-card{padding:28px 22px;border-radius:24px}}

/* V20 — rodapé empresarial Litinfor */
.public-company-footer{background:rgba(255,255,255,.90);backdrop-filter:blur(16px);border-top:1px solid var(--border);padding:18px 24px;margin-top:48px;text-align:left;color:var(--text-muted)}.public-footer-inner{max-width:1440px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:14px}.public-footer-inner img{width:44px;height:44px;border-radius:14px;object-fit:contain;background:#fff;border:1px solid var(--border);padding:4px}.public-footer-inner strong{display:block;color:var(--text);font-weight:650}.public-footer-inner span{display:block;font-size:.86rem;line-height:1.45}@media(max-width:720px){.public-footer-inner{align-items:flex-start;justify-content:flex-start}.public-footer-inner span{font-size:.8rem}}


/* V21 — footer público Litinfor elegante */
.public-company-footer{background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.98));border-top:1px solid #e5ebf4;box-shadow:0 -8px 20px rgba(23,32,51,.03);padding:20px 24px}.public-footer-inner{justify-content:flex-start;gap:16px}.public-footer-inner img{width:148px;height:42px;border-radius:14px;padding:6px 10px}.public-footer-inner strong{font-size:1rem}.public-footer-inner span{display:block;color:#66758c;font-size:.84rem;line-height:1.55}@media(max-width:720px){.public-footer-inner{gap:12px}.public-footer-inner img{width:128px;height:38px}}


/* V29 — catálogo com duas visualizações: cartões/lista */
.view-switch{
  display:flex; align-items:center; gap:4px;
  background:var(--bg); border:1.5px solid var(--border);
  border-radius:12px; padding:4px;
}
.view-switch-btn{
  display:inline-flex; align-items:center; gap:6px;
  padding:7px 10px; border-radius:9px;
  color:var(--text-muted); font-size:.84rem; font-weight:700;
  transition:background .16s,color .16s,box-shadow .16s;
}
.view-switch-btn:hover{background:var(--white);color:var(--primary);text-decoration:none;}
.view-switch-btn.active{
  background:var(--primary); color:white;
  box-shadow:0 8px 18px color-mix(in srgb,var(--primary) 25%,transparent);
}
.view-icon{font-size:1rem;line-height:1;}

.catalog-list-shell{
  background:var(--white); border:1px solid var(--border);
  border-radius:18px; box-shadow:var(--shadow); overflow:hidden;
}
.catalog-list-toolbar{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:16px 18px; border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,#fff,#f8fafc);
}
.catalog-list-toolbar strong{display:block;color:var(--text);font-size:1rem;}
.catalog-list-toolbar span{display:block;color:var(--text-muted);font-size:.86rem;margin-top:3px;}
.catalog-list-back{
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--border); border-radius:10px; padding:9px 13px;
  font-weight:700; color:var(--primary); background:white; white-space:nowrap;
}
.catalog-list-back:hover{text-decoration:none;background:var(--primary-light);}
.catalog-list{width:100%;}
.catalog-list-head{
  display:grid; grid-template-columns:minmax(360px,1.5fr) 160px 130px 280px;
  gap:16px; padding:12px 18px;
  background:#f1f5f9; color:#475569;
  text-transform:uppercase; letter-spacing:.07em; font-size:.75rem; font-weight:800;
  border-bottom:1px solid var(--border);
}
.catalog-list-row{
  display:grid; grid-template-columns:minmax(360px,1.5fr) 160px 130px 280px;
  gap:16px; align-items:center;
  padding:12px 18px; border-bottom:1px solid var(--border);
  transition:background .15s ease;
}
.catalog-list-row:nth-child(even){background:#fbfdff;}
.catalog-list-row:hover{background:#f8fbff;}
.catalog-list-product{display:flex; align-items:center; gap:14px; min-width:0;}
.catalog-list-img{
  width:78px; height:78px; flex:0 0 78px;
  border:1px solid var(--border); border-radius:12px;
  background:linear-gradient(135deg,#e0e7ff,#f8fafc); overflow:hidden;
}
.catalog-list-img img{width:100%;height:100%;object-fit:cover;display:block;}
.list-img-placeholder{
  width:100%; height:100%; display:grid; place-items:center;
  color:#94a3b8; font-size:1.7rem; background:#f1f5f9;
}
.catalog-list-info{min-width:0;}
.catalog-list-info strong{
  display:block; color:var(--text); font-size:.98rem; line-height:1.35;
  margin:4px 0 2px; overflow:hidden; text-overflow:ellipsis;
}
.list-ref{display:block;color:var(--text-muted);font-size:.86rem;}
.list-family{
  display:inline-flex; max-width:170px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  background:var(--primary-light); color:var(--primary); border-radius:999px;
  font-size:.72rem; font-weight:800; padding:3px 9px;
}
.list-info-btn{
  margin-top:6px; border:0; background:transparent; color:var(--primary);
  font-size:.78rem; font-weight:700; padding:0; cursor:pointer;
}
.catalog-list-price strong{
  display:block; color:var(--primary); font-size:1.02rem; font-weight:800;
}
.catalog-list-price span{color:var(--text-muted);font-weight:700;}
.catalog-list-stock{
  display:flex; align-items:baseline; gap:4px; color:var(--success);
  font-weight:800;
}
.catalog-list-stock small{color:var(--text-muted);font-weight:700;}
.catalog-list-stock.stock-zero{color:var(--danger);}
.catalog-list-actions{
  display:grid; grid-template-columns:44px 70px 44px minmax(96px,1fr);
  gap:8px; align-items:center;
}
.list-qty-btn{
  width:44px; height:38px; border:1px solid var(--border);
  border-radius:10px; background:white; color:var(--text);
  font-size:1.25rem; font-weight:800; cursor:pointer;
}
.list-qty-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light);}
.list-qty-input{
  width:70px; height:38px; border:1px solid var(--border);
  border-radius:10px; text-align:center; font-weight:800; color:var(--text);
}
.list-add-btn{
  height:38px; border:0; border-radius:10px; background:var(--primary);
  color:white; font-weight:800; cursor:pointer; padding:0 12px;
}
.list-add-btn:hover{background:var(--primary-dark);}
.catalog-view-lista .product-grid{display:none;}

@media(max-width:980px){
  .filter-active-info{margin-left:0;width:100%;justify-content:space-between;}
  .view-switch{order:20;}
  .catalog-list-head{display:none;}
  .catalog-list-row{
    grid-template-columns:1fr; gap:12px; padding:14px;
  }
  .catalog-list-product{align-items:flex-start;}
  .catalog-list-actions{
    grid-template-columns:44px 70px 44px 1fr;
  }
  .catalog-list-price,.catalog-list-stock{
    display:flex; justify-content:space-between; align-items:center;
    padding:8px 0; border-top:1px dashed var(--border);
  }
  .catalog-list-price::before{content:'Preço';color:var(--text-muted);font-weight:700;}
  .catalog-list-stock::before{content:'Stock';color:var(--text-muted);font-weight:700;margin-right:auto;}
}
@media(max-width:560px){
  .view-switch{width:100%;}
  .view-switch-btn{flex:1;justify-content:center;}
  .catalog-list-toolbar{align-items:flex-start;flex-direction:column;}
  .catalog-list-back{width:100%;}
  .catalog-list-img{width:66px;height:66px;flex-basis:66px;}
  .catalog-list-actions{grid-template-columns:40px 62px 40px 1fr;}
  .list-add-btn{font-size:.82rem;}
}


/* V30 — polimento da lista rápida do catálogo */
.catalog-list-toolbar{
  padding:14px 18px;
  background:linear-gradient(180deg,#ffffff,#fbfdff);
}
.catalog-list-toolbar strong{
  font-size:1.05rem;
  letter-spacing:-.01em;
}
.catalog-list-summary{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
  color:var(--text-muted);
  font-size:.84rem;
  white-space:nowrap;
}
.catalog-list-summary span{
  color:var(--text);
  font-weight:800;
}
.catalog-list-summary small{
  font-size:.76rem;
  color:var(--text-muted);
}
.catalog-list-back{display:none!important;}
.catalog-list-head{
  grid-template-columns:minmax(380px,1.6fr) 150px 120px 270px;
  padding:10px 18px;
  position:sticky;
  top:0;
  z-index:2;
}
.catalog-list-row{
  grid-template-columns:minmax(380px,1.6fr) 150px 120px 270px;
  padding:10px 18px;
  min-height:104px;
}
.catalog-list-img{
  width:70px;
  height:70px;
  flex-basis:70px;
  border-radius:11px;
}
.catalog-list-info strong{
  font-size:.96rem;
  line-height:1.28;
  font-weight:800;
  max-width:620px;
}
.list-ref{
  font-size:.84rem;
  margin-top:3px;
}
.list-family{
  font-size:.70rem;
  padding:3px 8px;
}
.list-info-btn{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:5px;
  color:var(--primary);
  background:transparent;
  border:0;
}
.list-info-btn::before{
  content:'ℹ';
  font-size:.78rem;
}
.catalog-list-price strong{
  font-size:1rem;
  white-space:nowrap;
}
.catalog-list-actions{
  justify-content:end;
  grid-template-columns:42px 68px 42px 104px;
}
.list-qty-btn,
.list-qty-input,
.list-add-btn{
  height:36px;
}
.list-qty-btn{
  width:42px;
}
.list-add-btn{
  padding:0 10px;
}
.view-switch{
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.02);
}
.view-switch-btn{
  min-height:34px;
}
.filters-inner{
  row-gap:8px;
}
@media(max-width:980px){
  .catalog-list-summary{
    align-items:flex-start;
    white-space:normal;
  }
  .catalog-list-head{
    position:static;
  }
  .catalog-list-row{
    min-height:0;
  }
}
@media(max-width:560px){
  .catalog-list-toolbar{
    padding:14px;
  }
  .catalog-list-summary{
    width:100%;
  }
}


/* V31 — correção do tooltip de descrição na vista lista */
.list-info-btn{
  border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);
  background:var(--primary-light);
  color:var(--primary);
  border-radius:999px;
  padding:4px 9px;
  line-height:1;
}
.list-info-btn:hover{
  background:var(--primary);
  color:#fff;
}
.list-info-btn::before{
  content:none!important;
}
.catalog-list-row .global-tooltip{
  pointer-events:auto;
}


/* V32 — CTA no hero/carrossel */
.carousel-cta{
  display:inline-flex;align-items:center;justify-content:center;margin-top:18px;
  background:#fff;color:var(--primary);border-radius:999px;padding:11px 18px;
  font-weight:800;box-shadow:0 14px 35px rgba(0,0,0,.22);text-decoration:none;
}
.carousel-cta:hover{transform:translateY(-1px);text-decoration:none;background:var(--primary);color:#fff;}


/* V34 — modal moderno de promoções */
.carousel-cta{border:0;cursor:pointer;font-family:inherit;}
.promo-modal{
  position:fixed;inset:0;z-index:500;display:none;align-items:center;justify-content:center;padding:20px;
}
.promo-modal.open{display:flex;}
.promo-modal-backdrop{
  position:absolute;inset:0;background:rgba(15,23,42,.62);backdrop-filter:blur(8px);
}
.promo-modal-card{
  position:relative;z-index:1;width:min(920px,calc(100vw - 32px));max-height:calc(100vh - 42px);
  display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border-radius:28px;overflow:hidden;
  box-shadow:0 30px 90px rgba(15,23,42,.35);
}
.promo-modal-close{
  position:absolute;right:16px;top:14px;z-index:3;width:38px;height:38px;border:0;border-radius:50%;
  background:rgba(15,23,42,.75);color:#fff;font-size:24px;line-height:1;cursor:pointer;
}
.promo-modal-image{
  min-height:420px;background:linear-gradient(135deg,var(--hero-start),var(--primary),var(--hero-end));background-size:cover;background-position:center;
}
.promo-modal-image.has-image::after{
  content:'';display:block;width:100%;height:100%;background:linear-gradient(90deg,rgba(15,23,42,.25),rgba(15,23,42,.05));
}
.promo-modal-body{
  padding:48px 42px;display:flex;flex-direction:column;justify-content:center;gap:14px;
}
.promo-eyebrow{
  color:var(--primary);font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;font-weight:900;
}
.promo-modal-body h2{
  margin:0;color:var(--text);font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.08;letter-spacing:-.04em;
}
.promo-modal-body p{
  margin:0;color:var(--text-muted);font-size:1rem;line-height:1.7;
}
.promo-modal-action{
  margin-top:12px;display:inline-flex;align-items:center;justify-content:center;width:max-content;
  background:var(--primary);color:#fff;border-radius:999px;padding:12px 20px;font-weight:900;text-decoration:none;
  box-shadow:0 16px 35px color-mix(in srgb,var(--primary) 30%,transparent);
}
.promo-modal-action:hover{text-decoration:none;background:var(--primary-dark);color:#fff;}
body.modal-open{overflow:hidden;}
@media(max-width:760px){
  .promo-modal-card{grid-template-columns:1fr;border-radius:22px;overflow:auto;}
  .promo-modal-image{min-height:220px;}
  .promo-modal-body{padding:30px 24px;}
}

/* V39 — lista rápida: + e - atualizam diretamente o carrinho */
.catalog-list-actions-inline{
  grid-template-columns:44px 72px 44px!important;
  justify-content:end;
}
.catalog-list-actions-inline .list-qty-input{
  background:#fff;
  cursor:default;
}
.catalog-list-actions-inline .list-qty-input[value="0"]{
  color:var(--text-muted);
}
@media(max-width:560px){
  .catalog-list-actions-inline{
    grid-template-columns:42px 68px 42px!important;
    justify-content:start;
  }
}
