/* ============================================================================
   INOVA · PREMIUM OVERHAUL · nível Awwwards
   ----------------------------------------------------------------------------
   Carregado POR ÚLTIMO. Sobrepõe public.css, inova-anim.css, inova-tweaks.css
   e inova-ds.css. Foco em PROFUNDIDADE, TIPOGRAFIA, MOVIMENTO, ELEGÂNCIA.
   ========================================================================== */

/* ============================================================================
   NEUTRALIZADORES · zera estilos legados em classes que cohabit com ds-*
   (o _card-produto.ejs aplica ds-prod E prod-card juntos pra compat de JS)
   ========================================================================== */
.ds-prod.prod-card,
article.prod-card.ds-prod {
  /* Tira regras antigas de border/padding/background do public.css */
  background: #fff !important;
  border: 1px solid transparent !important;
  display: flex !important;
  flex-direction: column !important;
}
.ds-prod .prod-foto,
.ds-prod .prod-info,
.ds-prod .prod-preco { padding: 0 !important; background: transparent !important; }
.ds-prod .btn-comprar { background: transparent !important; color: var(--vermelho) !important; }
.ds-prod .prod-badge { all: unset !important; display: inline-flex !important; }

:root {
  /* Paleta refinada · ink (preto-frio), vinho, vermelho, cream, ice, gold */
  --ink:        #0d0d0e;
  --ink-2:      #1a1a1d;
  --ink-3:      #2a2a2e;
  --vinho:      #6e0a1a;
  --vermelho:   #c8102e;
  --vermelho-2: #a50d24;
  --cream:      #fbf5ec;
  --cream-2:    #f3ece0;
  --ice:        #e8ebef;
  --ice-2:      #f2f4f7;
  --gold:       #c9a76d;
  --gold-2:     #b08a4a;
  --amarelo:    #ffd200;
  --pix:        #32bcad;
  --verde:      #00875a;

  /* Sombras em camadas — profundidade real */
  --sh-1: 0 1px 2px rgba(13,13,14,.06), 0 2px 4px rgba(13,13,14,.04);
  --sh-2: 0 2px 4px rgba(13,13,14,.06), 0 8px 16px rgba(13,13,14,.06), 0 16px 32px rgba(13,13,14,.04);
  --sh-3: 0 4px 8px rgba(13,13,14,.08), 0 16px 32px rgba(13,13,14,.10), 0 32px 64px rgba(13,13,14,.06);
  --sh-4: 0 8px 16px rgba(13,13,14,.12), 0 24px 48px rgba(13,13,14,.16), 0 48px 96px rgba(13,13,14,.10);
  --sh-red:  0 4px 12px rgba(200,16,46,.18), 0 16px 40px rgba(200,16,46,.18), 0 32px 64px rgba(200,16,46,.10);
  --sh-gold: 0 4px 12px rgba(255,210,0,.30), 0 16px 32px rgba(255,210,0,.20);
  --sh-glow-red: 0 0 0 1px rgba(200,16,46,.4), 0 12px 24px rgba(200,16,46,.32);

  /* Curvas / easings expressivas */
  --ease-quick: cubic-bezier(.22,.61,.36,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --ease-power: cubic-bezier(.65,0,.35,1);

  --r-sm: 8px; --r-md: 14px; --r-lg: 22px; --r-xl: 32px;
}

/* ============================================================================
   FONTE DISPLAY ADICIONAL · "Fraunces" pra hero (legível, escultural)
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,700;9..144,900&display=swap');

/* Reset + tipografia base premium */
html, body {
  background: #fff;
  overflow-x: hidden !important;  /* impede scroll horizontal por causa de marquee/blob */
  max-width: 100vw;
  scroll-behavior: smooth;
}
body {
  background: #fff !important;
  color: var(--ink) !important;
  font-feature-settings: 'cv11','ss01','ss03','calt';
}
*, *::before, *::after { box-sizing: border-box; }
h1, h2, h3, h4, h5, h6 { color: var(--ink) }

/* Suaviza dark-mode antigo se algum dia voltar */
html[data-theme="dark"] { background: #fff !important; }
html[data-theme="dark"] body { background: #fff !important; color: var(--ink) !important }

/* Largura útil · maior pra ocupar telas wide sem sobrar gap nas laterais */
.container { max-width: 1480px !important; margin: 0 auto; padding: 0 40px !important; }
@media (max-width: 980px) { .container { padding: 0 24px !important; } }
@media (max-width: 540px) { .container { padding: 0 16px !important; } }

/* Em telas ULTRA-WIDE (>1700px) o container vai até 1600px */
@media (min-width: 1700px) { .container { max-width: 1600px !important; } }
@media (min-width: 2000px) { .container { max-width: 1760px !important; } }

/* Bandeiras de pagamento · uniformizar tamanho premium */
.pag-bandeiras { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.pag-logo {
  height: 36px !important; width: auto !important;
  padding: 6px 12px !important;
  background: #fff !important;
  border: 1px solid rgba(13,13,14,.08) !important;
  border-radius: 8px !important;
  object-fit: contain !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  transition: transform .2s var(--ease-spring), box-shadow .2s, border-color .2s;
}
.pag-logo:hover { transform: translateY(-2px); box-shadow: var(--sh-2); border-color: var(--vermelho) !important; }
.pag-logo-pix { padding: 4px 10px !important; }
.pag-bandeiras > svg { height: 36px !important; width: auto !important; }
.pag-bandeiras > .pix-tag { padding: 8px 14px !important; font-size: 13px !important; }

/* Maiores grids ficam confortáveis na largura nova */
.ds-grid-produtos { grid-template-columns: repeat(5, 1fr) !important; }
@media (max-width: 1400px) { .ds-grid-produtos { grid-template-columns: repeat(4, 1fr) !important; } }
@media (max-width: 1100px) { .ds-grid-produtos { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 720px)  { .ds-grid-produtos { grid-template-columns: repeat(2, 1fr) !important; } }

/* ============================================================================
   NOISE TEXTURE · SVG turbulence inline pra textura premium
   ========================================================================== */
.has-noise { position: relative; isolation: isolate; }
.has-noise::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  opacity: .07; mix-blend-mode: overlay; z-index: 1;
}

/* ============================================================================
   TOPBAR PREMIUM · vinho profundo + marquee de cupom
   ========================================================================== */
.ds-topbar {
  background: linear-gradient(90deg, var(--ink) 0%, var(--vinho) 50%, var(--ink) 100%) !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  position: relative; overflow: hidden;
}
.ds-topbar::before {
  content: ''; position: absolute; inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  opacity: .04; pointer-events: none;
}
.ds-topbar-pill {
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.ds-topbar-rotativo strong { color: var(--amarelo) !important; text-shadow: 0 1px 0 rgba(0,0,0,.4); }

/* ============================================================================
   HEADER PREMIUM · sticky com glass profundo
   ========================================================================== */
.ds-header {
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid rgba(13,13,14,.06) !important;
  transition: all .35s var(--ease-quick) !important;
}
.ds-header.is-scrolled { box-shadow: var(--sh-2) !important; }

/* Busca pill — glass + glow no focus */
.ds-busca {
  background: var(--ice-2) !important;
  border: 2px solid transparent !important;
  box-shadow: inset 0 1px 2px rgba(13,13,14,.04);
  transition: all .25s var(--ease-quick);
}
.ds-busca:hover { background: #fff !important; border-color: var(--ice) !important; box-shadow: var(--sh-1); }
.ds-busca:focus-within { background: #fff !important; border-color: var(--vermelho) !important; box-shadow: 0 0 0 6px rgba(200,16,46,.08), var(--sh-2); }
.ds-busca button[type="submit"] {
  background: linear-gradient(180deg, var(--vermelho) 0%, var(--vermelho-2) 100%) !important;
  box-shadow: var(--sh-1), inset 0 1px 0 rgba(255,255,255,.2);
  font-weight: 900 !important;
}
.ds-busca button[type="submit"]:hover { box-shadow: var(--sh-red), inset 0 1px 0 rgba(255,255,255,.2); transform: translateY(-1px); }

/* CEP button premium */
.ds-cep-btn {
  background: var(--cream) !important;
  border: 1px solid rgba(13,13,14,.08) !important;
  transition: all .25s var(--ease-quick);
}
.ds-cep-btn:hover { background: #fff !important; border-color: var(--vermelho) !important; box-shadow: var(--sh-2); transform: translateY(-1px); }
.ds-cep-btn .pin { background: linear-gradient(180deg, var(--vermelho), var(--vinho)) !important; box-shadow: var(--sh-1); }

/* Ações conta/carrinho premium */
.ds-acao { transition: all .25s var(--ease-quick) }
.ds-acao:hover { transform: translateY(-2px) }
.ds-acao .ic {
  background: var(--ice-2) !important;
  transition: all .3s var(--ease-spring);
}
.ds-acao:hover .ic {
  background: linear-gradient(180deg, var(--vermelho), var(--vinho)) !important;
  color: #fff !important;
  box-shadow: var(--sh-red);
  transform: scale(1.08) rotate(-6deg);
}
.ds-acao .badge-mini { background: var(--vermelho) !important; box-shadow: 0 0 0 2px #fff, 0 2px 8px rgba(200,16,46,.5) !important; }

/* Cats bar — tipografia mais elegante */
.ds-cats-bar { background: #fff !important; border-bottom-color: rgba(13,13,14,.06) !important; }
.ds-megamenu-btn {
  background: var(--ink) !important;
  background: linear-gradient(180deg, var(--ink-2), var(--ink)) !important;
  position: relative; overflow: hidden;
}
.ds-megamenu-btn::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, var(--vermelho), var(--vinho));
  transform: translateY(100%); transition: transform .3s var(--ease-quick);
}
.ds-megamenu-btn > * { position: relative; z-index: 2 }
.ds-megamenu-btn:hover::before, .ds-megamenu-btn[aria-expanded="true"]::before { transform: translateY(0); }
.ds-cat-link { font-weight: 800 !important; }

/* ============================================================================
   HERO EDITORIAL · mesh + tipografia esculpida + camadas
   ========================================================================== */
.ds-hero {
  background: var(--ink) !important;
  min-height: 720px !important;
  position: relative; overflow: hidden;
}
.ds-hero::before {
  content: ''; position: absolute; inset: -10%;
  background:
    radial-gradient(60% 50% at 20% 30%, rgba(200,16,46,.45) 0%, transparent 60%),
    radial-gradient(50% 60% at 80% 20%, rgba(255,210,0,.18) 0%, transparent 55%),
    radial-gradient(45% 50% at 70% 75%, rgba(110,10,26,.6) 0%, transparent 60%),
    radial-gradient(50% 50% at 30% 80%, rgba(50,188,173,.15) 0%, transparent 55%);
  filter: blur(20px);
  animation: hero-mesh 18s ease-in-out infinite alternate;
}
.ds-hero::after {
  content: ''; position: absolute; inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  opacity: .05; pointer-events: none; mix-blend-mode: overlay;
}
@keyframes hero-mesh {
  0%   { transform: translate(0,0) rotate(0deg); }
  50%  { transform: translate(2%,-3%) rotate(2deg); }
  100% { transform: translate(-1%,2%) rotate(-1deg); }
}
.ds-hero-track { min-height: 720px !important; height: 720px !important; }
.ds-hero-slide::after { background: none !important; }

/* Conteúdo do hero · novo grid editorial */
.ds-hero-content {
  position: relative; z-index: 4;
  padding: 80px 0 !important;
  max-width: 760px !important;
}
.ds-hero-kicker {
  background: linear-gradient(90deg, rgba(255,255,255,.14), rgba(255,255,255,.06)) !important;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.22) !important;
  color: var(--amarelo) !important;
  padding: 8px 16px !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.3);
  box-shadow: 0 8px 24px rgba(0,0,0,.2);
}
.ds-hero-content h1 {
  font-family: 'Fraunces', 'Manrope', serif !important;
  font-size: clamp(48px, 7vw, 96px) !important;
  font-weight: 900 !important;
  line-height: 0.98 !important;
  letter-spacing: -0.04em !important;
  margin-bottom: 24px !important;
  text-shadow: 0 4px 32px rgba(0,0,0,.4);
}
.ds-hero-content h1 .accent {
  background: linear-gradient(180deg, #fff 0%, #fff 55%, var(--amarelo) 55%, var(--amarelo) 100%) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  display: inline-block;
}
.ds-hero-content h1 .outline {
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 2px rgba(255,255,255,.5);
  font-style: italic;
}
.ds-hero-content p {
  font-size: 17px !important;
  line-height: 1.6 !important;
  color: rgba(255,255,255,.85) !important;
  max-width: 540px !important;
  margin-bottom: 32px !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.4);
}

/* Hero actions premium */
.ds-hero-actions { gap: 14px !important; align-items: center; }
.ds-hero-actions .cta {
  background: linear-gradient(180deg, var(--vermelho), var(--vermelho-2)) !important;
  padding: 18px 32px !important;
  font-size: 14px !important;
  letter-spacing: 0.08em !important;
  font-weight: 900 !important;
  border-radius: 999px !important;
  box-shadow: var(--sh-red), inset 0 1px 0 rgba(255,255,255,.3) !important;
  position: relative; overflow: hidden;
  transition: transform .25s var(--ease-spring), box-shadow .25s !important;
}
.ds-hero-actions .cta::before {
  content: ''; position: absolute; top: 0; left: -100%; width: 60%; height: 100%;
  background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.4) 50%, transparent 75%);
  transform: skewX(-25deg);
  animation: cta-shine 3s infinite;
}
@keyframes cta-shine { 0% {left:-100%} 70%,100% {left:150%} }
.ds-hero-actions .cta:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 6px 16px rgba(200,16,46,.4), 0 24px 48px rgba(200,16,46,.36) !important; }
.ds-hero-actions .micro {
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  backdrop-filter: blur(10px);
}

/* Hero Google rating inline */
.ds-hero-rating {
  position: relative; z-index: 4;
  display: inline-flex; align-items: center; gap: 14px;
  margin-top: 28px;
  padding: 12px 18px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  color: #fff;
}
.ds-hero-rating .stars { color: var(--amarelo); font-size: 18px; letter-spacing: 2px }
.ds-hero-rating strong { font-size: 20px; font-weight: 900; font-family: 'Fraunces', serif }
.ds-hero-rating small { font-size: 11px; opacity: .75; letter-spacing: 0.06em; text-transform: uppercase }

/* Medalha premium */
.ds-hero-medal {
  width: 200px !important; height: 200px !important;
  background: linear-gradient(135deg, var(--amarelo) 0%, #ffba00 100%) !important;
  box-shadow: var(--sh-gold), 0 32px 64px rgba(0,0,0,.3) !important;
  border: 4px solid rgba(255,255,255,.4);
  font-family: 'Fraunces', serif !important;
}
.ds-hero-medal strong { font-size: 56px !important; font-weight: 900 !important; }

/* Setas/dots elegantes */
.ds-hero-arrow {
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  width: 56px !important; height: 56px !important;
}
.ds-hero-arrow:hover { background: var(--amarelo) !important; color: var(--ink) !important; border-color: var(--amarelo) !important; }
.ds-hero-dot.ativo { background: var(--amarelo) !important; }

/* ============================================================================
   MARQUEE de cupom infinito · abaixo do hero
   ========================================================================== */
.ds-marquee {
  background: var(--ink);
  color: #fff;
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
  overflow: hidden;
  padding: 14px 0;
  position: relative;
}
.ds-marquee-track {
  display: flex; gap: 56px;
  animation: marquee 26s linear infinite;
  white-space: nowrap;
  width: max-content;
  font-family: 'Fraunces', serif;
  font-size: 18px; font-weight: 900;
  letter-spacing: -0.01em;
}
.ds-marquee-track span { display: inline-flex; align-items: center; gap: 14px }
.ds-marquee-track .star { color: var(--amarelo); font-size: 14px }
.ds-marquee-track em { font-style: italic; color: var(--amarelo); font-weight: 700 }
@keyframes marquee { to { transform: translateX(-50%); } }

@keyframes spin { to { transform: rotate(360deg); } }
.ds-cep-geo:hover { background: #fff !important; border-color: var(--vermelho) !important; color: var(--vermelho) !important; }

/* ============================================================================
   PDP · Página de Produto premium
   ========================================================================== */

/* Breadcrumb */
.ds-breadcrumb {
  display: flex; align-items: center; gap: 8px;
  padding: 20px 24px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted, #666);
  flex-wrap: wrap;
}
.ds-breadcrumb a {
  color: var(--text-muted, #666);
  text-decoration: none;
  transition: color .2s;
  letter-spacing: 0.02em;
}
.ds-breadcrumb a:hover { color: var(--vermelho); }
.ds-breadcrumb .sep { color: rgba(13,13,14,.2); }
.ds-breadcrumb strong {
  color: var(--ink);
  font-weight: 700;
  letter-spacing: -0.005em;
}

/* Grid principal */
.ds-pdp {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 56px;
  padding: 24px 24px 80px;
  align-items: flex-start;
}
@media (max-width: 980px) {
  .ds-pdp { grid-template-columns: 1fr; gap: 32px; padding: 16px 16px 48px; }
}

/* GALERIA · thumbs + main em layout escultural */
.ds-pdp-galeria {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 16px;
  position: sticky; top: 100px;
}
@media (max-width: 720px) {
  .ds-pdp-galeria { position: relative; top: 0; grid-template-columns: 1fr; }
}

.ds-pdp-thumbs {
  display: flex; flex-direction: column; gap: 10px;
  max-height: 600px;
  overflow-y: auto;
  scrollbar-width: none;
}
.ds-pdp-thumbs::-webkit-scrollbar { display: none; }
@media (max-width: 720px) {
  .ds-pdp-thumbs { flex-direction: row; max-height: none; overflow-x: auto; padding-bottom: 6px; order: 2; }
}
.ds-pdp-thumb {
  width: 88px; height: 88px;
  padding: 0;
  background: #fff;
  border: 2px solid rgba(13,13,14,.06);
  border-radius: 12px;
  cursor: pointer;
  overflow: hidden;
  transition: all .25s var(--ease-spring);
  flex-shrink: 0;
}
.ds-pdp-thumb:hover { border-color: rgba(13,13,14,.2); transform: translateY(-2px); }
.ds-pdp-thumb.ativo { border-color: var(--vermelho); box-shadow: 0 0 0 4px rgba(200,16,46,.1); }
.ds-pdp-thumb img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }

.ds-pdp-main {
  position: relative;
  aspect-ratio: 1 / 1;
  background: linear-gradient(180deg, var(--ice-2) 0%, #fff 100%);
  border: 1px solid rgba(13,13,14,.04);
  border-radius: 24px;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--sh-2);
}
.ds-pdp-main img {
  max-width: 100%;
  max-height: 100%;
  width: auto; height: auto;
  object-fit: contain;
  padding: 24px;
  transition: transform .55s var(--ease-spring);
}
.ds-pdp-main:hover img { transform: scale(1.05); }
.ds-pdp-main.vazia { background: linear-gradient(135deg, var(--cream), #fff); }
.ds-pdp-placeholder {
  font-family: 'Fraunces', serif;
  font-size: 200px;
  font-weight: 900;
  color: var(--vermelho);
  opacity: .15;
}

.ds-pdp-badge-promo {
  position: absolute;
  top: 20px; left: 20px;
  z-index: 2;
  display: inline-block;
  padding: 8px 18px;
  background: linear-gradient(135deg, var(--amarelo), #ff9500);
  color: var(--ink);
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 14px; font-weight: 900;
  letter-spacing: 0.08em;
  box-shadow: var(--sh-gold), inset 0 1px 0 rgba(255,255,255,.3);
}
.ds-pdp-fullscreen {
  position: absolute;
  bottom: 20px; right: 20px;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(13,13,14,.06);
  color: var(--ink);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  box-shadow: var(--sh-2);
  transition: all .25s var(--ease-spring);
}
.ds-pdp-fullscreen:hover { background: var(--vermelho); color: #fff; transform: scale(1.08); }

/* INFO/COMPRA */
.ds-pdp-info {
  display: flex; flex-direction: column; gap: 14px;
}
.ds-pdp-marca {
  display: inline-block;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.18em;
  color: var(--vermelho);
  text-decoration: none;
  transition: color .2s;
}
.ds-pdp-marca:hover { color: var(--vinho); }
.ds-pdp-h1 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(28px, 3vw, 40px) !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.025em !important;
  color: var(--ink);
  margin: 0 !important;
}

.ds-pdp-meta {
  display: flex; align-items: center; gap: 14px;
  flex-wrap: wrap;
}
.ds-pdp-stars {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px;
}
.ds-pdp-stars .estrelas-prod {
  color: var(--amarelo);
  letter-spacing: 1px;
  font-size: 16px;
}
.ds-pdp-stars small { color: var(--text-muted, #666); font-size: 13px; }
.ds-pdp-stars small strong { color: var(--ink); }
.ds-pdp-stars small a {
  color: var(--vermelho);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 700;
}
.ds-pdp-stars-vazio .estrelas-prod { color: rgba(255,184,0,.35); }
.ds-pdp-stars-vazio small { font-style: italic; }

.ds-pdp-sku {
  font-size: 11px;
  color: var(--text-muted, #666);
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 4px 10px;
  background: var(--ice-2);
  border-radius: 999px;
}

/* Alerta receita */
.ds-pdp-alerta-receita {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 14px 18px;
  background: linear-gradient(135deg, rgba(255,140,26,.08), rgba(200,16,46,.04));
  border: 1px solid rgba(255,140,26,.2);
  border-left: 4px solid var(--warning, #ff8c1a);
  border-radius: 12px;
}
.ds-pdp-alerta-receita svg { color: #c2410c; flex-shrink: 0; margin-top: 2px; }
.ds-pdp-alerta-receita strong {
  display: block;
  font-size: 13px; font-weight: 900;
  color: #c2410c;
  margin-bottom: 4px;
  letter-spacing: 0.04em;
}
.ds-pdp-alerta-receita p {
  font-size: 13px;
  color: var(--ink-2);
  line-height: 1.4;
}

/* PREÇOS BLOCO */
.ds-pdp-precos {
  background: linear-gradient(180deg, #fff 0%, var(--cream) 100%);
  border: 1px solid rgba(13,13,14,.05);
  border-radius: 18px;
  padding: 22px 24px;
  box-shadow: var(--sh-1);
  margin-top: 4px;
}
.ds-pdp-preco-de {
  display: flex; align-items: center; gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.ds-pdp-preco-de small {
  font-size: 13px;
  color: var(--text-faint, #9a9aa1);
  font-weight: 600;
}
.ds-pdp-preco-de small s {
  text-decoration-thickness: 2px;
  text-decoration-color: var(--vermelho);
}
.ds-pdp-economia {
  display: inline-flex; align-items: center;
  padding: 3px 10px;
  background: linear-gradient(90deg, rgba(0,135,90,.15), rgba(0,135,90,.05));
  color: var(--verde, #00875a);
  border-radius: 999px;
  font-size: 11px; font-weight: 800;
  letter-spacing: 0.04em;
}
.ds-pdp-economia strong { font-size: 12px; }

.ds-pdp-preco-por {
  display: flex; align-items: baseline; gap: 10px;
  line-height: 1;
}
.ds-pdp-preco-por .por-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-muted, #666);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ds-pdp-preco-por strong {
  font-family: 'Fraunces', serif;
  font-weight: 900;
  color: var(--vermelho);
  letter-spacing: -0.03em;
  line-height: 1;
  display: inline-flex; align-items: baseline; gap: 1px;
}
.ds-pdp-preco-por .moeda {
  font-size: 22px;
  font-weight: 700;
  margin-right: 3px;
  vertical-align: top;
}
.ds-pdp-preco-por .reais { font-size: 56px; }
.ds-pdp-preco-por .cents { font-size: 22px; vertical-align: top; }

.ds-pdp-parcela {
  font-size: 14px;
  color: var(--ink-2);
  margin-top: 6px;
  font-weight: 500;
}
.ds-pdp-parcela strong { color: var(--ink); font-weight: 800; }
.ds-pdp-parcela span { color: var(--text-muted, #666); font-weight: 400; }

.ds-pdp-pix {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 8px;
  padding: 8px 16px;
  background: linear-gradient(90deg, rgba(50,188,173,.15), rgba(50,188,173,.04));
  color: #0e8a7d;
  border: 1px solid rgba(50,188,173,.3);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
}
.ds-pdp-pix .valor-pix {
  font-family: 'Fraunces', serif;
  font-size: 16px;
  font-weight: 900;
  color: #0a6e63;
  letter-spacing: -0.01em;
}

.ds-pdp-resumo {
  font-size: 14px;
  color: var(--ink-2);
  line-height: 1.5;
  margin: 0;
}

/* AÇÕES */
.ds-pdp-acoes {
  display: flex; align-items: stretch; gap: 12px;
  margin-top: 4px;
}
.ds-pdp-qtd {
  display: inline-flex; align-items: center;
  background: #fff;
  border: 2px solid var(--ice);
  border-radius: 999px;
  padding: 4px;
  flex-shrink: 0;
}
.ds-pdp-qtd button {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: none;
  background: var(--ice-2);
  font-size: 18px; font-weight: 900;
  cursor: pointer;
  color: var(--ink);
  transition: all .15s var(--ease-spring);
}
.ds-pdp-qtd button:hover { background: var(--vermelho); color: #fff; transform: scale(1.08); }
.ds-pdp-qtd input {
  width: 56px;
  height: 40px;
  border: none;
  background: transparent;
  text-align: center;
  font-family: 'Manrope', sans-serif;
  font-size: 16px; font-weight: 800;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  outline: none;
}
.ds-pdp-qtd input::-webkit-inner-spin-button,
.ds-pdp-qtd input::-webkit-outer-spin-button { display: none; }

.ds-pdp-cta {
  flex: 1;
  height: 56px !important;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  background: linear-gradient(135deg, var(--vermelho) 0%, var(--vinho) 100%) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  letter-spacing: 0.12em;
  cursor: pointer;
  box-shadow: var(--sh-red), inset 0 1px 0 rgba(255,255,255,.2);
  transition: transform .25s var(--ease-spring), box-shadow .25s;
}
.ds-pdp-cta:hover { transform: translateY(-2px); box-shadow: var(--sh-red), 0 12px 32px rgba(200,16,46,.4); }

.ds-pdp-comprar-ja {
  display: inline-flex; align-items: center; justify-content: center;
  text-align: center;
  padding: 12px;
  background: transparent;
  color: var(--ink);
  border: 2px dashed rgba(13,13,14,.18);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: all .25s;
}
.ds-pdp-comprar-ja:hover {
  background: var(--ink);
  color: var(--amarelo);
  border-color: var(--ink);
}

.ds-pdp-estoque {
  font-size: 12px;
  color: var(--verde, #00875a);
  font-weight: 700;
  letter-spacing: 0.04em;
}
.ds-pdp-estoque-baixo {
  display: flex; align-items: center; gap: 10px;
  flex-wrap: wrap;
  padding: 10px 14px;
  background: linear-gradient(90deg, rgba(255,140,26,.12), rgba(200,16,46,.08));
  border: 1px solid rgba(255,140,26,.25);
  border-radius: 12px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: #c2410c;
}
.ds-pdp-estoque-baixo strong { color: var(--vermelho); font-size: 13px; flex: 1; }
.ds-pdp-estoque-baixo .ds-prod-estoque-bar { width: 100%; height: 4px; }

.ds-pdp-esgotado {
  padding: 20px;
  background: var(--ice-2);
  border-radius: 14px;
  text-align: center;
}
.ds-pdp-esgotado h3 { font-family: 'Manrope', sans-serif; font-size: 16px; margin-bottom: 6px; }
.ds-pdp-esgotado p { font-size: 13px; color: var(--text-muted, #666); margin-bottom: 12px; }
.ds-pdp-esgotado form { display: flex; gap: 8px; }
.ds-pdp-esgotado input { flex: 1; padding: 12px 14px; border: 1px solid var(--ice); border-radius: 10px; font-size: 14px; }
.ds-pdp-esgotado button { padding: 12px 20px; background: var(--vermelho); color: #fff; border: none; border-radius: 10px; font-weight: 800; cursor: pointer; }

/* CEP frete */
.ds-pdp-frete {
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 14px;
  padding: 18px;
  margin-top: 4px;
}
.ds-pdp-frete-titulo {
  display: flex; align-items: center; gap: 8px;
  font-size: 12px;
  font-weight: 900;
  color: var(--ink);
  letter-spacing: 0.14em;
  margin-bottom: 12px;
}
.ds-pdp-frete-titulo svg { color: var(--vermelho); }
.ds-pdp-frete-row {
  display: flex; gap: 8px;
}
.ds-pdp-frete-row input {
  flex: 1;
  height: 44px;
  padding: 0 14px;
  border: 2px solid var(--ice);
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.ds-pdp-frete-row input:focus { border-color: var(--vermelho); box-shadow: 0 0 0 4px rgba(200,16,46,.1); }
.ds-pdp-frete-btn {
  height: 44px;
  padding: 0 18px;
  background: var(--ink);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-weight: 900;
  font-size: 12px;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: background .2s;
}
.ds-pdp-frete-btn:hover { background: var(--vinho); }
.ds-pdp-frete-link {
  display: inline-block;
  margin-top: 8px;
  font-size: 11px;
  color: var(--vermelho);
  text-decoration: underline;
  font-weight: 700;
}
.ds-pdp-frete-resultado:not(:empty) {
  margin-top: 12px;
  padding: 10px 12px;
  background: var(--cream);
  border-radius: 8px;
  font-size: 13px;
}

/* GARANTIAS */
.ds-pdp-garantias {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}
.ds-pdp-garantias li {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 10px;
}
.ds-pdp-garantias li span { font-size: 18px; flex-shrink: 0; }
.ds-pdp-garantias li strong {
  display: block;
  font-size: 12px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.005em;
}
.ds-pdp-garantias li small {
  display: block;
  font-size: 11px;
  color: var(--text-muted, #666);
  font-weight: 500;
}

/* SHARE */
.ds-pdp-share {
  display: flex; align-items: center; gap: 14px;
  padding-top: 4px;
}
.ds-pdp-share strong {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  text-transform: uppercase;
}
.ds-pdp-share-row { display: flex; gap: 6px; }
.ds-pdp-share-btn {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid rgba(13,13,14,.08);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  color: var(--ink);
  font-weight: 900;
  font-size: 14px;
  text-decoration: none;
  transition: all .2s var(--ease-spring);
}
.ds-pdp-share-btn:hover { transform: translateY(-2px) scale(1.05); box-shadow: var(--sh-1); }
.ds-pdp-share-btn.share-wpp:hover { background: #25D366; border-color: #25D366; }
.ds-pdp-share-btn.share-tg:hover  { background: #0088cc; color: #fff; border-color: #0088cc; }
.ds-pdp-share-btn.share-copy:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.ds-pdp-share-btn.is-copied { background: var(--verde, #00875a) !important; color: #fff !important; border-color: var(--verde) !important; }

/* TABS */
.ds-pdp-tabs {
  padding: 32px 24px 64px;
}
.ds-pdp-tabs-head {
  display: flex; gap: 4px;
  border-bottom: 2px solid rgba(13,13,14,.06);
  overflow-x: auto;
  scrollbar-width: none;
  margin-bottom: 32px;
}
.ds-pdp-tabs-head::-webkit-scrollbar { display: none; }
.ds-pdp-tab {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 14px 22px;
  background: transparent;
  border: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  font-family: 'Manrope', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--text-muted, #666);
  cursor: pointer;
  transition: all .25s;
  white-space: nowrap;
}
.ds-pdp-tab:hover { color: var(--ink); }
.ds-pdp-tab.ativo {
  color: var(--vermelho);
  border-bottom-color: var(--vermelho);
}
.ds-pdp-tab small { font-weight: 500; opacity: .7; font-size: 11px; }

/* Descrição */
.ds-pdp-descricao {
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink-2);
  max-width: 780px;
}

/* Aval resumo */
.ds-pdp-aval-resumo {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 40px;
  padding: 24px;
  background: linear-gradient(180deg, #fff, var(--cream));
  border: 1px solid rgba(13,13,14,.05);
  border-radius: 16px;
  margin-bottom: 24px;
  align-items: center;
}
.ds-pdp-aval-media {
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
  padding-right: 40px;
  border-right: 1px solid rgba(13,13,14,.06);
}
.ds-pdp-aval-media strong {
  font-family: 'Fraunces', serif;
  font-size: 56px;
  font-weight: 900;
  color: var(--vermelho);
  line-height: 1;
  letter-spacing: -0.02em;
}
.ds-pdp-aval-media .estrelas-prod {
  color: var(--amarelo);
  font-size: 22px;
  letter-spacing: 2px;
  margin: 6px 0 4px;
}
.ds-pdp-aval-media small { color: var(--text-muted, #666); font-size: 12px; }
.ds-pdp-aval-distribui { display: flex; flex-direction: column; gap: 6px; }
.ds-pdp-aval-distribui .aval-linha {
  display: grid;
  grid-template-columns: 32px 1fr 40px;
  gap: 12px; align-items: center;
  font-size: 12px;
}
.ds-pdp-aval-distribui .aval-linha span { font-weight: 800; color: var(--ink); }
.ds-pdp-aval-distribui .aval-linha small { color: var(--text-muted, #666); font-variant-numeric: tabular-nums; }
.ds-pdp-aval-distribui .aval-bar {
  height: 8px;
  background: rgba(13,13,14,.06);
  border-radius: 999px;
  overflow: hidden;
}
.ds-pdp-aval-distribui .aval-bar > div {
  height: 100%;
  background: linear-gradient(90deg, var(--amarelo), var(--vermelho));
  border-radius: 999px;
  transition: width .6s var(--ease-power);
}

@media (max-width: 720px) {
  .ds-pdp-aval-resumo { grid-template-columns: 1fr; }
  .ds-pdp-aval-media { padding-right: 0; border-right: none; padding-bottom: 20px; border-bottom: 1px solid rgba(13,13,14,.06); }
}

/* Lista avaliações */
.ds-pdp-aval-lista {
  display: flex; flex-direction: column; gap: 16px;
  margin-top: 24px;
}
.ds-pdp-aval-lista .aval-pub {
  padding: 20px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 14px;
  transition: box-shadow .2s;
}
.ds-pdp-aval-lista .aval-pub:hover { box-shadow: var(--sh-1); }
.ds-pdp-aval-lista .aval-pub header {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 10px;
}
.aval-pub-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Manrope', sans-serif;
  font-weight: 900;
  font-size: 14px;
}
.aval-pub header > div { flex: 1; line-height: 1.2; }
.aval-pub header > div strong { display: block; font-size: 14px; font-weight: 800; color: var(--ink); }
.aval-pub header > div small { font-size: 11px; color: var(--text-muted, #666); }
.aval-pub header .estrelas-prod { color: var(--amarelo); font-size: 14px; }
.aval-pub .aval-titulo { display: block; margin: 4px 0 6px; font-size: 14px; color: var(--ink); }
.aval-pub p { font-size: 14px; line-height: 1.5; color: var(--ink-2); }
.aval-resp-pub {
  margin-top: 12px;
  padding: 12px;
  background: var(--cream);
  border-left: 3px solid var(--vermelho);
  border-radius: 8px;
}
.aval-resp-pub strong { display: block; font-size: 11px; font-weight: 900; letter-spacing: 0.08em; color: var(--vermelho); margin-bottom: 4px; text-transform: uppercase; }

/* Form aval/perg */
.ds-pdp-form-aval, .ds-pdp-form-perg {
  margin: 16px 0;
}
.ds-pdp-form-aval summary, .ds-pdp-form-perg summary {
  display: inline-flex; align-items: center;
  padding: 12px 22px;
  background: var(--ink);
  color: #fff;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
  cursor: pointer;
  list-style: none;
}
.ds-pdp-form-aval summary::-webkit-details-marker, .ds-pdp-form-perg summary::-webkit-details-marker { display: none; }
.ds-pdp-form-aval form, .ds-pdp-form-perg form {
  margin-top: 16px;
  padding: 20px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 14px;
  display: flex; flex-direction: column; gap: 12px;
}
.ds-pdp-form-aval label, .ds-pdp-form-perg label { font-size: 13px; font-weight: 700; color: var(--ink); }
.ds-pdp-form-aval input, .ds-pdp-form-aval textarea, .ds-pdp-form-aval select,
.ds-pdp-form-perg input, .ds-pdp-form-perg textarea {
  width: 100%;
  padding: 12px 14px;
  border: 2px solid var(--ice);
  border-radius: 10px;
  font-family: inherit;
  font-size: 14px;
  outline: none;
}
.ds-pdp-form-aval textarea:focus, .ds-pdp-form-aval input:focus, .ds-pdp-form-perg textarea:focus, .ds-pdp-form-perg input:focus {
  border-color: var(--vermelho); box-shadow: 0 0 0 4px rgba(200,16,46,.1);
}

/* Perguntas */
.ds-pdp-perg-lista { display: flex; flex-direction: column; gap: 14px; margin-bottom: 16px; }
.ds-pdp-perg-lista .perg-pub {
  padding: 16px 18px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 12px;
}
.perg-q strong { color: var(--vermelho); margin-right: 6px; }
.perg-r {
  margin-top: 8px;
  padding: 12px;
  background: var(--cream);
  border-left: 3px solid var(--verde, #00875a);
  border-radius: 8px;
}
.perg-r strong { color: var(--verde, #00875a); margin-right: 6px; }

/* Entrega */
.ds-pdp-entrega-h3 { font-family: 'Manrope', sans-serif; font-size: 20px; font-weight: 900; margin-bottom: 10px; }
.ds-pdp-entrega-p { font-size: 14px; color: var(--ink-2); line-height: 1.6; margin-bottom: 16px; }
.ds-pdp-entrega-zonas {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.ds-pdp-entrega-zonas li {
  padding: 14px 16px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 12px;
  font-size: 13px;
  color: var(--ink-2);
}
.ds-pdp-entrega-zonas li strong { display: block; margin-bottom: 4px; color: var(--ink); }
.ds-pdp-entrega-zonas li span { display: block; color: var(--text-muted, #666); font-size: 12px; }
.ds-pdp-entrega-destaque {
  grid-column: 1/-1;
  background: linear-gradient(135deg, rgba(200,16,46,.08), rgba(255,210,0,.06)) !important;
  border-color: var(--vermelho) !important;
}
.ds-pdp-entrega-destaque strong { color: var(--vermelho) !important; }
@media (max-width: 720px) { .ds-pdp-entrega-zonas { grid-template-columns: 1fr; } }

/* ============================================================================
   CARRINHO (PÁGINA) · 2 colunas, resumo sticky
   ========================================================================== */
.ds-cart-page { padding: 24px 24px 80px; }

.ds-cart-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  flex-wrap: wrap; gap: 16px;
  margin-bottom: 24px;
}
.ds-cart-head .ds-kicker {
  display: inline-block;
  padding: 4px 12px;
  background: rgba(200,16,46,.08);
  border-left: 3px solid var(--vermelho);
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.16em;
  color: var(--vermelho);
  margin-bottom: 10px;
}
.ds-cart-head h1 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(28px, 3.5vw, 44px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.05 !important;
  color: var(--ink);
  margin: 0 !important;
}
.ds-cart-head h1 .accent {
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
}
.ds-cart-continuar {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 18px;
  background: var(--ice-2);
  color: var(--ink);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  transition: all .2s;
}
.ds-cart-continuar:hover { background: var(--ink); color: #fff; }

/* Vazio */
.ds-cart-vazio {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 80px 24px;
  text-align: center;
  background: linear-gradient(180deg, #fff, var(--cream));
  border-radius: 24px;
  border: 1px solid rgba(13,13,14,.05);
}
.ds-cart-vazio-ic {
  width: 120px; height: 120px;
  border-radius: 50%;
  background: var(--ice-2);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 20px;
  color: var(--text-faint, #9a9aa1);
}
.ds-cart-vazio h2 {
  font-family: 'Fraunces', serif;
  font-size: 28px;
  font-weight: 900;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}
.ds-cart-vazio p {
  font-size: 14px;
  color: var(--text-muted, #666);
  max-width: 380px;
  margin-bottom: 20px;
}
.ds-cart-vazio-ctas {
  display: flex; gap: 12px; flex-wrap: wrap; justify-content: center;
}

/* Frete progress (página) */
.ds-cart-frete-progress {
  background: linear-gradient(135deg, var(--cream), #fff);
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 16px;
  padding: 16px 22px;
  margin-bottom: 20px;
  box-shadow: var(--sh-1);
}
.ds-cart-frete-progress.fp-conquistado {
  background: linear-gradient(135deg, rgba(0,135,90,.08), rgba(0,135,90,.02));
  border-color: rgba(0,135,90,.3);
}
.ds-cart-frete-info {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 10px;
}
.ds-cart-frete-ic {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--vermelho);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: background .3s;
}
.ds-cart-frete-progress.fp-conquistado .ds-cart-frete-ic { background: var(--verde, #00875a); }
.ds-cart-frete-info strong { font-size: 14px; color: var(--ink); font-weight: 600; }
.ds-cart-frete-info strong strong { color: var(--vermelho); font-weight: 900; }
.ds-cart-frete-progress.fp-conquistado .ds-cart-frete-info strong strong { color: var(--verde, #00875a); }
.ds-cart-frete-bar {
  height: 8px;
  background: rgba(13,13,14,.06);
  border-radius: 999px;
  overflow: hidden;
}
.ds-cart-frete-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--vermelho), var(--amarelo));
  border-radius: 999px;
  transition: width .6s var(--ease-power);
}
.ds-cart-frete-progress.fp-conquistado .ds-cart-frete-fill {
  background: linear-gradient(90deg, var(--verde), #34d399);
  width: 100% !important;
}

/* Grid 2 colunas */
.ds-cart-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 28px;
  align-items: flex-start;
}
@media (max-width: 920px) {
  .ds-cart-grid { grid-template-columns: 1fr; }
}

/* ITENS LISTA */
.ds-cart-itens {
  display: flex; flex-direction: column; gap: 12px;
}
.ds-cart-itens .carrinho-item {
  display: grid;
  grid-template-columns: 96px 1fr auto;
  gap: 18px;
  padding: 18px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 16px;
  align-items: center;
  transition: box-shadow .2s, transform .2s;
}
.ds-cart-itens .carrinho-item:hover {
  box-shadow: var(--sh-2);
  border-color: rgba(13,13,14,.1);
}
.ds-cart-itens .ci-thumb {
  width: 96px; height: 96px;
  background: var(--ice-2);
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.ds-cart-itens .ci-thumb img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.ds-cart-itens .carrinho-item-ph {
  font-family: 'Fraunces', serif;
  font-size: 36px;
  font-weight: 900;
  color: var(--vermelho);
  opacity: .5;
}
.ds-cart-itens .ci-info { line-height: 1.4; min-width: 0; }
.ds-cart-itens .ci-nome {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  text-decoration: none;
  margin-bottom: 4px;
  transition: color .15s;
}
.ds-cart-itens .ci-nome:hover { color: var(--vermelho); }
.ds-cart-itens .ci-preco-unit {
  display: block;
  font-size: 12px;
  color: var(--text-muted, #666);
  margin-bottom: 10px;
}
.ds-cart-itens .ci-qtd {
  display: inline-flex; align-items: center;
  background: var(--ice-2);
  border-radius: 999px;
  padding: 4px;
  width: fit-content;
}
.ds-cart-itens .ci-qtd button {
  width: 28px; height: 28px;
  border-radius: 50%;
  border: none;
  background: #fff;
  font-size: 14px; font-weight: 900;
  cursor: pointer;
  color: var(--ink);
  transition: all .15s var(--ease-spring);
}
.ds-cart-itens .ci-qtd button:hover { background: var(--vermelho); color: #fff; transform: scale(1.08); }
.ds-cart-itens .ci-qtd input {
  width: 44px;
  height: 28px;
  border: none;
  background: transparent;
  text-align: center;
  font-size: 14px; font-weight: 800;
  color: var(--ink);
  outline: none;
}
.ds-cart-itens .ci-acoes {
  display: flex; flex-direction: column; align-items: flex-end; gap: 8px;
  align-self: stretch; justify-content: space-between;
}
.ds-cart-itens .ci-sub {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 900;
  color: var(--vermelho);
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.ds-cart-itens .ci-remove {
  background: transparent;
  border: none;
  color: var(--text-muted, #666);
  cursor: pointer;
  padding: 6px;
  border-radius: 8px;
  transition: all .2s;
}
.ds-cart-itens .ci-remove:hover {
  color: var(--vermelho);
  background: rgba(200,16,46,.08);
}

/* RESUMO sticky */
.ds-cart-resumo {
  position: sticky;
  top: 100px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 18px;
  padding: 24px;
  box-shadow: var(--sh-2);
}
.ds-cart-resumo-titulo {
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0 0 16px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--ice);
}

.ds-cart-linhas {
  display: flex; flex-direction: column; gap: 10px;
  margin-bottom: 18px;
}
.resumo-linha {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 14px;
}
.resumo-linha span { color: var(--text-muted, #666); }
.resumo-linha strong { color: var(--ink); font-weight: 800; }
.resumo-linha.desconto strong { color: var(--verde, #00875a); }

/* Cupom + CEP */
.ds-cart-cupom, .ds-cart-cep {
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px dashed rgba(13,13,14,.08);
}
.ds-cart-cupom label, .ds-cart-cep label {
  display: flex; align-items: center; gap: 6px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
  color: var(--text-muted, #666);
  margin-bottom: 8px;
}
.ds-cart-cupom label svg, .ds-cart-cep label svg { color: var(--vermelho); }
.ds-cart-input-row {
  display: flex; gap: 8px;
}
.ds-cart-input-row input {
  flex: 1;
  height: 42px;
  padding: 0 14px;
  border: 2px solid var(--ice);
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
  font-family: inherit;
}
.ds-cart-input-row input:focus { border-color: var(--vermelho); box-shadow: 0 0 0 4px rgba(200,16,46,.1); }
.ds-cart-input-btn {
  height: 42px;
  padding: 0 16px;
  background: var(--ink);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-weight: 900;
  font-size: 11px;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: background .2s;
}
.ds-cart-input-btn:hover { background: var(--vinho); }
.cupom-resultado { margin-top: 8px; font-size: 12px; }
.cupom-resultado.sucesso { color: var(--verde, #00875a); font-weight: 700; }
.cupom-resultado.erro { color: var(--vermelho); font-weight: 700; }

/* Total */
.ds-cart-total-bloco {
  display: flex; flex-direction: column;
  padding: 16px;
  background: linear-gradient(135deg, var(--cream), #fff);
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 14px;
  margin-bottom: 16px;
}
.ds-cart-total-bloco > small {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  text-transform: uppercase;
}
.ds-cart-total {
  font-family: 'Fraunces', serif;
  font-size: 36px;
  font-weight: 900;
  color: var(--vermelho);
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin: 4px 0;
}
.ds-cart-total-pix {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px;
  color: #0e8a7d;
  font-weight: 600;
}
.ds-cart-total-pix strong { color: #0a6e63; font-weight: 800; font-family: 'Fraunces', serif; font-size: 13px; }

.ds-cart-cta {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%;
  height: 56px;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border: none;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-decoration: none;
  cursor: pointer;
  box-shadow: var(--sh-red), inset 0 1px 0 rgba(255,255,255,.2);
  transition: transform .25s var(--ease-spring), box-shadow .25s;
  text-transform: uppercase;
}
.ds-cart-cta:hover { transform: translateY(-2px); box-shadow: var(--sh-red), 0 12px 32px rgba(200,16,46,.4); }

/* Confiança */
.ds-cart-confianca {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(13,13,14,.06);
}
.ds-cart-confianca-row {
  display: flex; align-items: center; gap: 8px;
  font-size: 11px;
  font-weight: 700;
  color: var(--verde, #00875a);
  margin-bottom: 10px;
  letter-spacing: 0.02em;
}
.ds-cart-bandeiras {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.ds-cart-bandeiras img {
  height: 24px;
  width: auto;
  padding: 3px 6px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 5px;
  object-fit: contain;
}

/* ============================================================================
   CHECKOUT · stepper + 2 colunas + cards numerados
   ========================================================================== */
.ds-checkout-page { padding: 24px 24px 80px; }

.ds-checkout-head {
  text-align: center;
  margin-bottom: 28px;
}
.ds-checkout-head .ds-kicker {
  display: inline-block;
  padding: 4px 12px;
  background: rgba(0,135,90,.08);
  border-left: 3px solid var(--verde, #00875a);
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.16em;
  color: var(--verde, #00875a);
  margin-bottom: 10px;
}
.ds-checkout-head h1 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(28px, 3.5vw, 44px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.05 !important;
  color: var(--ink);
  margin: 0 0 24px !important;
}
.ds-checkout-head h1 .accent {
  background: linear-gradient(135deg, var(--verde, #00875a), #34d399);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
}

/* Stepper */
.ds-checkout-stepper {
  display: flex; align-items: center; justify-content: center;
  gap: 8px;
  list-style: none;
  padding: 0; margin: 0 auto;
  max-width: 720px;
  flex-wrap: wrap;
}
.ds-checkout-stepper li {
  display: flex; align-items: center; gap: 10px;
  position: relative;
  padding: 8px 16px;
  background: var(--ice-2);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--text-muted, #666);
  transition: all .3s;
}
.ds-checkout-stepper li .dot {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid rgba(13,13,14,.12);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px;
  font-weight: 900;
  color: var(--text-muted, #666);
}
.ds-checkout-stepper li.ativo {
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
}
.ds-checkout-stepper li.ativo .dot {
  background: var(--amarelo);
  border-color: var(--amarelo);
  color: var(--ink);
}

@media (max-width: 720px) {
  .ds-checkout-stepper li .lbl { display: none; }
  .ds-checkout-stepper li { padding: 8px; }
}

/* Grid 2 col */
.ds-checkout-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 28px;
  align-items: flex-start;
}
@media (max-width: 920px) { .ds-checkout-grid { grid-template-columns: 1fr; } }

.ds-checkout-col {
  display: flex; flex-direction: column; gap: 20px;
}

/* Card de cada seção */
.ds-checkout-card {
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 18px;
  padding: 24px;
  box-shadow: var(--sh-1);
  transition: box-shadow .2s;
}
.ds-checkout-card:focus-within { box-shadow: var(--sh-2); }
.ds-checkout-card-head {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 18px;
}
.ds-checkout-num {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Fraunces', serif;
  font-weight: 900;
  font-size: 18px;
  box-shadow: var(--sh-1);
  flex-shrink: 0;
}
.ds-checkout-card-head h2 {
  font-family: 'Manrope', sans-serif;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0;
}
.ds-checkout-card-head small {
  font-size: 12px;
  color: var(--text-muted, #666);
  font-weight: 500;
}

/* Endereço radio */
.ds-checkout-end-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.ds-checkout-end {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 14px 16px;
  background: var(--ice-2);
  border: 2px solid transparent;
  border-radius: 14px;
  cursor: pointer;
  transition: all .2s var(--ease-spring);
}
.ds-checkout-end:hover { background: #fff; border-color: rgba(13,13,14,.1); }
.ds-checkout-end input { position: absolute; opacity: 0; pointer-events: none; }
.ds-checkout-end-radio {
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 2px solid rgba(13,13,14,.2);
  flex-shrink: 0;
  margin-top: 2px;
  transition: all .2s;
  position: relative;
}
.ds-checkout-end input:checked ~ .ds-checkout-end-radio,
.ds-checkout-end.is-selected .ds-checkout-end-radio {
  border-color: var(--vermelho);
  background: var(--vermelho);
}
.ds-checkout-end input:checked ~ .ds-checkout-end-radio::after,
.ds-checkout-end.is-selected .ds-checkout-end-radio::after {
  content: '';
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: #fff;
}
.ds-checkout-end:has(input:checked), .ds-checkout-end.is-selected {
  background: #fff;
  border-color: var(--vermelho);
  box-shadow: 0 0 0 4px rgba(200,16,46,.06);
}
.ds-checkout-end-info { flex: 1; line-height: 1.4; }
.ds-checkout-end-info .apelido {
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
  color: var(--vermelho);
  margin-bottom: 4px;
  text-transform: uppercase;
}
.ds-checkout-end-info p { font-size: 14px; font-weight: 700; color: var(--ink); margin: 0 0 2px; }
.ds-checkout-end-info small { font-size: 12px; color: var(--text-muted, #666); }

.ds-checkout-novo-end {
  display: inline-block;
  margin-top: 12px;
  padding: 10px 16px;
  background: transparent;
  color: var(--vermelho);
  border: 2px dashed rgba(200,16,46,.3);
  border-radius: 10px;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  transition: all .2s;
}
.ds-checkout-novo-end:hover { background: var(--vermelho); color: #fff; border-style: solid; }

.ds-checkout-empty {
  padding: 24px;
  text-align: center;
  background: var(--ice-2);
  border-radius: 12px;
}
.ds-checkout-cta-mini {
  display: inline-block;
  margin-top: 10px;
  padding: 10px 22px;
  background: var(--vermelho);
  color: #fff;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  text-decoration: none;
  letter-spacing: 0.06em;
}

/* Pagamento opções */
.ds-checkout-pag {
  display: flex; flex-direction: column; gap: 10px;
}
.ds-pag-opt {
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  gap: 14px; align-items: center;
  padding: 14px 16px;
  background: var(--ice-2);
  border: 2px solid transparent;
  border-radius: 14px;
  cursor: pointer;
  transition: all .2s var(--ease-spring);
  position: relative;
}
.ds-pag-opt:hover { background: #fff; border-color: rgba(13,13,14,.1); }
.ds-pag-opt input { position: absolute; opacity: 0; }
.ds-pag-opt-radio {
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 2px solid rgba(13,13,14,.2);
  flex-shrink: 0;
  transition: all .2s;
  position: relative;
}
.ds-pag-opt input:checked ~ .ds-pag-opt-radio,
.ds-pag-opt.ativo .ds-pag-opt-radio {
  border-color: var(--vermelho); background: var(--vermelho);
}
.ds-pag-opt input:checked ~ .ds-pag-opt-radio::after,
.ds-pag-opt.ativo .ds-pag-opt-radio::after {
  content: ''; position: absolute; inset: 4px;
  border-radius: 50%; background: #fff;
}
.ds-pag-opt:has(input:checked), .ds-pag-opt.ativo {
  background: #fff;
  border-color: var(--vermelho);
  box-shadow: 0 0 0 4px rgba(200,16,46,.06);
}
.ds-pag-opt-ic {
  display: inline-flex; align-items: center; gap: 4px;
  width: 64px;
}
.ds-pag-opt-ic img { object-fit: contain; }
.ds-pag-opt-info { line-height: 1.3; }
.ds-pag-opt-info strong { display: block; font-size: 13px; font-weight: 900; color: var(--ink); letter-spacing: 0.04em; }
.ds-pag-opt-info small { display: block; font-size: 12px; color: var(--text-muted, #666); margin-top: 2px; }
.ds-pag-opt-recomend {
  position: absolute;
  top: -8px; right: 12px;
  padding: 2px 10px;
  background: var(--amarelo);
  color: var(--ink);
  border-radius: 999px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.ds-checkout-parcelas {
  display: flex; flex-direction: column; gap: 4px;
  margin-top: 12px;
}
.ds-checkout-parcelas small { font-size: 11px; font-weight: 800; letter-spacing: 0.08em; color: var(--text-muted, #666); }
.ds-checkout-parcelas select {
  padding: 12px 14px;
  border: 2px solid var(--ice);
  border-radius: 10px;
  font-family: inherit;
  font-size: 14px;
  background: #fff;
}

/* Upload receita */
.ds-checkout-upload {
  display: block;
  cursor: pointer;
  position: relative;
}
.ds-checkout-upload input[type=file] { position: absolute; opacity: 0; pointer-events: none; }
.ds-checkout-upload-area {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px;
  padding: 32px 20px;
  background: var(--ice-2);
  border: 2px dashed rgba(13,13,14,.18);
  border-radius: 14px;
  text-align: center;
  transition: all .2s;
  color: var(--text-muted, #666);
}
.ds-checkout-upload:hover .ds-checkout-upload-area {
  background: #fff;
  border-color: var(--vermelho);
  color: var(--vermelho);
}
.ds-checkout-upload-area strong { font-size: 14px; font-weight: 800; color: var(--ink); }
.ds-checkout-upload-area small { font-size: 12px; }

/* Textarea observação */
.ds-checkout-card textarea {
  width: 100%;
  padding: 14px;
  border: 2px solid var(--ice);
  border-radius: 12px;
  font-family: inherit;
  font-size: 14px;
  outline: none;
  resize: vertical;
  transition: border-color .2s, box-shadow .2s;
}
.ds-checkout-card textarea:focus { border-color: var(--vermelho); box-shadow: 0 0 0 4px rgba(200,16,46,.08); }

/* Resumo sticky */
.ds-checkout-resumo {
  position: sticky;
  top: 100px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 18px;
  padding: 24px;
  box-shadow: var(--sh-2);
}
.ds-checkout-resumo-titulo {
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0 0 16px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--ice);
}

.ds-checkout-itens {
  max-height: 240px;
  overflow-y: auto;
  margin-bottom: 14px;
  padding-right: 4px;
}
.ds-checkout-itens::-webkit-scrollbar { width: 4px; }
.ds-checkout-itens::-webkit-scrollbar-thumb { background: rgba(13,13,14,.1); border-radius: 999px; }

.ds-checkout-itens .checkout-item {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  gap: 10px; align-items: center;
  padding: 8px 0;
  border-bottom: 1px dashed rgba(13,13,14,.06);
  font-size: 13px;
}
.ds-checkout-itens .checkout-item:last-child { border-bottom: none; }
.ds-checkout-itens .checkout-item img {
  width: 48px; height: 48px;
  object-fit: contain;
  background: var(--ice-2);
  border-radius: 8px;
  padding: 4px;
}
.ds-checkout-itens .ck-item-ph {
  width: 48px; height: 48px;
  background: var(--ice-2);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  color: var(--vermelho);
  font-weight: 800;
}

/* Cupons carrossel */
.ds-checkout-cupons {
  display: flex; gap: 8px;
  overflow-x: auto;
  margin-bottom: 10px;
  padding-bottom: 6px;
  scrollbar-width: none;
}
.ds-checkout-cupons::-webkit-scrollbar { display: none; }
.ds-checkout-cupom-card {
  flex-shrink: 0;
  min-width: 110px;
  padding: 10px 12px;
  background: linear-gradient(135deg, var(--amarelo), #ffba00);
  color: var(--ink);
  border: none;
  border-radius: 10px;
  cursor: pointer;
  text-align: left;
  transition: transform .2s var(--ease-spring);
  box-shadow: var(--sh-1);
  display: flex; flex-direction: column; gap: 2px;
}
.ds-checkout-cupom-card:hover { transform: translateY(-3px); }
.ds-checkout-cupom-card .cupom-badge {
  font-family: 'Fraunces', serif;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: -0.01em;
  color: var(--vermelho);
}
.ds-checkout-cupom-card .cupom-codigo {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  color: var(--ink);
  font-family: monospace;
}
.ds-checkout-cupom-card small { font-size: 9px; color: var(--ink-2); font-weight: 600; }

/* Total checkout */
.resumo-linha.total {
  font-size: 16px;
  font-weight: 800;
  padding-top: 12px;
  border-top: 2px solid var(--ice);
}
.ds-checkout-seguro {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin-top: 12px;
  font-size: 11px;
  color: var(--verde, #00875a);
  font-weight: 700;
  letter-spacing: 0.02em;
}

/* ============================================================================
   ÁREA DA CONTA · sidebar + dashboard + stats + pedidos
   ========================================================================== */
.ds-conta-page {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 28px;
  padding: 16px 24px 80px;
  align-items: flex-start;
}
@media (max-width: 920px) {
  .ds-conta-page { grid-template-columns: 1fr; }
}

/* SIDEBAR */
.ds-conta-side {
  position: sticky;
  top: 100px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 18px;
  padding: 22px;
  box-shadow: var(--sh-1);
}
.ds-conta-eu {
  display: flex; align-items: center; gap: 12px;
  padding-bottom: 18px;
  margin-bottom: 14px;
  border-bottom: 2px solid var(--ice);
}
.ds-conta-avatar {
  width: 54px; height: 54px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Fraunces', serif;
  font-weight: 900;
  font-size: 24px;
  box-shadow: 0 4px 12px rgba(200,16,46,.2), inset 0 1px 0 rgba(255,255,255,.2);
  flex-shrink: 0;
}
.ds-conta-eu-info { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.ds-conta-eu-info small {
  font-size: 11px;
  color: var(--text-muted, #666);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.ds-conta-eu-info small.email {
  color: var(--text-muted, #666);
  font-weight: 500;
  font-size: 11px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  display: block;
  margin-top: 2px;
}
.ds-conta-eu-info strong {
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  font-weight: 900;
  color: var(--ink);
}

.ds-conta-nav {
  display: flex; flex-direction: column; gap: 2px;
}
.ds-conta-nav a {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 14px;
  color: var(--ink-2);
  text-decoration: none;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.005em;
  transition: all .18s var(--ease-quick);
  position: relative;
}
.ds-conta-nav a svg { color: var(--text-muted, #666); flex-shrink: 0; transition: color .2s; }
.ds-conta-nav a:hover {
  background: var(--ice-2);
  color: var(--vermelho);
}
.ds-conta-nav a:hover svg { color: var(--vermelho); }
.ds-conta-nav a.ativo {
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  box-shadow: 0 4px 12px rgba(200,16,46,.25);
}
.ds-conta-nav a.ativo svg { color: #fff; }
.ds-conta-sair {
  margin-top: 12px !important;
  padding-top: 14px !important;
  border-top: 1px solid var(--ice);
  color: var(--vermelho) !important;
}

/* MAIN da conta */
.ds-conta-main { min-width: 0; }

.ds-conta-bemvindo {
  display: flex; align-items: center; gap: 16px;
  padding: 20px 24px;
  background: linear-gradient(135deg, var(--amarelo), #ff9500);
  color: var(--ink);
  border-radius: 18px;
  margin-bottom: 20px;
  box-shadow: var(--sh-gold);
}
.ds-conta-bemvindo-ic {
  font-size: 40px;
  flex-shrink: 0;
}
.ds-conta-bemvindo h2 {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 900;
  margin: 0 0 4px;
  letter-spacing: -0.02em;
}
.ds-conta-bemvindo p {
  font-size: 13px;
  color: var(--ink-2);
  margin-bottom: 8px;
}
.ds-conta-bemvindo-cupom {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 12px;
  background: rgba(13,13,14,.85);
  color: #fff;
  border-radius: 999px;
  font-size: 11px;
}
.ds-conta-bemvindo-cupom strong {
  font-family: 'Fraunces', serif;
  font-size: 14px;
  color: var(--amarelo);
  font-weight: 900;
  letter-spacing: -0.01em;
}

.ds-conta-head { margin-bottom: 22px; }
.ds-conta-head .ds-kicker {
  display: inline-block;
  padding: 4px 12px;
  background: rgba(200,16,46,.08);
  border-left: 3px solid var(--vermelho);
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.16em;
  color: var(--vermelho);
  margin-bottom: 8px;
}
.ds-conta-head h1 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(24px, 3vw, 36px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.025em !important;
  margin: 0 0 6px !important;
}
.ds-conta-head h1 .accent {
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
}
.ds-conta-head p { font-size: 13px; color: var(--text-muted, #666); }

/* VIP CARD */
.ds-conta-vip {
  display: flex; align-items: center; gap: 24px;
  padding: 22px 26px;
  background: linear-gradient(135deg, var(--ink), color-mix(in srgb, var(--vip-cor, var(--vermelho)) 30%, var(--ink)));
  color: #fff;
  border-radius: 18px;
  margin-bottom: 22px;
  position: relative; overflow: hidden;
  box-shadow: var(--sh-2);
}
.ds-conta-vip::before {
  content: ''; position: absolute; inset: -10%;
  background: radial-gradient(40% 60% at 80% 50%, var(--vip-cor, var(--vermelho)) 0%, transparent 60%);
  opacity: .4;
  filter: blur(20px);
  pointer-events: none;
}
.ds-conta-vip-info { position: relative; z-index: 1; }
.ds-conta-vip-info .vip-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.18em;
  color: var(--vip-cor, var(--amarelo));
  margin-bottom: 6px;
}
.ds-conta-vip-info .vip-nivel {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: 32px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, var(--vip-cor, var(--amarelo)), #fff);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ds-conta-vip-info small {
  display: block;
  font-size: 13px;
  color: rgba(255,255,255,.8);
  margin-top: 4px;
}
.ds-conta-vip-progresso {
  flex: 1;
  position: relative; z-index: 1;
}
.ds-conta-vip-progresso small {
  display: block;
  font-size: 11px;
  color: rgba(255,255,255,.75);
  margin-bottom: 8px;
  font-weight: 600;
}
.ds-conta-vip-progresso small strong { color: var(--vip-cor, var(--amarelo)); font-weight: 900; }
.vip-bar {
  height: 8px;
  background: rgba(255,255,255,.1);
  border-radius: 999px;
  overflow: hidden;
}
.vip-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--vip-cor, var(--amarelo)), #fff);
  border-radius: 999px;
  transition: width .8s var(--ease-power);
}
.vip-max strong {
  display: inline-block;
  padding: 6px 14px;
  background: var(--amarelo);
  color: var(--ink);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

@media (max-width: 720px) {
  .ds-conta-vip { flex-direction: column; align-items: stretch; }
}

/* STATS GRID */
.ds-conta-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 28px;
}
.ds-conta-stat {
  display: flex; flex-direction: column; align-items: flex-start;
  padding: 18px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 14px;
  box-shadow: var(--sh-1);
  transition: all .25s var(--ease-spring);
}
.ds-conta-stat:hover { transform: translateY(-3px); box-shadow: var(--sh-2); }
.ds-conta-stat-ic {
  width: 42px; height: 42px;
  border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 10px;
}
.ds-conta-stat strong {
  font-family: 'Fraunces', serif;
  font-size: 24px;
  font-weight: 900;
  color: var(--ink);
  letter-spacing: -0.02em;
  line-height: 1;
}
.ds-conta-stat span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  margin-top: 4px;
  text-transform: uppercase;
}
@media (max-width: 720px) { .ds-conta-stats { grid-template-columns: repeat(2, 1fr); } }

/* Section head dentro conta */
.ds-conta-section-head {
  display: flex; align-items: center; justify-content: space-between;
  margin: 24px 0 14px;
}
.ds-conta-section-head h2 {
  font-family: 'Manrope', sans-serif;
  font-size: 18px;
  font-weight: 900;
  color: var(--ink);
}
.ds-conta-link-todos {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--vermelho);
  text-decoration: none;
}
.ds-conta-link-todos:hover { text-decoration: underline; }

/* Pedidos mini */
.ds-conta-pedidos-mini {
  display: flex; flex-direction: column; gap: 10px;
}
.ds-conta-pedido-card {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  transition: all .2s;
}
.ds-conta-pedido-card:hover { box-shadow: var(--sh-2); border-color: var(--vermelho); transform: translateX(4px); }
.ds-conta-pedido-info strong {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 900;
  color: var(--ink);
}
.ds-conta-pedido-info small {
  display: block;
  font-size: 11px;
  color: var(--text-muted, #666);
  margin-top: 2px;
}
.ds-conta-pedido-status { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.tag-status {
  display: inline-block;
  padding: 3px 10px;
  background: var(--ice-2);
  color: var(--ink);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.tag-status.aguardando_pagamento { background: rgba(255,140,26,.15); color: #c2410c; }
.tag-status.pago, .tag-status.confirmado { background: rgba(0,135,90,.15); color: var(--verde); }
.tag-status.enviado, .tag-status.em_transporte { background: rgba(0,102,255,.15); color: #0040c2; }
.tag-status.entregue { background: rgba(0,135,90,.2); color: var(--verde); }
.tag-status.cancelado { background: rgba(200,16,46,.15); color: var(--vermelho); }
.ds-conta-pedido-total {
  font-family: 'Fraunces', serif;
  font-size: 18px;
  font-weight: 900;
  color: var(--vermelho);
  letter-spacing: -0.02em;
}

.ds-conta-vazio {
  padding: 48px 24px;
  text-align: center;
  background: linear-gradient(180deg, #fff, var(--cream));
  border: 1px dashed rgba(13,13,14,.08);
  border-radius: 16px;
}
.ds-conta-vazio-ic { font-size: 64px; margin-bottom: 8px; opacity: .6; }
.ds-conta-vazio h3 { font-family: 'Manrope', sans-serif; font-size: 18px; font-weight: 900; margin-bottom: 6px; }
.ds-conta-vazio p { font-size: 13px; color: var(--text-muted, #666); margin-bottom: 16px; }

/* ============================================================================
   AUTH · entrar/cadastrar/esqueci · layout 2 colunas com hero
   ========================================================================== */
.ds-auth-page {
  background: linear-gradient(135deg, var(--cream) 0%, #fff 50%, var(--ice-2) 100%);
  padding: 40px 0 80px;
  min-height: 70vh;
}
.ds-auth-wrap {
  display: grid;
  grid-template-columns: 1fr 460px;
  gap: 40px;
  max-width: 1100px !important;
  margin: 0 auto;
  align-items: stretch;
}
@media (max-width: 920px) {
  .ds-auth-wrap { grid-template-columns: 1fr; max-width: 460px !important; }
  .ds-auth-hero { display: none; }
}

/* Hero lateral */
.ds-auth-hero {
  background: linear-gradient(135deg, var(--ink) 0%, var(--vinho) 100%);
  color: #fff;
  border-radius: 24px;
  padding: 48px;
  position: relative; overflow: hidden;
  display: flex; align-items: center;
  box-shadow: var(--sh-3);
}
.ds-auth-hero::before {
  content: ''; position: absolute; inset: -10%;
  background: radial-gradient(60% 50% at 30% 30%, rgba(200,16,46,.4), transparent 60%),
              radial-gradient(40% 40% at 80% 70%, rgba(255,210,0,.2), transparent 60%);
  filter: blur(30px);
  pointer-events: none;
}
.ds-auth-hero-content { position: relative; z-index: 1; }
.ds-auth-hero h2 {
  font-family: 'Fraunces', serif;
  font-size: 36px;
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.025em;
  margin: 12px 0 24px;
  color: #fff;
}
.ds-auth-hero h2 .accent {
  background: linear-gradient(135deg, var(--amarelo), #ff9500);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
}
.ds-auth-hero ul {
  list-style: none; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
  margin-bottom: 24px;
}
.ds-auth-hero ul li {
  font-size: 14px;
  color: rgba(255,255,255,.88);
  font-weight: 500;
}
.ds-auth-google {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  backdrop-filter: blur(10px);
  color: rgba(255,255,255,.9);
  font-size: 12px;
}

.ds-auth-cupom {
  background: rgba(255,255,255,.06);
  border: 2px dashed rgba(255,210,0,.4);
  border-radius: 12px;
  padding: 16px;
  text-align: center;
  margin: 16px 0 24px;
}
.ds-auth-cupom small {
  display: block;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.16em;
  color: rgba(255,255,255,.6);
  text-transform: uppercase;
}
.ds-auth-cupom strong {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: 36px;
  font-weight: 900;
  color: var(--amarelo);
  letter-spacing: -0.02em;
  font-style: italic;
  margin: 4px 0;
}

/* Card formulário */
.ds-auth-card {
  background: #fff;
  border-radius: 24px;
  padding: 36px;
  box-shadow: var(--sh-3);
  border: 1px solid rgba(13,13,14,.04);
  display: flex; flex-direction: column; gap: 14px;
}
.ds-auth-head h1 {
  font-family: 'Fraunces', serif !important;
  font-size: 32px !important;
  font-weight: 900 !important;
  letter-spacing: -0.025em !important;
  color: var(--ink);
  margin: 0 0 4px !important;
}
.ds-auth-head p { font-size: 14px; color: var(--text-muted, #666); }

.ds-auth-erro {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 14px;
  background: rgba(200,16,46,.08);
  border: 1px solid rgba(200,16,46,.25);
  border-radius: 10px;
  color: var(--vermelho);
  font-size: 13px;
  font-weight: 700;
}

.ds-auth-form {
  display: flex; flex-direction: column; gap: 14px;
}
.ds-auth-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 480px) { .ds-auth-row-2 { grid-template-columns: 1fr; } }

.ds-auth-row {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12px;
}
.ds-auth-check {
  display: inline-flex; align-items: center; gap: 6px;
  cursor: pointer;
  color: var(--ink-2);
  font-weight: 600;
}
.ds-auth-check input { position: absolute; opacity: 0; }
.ds-auth-check span {
  width: 16px; height: 16px;
  border-radius: 4px;
  border: 2px solid rgba(13,13,14,.2);
  transition: all .15s;
  position: relative;
}
.ds-auth-check input:checked ~ span {
  background: var(--vermelho); border-color: var(--vermelho);
}
.ds-auth-check input:checked ~ span::after {
  content: '✓';
  position: absolute;
  inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 900; font-size: 10px;
}
.ds-auth-link {
  color: var(--vermelho);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.ds-auth-cta {
  display: flex !important; align-items: center; justify-content: center; gap: 10px;
  width: 100%;
  height: 54px !important;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho)) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  letter-spacing: 0.12em !important;
  cursor: pointer;
  box-shadow: var(--sh-red), inset 0 1px 0 rgba(255,255,255,.2);
  transition: transform .25s var(--ease-spring), box-shadow .25s;
}
.ds-auth-cta:hover { transform: translateY(-2px); box-shadow: var(--sh-red), 0 12px 32px rgba(200,16,46,.4); }

.ds-auth-divisor {
  display: flex; align-items: center; gap: 10px;
  margin: 4px 0;
  color: var(--text-faint, #9a9aa1);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
}
.ds-auth-divisor::before, .ds-auth-divisor::after {
  content: ''; flex: 1; height: 1px; background: rgba(13,13,14,.08);
}

.ds-auth-cta-secund {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%;
  padding: 14px;
  background: transparent;
  color: var(--ink);
  border: 2px solid rgba(13,13,14,.1);
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-decoration: none;
  transition: all .2s;
}
.ds-auth-cta-secund:hover {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

.ds-auth-termos {
  font-size: 11px;
  color: var(--text-muted, #666);
  line-height: 1.4;
  text-align: center;
}
.ds-auth-termos a { color: var(--vermelho); text-decoration: underline; font-weight: 700; }

.ds-auth-lgpd {
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  margin-top: 4px;
  font-size: 10px;
  color: var(--text-muted, #666);
  letter-spacing: 0.02em;
  text-align: center;
}

/* ============================================================================
   CARD ANIVERSÁRIO (conta-home)
   ========================================================================== */
.ds-conta-aniversario {
  display: flex; align-items: center; gap: 20px;
  padding: 24px 28px;
  background: linear-gradient(135deg, #ff8c1a, #c8102e);
  color: #fff;
  border-radius: 20px;
  margin-bottom: 20px;
  box-shadow: 0 12px 24px rgba(200,16,46,.3);
  position: relative; overflow: hidden;
  isolation: isolate;
}
.ds-conta-aniversario::before {
  content: ''; position: absolute; inset: -10%;
  background:
    radial-gradient(40% 40% at 80% 20%, rgba(255,210,0,.4), transparent 60%),
    radial-gradient(50% 50% at 10% 80%, rgba(255,255,255,.15), transparent 60%);
  filter: blur(30px);
  pointer-events: none;
  z-index: -1;
}
.ds-conta-aniversario-ic {
  font-size: 56px;
  flex-shrink: 0;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.25));
  animation: bday-bounce 2s ease-in-out infinite;
}
@keyframes bday-bounce {
  0%, 100% { transform: translateY(0) rotate(-5deg); }
  50%      { transform: translateY(-6px) rotate(5deg); }
}
.ds-conta-aniversario h2 {
  font-family: 'Fraunces', serif;
  font-size: 26px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 4px;
}
.ds-conta-aniversario h2 strong { color: var(--amarelo); font-style: italic; }
.ds-conta-aniversario p { color: rgba(255,255,255,.92); font-size: 13px; margin-bottom: 10px; }
.ds-conta-aniversario-cupom {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 12px;
  background: rgba(0,0,0,.25);
  border: 2px dashed rgba(255,210,0,.5);
  border-radius: 12px;
}
.ds-conta-aniversario-cupom strong {
  font-family: 'Fraunces', serif;
  font-size: 18px;
  color: var(--amarelo);
  letter-spacing: -0.01em;
  font-style: italic;
}
.ds-conta-aniversario-cupom button {
  padding: 6px 14px;
  background: var(--amarelo);
  color: var(--ink);
  border: none;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: transform .2s;
}
.ds-conta-aniversario-cupom button:hover { transform: scale(1.05); }

/* Botão wish ativo */
.btn-wish.ativo { color: #c8102e !important; transform: scale(1.1); }
@keyframes wish-pop {
  0% { transform: scale(1); }
  50% { transform: scale(1.4); }
  100% { transform: scale(1.1); }
}
.btn-wish.ativo { animation: wish-pop .4s ease-out; }

/* ============================================================================
   CONTA · pedidos grandes, alertas, cashback, endereços
   ========================================================================== */

.ds-conta-alerta-ok {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 14px;
  background: rgba(0,135,90,.1);
  border: 1px solid rgba(0,135,90,.25);
  border-radius: 10px;
  color: var(--verde, #00875a);
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 18px;
}

/* Pedidos grandes (lista completa) */
.ds-conta-pedidos-lista {
  display: flex; flex-direction: column; gap: 12px;
}
.ds-conta-pedido-grande {
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 16px;
  padding: 18px;
  transition: all .2s;
}
.ds-conta-pedido-grande:hover { box-shadow: var(--sh-2); border-color: rgba(13,13,14,.1); }
.ds-conta-pedido-grande-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px dashed rgba(13,13,14,.08);
}
.ds-conta-pedido-grande-head strong { display: block; font-size: 16px; font-weight: 900; color: var(--ink); }
.ds-conta-pedido-grande-head small { display: block; font-size: 12px; color: var(--text-muted, #666); margin-top: 2px; }

.ds-conta-pedido-grande-body {
  display: flex; align-items: center; gap: 24px;
  flex-wrap: wrap;
}
.ds-conta-pedido-grande-info { display: flex; flex-direction: column; gap: 2px; }
.ds-conta-pedido-grande-info small { font-size: 10px; font-weight: 800; letter-spacing: 0.12em; color: var(--text-muted, #666); }
.ds-conta-pedido-grande-info strong {
  font-family: 'Fraunces', serif;
  font-size: 20px;
  font-weight: 900;
  color: var(--vermelho);
  letter-spacing: -0.02em;
}
.ds-conta-pedido-grande-info code {
  font-family: monospace;
  background: var(--ice-2);
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
}
.ds-conta-pedido-btn {
  margin-left: auto;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 18px;
  background: var(--ink);
  color: #fff;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: all .2s;
}
.ds-conta-pedido-btn:hover { background: var(--vermelho); transform: translateX(2px); }

/* Cashback */
.ds-cashback-saldo {
  display: flex; align-items: center; justify-content: space-between;
  padding: 28px 32px;
  background: linear-gradient(135deg, var(--verde, #00875a) 0%, #00b97c 100%);
  color: #fff;
  border-radius: 20px;
  box-shadow: 0 12px 32px rgba(0,135,90,.25);
  flex-wrap: wrap; gap: 20px;
}
.ds-cashback-saldo-info small {
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.16em;
  color: rgba(255,255,255,.85);
  margin-bottom: 4px;
}
.ds-cashback-saldo-info .cb-saldo-valor {
  font-family: 'Fraunces', serif;
  font-size: 48px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.025em;
  line-height: 1;
  display: block;
  margin-bottom: 4px;
}
.ds-cashback-saldo-info span {
  display: block;
  font-size: 12px;
  color: rgba(255,255,255,.75);
}
.ds-cashback-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 24px;
  background: #fff;
  color: var(--verde, #00875a);
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-decoration: none;
  transition: transform .2s, box-shadow .2s;
}
.ds-cashback-cta:hover { transform: translateY(-2px); box-shadow: var(--sh-2); }

.ds-cashback-extrato {
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 24px;
}
.tabela-extrato { width: 100%; border-collapse: collapse; font-size: 13px; }
.tabela-extrato thead {
  background: var(--ice-2);
}
.tabela-extrato th {
  text-align: left;
  padding: 12px 14px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
}
.tabela-extrato td {
  padding: 12px 14px;
  border-top: 1px solid rgba(13,13,14,.04);
}
.tabela-extrato tbody tr:hover { background: var(--cream); }

.ds-cashback-regras {
  margin-top: 24px;
  padding: 24px;
  background: linear-gradient(180deg, #fff, var(--cream));
  border-radius: 16px;
  border: 1px solid rgba(13,13,14,.06);
}
.ds-cashback-regras h3 {
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  font-weight: 900;
  color: var(--ink);
  margin-bottom: 12px;
}
.ds-cashback-regras ul {
  list-style: none; padding: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.ds-cashback-regras li {
  padding: 10px 14px;
  background: #fff;
  border-radius: 10px;
  font-size: 13px;
  color: var(--ink-2);
  border-left: 3px solid var(--verde, #00875a);
}
.ds-cashback-regras li strong { color: var(--ink); }

/* Endereços grid */
.ds-conta-end-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.ds-conta-end-card {
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 14px;
  padding: 18px;
  display: flex; flex-direction: column; gap: 4px;
  position: relative;
  transition: all .2s;
}
.ds-conta-end-card:hover { box-shadow: var(--sh-2); border-color: rgba(13,13,14,.1); }
.ds-conta-end-card header {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 6px;
}
.ds-conta-end-card header strong {
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 900;
  color: var(--ink);
}
.ds-conta-end-pill {
  display: inline-block;
  padding: 3px 8px;
  background: linear-gradient(135deg, var(--amarelo), #ff9500);
  color: var(--ink);
  border-radius: 999px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.1em;
}
.ds-conta-end-rua { font-size: 14px; font-weight: 700; color: var(--ink); margin-top: 4px; }
.ds-conta-end-card p { font-size: 13px; color: var(--ink-2); margin: 0; }
.ds-conta-end-cep { color: var(--text-muted, #666) !important; font-size: 12px !important; margin-top: 4px !important; }
.ds-conta-end-remover {
  display: inline-flex; align-items: center; gap: 4px;
  margin-top: 12px;
  padding: 6px 12px;
  background: transparent;
  color: var(--text-muted, #666);
  border: 1px solid rgba(13,13,14,.1);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: all .2s;
  width: fit-content;
}
.ds-conta-end-remover:hover { background: var(--vermelho); color: #fff; border-color: var(--vermelho); }

.ds-conta-form-end { margin-top: 16px; }
.ds-conta-form-end summary {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 22px;
  background: var(--ink);
  color: #fff;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  cursor: pointer;
  list-style: none;
  transition: all .2s;
}
.ds-conta-form-end summary::-webkit-details-marker { display: none; }
.ds-conta-form-end summary:hover { background: var(--vermelho); }
.ds-conta-form-end-form {
  margin-top: 18px;
  padding: 24px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 16px;
  display: flex; flex-direction: column; gap: 12px;
}
.ds-conta-form-end-tres {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 10px;
}
@media (max-width: 720px) { .ds-conta-form-end-tres { grid-template-columns: 1fr; } }

/* ============================================================================
   VITRINES INTERNAS · Categoria / Marca / Produtos / Busca
   ========================================================================== */

/* HERO da categoria/marca/busca */
.ds-cat-hero {
  position: relative;
  background: var(--ink);
  color: #fff;
  padding: 56px 24px 64px;
  overflow: hidden;
  isolation: isolate;
  margin-bottom: 24px;
}
.ds-cat-hero-bg {
  position: absolute; inset: -10%; z-index: -1;
  background:
    radial-gradient(60% 50% at 20% 30%, var(--acento, var(--vermelho)) 0%, transparent 60%),
    radial-gradient(50% 50% at 80% 70%, color-mix(in srgb, var(--acento, var(--vermelho)) 50%, var(--ink)) 0%, transparent 60%);
  filter: blur(40px);
  opacity: .9;
}
.ds-cat-hero::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.4 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  opacity: .04; mix-blend-mode: overlay;
}
.ds-cat-kicker {
  display: inline-block;
  padding: 5px 14px;
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.16em;
  color: var(--amarelo) !important;
  margin-bottom: 14px;
}
.ds-cat-h1 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(34px, 5vw, 56px) !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.03em !important;
  color: #fff !important;
  margin: 0 0 8px !important;
}
.ds-cat-h1 .accent {
  background: linear-gradient(135deg, var(--amarelo), #ff9500);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
}
.ds-cat-sub {
  font-size: 15px;
  color: rgba(255,255,255,.78);
  font-weight: 500;
}
.ds-cat-sub strong { color: var(--amarelo); font-weight: 800; font-family: 'Fraunces', serif; }

/* Hero da marca · com logo lateral */
.ds-marca-hero-row {
  display: flex; align-items: center; gap: 28px;
  flex-wrap: wrap;
  position: relative; z-index: 1;
}
.ds-marca-hero-logo {
  width: 140px; height: 140px;
  background: #fff;
  border-radius: 24px;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
  box-shadow: 0 12px 32px rgba(0,0,0,.3);
  flex-shrink: 0;
}
.ds-marca-hero-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.ds-marca-hero-info { flex: 1; min-width: 220px; }

/* Chips de filtros ativos */
.ds-cat-chips {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 8px;
  padding: 16px 24px;
  background: var(--cream);
  border-radius: 12px;
  margin: 0 24px 16px;
}
.ds-cat-chips-label {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
  color: var(--text-muted, #666);
}
.ds-cat-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.08);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  text-decoration: none;
  transition: all .2s var(--ease-spring);
}
.ds-cat-chip:hover {
  background: var(--vermelho); color: #fff; border-color: var(--vermelho);
  transform: translateY(-2px);
}
.ds-cat-chip-limpar {
  font-size: 11px;
  font-weight: 800;
  color: var(--vermelho);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Toolbar de filtros (vista + ordenar) */
.ds-cat-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 14px;
  padding: 16px 24px;
  margin-bottom: 16px;
}
.ds-cat-toolbar-esq { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ds-cat-toolbar-total {
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  font-weight: 900;
  color: var(--ink);
}
.ds-cat-vista {
  display: inline-flex;
  background: var(--ice-2);
  border-radius: 999px;
  padding: 3px;
  gap: 2px;
}
.ds-cat-vista-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px;
  background: transparent;
  border: none;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--text-muted, #666);
  cursor: pointer;
  transition: all .2s;
}
.ds-cat-vista-btn:hover { color: var(--ink); }
.ds-cat-vista-btn.ativo {
  background: var(--ink);
  color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.12);
}
.ds-cat-ord {
  display: inline-flex; align-items: center; gap: 8px;
}
.ds-cat-ord-label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--text-muted, #666);
}
.ds-cat-ord select {
  padding: 8px 12px;
  border: 1px solid rgba(13,13,14,.1);
  border-radius: 10px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  outline: none;
  transition: border-color .2s;
}
.ds-cat-ord select:hover { border-color: var(--vermelho); }

/* Setor por marca (categoria.ejs vista=marcas) */
.ds-cat-setor {
  padding: 40px 0;
  border-top: 1px solid rgba(13,13,14,.06);
  position: relative;
}
.ds-cat-setor:first-of-type { border-top: none; }
.ds-cat-setor::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--marca-cor, var(--vermelho)) 0%, transparent 50%);
}
.ds-cat-setor:first-of-type::before { display: none; }
.ds-cat-setor-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 18px; flex-wrap: wrap;
  margin-bottom: 24px;
}
.ds-cat-setor-info {
  display: flex; align-items: center; gap: 16px;
}
.ds-cat-setor-logo, .ds-cat-setor-logo-ph {
  width: 72px; height: 72px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  padding: 8px;
  box-shadow: var(--sh-1);
  text-decoration: none;
}
.ds-cat-setor-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ds-cat-setor-logo-ph {
  font-family: 'Fraunces', serif;
  font-size: 32px;
  font-weight: 900;
  color: var(--marca-cor, var(--vermelho));
}
.ds-cat-setor-info > div h2 {
  font-family: 'Fraunces', serif;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -0.025em;
  margin: 4px 0;
}
.ds-cat-setor-kicker {
  display: inline-block;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--marca-cor, var(--vermelho));
}
.ds-cat-setor-info small {
  font-size: 12px;
  color: var(--text-muted, #666);
}
.ds-cat-setor-link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 18px;
  background: transparent;
  color: var(--marca-cor, var(--vermelho));
  border: 2px solid var(--marca-cor, var(--vermelho));
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-decoration: none;
  transition: all .2s var(--ease-spring);
}
.ds-cat-setor-link:hover {
  background: var(--marca-cor, var(--vermelho));
  color: #fff;
  transform: translateY(-2px);
}
.ds-cat-setor-rodape { margin-top: 18px; text-align: center; }
.ds-cat-setor-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 22px;
  background: var(--ink);
  color: #fff;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-decoration: none;
  transition: all .2s var(--ease-spring);
}
.ds-cat-setor-cta:hover { background: var(--marca-cor, var(--vermelho)); transform: translateY(-2px); }

/* Catálogo grade · sidebar + conteúdo */
.ds-cat-grade {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 28px;
  align-items: flex-start;
  padding-bottom: 60px;
}
@media (max-width: 920px) {
  .ds-cat-grade { grid-template-columns: 1fr; }
}

.ds-cat-filtros {
  position: sticky;
  top: 100px;
  padding: 22px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 16px;
  box-shadow: var(--sh-1);
}
.ds-cat-filtros-titulo {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--ink);
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--ice);
  text-transform: uppercase;
}

.ds-cat-marcas-lista {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex; flex-direction: column; gap: 2px;
  max-height: 320px;
  overflow-y: auto;
  scrollbar-width: thin;
}
.ds-cat-marcas-lista::-webkit-scrollbar { width: 4px; }
.ds-cat-marcas-lista::-webkit-scrollbar-thumb { background: rgba(13,13,14,.1); border-radius: 999px; }
.ds-cat-marca-link {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-2);
  text-decoration: none;
  transition: all .15s;
  border-left: 3px solid transparent;
}
.ds-cat-marca-link:hover {
  background: var(--ice-2);
  border-left-color: var(--marca-cor, var(--vermelho));
  color: var(--vermelho);
  transform: translateX(2px);
}
.ds-cat-marca-link.ativo {
  background: var(--marca-cor, var(--vermelho));
  color: #fff;
  border-left-color: var(--amarelo);
  font-weight: 800;
}
.ds-cat-marca-link small { color: rgba(13,13,14,.5); font-size: 11px; font-weight: 600; }
.ds-cat-marca-link.ativo small { color: rgba(255,255,255,.75); }

.ds-cat-limpar {
  display: inline-block;
  margin-top: 8px;
  font-size: 11px;
  font-weight: 800;
  color: var(--vermelho);
  text-decoration: underline;
}

/* Preço range */
.ds-cat-preco {
  display: flex; flex-direction: column; gap: 10px;
}
.ds-cat-preco-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.ds-cat-preco-input {
  position: relative;
  display: flex; flex-direction: column;
  background: var(--ice-2);
  border-radius: 10px;
  padding: 6px 10px;
  transition: background .2s;
}
.ds-cat-preco-input:focus-within { background: #fff; box-shadow: 0 0 0 2px var(--vermelho); }
.ds-cat-preco-input small {
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.12em;
  color: var(--text-muted, #666);
  margin-bottom: 2px;
}
.ds-cat-preco-input .prefix {
  position: absolute;
  left: 10px;
  bottom: 8px;
  font-size: 11px;
  font-weight: 800;
  color: var(--text-muted, #666);
  pointer-events: none;
}
.ds-cat-preco-input input {
  background: transparent;
  border: none;
  outline: none;
  padding: 0 0 0 22px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
  height: 24px;
}
.ds-cat-preco-btn {
  width: 100%;
  padding: 12px;
  background: var(--ink);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: background .2s;
}
.ds-cat-preco-btn:hover { background: var(--vermelho); }

/* Vazio em vitrines */
.ds-cat-vazio {
  padding: 60px 24px;
  text-align: center;
  background: linear-gradient(180deg, #fff, var(--cream));
  border: 1px dashed rgba(13,13,14,.1);
  border-radius: 20px;
}
.ds-cat-vazio-ic { font-size: 72px; margin-bottom: 12px; opacity: .6; }
.ds-cat-vazio h3 { font-family: 'Manrope', sans-serif; font-size: 20px; font-weight: 900; margin-bottom: 6px; }
.ds-cat-vazio p { font-size: 14px; color: var(--text-muted, #666); margin-bottom: 18px; }

/* Paginação premium */
.ds-paginacao {
  display: flex; align-items: center; justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 40px;
  padding: 20px 0;
}
.ds-paginacao-num, .ds-paginacao-nav {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 6px;
  min-width: 38px; height: 38px;
  padding: 0 14px;
  background: #fff;
  color: var(--ink);
  border: 1px solid rgba(13,13,14,.08);
  border-radius: 10px;
  font-family: 'Manrope', sans-serif;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  transition: all .2s var(--ease-spring);
}
.ds-paginacao-num:hover, .ds-paginacao-nav:hover {
  border-color: var(--vermelho);
  color: var(--vermelho);
  transform: translateY(-2px);
}
.ds-paginacao-num.ativo {
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border-color: var(--vermelho);
  box-shadow: var(--sh-red);
}
.ds-paginacao-sep {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 38px;
  color: var(--text-faint, #9a9aa1);
  font-weight: 900;
}

/* ============================================================================
   BUSCA · hero gigante + tags + extras + pills + vazio
   ========================================================================== */
.ds-busca-hero {
  position: relative;
  background: var(--ink);
  color: #fff;
  padding: 72px 24px 80px;
  overflow: hidden;
  isolation: isolate;
  text-align: center;
}
.ds-busca-hero-bg {
  position: absolute; inset: -10%; z-index: -1;
  background:
    radial-gradient(50% 50% at 25% 30%, rgba(200,16,46,.4), transparent 60%),
    radial-gradient(50% 50% at 75% 70%, rgba(255,210,0,.18), transparent 60%);
  filter: blur(50px);
}
.ds-busca-h1 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(32px, 5vw, 52px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.05 !important;
  margin: 14px 0 8px !important;
  color: #fff !important;
}
.ds-busca-h1 .accent {
  background: linear-gradient(135deg, var(--amarelo), #ff9500);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
}
.ds-busca-resumo {
  font-size: 15px;
  color: rgba(255,255,255,.75);
  max-width: 640px;
  margin: 0 auto 24px;
}
.ds-busca-resumo strong { color: var(--amarelo); font-weight: 800; }

.ds-busca-grande {
  position: relative;
  display: flex; align-items: center; gap: 6px;
  background: #fff;
  border-radius: 999px;
  padding: 6px;
  max-width: 720px;
  margin: 0 auto;
  box-shadow: 0 12px 32px rgba(0,0,0,.18);
}
.ds-busca-grande-ic {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px;
  color: var(--text-muted, #666);
  flex-shrink: 0;
}
.ds-busca-grande input[type="search"] {
  flex: 1;
  height: 52px;
  border: none;
  outline: none;
  background: transparent;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
  padding: 0 8px;
}
.ds-busca-grande input::placeholder { color: var(--text-faint, #9a9aa1); font-weight: 500; }
.ds-busca-clear {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  background: var(--ice-2);
  color: var(--ink);
  border-radius: 50%;
  text-decoration: none;
  font-size: 16px;
  font-weight: 900;
  transition: all .2s;
}
.ds-busca-clear:hover { background: var(--vermelho); color: #fff; }
.ds-busca-grande-btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 52px;
  padding: 0 28px;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho)) !important;
  color: #fff;
  border: none;
  border-radius: 999px !important;
  font-family: 'Manrope', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: transform .2s, box-shadow .2s;
}
.ds-busca-grande-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(200,16,46,.4); }

.ds-busca-tags {
  display: flex; align-items: center; justify-content: center;
  gap: 8px; flex-wrap: wrap;
  margin-top: 18px;
}
.ds-busca-tags span {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: rgba(255,255,255,.55);
}
.ds-busca-tags a {
  padding: 6px 14px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  transition: all .2s var(--ease-spring);
}
.ds-busca-tags a:hover {
  background: var(--amarelo);
  color: var(--ink);
  border-color: var(--amarelo);
  transform: translateY(-2px);
}

.ds-busca-vazio {
  padding: 60px 24px;
  text-align: center;
  background: linear-gradient(180deg, #fff, var(--cream));
  border-radius: 24px;
  border: 1px dashed rgba(13,13,14,.1);
  margin: 24px 0;
}
.ds-busca-vazio-ic {
  display: inline-flex; align-items: center; justify-content: center;
  width: 120px; height: 120px;
  border-radius: 50%;
  background: var(--ice-2);
  color: var(--text-faint, #9a9aa1);
  margin-bottom: 16px;
}
.ds-busca-vazio h2 {
  font-family: 'Fraunces', serif;
  font-size: 28px;
  font-weight: 900;
  letter-spacing: -0.02em;
  margin-bottom: 6px;
}
.ds-busca-vazio p { font-size: 14px; color: var(--text-muted, #666); margin-bottom: 20px; }
.ds-busca-sugestoes {
  margin: 24px auto;
  max-width: 540px;
}
.ds-busca-sugestoes strong {
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  margin-bottom: 10px;
}
.ds-busca-sugestoes > div { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.ds-busca-vazio-ctas {
  display: flex; gap: 10px; flex-wrap: wrap; justify-content: center;
  margin-top: 20px;
}

/* Extras (categorias + marcas que batem) */
.ds-busca-extras {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 8px;
}
@media (max-width: 720px) { .ds-busca-extras { grid-template-columns: 1fr; } }
.ds-busca-extra-bloco {
  padding: 22px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 16px;
  box-shadow: var(--sh-1);
}
.ds-busca-extra-bloco strong {
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  margin-bottom: 12px;
  text-transform: uppercase;
}
.ds-busca-pills {
  display: flex; gap: 8px; flex-wrap: wrap;
}
.ds-busca-pill {
  display: inline-flex; flex-direction: column;
  padding: 10px 16px;
  background: var(--ice-2);
  border: 1px solid transparent;
  border-radius: 12px;
  text-decoration: none;
  color: var(--ink);
  transition: all .2s var(--ease-spring);
  position: relative;
  overflow: hidden;
}
.ds-busca-pill:hover {
  background: #fff;
  border-color: var(--marca-cor, var(--vermelho));
  transform: translateY(-2px);
  box-shadow: var(--sh-1);
}
.ds-busca-pill-nome { font-size: 13px; font-weight: 800; }
.ds-busca-pill small { font-size: 11px; color: var(--text-muted, #666); margin-top: 2px; }
.ds-busca-pill-marca {
  flex-direction: row;
  align-items: center;
  gap: 10px;
}
.ds-busca-pill-marca img { max-height: 24px; max-width: 60px; object-fit: contain; }

.ds-busca-mais {
  margin-top: 24px;
  text-align: center;
  font-size: 14px;
  color: var(--text-muted, #666);
}
.ds-busca-mais a { color: var(--vermelho); font-weight: 800; text-decoration: underline; }

/* ============================================================================
   MARCAS (LISTA) · alfabético + grade por letra
   ========================================================================== */
.ds-marcas-alfa {
  position: sticky;
  top: 100px;
  z-index: 30;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid rgba(13,13,14,.06);
  border-bottom: 1px solid rgba(13,13,14,.06);
  padding: 12px 0;
  margin-bottom: 24px;
}
.ds-marcas-alfa-row {
  display: flex; align-items: center; gap: 6px;
  flex-wrap: wrap;
}
.ds-marcas-alfa-label {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  margin-right: 6px;
}
.ds-marcas-alfa-letra {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px;
  background: var(--ice-2);
  color: var(--ink);
  border-radius: 8px;
  font-family: 'Manrope', sans-serif;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  transition: all .2s var(--ease-spring);
}
.ds-marcas-alfa-letra:hover {
  background: var(--vermelho);
  color: #fff;
  transform: translateY(-2px);
}

.ds-marcas-pagina { padding: 0 24px 80px; }
.ds-marcas-grupo {
  margin-bottom: 36px;
  scroll-margin-top: 160px;
}
.ds-marcas-grupo-head {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--ice);
}
.ds-marcas-grupo-letra {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  font-family: 'Fraunces', serif;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -0.02em;
  box-shadow: var(--sh-1);
}
.ds-marcas-grupo-head strong {
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: var(--text-muted, #666);
}

.ds-marcas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
}
.ds-marca-card {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  padding: 18px 12px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 16px;
  text-decoration: none;
  color: var(--ink);
  transition: all .25s var(--ease-spring);
  box-shadow: var(--sh-1);
  position: relative;
  overflow: hidden;
}
.ds-marca-card::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(80% 60% at 50% 0%, var(--marca-cor, var(--vermelho)) 0%, transparent 70%);
  opacity: 0; transition: opacity .3s;
}
.ds-marca-card:hover {
  transform: translateY(-4px);
  border-color: var(--marca-cor, var(--vermelho));
  box-shadow: var(--sh-2);
}
.ds-marca-card:hover::before { opacity: .06; }
.ds-marca-card-logo {
  width: 80px; height: 80px;
  background: var(--ice-2);
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  padding: 10px;
  overflow: hidden;
}
.ds-marca-card-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ds-marca-card-logo span {
  font-family: 'Fraunces', serif;
  font-size: 36px;
  font-weight: 900;
  color: var(--marca-cor, var(--vermelho));
}
.ds-marca-card strong {
  font-size: 13px;
  font-weight: 800;
  text-align: center;
  line-height: 1.2;
}
.ds-marca-card small {
  font-size: 11px;
  color: var(--text-muted, #666);
}

/* ============================================================================
   PROMOÇÕES · hero quente + cupons + ofertas + cashback dobrado
   ========================================================================== */
.ds-promo-hero {
  position: relative;
  background: var(--ink);
  color: #fff;
  padding: 64px 24px;
  overflow: hidden;
  isolation: isolate;
  text-align: center;
}
.ds-promo-hero-bg {
  position: absolute; inset: -10%; z-index: -1;
  background:
    radial-gradient(60% 50% at 20% 30%, rgba(255,140,26,.35) 0%, transparent 60%),
    radial-gradient(50% 50% at 80% 70%, rgba(255,210,0,.2) 0%, transparent 60%),
    radial-gradient(40% 40% at 50% 50%, rgba(200,16,46,.3) 0%, transparent 60%);
  filter: blur(40px);
  animation: dark-mesh 22s ease-in-out infinite alternate;
}

.ds-promo-countdown {
  display: inline-flex !important;
  flex-direction: column;
  margin: 0 auto;
}

.ds-promo-stats {
  display: flex; gap: 20px; justify-content: center;
  flex-wrap: wrap;
  margin-top: 28px;
}
.ds-promo-stat {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 12px 24px;
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
}
.ds-promo-stat strong {
  font-family: 'Fraunces', serif;
  font-size: 36px;
  font-weight: 900;
  color: var(--amarelo);
  letter-spacing: -0.025em;
  line-height: 1;
}
.ds-promo-stat small {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: rgba(255,255,255,.75);
}

/* Cupons cards */
.ds-promo-cupons {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}
.ds-promo-cupom {
  position: relative;
  padding: 24px;
  background: linear-gradient(135deg, var(--amarelo), #ff9500);
  color: var(--ink);
  border-radius: 18px;
  box-shadow: var(--sh-gold);
  overflow: hidden;
  isolation: isolate;
  transition: transform .25s var(--ease-spring), box-shadow .25s;
}
.ds-promo-cupom:hover { transform: translateY(-4px) scale(1.01); }
.ds-promo-cupom.cupom-frete {
  background: linear-gradient(135deg, var(--verde), #00b97c);
  color: #fff;
}
.ds-promo-cupom-perfu, .ds-promo-cupom-perfu-dir {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  width: 24px; height: 24px;
  background: var(--cream);
  border-radius: 50%;
}
.ds-promo-cupom-perfu { left: -12px; }
.ds-promo-cupom-perfu-dir { right: -12px; }
.ds-promo-cupom.cupom-frete .ds-promo-cupom-perfu,
.ds-promo-cupom.cupom-frete .ds-promo-cupom-perfu-dir { background: var(--ink); }

.ds-promo-cupom-desc {
  font-family: 'Fraunces', serif;
  font-size: 44px;
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1;
  font-style: italic;
}
.ds-promo-cupom-label {
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.16em;
  opacity: .75;
  margin: 4px 0 14px;
}
.ds-promo-cupom-codigo {
  display: flex; gap: 6px;
  background: rgba(0,0,0,.16);
  border: 2px dashed rgba(0,0,0,.2);
  border-radius: 12px;
  padding: 4px;
  margin-bottom: 8px;
}
.ds-promo-cupom-codigo input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-family: monospace;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.06em;
  color: var(--ink);
  padding: 8px 12px;
}
.ds-promo-cupom.cupom-frete .ds-promo-cupom-codigo {
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.3);
}
.ds-promo-cupom.cupom-frete .ds-promo-cupom-codigo input { color: #fff; }
.ds-promo-cupom-copiar {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  background: var(--ink);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: 'Manrope', sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: all .2s;
}
.ds-promo-cupom-copiar:hover { background: var(--vinho); }
.ds-promo-cupom-copiar.is-copied { background: var(--verde) !important; }
.ds-promo-cupom-info {
  font-size: 12px;
  margin: 8px 0;
  opacity: .85;
}
.ds-promo-cupom-rodape {
  display: flex; gap: 10px; flex-wrap: wrap;
  margin-top: 8px;
  font-size: 11px;
  font-weight: 600;
  opacity: .8;
}

/* Compartilhar promo */
.ds-promo-share {
  display: grid;
  grid-template-columns: 1.2fr auto;
  gap: 28px;
  align-items: center;
  padding: 32px;
  background: linear-gradient(135deg, var(--cream), #fff);
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 24px;
  box-shadow: var(--sh-1);
}
.ds-promo-share h2 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(22px, 2.6vw, 32px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.05 !important;
  margin: 6px 0 !important;
}
.ds-promo-share-btns { display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 720px) { .ds-promo-share { grid-template-columns: 1fr; } }

/* ============================================================================
   COMPARAR · tabela lado a lado
   ========================================================================== */
.ds-comparar-wrap {
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 20px;
  box-shadow: var(--sh-1);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ds-comparar-tabela {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
}
.ds-comparar-tabela th, .ds-comparar-tabela td {
  padding: 16px;
  border-bottom: 1px solid rgba(13,13,14,.05);
  text-align: left;
  vertical-align: middle;
  font-size: 13px;
}
.ds-comparar-tabela th:not(.ds-comparar-prod-th) {
  background: var(--ice-2);
  width: 180px;
  font-family: 'Manrope', sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  text-transform: uppercase;
}
.ds-comparar-prod-th {
  position: relative;
  background: linear-gradient(180deg, var(--cream), #fff);
  padding: 20px 16px !important;
  text-align: center;
  vertical-align: top;
  min-width: 200px;
}
.ds-comparar-prod-link {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  text-decoration: none;
  color: var(--ink);
}
.ds-comparar-prod-link img,
.ds-comparar-prod-ph {
  width: 120px; height: 120px;
  background: var(--ice-2);
  border-radius: 14px;
  padding: 10px;
  object-fit: contain;
  display: flex; align-items: center; justify-content: center;
}
.ds-comparar-prod-ph {
  font-family: 'Fraunces', serif;
  font-size: 56px;
  font-weight: 900;
  color: var(--vermelho);
  opacity: .4;
}
.ds-comparar-marca {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--vermelho);
}
.ds-comparar-prod-link strong {
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ds-comparar-remover {
  position: absolute;
  top: 8px; right: 8px;
  width: 26px; height: 26px;
  background: rgba(13,13,14,.06);
  color: var(--ink);
  border-radius: 50%;
  text-decoration: none;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 16px;
  font-weight: 900;
  transition: all .2s;
}
.ds-comparar-remover:hover { background: var(--vermelho); color: #fff; transform: rotate(90deg); }

.ds-comparar-preco {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 900;
  color: var(--vermelho);
  letter-spacing: -0.02em;
  display: block;
}
.ds-comparar-badge {
  display: inline-block;
  margin-top: 6px;
  padding: 2px 8px;
  background: var(--amarelo);
  color: var(--ink);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.ds-comparar-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 10px 18px;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border: none;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: transform .2s, box-shadow .2s;
}
.ds-comparar-cta:hover:not(:disabled) { transform: translateY(-2px); box-shadow: var(--sh-red); }
.ds-comparar-cta:disabled { opacity: .5; cursor: not-allowed; background: var(--ice-2) !important; color: var(--text-muted) !important; }

.ds-comparar-add-hint {
  margin: 18px 0 0;
  padding: 14px 18px;
  background: linear-gradient(135deg, rgba(200,16,46,.06), rgba(255,210,0,.06));
  border: 1px dashed rgba(200,16,46,.3);
  border-radius: 12px;
  font-size: 13px;
  color: var(--ink-2);
  display: flex; align-items: center; gap: 8px;
}

/* ============================================================================
   CONTATO · 4 canais em cards + form + info lateral
   ========================================================================== */
.ds-contato-page { display: flex; flex-direction: column; gap: 28px; }

.ds-contato-canais {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
@media (max-width: 920px) { .ds-contato-canais { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .ds-contato-canais { grid-template-columns: 1fr; } }

.ds-contato-canal {
  position: relative;
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
  padding: 22px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 18px;
  text-decoration: none;
  color: var(--ink);
  box-shadow: var(--sh-1);
  transition: all .25s var(--ease-spring);
  isolation: isolate;
  overflow: hidden;
}
.ds-contato-canal::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(80% 60% at 0% 100%, var(--canal-cor, var(--vermelho)) 0%, transparent 70%);
  opacity: 0; transition: opacity .3s;
}
.ds-contato-canal:hover {
  transform: translateY(-6px);
  border-color: var(--canal-cor, var(--vermelho));
  box-shadow: var(--sh-3);
}
.ds-contato-canal:hover::before { opacity: .08; }
.ds-contato-canal-ic {
  width: 56px; height: 56px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--canal-cor, var(--vermelho)), color-mix(in srgb, var(--canal-cor) 50%, #000));
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--canal-cor) 30%, transparent), inset 0 1px 0 rgba(255,255,255,.2);
  margin-bottom: 8px;
}
.ds-contato-canal strong {
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  font-weight: 900;
  color: var(--ink);
}
.ds-contato-canal small {
  font-size: 13px;
  color: var(--ink-2);
  font-weight: 500;
  line-height: 1.4;
}
.ds-contato-canal-tag {
  display: inline-block;
  margin-top: 8px;
  padding: 3px 10px;
  background: var(--ice-2);
  border-radius: 999px;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.12em;
  color: var(--canal-cor, var(--vermelho));
}

.ds-contato-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 28px;
  align-items: flex-start;
}
@media (max-width: 920px) { .ds-contato-grid { grid-template-columns: 1fr; } }

.ds-contato-info {
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 18px;
  padding: 28px;
  box-shadow: var(--sh-1);
  position: sticky;
  top: 100px;
}
.ds-contato-info-lista {
  list-style: none; padding: 0; margin: 18px 0 0;
  display: flex; flex-direction: column; gap: 14px;
}
.ds-contato-info-lista li {
  display: flex; align-items: flex-start; gap: 12px;
}
.ds-contato-info-ic {
  width: 38px; height: 38px;
  border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.ds-contato-info-lista strong {
  display: block;
  font-size: 13px;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 2px;
}
.ds-contato-info-lista small {
  display: block;
  font-size: 12px;
  color: var(--ink-2);
  line-height: 1.4;
}

.ds-contato-form {
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 18px;
  padding: 28px;
  box-shadow: var(--sh-1);
}

/* ============================================================================
   FAQ · accordion premium + categorias chips
   ========================================================================== */
.ds-faq-cats {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
  padding: 24px 0;
}
.ds-faq-cat {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 14px;
  text-decoration: none;
  color: var(--ink);
  transition: all .25s var(--ease-spring);
  border-left: 4px solid var(--faq-cor, var(--vermelho));
  box-shadow: var(--sh-1);
}
.ds-faq-cat:hover {
  transform: translateY(-3px);
  box-shadow: var(--sh-2);
  border-color: var(--faq-cor, var(--vermelho));
}
.ds-faq-cat .emoji { font-size: 24px; flex-shrink: 0; }
.ds-faq-cat strong {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  color: var(--ink);
}
.ds-faq-cat small {
  font-size: 11px;
  color: var(--text-muted, #666);
}

.ds-faq-grupo {
  margin-bottom: 36px;
  scroll-margin-top: 120px;
}
.ds-faq-grupo-head {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 16px;
  padding: 16px 20px;
  background: linear-gradient(90deg, color-mix(in srgb, var(--faq-cor, var(--vermelho)) 8%, #fff), #fff);
  border-left: 4px solid var(--faq-cor, var(--vermelho));
  border-radius: 0 12px 12px 0;
}
.ds-faq-grupo-head .emoji { font-size: 26px; }
.ds-faq-grupo-head h2 {
  font-family: 'Manrope', sans-serif !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  letter-spacing: -0.005em !important;
  color: var(--ink);
  margin: 0;
  flex: 1;
}
.ds-faq-grupo-head small {
  font-size: 12px;
  color: var(--text-muted, #666);
  font-weight: 700;
}

.ds-faq-itens { display: flex; flex-direction: column; gap: 8px; }
.ds-faq-item {
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 12px;
  overflow: hidden;
  transition: all .25s var(--ease-quick);
}
.ds-faq-item:hover { border-color: rgba(13,13,14,.1); box-shadow: var(--sh-1); }
.ds-faq-item[open] {
  border-color: var(--faq-cor, var(--vermelho));
  box-shadow: var(--sh-1);
}
.ds-faq-item summary {
  display: flex; align-items: center; gap: 14px;
  padding: 18px 22px;
  cursor: pointer;
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  list-style: none;
  user-select: none;
  transition: background .2s;
}
.ds-faq-item summary::-webkit-details-marker { display: none; }
.ds-faq-item summary:hover { background: var(--cream); }
.ds-faq-item[open] summary { background: var(--cream); }
.ds-faq-item summary > span { flex: 1; }
.ds-faq-chevron {
  color: var(--faq-cor, var(--vermelho));
  transition: transform .3s var(--ease-spring);
  flex-shrink: 0;
}
.ds-faq-item[open] .ds-faq-chevron { transform: rotate(180deg); }

.ds-faq-resp {
  padding: 4px 22px 22px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-2);
}
.ds-faq-resp p { margin: 0 0 8px; }
.ds-faq-resp a { color: var(--vermelho); text-decoration: underline; }

.ds-faq-cta-final {
  display: grid;
  grid-template-columns: 1.2fr auto;
  gap: 24px;
  align-items: center;
  margin-top: 40px;
  padding: 28px;
  background: linear-gradient(135deg, var(--ink), var(--vinho));
  color: #fff;
  border-radius: 20px;
  box-shadow: var(--sh-2);
}
.ds-faq-cta-info h3 {
  font-family: 'Fraunces', serif;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -0.02em;
  margin-bottom: 6px;
}
.ds-faq-cta-info p { color: rgba(255,255,255,.78); font-size: 14px; }
.ds-faq-cta-acoes { display: flex; gap: 10px; flex-wrap: wrap; }
.ds-faq-cta-acoes .ds-pdp-cta {
  background: var(--amarelo) !important;
  color: var(--ink) !important;
  border: none !important;
}
.ds-faq-cta-acoes .ds-pdp-cta:hover {
  box-shadow: var(--sh-gold) !important;
  color: var(--ink) !important;
}
.ds-faq-cta-acoes .ds-pdp-cta::before { display: none; }
.ds-faq-cta-acoes .ds-cart-continuar {
  background: rgba(255,255,255,.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
}
.ds-faq-cta-acoes .ds-cart-continuar:hover {
  background: rgba(255,255,255,.18);
  color: #fff;
}
@media (max-width: 720px) { .ds-faq-cta-final { grid-template-columns: 1fr; } }

/* ============================================================================
   PÁGINA CMS · conteúdo genérico + share embaixo
   ========================================================================== */
.ds-pagina-cms { max-width: 820px; margin: 0 auto; }
.ds-pagina-conteudo {
  background: #fff;
  border: 1px solid rgba(13,13,14,.05);
  border-radius: 20px;
  padding: 40px 48px;
  box-shadow: var(--sh-1);
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink-2);
}
.ds-pagina-conteudo h1, .ds-pagina-conteudo h2, .ds-pagina-conteudo h3 {
  font-family: 'Fraunces', serif;
  font-weight: 900;
  letter-spacing: -0.025em;
  color: var(--ink);
  margin: 32px 0 12px;
}
.ds-pagina-conteudo h1 { font-size: 36px; }
.ds-pagina-conteudo h2 { font-size: 26px; }
.ds-pagina-conteudo h3 { font-size: 20px; }
.ds-pagina-conteudo p { margin: 0 0 14px; }
.ds-pagina-conteudo a { color: var(--vermelho); text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
.ds-pagina-conteudo strong { color: var(--ink); font-weight: 800; }
.ds-pagina-conteudo ul, .ds-pagina-conteudo ol { padding-left: 22px; margin-bottom: 14px; }
.ds-pagina-conteudo li { margin-bottom: 6px; }
.ds-pagina-conteudo blockquote {
  margin: 18px 0;
  padding: 14px 20px;
  background: var(--cream);
  border-left: 4px solid var(--vermelho);
  border-radius: 0 8px 8px 0;
  font-style: italic;
  font-family: 'Fraunces', serif;
}
.ds-pagina-conteudo img { max-width: 100%; border-radius: 12px; margin: 14px 0; }

.ds-pagina-share {
  display: flex; align-items: center; gap: 10px;
  margin: 24px auto 0;
  padding: 16px 20px;
  background: var(--cream);
  border-radius: 999px;
  max-width: 820px;
}
.ds-pagina-share strong {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  text-transform: uppercase;
}

@media (max-width: 720px) {
  .ds-pagina-conteudo { padding: 24px 20px; }
}

/* ============================================================================
   PÁGINAS DE ERRO 404 / 500
   ========================================================================== */
.ds-erro-page {
  position: relative;
  min-height: 70vh;
  display: flex; align-items: center; justify-content: center;
  padding: 60px 24px;
  overflow: hidden;
}
.ds-erro-bg {
  position: absolute; inset: -10%; z-index: -1;
  background:
    radial-gradient(60% 50% at 30% 30%, rgba(200,16,46,.18), transparent 60%),
    radial-gradient(50% 50% at 70% 70%, rgba(255,210,0,.12), transparent 60%);
  filter: blur(50px);
}
.ds-erro-wrap { display: flex; justify-content: center; }
.ds-erro-card {
  max-width: 640px;
  width: 100%;
  text-align: center;
  background: #fff;
  border-radius: 24px;
  padding: 48px 40px;
  box-shadow: var(--sh-3);
  border: 1px solid rgba(13,13,14,.04);
}
.ds-erro-numero {
  display: inline-flex; align-items: center; gap: 10px;
  margin-bottom: 18px;
  font-family: 'Fraunces', serif;
  font-size: clamp(80px, 14vw, 140px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.04em;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ds-erro-pill {
  width: clamp(60px, 10vw, 100px);
  height: clamp(60px, 10vw, 100px);
  border-radius: 50%;
  background: linear-gradient(135deg, var(--amarelo), #ff9500);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: clamp(32px, 5vw, 52px);
  -webkit-text-fill-color: initial;
  color: var(--ink);
  box-shadow: var(--sh-gold);
  animation: erro-spin 8s linear infinite;
}
@keyframes erro-spin {
  to { transform: rotate(360deg); }
}
.ds-erro-h1 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(24px, 3.5vw, 36px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.1 !important;
  color: var(--ink);
  margin: 0 0 8px !important;
}
.ds-erro-h1 .accent {
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
}
.ds-erro-p { font-size: 15px; color: var(--text-muted, #666); margin-bottom: 24px; }

.ds-erro-busca {
  display: flex; gap: 6px;
  background: var(--ice-2);
  border-radius: 999px;
  padding: 4px;
  max-width: 480px;
  margin: 0 auto 24px;
}
.ds-erro-busca-ic {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px;
  color: var(--text-muted, #666);
}
.ds-erro-busca input {
  flex: 1;
  height: 44px;
  background: transparent;
  border: none;
  outline: none;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}
.ds-erro-busca button {
  height: 44px;
  padding: 0 22px;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border: none;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  cursor: pointer;
}

.ds-erro-acoes {
  display: flex; gap: 10px; flex-wrap: wrap; justify-content: center;
  margin-bottom: 32px;
}

.ds-erro-sugestoes strong {
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  margin-bottom: 12px;
  text-transform: uppercase;
}
.ds-erro-cats {
  display: flex; gap: 6px; flex-wrap: wrap; justify-content: center;
}
.ds-erro-cat {
  display: inline-block;
  padding: 8px 14px;
  background: var(--ice-2);
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  color: var(--ink);
  text-decoration: none;
  border-left: 3px solid var(--marca-cor, var(--vermelho));
  transition: all .2s var(--ease-spring);
}
.ds-erro-cat:hover {
  background: var(--marca-cor, var(--vermelho));
  color: #fff;
  transform: translateY(-2px);
}

/* 500 status */
.ds-erro-status {
  display: flex; flex-direction: column; gap: 8px;
  max-width: 380px;
  margin: 0 auto 24px;
  padding: 16px;
  background: var(--cream);
  border-radius: 14px;
  text-align: left;
}
.ds-erro-status-row {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px;
}
.ds-erro-status-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ds-erro-status-dot.is-ok { background: var(--verde); box-shadow: 0 0 0 4px rgba(0,135,90,.18); }
.ds-erro-status-dot.is-warn { background: #ff8c1a; box-shadow: 0 0 0 4px rgba(255,140,26,.2); animation: live-pulse 1.6s ease-in-out infinite; }
.ds-erro-status-row strong { font-size: 13px; font-weight: 800; color: var(--ink); }
.ds-erro-status-row small { color: var(--text-muted, #666); font-size: 12px; margin-left: auto; }

/* ============================================================================
   DETALHE DE PEDIDO · timeline de rastreio + grid + itens
   ========================================================================== */

.ds-pedido-timeline {
  background: linear-gradient(135deg, var(--cream), #fff);
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 18px;
  padding: 24px;
  margin-bottom: 20px;
}
.ds-pedido-timeline-titulo {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  text-transform: uppercase;
  margin-bottom: 22px;
}
.ds-pedido-timeline-steps {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
  list-style: none; padding: 0; margin: 0;
  position: relative;
}
.ds-pedido-timeline-steps li {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  position: relative;
  z-index: 2;
}
.ds-pedido-tl-dot {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid rgba(13,13,14,.12);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  color: var(--text-muted, #666);
  transition: all .3s;
}
.ds-pedido-timeline-steps li.feito .ds-pedido-tl-dot {
  background: linear-gradient(135deg, var(--verde, #00875a), #00b97c);
  border-color: var(--verde, #00875a);
  color: #fff;
}
.ds-pedido-timeline-steps li.atual .ds-pedido-tl-dot {
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  border-color: var(--vermelho);
  color: #fff;
  box-shadow: 0 0 0 6px rgba(200,16,46,.15);
  animation: tl-pulse 1.8s ease-in-out infinite;
}
@keyframes tl-pulse {
  0%, 100% { box-shadow: 0 0 0 6px rgba(200,16,46,.15); }
  50%      { box-shadow: 0 0 0 10px rgba(200,16,46,.08); }
}
.ds-pedido-tl-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--ink-2);
  letter-spacing: 0.02em;
  text-align: center;
  line-height: 1.2;
}
.ds-pedido-timeline-steps li.atual .ds-pedido-tl-label { color: var(--vermelho); font-weight: 900; }
.ds-pedido-timeline-steps li.feito .ds-pedido-tl-label { color: var(--verde, #00875a); }

.ds-pedido-tl-line {
  position: absolute;
  top: 16px; left: 10%; right: 10%;
  height: 2px;
  background: rgba(13,13,14,.08);
  z-index: 0;
  border-radius: 999px;
  overflow: hidden;
}
.ds-pedido-tl-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--verde, #00875a), var(--vermelho));
  transition: width .8s var(--ease-power);
}

@media (max-width: 720px) {
  .ds-pedido-timeline-steps { grid-template-columns: 1fr; gap: 14px; }
  .ds-pedido-timeline-steps li { flex-direction: row; justify-content: flex-start; }
  .ds-pedido-tl-line { display: none; }
}

.ds-pedido-cancelado {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 18px;
  background: rgba(200,16,46,.08);
  border: 1px solid rgba(200,16,46,.25);
  border-radius: 12px;
  color: var(--vermelho);
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 20px;
}

.ds-pedido-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 20px;
  align-items: flex-start;
}
@media (max-width: 920px) { .ds-pedido-grid { grid-template-columns: 1fr; } }

.ds-pedido-aside { display: flex; flex-direction: column; gap: 12px; }

.ds-pedido-itens {
  display: flex; flex-direction: column; gap: 10px;
  margin-bottom: 14px;
}
.ds-pedido-item {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 12px;
  padding: 10px;
  background: var(--ice-2);
  border-radius: 10px;
  align-items: center;
}
.ds-pedido-item-foto {
  width: 56px; height: 56px;
  background: #fff;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.ds-pedido-item-foto img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.ds-pedido-item-foto span {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 900;
  color: var(--vermelho);
  opacity: .5;
}
.ds-pedido-item-info { line-height: 1.3; min-width: 0; }
.ds-pedido-item-info strong { display: block; font-size: 13px; font-weight: 700; color: var(--ink); }
.ds-pedido-item-info small { font-size: 11px; color: var(--text-muted, #666); }
.ds-pedido-item-sub {
  font-family: 'Fraunces', serif;
  font-size: 16px;
  font-weight: 900;
  color: var(--vermelho);
  letter-spacing: -0.01em;
}
.ds-pedido-totais { padding-top: 8px; border-top: 1px dashed rgba(13,13,14,.08); }
.ds-pedido-totais .resumo-linha { padding: 4px 0; font-size: 13px; }

/* ============================================================================
   INDICAR & GANHE · card destaque + share + stats
   ========================================================================== */
.ds-indicar-card {
  display: flex; gap: 20px;
  flex-wrap: wrap;
  padding: 28px;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  border-radius: 20px;
  color: #fff;
  box-shadow: 0 12px 32px rgba(200,16,46,.25);
  margin-bottom: 20px;
  align-items: center;
}
.ds-indicar-card-link { flex: 1; min-width: 280px; }
.ds-indicar-card-link small {
  display: block;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.16em;
  color: rgba(255,255,255,.7);
  margin-bottom: 8px;
}
.ds-indicar-link-row {
  display: flex; gap: 6px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 999px;
  padding: 4px;
  backdrop-filter: blur(10px);
}
.ds-indicar-link-row input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  padding: 0 14px;
  font-family: monospace;
}
.ds-indicar-link-row input::selection { background: var(--amarelo); color: var(--ink); }
.ds-indicar-copy {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 18px;
  background: var(--amarelo);
  color: var(--ink);
  border: none;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: all .2s var(--ease-spring);
}
.ds-indicar-copy:hover { transform: scale(1.03); }
.ds-indicar-copy.is-ok { background: var(--verde, #00875a); color: #fff; }

.ds-indicar-card-codigo {
  text-align: center;
  padding: 16px 22px;
  background: rgba(0,0,0,.18);
  border-radius: 14px;
  border: 1px dashed rgba(255,210,0,.4);
}
.ds-indicar-card-codigo small {
  display: block;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.18em;
  color: rgba(255,255,255,.7);
}
.ds-indicar-card-codigo strong {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: 28px;
  font-weight: 900;
  color: var(--amarelo);
  letter-spacing: -0.01em;
  font-style: italic;
  margin-top: 4px;
}

.ds-indicar-share {
  margin-bottom: 24px;
}
.ds-indicar-share-titulo {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  margin-bottom: 12px;
  text-transform: uppercase;
}
.ds-indicar-share-btns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.ds-indicar-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 18px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 12px;
  text-decoration: none;
  color: var(--ink);
  font-family: 'Manrope', sans-serif;
  font-size: 13px;
  font-weight: 800;
  transition: all .2s var(--ease-spring);
  box-shadow: var(--sh-1);
}
.ds-indicar-btn:hover { transform: translateY(-2px); box-shadow: var(--sh-2); }
.ds-indicar-btn-wpp:hover { background: #25D366; color: #fff; border-color: #25D366; }
.ds-indicar-btn-wpp:hover img { filter: brightness(0) invert(1); }
.ds-indicar-btn-tg:hover { background: #0088cc; color: #fff; border-color: #0088cc; }
.ds-indicar-btn-email:hover { background: var(--ink); color: #fff; border-color: var(--ink); }

@media (max-width: 540px) {
  .ds-indicar-share-btns { grid-template-columns: 1fr; }
}

/* ============================================================================
   CHECKOUT SUCESSO · confirmação premium
   ========================================================================== */
.ds-sucesso-page {
  padding: 48px 24px 80px;
  display: flex; align-items: flex-start; justify-content: center;
}
.ds-sucesso-card {
  max-width: 720px;
  width: 100%;
  background: #fff;
  border-radius: 24px;
  padding: 48px;
  box-shadow: var(--sh-3);
  border: 1px solid rgba(13,13,14,.04);
  text-align: center;
}
.ds-sucesso-ic-wrap {
  position: relative;
  display: inline-block;
  margin-bottom: 18px;
}
.ds-sucesso-ic-pulse {
  position: absolute;
  inset: -16px;
  border-radius: 50%;
  background: var(--verde, #00875a);
  opacity: .2;
  animation: pulse-grow 1.6s ease-out infinite;
}
.ds-sucesso-ic {
  position: relative;
  width: 88px; height: 88px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--verde, #00875a), #00b97c);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 24px rgba(0,135,90,.4);
}
@keyframes pulse-grow {
  0%   { transform: scale(1); opacity: .3; }
  100% { transform: scale(1.4); opacity: 0; }
}

.ds-sucesso-h1 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(32px, 4vw, 48px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.025em !important;
  margin: 0 0 8px !important;
}
.ds-sucesso-h1 .accent {
  background: linear-gradient(135deg, var(--verde, #00875a), #00b97c);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
}
.ds-sucesso-p {
  font-size: 16px;
  color: var(--ink-2);
  margin-bottom: 24px;
}
.ds-sucesso-p strong { color: var(--vermelho); font-weight: 900; }

.ds-sucesso-info {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 18px;
  background: var(--ice-2);
  border-radius: 14px;
  margin-bottom: 24px;
}
.ds-sucesso-info > div { display: flex; flex-direction: column; gap: 4px; }
.ds-sucesso-info small {
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
}
.ds-sucesso-info strong {
  font-family: 'Fraunces', serif;
  font-size: 18px;
  font-weight: 900;
  color: var(--ink);
  letter-spacing: -0.02em;
}
@media (max-width: 540px) { .ds-sucesso-info { grid-template-columns: 1fr; } }

.ds-sucesso-pix, .ds-sucesso-boleto, .ds-sucesso-cartao {
  margin: 24px 0;
  padding: 24px;
  background: linear-gradient(180deg, #fff, var(--cream));
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 18px;
  text-align: left;
}
.ds-sucesso-pix header, .ds-sucesso-boleto header, .ds-sucesso-cartao header {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 14px;
}
.ds-sucesso-pix header strong, .ds-sucesso-boleto header strong, .ds-sucesso-cartao header strong {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  font-weight: 900;
  color: var(--ink);
}
.ds-sucesso-pix header small, .ds-sucesso-boleto header small, .ds-sucesso-cartao header small {
  font-size: 13px;
  color: var(--text-muted, #666);
}
.ds-sucesso-qr {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  padding: 24px;
  background: #fff;
  border: 2px dashed rgba(13,13,14,.1);
  border-radius: 14px;
  text-align: center;
  min-height: 240px;
}
.ds-sucesso-qr .qr-pattern {
  width: 180px; height: 180px;
  background:
    linear-gradient(45deg, var(--ink) 25%, transparent 25%, transparent 75%, var(--ink) 75%),
    linear-gradient(45deg, var(--ink) 25%, transparent 25%, transparent 75%, var(--ink) 75%);
  background-size: 12px 12px;
  background-position: 0 0, 6px 6px;
  border: 8px solid #fff;
  box-shadow: inset 0 0 0 2px var(--ink);
}
.ds-sucesso-spinner {
  width: 56px; height: 56px;
  border: 4px solid rgba(50,188,173,.18);
  border-top-color: var(--color-pix, #32bcad);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 8px;
}
.ds-sucesso-pix-status {
  display: inline-flex; align-items: center;
  margin-left: auto;
  padding: 4px 10px;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.ds-sucesso-pix-status.pendente { background: rgba(255,140,26,.15); color: #c2410c; animation: pix-pulse 1.6s infinite; }
.ds-sucesso-pix-status.ok { background: rgba(0,135,90,.15); color: var(--verde, #00875a); }
.ds-sucesso-pix-status.erro { background: rgba(200,16,46,.15); color: var(--vermelho); }
@keyframes pix-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
.ds-sucesso-pix-copia button {
  margin-top: 8px;
  padding: 8px 14px;
  background: var(--color-pix, #32bcad);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.06em;
  cursor: pointer;
}
.ds-sucesso-pix-timer {
  margin-top: 12px;
  font-size: 12px;
  color: var(--text-muted, #666);
  text-align: center;
}
.ds-sucesso-pix-copia {
  font-size: 12px;
  background: #fff;
  padding: 12px;
  border-radius: 10px;
  border: 1px solid rgba(13,13,14,.06);
  margin-top: 12px;
}
.ds-sucesso-pix-copia code {
  display: block;
  word-break: break-all;
  font-family: monospace;
  font-size: 11px;
  color: var(--ink-2);
  margin-top: 4px;
}

.ds-sucesso-passos {
  text-align: left;
  margin: 24px 0;
  padding: 20px;
  background: linear-gradient(135deg, var(--cream), #fff);
  border-radius: 16px;
}
.ds-sucesso-passos h3 {
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.06em;
  color: var(--ink);
  margin-bottom: 12px;
  text-transform: uppercase;
}
.ds-sucesso-passos ol {
  list-style: none; padding: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.ds-sucesso-passos li {
  display: flex; align-items: center; gap: 12px;
  font-size: 13px;
  color: var(--ink-2);
}
.ds-sucesso-passos li span {
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--vermelho);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Manrope', sans-serif;
  font-weight: 900;
  font-size: 12px;
  flex-shrink: 0;
}

.ds-sucesso-acoes {
  display: flex; flex-direction: column; gap: 10px;
  align-items: center;
  margin-top: 24px;
}
.ds-sucesso-acoes .ds-pdp-cta { width: 100%; max-width: 360px; }

/* ============================================================================
   SKELETON LOADERS · shimmer estrutural antes do dado carregar
   ========================================================================== */
@keyframes ds-skeleton-shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.ds-skeleton, .skeleton {
  background: linear-gradient(90deg, var(--ice-2) 0%, #f5f7fa 50%, var(--ice-2) 100%);
  background-size: 200% 100%;
  animation: ds-skeleton-shimmer 1.6s ease-in-out infinite;
  border-radius: 8px;
  display: block;
}
.ds-skeleton-text { height: 12px; margin-bottom: 6px; border-radius: 4px; }
.ds-skeleton-text.lg { height: 18px; }
.ds-skeleton-text.xl { height: 28px; border-radius: 6px; }
.ds-skeleton-text.short { width: 60%; }
.ds-skeleton-text.mid { width: 80%; }
.ds-skeleton-circle { border-radius: 50%; }

/* Skeleton card de produto */
.ds-skeleton-prod {
  background: #fff;
  border: 1px solid rgba(13,13,14,.05);
  border-radius: 18px;
  padding: 16px;
  display: flex; flex-direction: column; gap: 10px;
}
.ds-skeleton-prod-foto {
  aspect-ratio: 1/1;
  background: linear-gradient(90deg, var(--ice-2) 0%, #f5f7fa 50%, var(--ice-2) 100%);
  background-size: 200% 100%;
  animation: ds-skeleton-shimmer 1.6s ease-in-out infinite;
  border-radius: 14px;
}

/* Skeleton item no mini-cart */
.ds-skeleton-cart-item {
  display: grid;
  grid-template-columns: 64px 1fr 60px;
  gap: 12px;
  padding: 12px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 12px;
}
.ds-skeleton-cart-item .ds-skeleton { background-color: var(--ice-2); }

/* Skeleton row na busca dropdown */
.ds-skeleton-busca-row {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 12px;
}
.ds-skeleton-busca-row .ds-skeleton-thumb {
  width: 44px; height: 44px;
  border-radius: 10px;
  flex-shrink: 0;
}
.ds-skeleton-busca-row .ds-skeleton-info { flex: 1; }

/* prefers-reduced-motion · pausa shimmer */
@media (prefers-reduced-motion: reduce) {
  .ds-skeleton, .skeleton, .ds-skeleton-prod-foto { animation: none !important; }
}

/* ============================================================================
   PDP · Assinatura / Uso Contínuo
   ========================================================================== */
.ds-pdp-assinatura {
  margin-top: 14px;
  padding: 16px 18px;
  background: linear-gradient(135deg, rgba(50,188,173,.06), rgba(0,135,90,.04));
  border: 1px solid rgba(50,188,173,.25);
  border-radius: 14px;
  transition: all .3s var(--ease-spring);
}
.ds-pdp-assinatura.is-ativa {
  background: linear-gradient(135deg, rgba(50,188,173,.14), rgba(0,135,90,.08));
  border-color: var(--pix);
  box-shadow: 0 0 0 4px rgba(50,188,173,.08);
}

.ds-pdp-assin-toggle {
  display: flex; align-items: flex-start; gap: 12px;
  cursor: pointer;
}
.ds-pdp-assin-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.ds-pdp-assin-radio {
  width: 24px; height: 24px;
  border-radius: 50%;
  border: 2px solid rgba(13,13,14,.25);
  flex-shrink: 0;
  margin-top: 2px;
  transition: all .15s;
  position: relative;
  background: #fff;
}
.ds-pdp-assin-toggle input:checked ~ .ds-pdp-assin-radio {
  background: var(--pix);
  border-color: var(--pix);
}
.ds-pdp-assin-toggle input:checked ~ .ds-pdp-assin-radio::after {
  content: '✓';
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 900; font-size: 14px;
}
.ds-pdp-assin-info { flex: 1; line-height: 1.3; }
.ds-pdp-assin-info strong {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 900;
  color: var(--ink);
  margin-bottom: 4px;
}
.ds-pdp-assin-pct {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 8px;
  background: var(--verde, #00875a);
  color: #fff;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.06em;
}
.ds-pdp-assin-info small { font-size: 12px; color: var(--ink-2); }

.ds-pdp-assin-detalhes {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px dashed rgba(50,188,173,.3);
  display: flex; flex-direction: column; gap: 14px;
}

.ds-pdp-assin-row {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-2);
}
.ds-pdp-assin-row select {
  padding: 8px 12px;
  background: #fff;
  border: 2px solid var(--ice);
  border-radius: 10px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  outline: none;
  cursor: pointer;
}
.ds-pdp-assin-row select:focus { border-color: var(--pix); }

.ds-pdp-assin-precos {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 12px;
  align-items: center;
  padding: 14px;
  background: #fff;
  border-radius: 12px;
}
.ds-pdp-assin-precos > div { text-align: center; }
.ds-pdp-assin-precos small {
  display: block;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.12em;
  color: var(--text-muted, #666);
  margin-bottom: 2px;
}
.ds-pdp-assin-avulso {
  font-family: 'Fraunces', serif;
  font-size: 20px;
  font-weight: 900;
  color: var(--text-faint, #9a9aa1);
  text-decoration: line-through;
  letter-spacing: -0.01em;
}
.ds-pdp-assin-vs {
  font-size: 22px;
  color: var(--pix);
  font-weight: 900;
}
.ds-pdp-assin-final-box {
  background: rgba(50,188,173,.12);
  padding: 6px 10px;
  border-radius: 8px;
}
.ds-pdp-assin-final {
  font-family: 'Fraunces', serif;
  font-size: 24px;
  font-weight: 900;
  color: var(--pix);
  letter-spacing: -0.02em;
}

.ds-pdp-assin-vantagens {
  list-style: none;
  padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 6px;
}
.ds-pdp-assin-vantagens li {
  font-size: 13px;
  color: var(--ink-2);
  font-weight: 500;
}
.ds-pdp-assin-vantagens li strong { color: var(--verde, #00875a); font-weight: 800; }

/* ============================================================================
   RECEITA DIGITAL · upload com preview + info lateral
   ========================================================================== */
.ds-receita-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 28px;
  align-items: flex-start;
}
@media (max-width: 920px) { .ds-receita-grid { grid-template-columns: 1fr; } }

.ds-receita-form {
  display: flex; flex-direction: column; gap: 14px;
}

.ds-receita-dropzone {
  display: block;
  position: relative;
  padding: 36px 24px;
  background: linear-gradient(180deg, var(--cream), #fff);
  border: 2px dashed rgba(13,13,14,.15);
  border-radius: 16px;
  cursor: pointer;
  transition: all .25s var(--ease-spring);
  text-align: center;
}
.ds-receita-dropzone:hover, .ds-receita-dropzone.is-dragging {
  border-color: var(--vermelho);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(200,16,46,.08);
}
.ds-receita-dropzone.has-file {
  border-style: solid;
  border-color: var(--verde, #00875a);
  background: rgba(0,135,90,.04);
}
.ds-receita-dropzone input[type=file] {
  position: absolute; opacity: 0; pointer-events: none;
}
.ds-receita-dz-ic {
  display: inline-flex; align-items: center; justify-content: center;
  width: 80px; height: 80px;
  background: var(--ice-2);
  color: var(--vermelho);
  border-radius: 50%;
  margin: 0 auto 12px;
}
.ds-receita-dropzone strong {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 4px;
}
.ds-receita-dropzone small {
  display: block;
  font-size: 12px;
  color: var(--text-muted, #666);
  margin-bottom: 14px;
}
.ds-receita-dz-cta {
  display: inline-block;
  padding: 10px 22px;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.1em;
  box-shadow: var(--sh-red);
}

/* Preview */
.ds-receita-preview-wrap {
  position: relative;
  margin: 0 auto 14px;
  max-width: 320px;
  max-height: 320px;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--sh-1);
}
.ds-receita-preview-wrap img {
  width: 100%;
  height: auto;
  display: block;
  max-height: 320px;
  object-fit: contain;
}
.ds-receita-preview-pdf {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 36px;
  color: var(--vermelho);
}
.ds-receita-preview-pdf strong { margin-top: 8px; font-family: 'Manrope', sans-serif; font-size: 14px; font-weight: 900; }
.ds-receita-preview-info {
  display: flex; flex-direction: column; align-items: center;
  margin-bottom: 12px;
}
.ds-receita-preview-info strong { font-size: 13px; font-weight: 700; color: var(--ink); }
.ds-receita-preview-info small { font-size: 11px; color: var(--text-muted, #666); }
.ds-receita-preview-remover {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 16px;
  background: transparent;
  color: var(--vermelho);
  border: 1px solid rgba(200,16,46,.3);
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: all .2s;
}
.ds-receita-preview-remover:hover { background: var(--vermelho); color: #fff; }

.ds-receita-progress {
  margin-top: 14px;
}
.ds-receita-progress-bar {
  height: 6px;
  background: var(--ice-2);
  border-radius: 999px;
  overflow: hidden;
}
.ds-receita-progress-bar span {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--vermelho), var(--amarelo));
  border-radius: 999px;
  transition: width .3s;
}

.ds-receita-termo {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 16px 18px;
  background: var(--cream);
  border-left: 3px solid var(--vermelho);
  border-radius: 12px;
  cursor: pointer;
  font-size: 12px;
}
.ds-receita-termo input { position: absolute; opacity: 0; }
.ds-receita-termo span {
  width: 18px; height: 18px;
  border-radius: 4px;
  border: 2px solid rgba(13,13,14,.25);
  flex-shrink: 0;
  margin-top: 2px;
  transition: all .15s;
  position: relative;
}
.ds-receita-termo input:checked ~ span {
  background: var(--vermelho); border-color: var(--vermelho);
}
.ds-receita-termo input:checked ~ span::after {
  content: '✓';
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 900; font-size: 12px;
}
.ds-receita-termo div strong {
  display: block;
  font-size: 12px;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 4px;
}
.ds-receita-termo div small {
  font-size: 11px;
  color: var(--ink-2);
  line-height: 1.5;
}

/* INFO lateral */
.ds-receita-info {
  position: sticky; top: 100px;
  display: flex; flex-direction: column; gap: 14px;
}
.ds-receita-info-card {
  padding: 22px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 16px;
  box-shadow: var(--sh-1);
}
.ds-receita-info-titulo {
  display: flex; align-items: center; gap: 6px;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--ink);
  margin-bottom: 14px;
  text-transform: uppercase;
}
.ds-receita-info-titulo svg { color: var(--verde, #00875a); }
.ds-receita-info-card ul {
  list-style: none; padding: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.ds-receita-info-card ul li {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 13px;
  color: var(--ink-2);
  line-height: 1.4;
}
.ds-receita-info-card ul li .ic { flex-shrink: 0; font-size: 16px; }
.ds-receita-info-card p { font-size: 13px; color: var(--ink-2); line-height: 1.5; margin-bottom: 10px; }

.ds-receita-aviso-tarja {
  background: linear-gradient(135deg, rgba(255,140,26,.08), rgba(200,16,46,.04));
  border-color: rgba(255,140,26,.3) !important;
}
.ds-receita-tarja-lista {
  margin: 10px 0 !important;
  padding: 0 !important;
}
.ds-receita-tarja-lista li {
  padding: 6px 12px;
  background: #fff;
  border-radius: 8px;
  font-size: 12px !important;
}
.ds-receita-tarja-lista li strong { color: var(--vermelho); }
.ds-receita-aviso-tarja small { color: var(--text-muted, #666); font-size: 11px; font-style: italic; }

.ds-receita-passos {
  list-style: none;
  padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.ds-receita-passos li {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px;
  color: var(--ink-2);
}
.ds-receita-passos li span {
  width: 24px; height: 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Manrope', sans-serif;
  font-weight: 900;
  font-size: 11px;
  flex-shrink: 0;
}

.ds-receita-suporte {
  display: flex; align-items: center; gap: 14px;
  background: linear-gradient(135deg, #25D366, #128c7e) !important;
  color: #fff;
  text-decoration: none;
  border-color: transparent !important;
  transition: transform .25s var(--ease-spring);
}
.ds-receita-suporte:hover { transform: translateY(-3px); box-shadow: var(--sh-2); }
.ds-receita-suporte > div strong { display: block; color: #fff; font-size: 14px; }
.ds-receita-suporte > div small { color: rgba(255,255,255,.85); font-size: 12px; }

/* Sucesso */
.ds-receita-sucesso {
  max-width: 540px;
  margin: 0 auto;
  text-align: center;
  padding: 48px 40px;
  background: #fff;
  border-radius: 24px;
  box-shadow: var(--sh-3);
  border: 1px solid rgba(13,13,14,.04);
}
.ds-receita-sucesso-ic {
  display: inline-flex; align-items: center; justify-content: center;
  width: 88px; height: 88px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--verde, #00875a), #00b97c);
  color: #fff;
  box-shadow: 0 12px 24px rgba(0,135,90,.4);
  margin-bottom: 18px;
}
.ds-receita-sucesso h2 {
  font-family: 'Fraunces', serif !important;
  font-size: 28px !important;
  font-weight: 900 !important;
  letter-spacing: -0.02em !important;
  color: var(--ink);
  margin: 0 0 8px !important;
}
.ds-receita-sucesso p { font-size: 14px; color: var(--ink-2); line-height: 1.5; margin-bottom: 18px; }
.ds-receita-protocolo {
  display: inline-flex; flex-direction: column;
  padding: 14px 24px;
  background: var(--cream);
  border: 2px dashed var(--vermelho);
  border-radius: 12px;
  margin: 8px 0 24px;
}
.ds-receita-protocolo small {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
}
.ds-receita-protocolo strong {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 900;
  color: var(--vermelho);
  letter-spacing: -0.01em;
}
.ds-receita-sucesso-acoes {
  display: flex; gap: 10px; flex-wrap: wrap; justify-content: center;
}

/* ============================================================================
   BULA ANVISA · botão no PDP + modal
   ========================================================================== */
.ds-pdp-bula-btn {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 4px;
  padding: 10px 16px;
  background: linear-gradient(135deg, rgba(0,135,90,.1), rgba(0,135,90,.04));
  border: 1px solid rgba(0,135,90,.3);
  color: var(--verde, #00875a);
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: all .2s var(--ease-spring);
}
.ds-pdp-bula-btn:hover {
  background: var(--verde, #00875a);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,135,90,.3);
}

.ds-bula-modal {
  position: fixed; inset: 0;
  z-index: 130;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
}
.ds-bula-modal.is-open { opacity: 1; pointer-events: auto; }
.ds-bula-backdrop {
  position: absolute; inset: 0;
  background: rgba(13,13,14,.6);
  backdrop-filter: blur(6px);
}
.ds-bula-card {
  position: relative;
  z-index: 1;
  background: #fff;
  border-radius: 22px;
  padding: 32px;
  max-width: 540px;
  width: 100%;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  box-shadow: 0 24px 64px rgba(0,0,0,.32);
  transform: translateY(20px) scale(.96);
  transition: transform .3s var(--ease-spring);
}
.ds-bula-modal.is-open .ds-bula-card { transform: translateY(0) scale(1); }
.ds-bula-fechar {
  position: absolute; top: 14px; right: 14px;
  width: 36px; height: 36px;
  background: var(--ice-2);
  border: none;
  border-radius: 50%;
  font-size: 20px;
  cursor: pointer;
  color: var(--ink);
  transition: all .2s;
}
.ds-bula-fechar:hover { background: var(--vermelho); color: #fff; transform: rotate(90deg); }
.ds-bula-card header h3 {
  font-family: 'Fraunces', serif;
  font-size: 24px;
  font-weight: 900;
  margin: 8px 0 16px;
  letter-spacing: -0.02em;
}
.ds-bula-linha {
  padding: 8px 0;
  font-size: 13px;
  color: var(--ink-2);
  border-bottom: 1px dashed rgba(13,13,14,.06);
}
.ds-bula-linha strong { color: var(--ink); font-weight: 800; margin-right: 6px; }
.ds-bula-linha code {
  background: var(--ice-2); padding: 2px 8px; border-radius: 6px;
  font-family: monospace; font-size: 12px;
}
.ds-bula-aviso {
  margin-top: 20px;
  padding: 12px 14px;
  background: rgba(255,140,26,.08);
  border-left: 3px solid #ff8c1a;
  border-radius: 0 8px 8px 0;
  font-size: 12px;
  color: var(--ink-2);
  line-height: 1.5;
}

/* ============================================================================
   MODAL PBM/CPF · estados: form / loading / ok / no
   ========================================================================== */
.ds-pbm-modal {
  position: fixed; inset: 0;
  z-index: 130;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
}
.ds-pbm-modal.is-open { opacity: 1; pointer-events: auto; }
.ds-pbm-backdrop {
  position: absolute; inset: 0;
  background: rgba(13,13,14,.6);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.ds-pbm-card {
  position: relative;
  z-index: 1;
  background: #fff;
  border-radius: 24px;
  padding: 36px 32px;
  max-width: 440px;
  width: 100%;
  box-shadow: 0 24px 64px rgba(0,0,0,.32);
  transform: translateY(20px) scale(.96);
  transition: transform .35s var(--ease-spring);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
}
.ds-pbm-modal.is-open .ds-pbm-card { transform: translateY(0) scale(1); }
.ds-pbm-fechar {
  position: absolute; top: 14px; right: 14px;
  width: 36px; height: 36px;
  background: var(--ice-2);
  border: none;
  border-radius: 50%;
  font-size: 20px;
  cursor: pointer;
  color: var(--ink);
  transition: all .2s var(--ease-spring);
}
.ds-pbm-fechar:hover { background: var(--vermelho); color: #fff; transform: rotate(90deg); }

.ds-pbm-conteudo { text-align: center; }
.ds-pbm-ic {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 14px;
  box-shadow: var(--sh-red);
}
.ds-pbm-ic-ok { background: linear-gradient(135deg, var(--verde, #00875a), #00b97c); box-shadow: 0 12px 24px rgba(0,135,90,.3); }
.ds-pbm-ic-no { background: linear-gradient(135deg, #ff8c1a, #c2410c); }
.ds-pbm-titulo {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--ink);
  margin: 8px 0 6px;
}
.ds-pbm-titulo .accent {
  background: linear-gradient(135deg, var(--verde, #00875a), #00b97c);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
}
.ds-pbm-sub {
  font-size: 13px;
  color: var(--text-muted, #666);
  line-height: 1.5;
  margin-bottom: 18px;
}
.ds-pbm-sub strong { color: var(--ink); font-weight: 800; }

#ds-pbm-form { text-align: left; }
.ds-pbm-aceite {
  display: flex; align-items: flex-start; gap: 8px;
  margin: 14px 0;
  font-size: 12px;
  color: var(--ink-2);
  cursor: pointer;
  line-height: 1.4;
}
.ds-pbm-aceite input { position: absolute; opacity: 0; }
.ds-pbm-aceite span {
  width: 18px; height: 18px;
  border-radius: 4px;
  border: 2px solid rgba(13,13,14,.2);
  flex-shrink: 0;
  margin-top: 1px;
  transition: all .15s;
  position: relative;
}
.ds-pbm-aceite input:checked ~ span {
  background: var(--vermelho); border-color: var(--vermelho);
}
.ds-pbm-aceite input:checked ~ span::after {
  content: '✓';
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 900; font-size: 12px;
}

.ds-pbm-cta {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%;
  height: 50px;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border: none;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.1em;
  cursor: pointer;
  box-shadow: var(--sh-red), inset 0 1px 0 rgba(255,255,255,.2);
  transition: transform .2s, box-shadow .2s;
}
.ds-pbm-cta:hover { transform: translateY(-2px); box-shadow: var(--sh-red), 0 12px 24px rgba(200,16,46,.4); }

.ds-pbm-lgpd {
  display: flex; align-items: center; justify-content: center; gap: 5px;
  margin-top: 12px;
  font-size: 10px;
  color: var(--text-muted, #666);
  letter-spacing: 0.02em;
}

/* Loading state */
.ds-pbm-spinner {
  width: 56px; height: 56px;
  border: 4px solid rgba(200,16,46,.18);
  border-top-color: var(--vermelho);
  border-radius: 50%;
  margin: 0 auto 16px;
  animation: spin 1s linear infinite;
}
.ds-pbm-checklist {
  list-style: none;
  padding: 0;
  margin: 16px auto 0;
  max-width: 240px;
  display: flex; flex-direction: column; gap: 8px;
  text-align: left;
}
.ds-pbm-checklist li {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  background: var(--ice-2);
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-muted, #666);
}
.ds-pbm-checklist li.check {
  background: rgba(0,135,90,.08);
  color: var(--verde, #00875a);
  font-weight: 700;
}
.ds-pbm-checklist li.check span { color: var(--verde, #00875a); font-weight: 900; }
.ds-pbm-checklist li.loading { background: rgba(255,140,26,.08); color: #c2410c; font-weight: 700; }
.ds-pbm-checklist li.loading span { animation: pulse-dot 1s infinite; }
@keyframes pulse-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: .3; }
}

/* OK state · box de preço */
.ds-pbm-preco-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 18px 0;
  padding: 18px;
  background: linear-gradient(135deg, rgba(0,135,90,.06), rgba(255,210,0,.06));
  border-radius: 14px;
  border: 1px solid rgba(0,135,90,.18);
}
.ds-pbm-preco-box > div { text-align: center; }
.ds-pbm-preco-box small {
  display: block;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
  color: var(--text-muted, #666);
  margin-bottom: 4px;
}
.ds-pbm-preco-box strong {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 900;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.ds-pbm-preco-box .ds-pbm-economia {
  color: var(--verde, #00875a);
  font-style: italic;
}

/* ============================================================================
   PWA INSTALL BANNER
   ========================================================================== */
.ds-pwa-banner {
  position: fixed;
  bottom: 22px; left: 22px;
  z-index: 92;
  display: flex; align-items: center; gap: 14px;
  padding: 14px 18px;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(0,0,0,.16), 0 2px 8px rgba(0,0,0,.08);
  max-width: 380px;
  transform: translateY(120%);
  opacity: 0;
  transition: all .35s var(--ease-spring);
}
.ds-pwa-banner.is-show { transform: translateY(0); opacity: 1; }
.ds-pwa-ic {
  width: 44px; height: 44px;
  border-radius: 12px;
  overflow: hidden;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  padding: 4px;
}
.ds-pwa-ic img { width: 100%; height: 100%; object-fit: contain; border-radius: 8px; }
.ds-pwa-info { flex: 1; min-width: 0; line-height: 1.2; }
.ds-pwa-info strong { display: block; font-size: 13px; font-weight: 800; color: var(--ink); }
.ds-pwa-info small { display: block; font-size: 11px; color: var(--text-muted, #666); margin-top: 2px; }
.ds-pwa-instalar {
  padding: 10px 16px;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border: none;
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  cursor: pointer;
  white-space: nowrap;
  transition: transform .2s var(--ease-spring), box-shadow .2s;
  box-shadow: 0 4px 12px rgba(200,16,46,.3);
}
.ds-pwa-instalar:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(200,16,46,.4); }
.ds-pwa-fechar {
  width: 26px; height: 26px;
  background: transparent;
  border: none;
  color: var(--text-muted, #666);
  font-size: 18px;
  cursor: pointer;
  border-radius: 50%;
  transition: all .15s;
  flex-shrink: 0;
}
.ds-pwa-fechar:hover { background: var(--ice-2); color: var(--ink); }

@media (max-width: 720px) {
  .ds-pwa-banner {
    bottom: 84px;
    left: 12px;
    right: 12px;
    max-width: none;
  }
}

/* ============================================================================
   FAB leIA + Chat widget premium
   ========================================================================== */
.ds-fab-leia {
  position: fixed;
  bottom: 22px; right: 22px;
  z-index: 90;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border: none;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(200,16,46,.35), 0 4px 8px rgba(0,0,0,.15);
  display: flex; align-items: center; justify-content: center;
  transition: transform .25s var(--ease-spring), box-shadow .25s;
}
.ds-fab-leia:hover { transform: translateY(-3px) scale(1.05); box-shadow: 0 12px 32px rgba(200,16,46,.5); }
.ds-fab-leia-pulse {
  position: absolute; inset: -6px;
  border-radius: 50%;
  background: var(--vermelho);
  opacity: .3;
  animation: fab-leia-pulse 2s infinite;
  pointer-events: none;
}
@keyframes fab-leia-pulse {
  0% { transform: scale(1); opacity: .3; }
  100% { transform: scale(1.5); opacity: 0; }
}
@media (max-width: 720px) {
  .ds-fab-leia { bottom: 84px; right: 16px; }  /* respeita bottom nav mobile */
}

.ds-chat-widget {
  position: fixed;
  bottom: 90px; right: 22px;
  z-index: 95;
  width: 380px; max-width: calc(100vw - 32px);
  height: 540px; max-height: calc(100vh - 120px);
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 16px 48px rgba(0,0,0,.25), 0 4px 12px rgba(0,0,0,.1);
  display: flex; flex-direction: column;
  overflow: hidden;
  animation: chat-pop .35s var(--ease-spring);
  border: 1px solid rgba(13,13,14,.06);
}
@keyframes chat-pop {
  from { opacity: 0; transform: translateY(20px) scale(.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 720px) {
  .ds-chat-widget { bottom: 148px; right: 12px; left: 12px; width: auto; }
}

.ds-chat-head {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
}
.ds-chat-avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ds-chat-info { flex: 1; line-height: 1.2; min-width: 0; }
.ds-chat-info strong { display: block; font-family: 'Manrope', sans-serif; font-size: 14px; font-weight: 800; }
.ds-chat-info small { display: flex; align-items: center; gap: 5px; font-size: 11px; color: rgba(255,255,255,.85); }
.ds-chat-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #00ff88;
  box-shadow: 0 0 0 3px rgba(0,255,136,.3);
  animation: live-pulse 1.6s infinite;
}
.ds-chat-fechar {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.16);
  border: none;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  transition: background .2s;
}
.ds-chat-fechar:hover { background: rgba(255,255,255,.28); }

.ds-chat-msgs {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  background: linear-gradient(180deg, var(--cream), #fff);
  display: flex; flex-direction: column; gap: 10px;
}
.ds-chat-msgs::-webkit-scrollbar { width: 4px; }
.ds-chat-msgs::-webkit-scrollbar-thumb { background: rgba(13,13,14,.12); border-radius: 999px; }

.ds-chat-msg {
  max-width: 85%;
  padding: 10px 14px;
  border-radius: 14px;
  font-size: 13px;
  line-height: 1.45;
  word-wrap: break-word;
}
.ds-chat-msg p { margin: 0 0 4px; }
.ds-chat-msg p:last-child { margin: 0; }
.ds-chat-msg ul { margin: 6px 0; padding-left: 16px; }
.ds-chat-msg ul li { font-size: 12px; margin-bottom: 2px; }
.ds-chat-msg a { color: var(--vermelho); text-decoration: underline; font-weight: 700; }

.ds-chat-msg-leia {
  align-self: flex-start;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  color: var(--ink);
  border-bottom-left-radius: 4px;
}
.ds-chat-msg-user {
  align-self: flex-end;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border-bottom-right-radius: 4px;
}

/* Compat com nomes legados do public.js (.chat-msg-bubble.admin/cliente) */
.chat-msg-bubble {
  max-width: 85%;
  padding: 10px 14px;
  border-radius: 14px;
  font-size: 13px;
  line-height: 1.45;
  word-wrap: break-word;
}
.chat-msg-bubble.admin {
  align-self: flex-start;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  color: var(--ink);
  border-bottom-left-radius: 4px;
}
.chat-msg-bubble.cliente {
  align-self: flex-end;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border-bottom-right-radius: 4px;
}
.chat-msg-bubble strong { font-weight: 800; }
.chat-msg-bubble em { font-style: italic; opacity: .85; }
.chat-msg-bubble a { color: var(--vermelho); text-decoration: underline; font-weight: 700; }
.chat-msg-bubble.cliente a { color: var(--amarelo); }

.ds-chat-typing {
  align-self: flex-start;
  display: flex; gap: 4px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 14px;
  border-bottom-left-radius: 4px;
}
.ds-chat-typing span {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--text-muted, #666);
  animation: chat-typing 1.4s infinite;
}
.ds-chat-typing span:nth-child(2) { animation-delay: .2s; }
.ds-chat-typing span:nth-child(3) { animation-delay: .4s; }
@keyframes chat-typing {
  0%, 60%, 100% { transform: translateY(0); opacity: .4; }
  30% { transform: translateY(-4px); opacity: 1; }
}

.ds-chat-form {
  display: flex; gap: 6px;
  padding: 12px;
  background: #fff;
  border-top: 1px solid rgba(13,13,14,.06);
}
.ds-chat-form input {
  flex: 1;
  padding: 10px 14px;
  background: var(--ice-2);
  border: 2px solid transparent;
  border-radius: 999px;
  font-family: inherit;
  font-size: 13px;
  outline: none;
  transition: all .15s;
}
.ds-chat-form input:focus { background: #fff; border-color: var(--vermelho); }
.ds-chat-form button {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: transform .15s var(--ease-spring);
}
.ds-chat-form button:hover { transform: scale(1.08); }

/* ============================================================================
   CHEAT SHEET · dica de atalhos teclado (aciona com ?)
   ========================================================================== */
.ds-cheatsheet {
  position: fixed; bottom: 32px; right: 32px;
  background: var(--ink);
  color: #fff;
  padding: 20px 24px;
  border-radius: 16px;
  box-shadow: 0 16px 48px rgba(0,0,0,.4);
  z-index: 90;
  min-width: 280px;
  opacity: 0; transform: translateY(20px);
  pointer-events: none;
  transition: opacity .3s, transform .3s var(--ease-spring);
}
.ds-cheatsheet.is-open { opacity: 1; transform: translateY(0); pointer-events: auto; }
.ds-cheatsheet header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.ds-cheatsheet header strong {
  font-family: 'Manrope', sans-serif;
  font-size: 13px; font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.ds-cheatsheet header button {
  background: rgba(255,255,255,.08);
  border: none; color: #fff;
  width: 28px; height: 28px;
  border-radius: 50%;
  cursor: pointer; font-size: 16px;
}
.ds-cheatsheet dl {
  display: grid; grid-template-columns: auto 1fr;
  gap: 10px 16px;
  margin: 0;
}
.ds-cheatsheet dt {
  font-family: monospace;
  display: flex; gap: 4px; align-items: center;
}
.ds-cheatsheet kbd {
  display: inline-block;
  padding: 3px 8px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--amarelo);
  box-shadow: 0 2px 0 rgba(255,255,255,.08), inset 0 -1px 0 rgba(0,0,0,.2);
}
.ds-cheatsheet dd {
  margin: 0;
  font-size: 13px;
  color: rgba(255,255,255,.85);
  align-self: center;
}

/* Dica /  no canto da busca */
.ds-busca-hint {
  position: absolute;
  right: 96px; top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  opacity: 1;
  transition: opacity .2s;
}
.ds-busca-hint kbd {
  display: inline-block;
  padding: 2px 7px;
  background: rgba(13,13,14,.06);
  border: 1px solid rgba(13,13,14,.1);
  border-radius: 5px;
  font-family: monospace;
  font-size: 11px;
  color: var(--text-muted, #666);
  box-shadow: 0 1px 0 rgba(0,0,0,.04);
}

/* ============================================================================
   MINI-CART DRAWER · lateral direita, glass blur, slide-in
   ========================================================================== */
.ds-minicart-backdrop {
  position: fixed; inset: 0;
  background: rgba(13,13,14,.5);
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  z-index: 110;
  opacity: 0; pointer-events: none;
  transition: opacity .35s var(--ease-quick);
}
.ds-minicart-backdrop.is-open { opacity: 1; pointer-events: auto; }

.ds-minicart {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: 100%; max-width: 460px;
  background: #fff;
  z-index: 120;
  display: flex; flex-direction: column;
  box-shadow: -24px 0 64px rgba(0,0,0,.18);
  transform: translateX(100%);
  transition: transform .4s var(--ease-spring);
}
.ds-minicart.is-open { transform: translateX(0); }

.ds-minicart-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid rgba(13,13,14,.06);
  flex-shrink: 0;
}
.ds-minicart-head h3 {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: 'Manrope', sans-serif;
  font-size: 18px; font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.ds-minicart-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 22px; height: 22px; padding: 0 6px;
  background: var(--vermelho); color: #fff;
  border-radius: 999px;
  font-size: 11px; font-weight: 900;
}
.ds-minicart-close {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--ice-2);
  border: none;
  font-size: 20px; cursor: pointer;
  transition: all .2s var(--ease-spring);
  color: var(--ink);
}
.ds-minicart-close:hover {
  background: var(--vermelho); color: #fff;
  transform: rotate(90deg);
}

/* Frete progress dentro do drawer */
.ds-frete-progress {
  padding: 14px 24px;
  background: linear-gradient(135deg, var(--cream), #fff);
  border-bottom: 1px solid rgba(13,13,14,.04);
}
.ds-frete-msg {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 8px;
  text-align: center;
}
.ds-frete-msg strong { color: var(--vermelho); }
.ds-frete-bar {
  width: 100%; height: 6px;
  background: rgba(13,13,14,.06);
  border-radius: 999px;
  overflow: hidden;
}
.ds-frete-fill {
  display: block; height: 100%;
  background: linear-gradient(90deg, var(--vermelho), var(--amarelo));
  border-radius: 999px;
  width: 0%;
  transition: width .5s var(--ease-spring);
}
.ds-frete-progress.is-conquistado .ds-frete-msg strong { color: var(--verde); }
.ds-frete-progress.is-conquistado .ds-frete-fill {
  background: linear-gradient(90deg, var(--verde), #34d399);
  width: 100% !important;
}

/* Body com lista de itens · scroll independente */
.ds-minicart-body {
  flex: 1;
  overflow-y: auto;
  padding: 16px 24px;
  display: flex; flex-direction: column; gap: 12px;
}
.ds-minicart-body::-webkit-scrollbar { width: 6px; }
.ds-minicart-body::-webkit-scrollbar-thumb { background: rgba(13,13,14,.12); border-radius: 999px; }

.ds-mc-item {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 12px;
  padding: 12px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 12px;
  align-items: center;
  transition: box-shadow .2s;
}
.ds-mc-item:hover { box-shadow: var(--sh-2); }
.ds-mc-foto {
  width: 64px; height: 64px;
  background: var(--ice-2);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.ds-mc-foto img {
  width: 100%; height: 100%;
  object-fit: contain;
  padding: 4px;
}
.ds-mc-foto-ph {
  font-family: 'Fraunces', serif;
  font-size: 24px; font-weight: 900;
  color: var(--vermelho);
  opacity: .5;
}
.ds-mc-info { min-width: 0; line-height: 1.3; }
.ds-mc-info strong {
  display: block;
  font-size: 13px; font-weight: 700;
  color: var(--ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 6px;
}
.ds-mc-qtd {
  display: inline-flex; align-items: center;
  background: var(--ice-2);
  border-radius: 999px;
  padding: 2px;
  width: fit-content;
}
.ds-mc-qtd button {
  width: 24px; height: 24px;
  border-radius: 50%;
  border: none;
  background: #fff;
  font-size: 14px; font-weight: 900;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all .15s;
  color: var(--ink);
}
.ds-mc-qtd button:hover { background: var(--vermelho); color: #fff; }
.ds-mc-qtd span {
  min-width: 28px;
  text-align: center;
  font-size: 13px; font-weight: 800;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.ds-mc-acoes {
  display: flex; flex-direction: column; align-items: flex-end; gap: 4px;
}
.ds-mc-preco {
  font-family: 'Fraunces', serif;
  font-size: 16px; font-weight: 900;
  color: var(--vermelho);
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.ds-mc-remove {
  background: transparent;
  border: none;
  color: var(--text-muted, #666);
  cursor: pointer;
  padding: 4px;
  border-radius: 6px;
  transition: color .2s, background .2s;
  display: inline-flex;
}
.ds-mc-remove:hover {
  color: var(--vermelho);
  background: rgba(200,16,46,.08);
}

/* Empty state */
.ds-minicart-vazio {
  flex: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 40px 24px;
  text-align: center;
  gap: 8px;
}
.ds-minicart:has(.ds-mc-item) .ds-minicart-vazio { display: none; }
.ds-minicart-vazio-ic {
  font-size: 72px;
  filter: grayscale(.3) opacity(.6);
  margin-bottom: 8px;
}
.ds-minicart-vazio h4 {
  font-family: 'Manrope', sans-serif;
  font-size: 18px; font-weight: 900;
  color: var(--ink);
}
.ds-minicart-vazio p {
  font-size: 14px;
  color: var(--text-muted, #666);
  max-width: 280px;
  margin-bottom: 12px;
}
.ds-minicart-vazio-cta {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 12px 22px;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  border-radius: 999px;
  font-weight: 900; font-size: 13px;
  letter-spacing: 0.08em;
  text-decoration: none;
  box-shadow: var(--sh-red);
  transition: transform .25s var(--ease-spring);
}
.ds-minicart-vazio-cta:hover { transform: translateY(-2px) scale(1.02); }

/* UPSELL · pra completar frete grátis */
.ds-minicart-upsell {
  padding: 14px 24px;
  background: linear-gradient(135deg, rgba(255,210,0,.08), rgba(0,135,90,.06));
  border-top: 1px dashed rgba(0,135,90,.3);
  border-bottom: 1px dashed rgba(0,135,90,.3);
}
.ds-minicart-upsell > strong {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 10px;
}
.ds-minicart-upsell-prods {
  display: flex; flex-direction: column; gap: 6px;
}
.ds-minicart-upsell-prod {
  display: grid;
  grid-template-columns: 36px 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 10px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: all .2s var(--ease-spring);
}
.ds-minicart-upsell-prod:hover {
  border-color: var(--verde, #00875a);
  background: rgba(0,135,90,.04);
  transform: translateX(2px);
}
.ds-minicart-upsell-prod img,
.ds-minicart-upsell-prod .ph {
  width: 36px; height: 36px;
  background: var(--ice-2);
  border-radius: 8px;
  object-fit: contain;
  padding: 3px;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Fraunces', serif;
  font-weight: 900;
  color: var(--vermelho);
}
.ds-minicart-upsell-prod div { min-width: 0; line-height: 1.2; }
.ds-minicart-upsell-prod small {
  display: block;
  font-size: 11px;
  color: var(--ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ds-minicart-upsell-prod strong {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: 13px;
  font-weight: 900;
  color: var(--vermelho);
  margin-top: 2px;
}
.ds-minicart-upsell-prod .add-ic {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--verde, #00875a);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
  font-weight: 900;
}

/* Cross-sell loading skeleton */
.ds-cross-loading {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
@media (max-width: 1024px) { .ds-cross-loading { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px)  { .ds-cross-loading { grid-template-columns: repeat(2, 1fr); } }

/* Footer */
.ds-minicart-foot {
  padding: 16px 24px 20px;
  border-top: 1px solid rgba(13,13,14,.06);
  background: linear-gradient(180deg, #fff, var(--cream));
  flex-shrink: 0;
}
.ds-minicart-totais {
  margin-bottom: 12px;
}
.ds-minicart-linha {
  display: flex; align-items: center; justify-content: space-between;
  padding: 4px 0;
  font-size: 14px;
}
.ds-minicart-linha span { color: var(--text-muted, #666); }
.ds-minicart-linha strong {
  font-family: 'Fraunces', serif;
  font-size: 22px; font-weight: 900;
  color: var(--vermelho);
}
.ds-minicart-pix span { color: var(--color-pix); font-weight: 700; }
.ds-minicart-pix strong { font-size: 15px; color: var(--color-pix); }
.ds-minicart-cta {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%;
  padding: 18px;
  background: linear-gradient(135deg, var(--vermelho) 0%, var(--vinho) 100%);
  color: #fff;
  border-radius: 16px;
  font-family: 'Manrope', sans-serif;
  font-size: 14px; font-weight: 900;
  letter-spacing: 0.12em;
  text-decoration: none;
  box-shadow: var(--sh-red), inset 0 1px 0 rgba(255,255,255,.2);
  transition: transform .25s var(--ease-spring), box-shadow .25s;
  text-transform: uppercase;
}
.ds-minicart-cta:hover { transform: translateY(-2px); box-shadow: var(--sh-red), 0 12px 32px rgba(200,16,46,.4); }
.ds-minicart-versecure {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin-top: 10px;
  font-size: 11px;
  color: var(--text-muted, #666);
  letter-spacing: 0.04em;
}

@media (max-width: 540px) {
  .ds-minicart { max-width: 100%; }
}

/* ============================================================================
   BOTTOM NAV MOBILE · 5 ícones fixos com botão central destacado
   ========================================================================== */
.ds-mobnav {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: 68px;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-top: 1px solid rgba(13,13,14,.06);
  box-shadow: 0 -4px 16px rgba(0,0,0,.06);
  z-index: 80;
  padding: 6px 8px;
  padding-bottom: max(6px, env(safe-area-inset-bottom));
  transition: transform .3s var(--ease-quick);
}
.ds-mobnav.is-hidden { transform: translateY(110%); }

.ds-mobnav-item {
  flex: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2px;
  color: var(--text-muted, #666);
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: inherit;
  text-decoration: none;
  transition: color .2s, transform .2s;
  position: relative;
}
.ds-mobnav-item small {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
  max-width: 64px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ds-mobnav-item:active { transform: scale(.94); }
.ds-mobnav-item.is-active { color: var(--vermelho); }

/* Botão central destacado (busca) */
.ds-mobnav-busca {
  position: relative;
  margin-top: -16px;
}
.ds-mobnav-busca-ic {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--vermelho) 0%, var(--vinho) 100%);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 12px rgba(200,16,46,.4), 0 12px 24px rgba(200,16,46,.3);
  border: 3px solid #fff;
  transition: transform .25s var(--ease-spring);
}
.ds-mobnav-busca:active .ds-mobnav-busca-ic { transform: scale(.92); }

/* Avatar (cliente logado) */
.ds-mobnav-avatar {
  width: 26px; height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 900;
  font-family: 'Manrope', sans-serif;
}

/* Badge carrinho */
.ds-mobnav-cart-wrap { position: relative; }
.ds-mobnav-badge {
  position: absolute;
  top: -4px; right: -8px;
  min-width: 16px; height: 16px; padding: 0 4px;
  background: var(--vermelho);
  color: #fff;
  border-radius: 999px;
  font-size: 9px; font-weight: 900;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 0 0 2px #fff;
}

/* Overlay busca mobile */
.ds-mobsearch {
  position: fixed; inset: 0;
  background: rgba(13,13,14,.96);
  backdrop-filter: blur(12px);
  z-index: 100;
  display: flex; align-items: flex-start; justify-content: center;
  padding: 80px 20px 20px;
  opacity: 0; pointer-events: none;
  transition: opacity .25s;
}
.ds-mobsearch[aria-hidden="false"] { opacity: 1; pointer-events: auto; }
.ds-mobsearch-fechar {
  position: absolute; top: 16px; right: 16px;
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.2);
  color: #fff;
  font-size: 22px; cursor: pointer;
}
.ds-mobsearch form {
  width: 100%; max-width: 540px;
  display: flex; gap: 8px;
  background: #fff;
  border-radius: 999px;
  padding: 6px;
}
.ds-mobsearch input {
  flex: 1; height: 48px;
  border: none; outline: none;
  padding: 0 18px;
  font-size: 16px; font-weight: 600;
  background: transparent;
}
.ds-mobsearch button[type="submit"] {
  height: 48px; padding: 0 22px;
  background: linear-gradient(180deg, var(--vermelho), var(--vermelho-2));
  color: #fff;
  border: none; border-radius: 999px;
  font-weight: 900; font-size: 13px; letter-spacing: 0.08em;
  cursor: pointer;
}

/* Ativa em mobile · padding bottom no body pra não cobrir conteúdo */
@media (max-width: 720px) {
  .ds-mobnav { display: flex; }
  body { padding-bottom: 76px; }
}

/* ============================================================================
   ACESSIBILIDADE · toggle A+/A-/contraste/motion
   ========================================================================== */
.ds-a11y-btn { display: inline-flex; align-items: center; gap: 6px; }
.ds-a11y-btn > span:first-child {
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--amarelo); color: var(--ink);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 900; line-height: 1;
}

.ds-a11y-panel {
  position: absolute;
  top: 100%; right: 24px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0,0,0,.1), 0 24px 48px rgba(0,0,0,.16);
  padding: 16px;
  min-width: 280px;
  z-index: 90;
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity .25s, transform .25s var(--ease-spring);
}
.ds-a11y-panel[aria-hidden="false"] {
  opacity: 1; transform: translateY(0); pointer-events: auto;
}
.ds-a11y-panel > strong {
  display: block;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
  color: var(--text-muted, #666);
  text-transform: uppercase;
  margin-bottom: 10px;
}
.ds-a11y-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.ds-a11y-opt {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 12px 8px;
  background: var(--ice-2);
  border: 1px solid transparent;
  border-radius: 10px;
  cursor: pointer;
  transition: all .2s var(--ease-quick);
  color: var(--ink);
  font-family: inherit;
}
.ds-a11y-opt:hover {
  background: #fff;
  border-color: var(--vermelho);
  box-shadow: var(--sh-1);
  transform: translateY(-2px);
}
.ds-a11y-opt.is-active {
  background: var(--vermelho);
  color: #fff;
}
.ds-a11y-opt > span:first-child {
  font-size: 18px;
  font-weight: 900;
}
.ds-a11y-opt > span.big { font-size: 22px; }
.ds-a11y-opt > span.small { font-size: 14px; }
.ds-a11y-opt > small {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Aplicação dos estados a11y */
html[data-a11y-font="big"]     body { font-size: 18px !important; }
html[data-a11y-font="bigger"]  body { font-size: 20px !important; }
html[data-a11y-font="biggest"] body { font-size: 22px !important; }
html[data-a11y-font="small"]   body { font-size: 13px !important; }

html[data-a11y-contrast="high"] {
  filter: contrast(1.25);
}
html[data-a11y-contrast="high"] body {
  background: #fff !important;
}
html[data-a11y-contrast="high"] * {
  text-shadow: none !important;
}

html[data-a11y-motion="reduce"] *,
html[data-a11y-motion="reduce"] *::before,
html[data-a11y-motion="reduce"] *::after {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
}

/* ============================================================================
   BARRA DE SELOS DE CONFIANÇA · 5 garantias horizontais
   ========================================================================== */
.ds-selos-bar {
  background: linear-gradient(180deg, #fff 0%, var(--cream) 100%);
  border-top: 1px solid rgba(13,13,14,.05);
  border-bottom: 1px solid rgba(13,13,14,.05);
  padding: 18px 0;
}
.ds-selos-row {
  display: flex;
  gap: 12px;
  align-items: stretch;
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: none; -ms-overflow-style: none;
}
.ds-selos-row::-webkit-scrollbar { display: none; }
.ds-selo-tag {
  flex: 1; min-width: 200px;
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 14px;
  box-shadow: var(--sh-1);
  transition: all .25s var(--ease-spring);
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.ds-selo-tag::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(120% 80% at 0% 100%, var(--selo-cor) 0%, transparent 60%);
  opacity: 0; transition: opacity .3s;
}
.ds-selo-tag:hover {
  transform: translateY(-3px);
  border-color: var(--selo-cor);
  box-shadow: var(--sh-2);
}
.ds-selo-tag:hover::before { opacity: .08; }
.ds-selo-emoji {
  font-size: 26px;
  line-height: 1;
  filter: saturate(1.1);
  flex-shrink: 0;
  transition: transform .25s var(--ease-spring);
}
.ds-selo-tag:hover .ds-selo-emoji {
  transform: scale(1.15) rotate(-8deg);
}
.ds-selo-info {
  line-height: 1.2;
  min-width: 0;
}
.ds-selo-info strong {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  color: var(--ink);
  white-space: nowrap;
}
.ds-selo-info small {
  display: block;
  font-size: 11px;
  color: var(--text-muted, #666);
  font-weight: 500;
  margin-top: 2px;
}

@media (max-width: 720px) {
  .ds-selo-tag { min-width: 180px; }
  .ds-selos-bar { padding: 14px 0; }
}

/* ============================================================================
   BUSCA DROPDOWN PREMIUM
   ========================================================================== */
.busca-dropdown {
  position: absolute !important;
  top: calc(100% + 10px) !important;
  left: 0 !important; right: 0 !important;
  background: rgba(255,255,255,.98) !important;
  backdrop-filter: blur(24px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
  border-radius: 18px !important;
  box-shadow:
    0 1px 2px rgba(13,13,14,.06),
    0 12px 24px rgba(13,13,14,.12),
    0 24px 64px rgba(13,13,14,.16) !important;
  border: 1px solid rgba(13,13,14,.06) !important;
  max-height: 480px;
  overflow-y: auto;
  z-index: 80;
  padding: 12px !important;
}
.busca-dropdown::-webkit-scrollbar { width: 8px; }
.busca-dropdown::-webkit-scrollbar-track { background: transparent; }
.busca-dropdown::-webkit-scrollbar-thumb { background: rgba(13,13,14,.12); border-radius: 8px; }
.busca-dropdown::-webkit-scrollbar-thumb:hover { background: rgba(13,13,14,.2); }

.busca-dropdown-grupo {
  margin-bottom: 12px;
}
.busca-dropdown-grupo:last-child { margin-bottom: 0; }
.busca-dropdown-grupo > strong {
  display: flex; align-items: center; justify-content: space-between;
  padding: 4px 12px 8px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.18em;
  color: var(--text-muted, #666);
  text-transform: uppercase;
  border-bottom: 1px solid rgba(13,13,14,.06);
  margin-bottom: 4px;
}
.hist-clear {
  border: none; background: transparent;
  font-size: 10px; font-weight: 700;
  color: var(--vermelho);
  cursor: pointer; letter-spacing: 0.06em;
  text-transform: none;
}
.hist-clear:hover { text-decoration: underline; }

.busca-resultado {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  text-decoration: none;
  color: var(--ink);
  transition: all .15s var(--ease-quick);
  position: relative;
}
.busca-resultado:hover {
  background: var(--cream);
  transform: translateX(4px);
}
.busca-resultado:hover::after {
  content: '→';
  position: absolute;
  right: 14px;
  color: var(--vermelho);
  font-weight: 900;
  font-size: 16px;
}
.busca-resultado img,
.busca-resultado .thumb-placeholder {
  width: 44px !important; height: 44px !important;
  object-fit: contain;
  background: var(--ice-2) !important;
  border-radius: 10px !important;
  border: 1px solid rgba(13,13,14,.04);
  padding: 4px;
  flex-shrink: 0;
}
.busca-resultado > div { flex: 1; min-width: 0; line-height: 1.2; }
.busca-resultado > div strong {
  display: block;
  font-size: 13px; font-weight: 700;
  color: var(--ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.busca-resultado > div small {
  display: block;
  font-size: 11px; color: var(--text-muted, #666);
  font-weight: 500;
  margin-top: 2px;
}
.busca-resultado .preco-mini {
  font-family: 'Fraunces', serif;
  font-size: 16px; font-weight: 900;
  color: var(--vermelho);
  letter-spacing: -0.02em;
  margin-left: auto;
  margin-right: 24px;
  white-space: nowrap;
}
.busca-resultado.busca-hist {
  color: var(--text-muted, #666);
  font-size: 13px;
}
.busca-resultado.busca-hist svg { color: var(--text-faint, #999); flex-shrink: 0; }
.busca-resultado.busca-hist span { font-weight: 500; }
.busca-resultado.busca-hist:hover { color: var(--vermelho); }
.busca-resultado.busca-hist:hover svg { color: var(--vermelho); }

/* ============================================================================
   COUNTDOWN OFERTAS RELÂMPAGO
   ========================================================================== */
.ds-section-head-ofertas {
  align-items: center !important;
  flex-wrap: wrap;
}
.ds-countdown {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  padding: 14px 20px;
  background: linear-gradient(135deg, var(--ink) 0%, var(--vinho) 100%);
  border-radius: 16px;
  color: #fff;
  box-shadow: 0 8px 24px rgba(110,10,26,.25), inset 0 1px 0 rgba(255,255,255,.08);
  position: relative;
  overflow: hidden;
}
.ds-countdown::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(60% 50% at 50% 0%, rgba(255,140,26,.18), transparent 70%);
}
.ds-countdown-label {
  position: relative; z-index: 1;
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 10px; font-weight: 900; letter-spacing: 0.2em;
  color: rgba(255,255,255,.78);
  text-transform: uppercase;
}
.ds-countdown-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #ff8c1a;
  box-shadow: 0 0 0 4px rgba(255,140,26,.25);
  animation: live-pulse 1.4s ease-in-out infinite;
}
.ds-countdown-box {
  position: relative; z-index: 1;
  display: flex; align-items: center; gap: 4px;
  font-variant-numeric: tabular-nums;
}
.ds-countdown-cell {
  display: flex; flex-direction: column; align-items: center;
  min-width: 52px;
  padding: 6px 8px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  backdrop-filter: blur(8px);
}
.ds-countdown-cell strong {
  font-family: 'Fraunces', serif;
  font-size: 26px; font-weight: 900;
  line-height: 1;
  color: var(--amarelo);
  letter-spacing: -0.02em;
  text-shadow: 0 2px 12px rgba(255,210,0,.35);
}
.ds-countdown-cell small {
  font-size: 9px; font-weight: 800; letter-spacing: 0.12em;
  color: rgba(255,255,255,.55);
  margin-top: 4px;
}
.ds-countdown-sep {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  color: rgba(255,255,255,.4);
  margin-top: -14px;
  animation: cd-blink 1s steps(2, end) infinite;
}
@keyframes cd-blink { 50% { opacity: .3; } }

@media (max-width: 720px) {
  .ds-countdown-cell { min-width: 44px; padding: 4px 6px; }
  .ds-countdown-cell strong { font-size: 22px; }
}

/* ============================================================================
   MEGA-MENU · sintomas (4ª coluna)
   ========================================================================== */
.ds-megamenu-grid {
  grid-template-columns: 1.1fr 1.1fr 1fr 0.9fr !important;
  gap: 28px !important;
}
.ds-mm-sintomas {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
.ds-mm-sintoma {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 13px; font-weight: 600;
  color: var(--ink);
  transition: all .18s var(--ease-quick);
  background: transparent;
}
.ds-mm-sintoma:hover {
  background: var(--cream);
  color: var(--vermelho);
  transform: translateX(3px);
}
.ds-mm-sintoma-emoji {
  font-size: 17px;
  line-height: 1;
  filter: saturate(1.1);
}

@media (max-width: 980px) {
  .ds-megamenu-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 24px !important;
  }
  .ds-mm-sintomas { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .ds-megamenu-grid { grid-template-columns: 1fr !important; }
}

/* ============================================================================
   FAIXA CINEMATIC · vídeo institucional full-width
   ========================================================================== */
.ds-cinematic {
  position: relative; overflow: hidden;
  height: 220px;
  background: var(--ink);
  isolation: isolate;
}
.ds-cinematic-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
  filter: saturate(.9) brightness(.55);
}
.ds-cinematic-overlay {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, var(--ink) 0%, rgba(13,13,14,.5) 35%, rgba(13,13,14,.3) 65%, var(--ink) 100%),
    radial-gradient(60% 100% at 50% 50%, rgba(200,16,46,.2) 0%, transparent 70%);
  pointer-events: none;
}
.ds-cinematic-content {
  position: relative; z-index: 2;
  height: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 32px;
  color: #fff;
}
.ds-cinematic-left { display: flex; flex-direction: column; gap: 8px; max-width: 640px; }
.ds-cinematic-tag {
  display: inline-flex; align-items: center; gap: 8px;
  align-self: flex-start;
  padding: 6px 14px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  font-size: 11px; font-weight: 900; letter-spacing: 0.16em;
  color: rgba(255,255,255,.92);
}
.ds-live-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #00ff88;
  box-shadow: 0 0 0 4px rgba(0,255,136,.25);
  animation: live-pulse 1.6s ease-in-out infinite;
}
@keyframes live-pulse {
  0%,100% { transform: scale(1); opacity: 1; }
  50%     { transform: scale(.85); opacity: .7; }
}
.ds-cinematic-left strong {
  font-family: 'Fraunces', serif;
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0,0,0,.5);
}
.ds-cinematic-num {
  background: linear-gradient(135deg, var(--amarelo), #ff9500);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
}
.ds-cinematic-left small {
  font-size: 14px;
  color: rgba(255,255,255,.78);
  font-weight: 500;
  text-shadow: 0 1px 4px rgba(0,0,0,.4);
}
.ds-cinematic-cta {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 16px 26px;
  background: var(--amarelo);
  color: var(--ink);
  border-radius: 999px;
  font-family: 'Manrope', sans-serif;
  font-size: 13px; font-weight: 900;
  letter-spacing: 0.12em;
  box-shadow: var(--sh-gold), inset 0 1px 0 rgba(255,255,255,.3);
  transition: transform .25s var(--ease-spring), box-shadow .25s;
  white-space: nowrap;
}
.ds-cinematic-cta:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 8px 20px rgba(255,210,0,.4), 0 24px 48px rgba(255,210,0,.3), inset 0 1px 0 rgba(255,255,255,.3);
}

@media (max-width: 760px) {
  .ds-cinematic { height: auto; padding: 24px 0; }
  .ds-cinematic-content { flex-direction: column; align-items: flex-start; gap: 16px; }
  .ds-cinematic-cta { align-self: stretch; justify-content: center; }
}

/* ============================================================================
   CARROSSEL DE MARCAS · marquee horizontal infinito (2 linhas opostas)
   ========================================================================== */
.ds-marcas-strip { padding-bottom: 72px !important; }
.ds-marcas-marquee {
  position: relative;
  overflow: hidden;
  width: 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
}
.ds-marcas-marquee-track {
  display: flex; gap: 16px;
  animation: marcas-roll 38s linear infinite;
  width: max-content;
  align-items: center;
  padding: 6px 0;
}
.ds-marcas-marquee-track.ds-reverse { animation-direction: reverse; animation-duration: 42s; }
.ds-marcas-marquee:hover .ds-marcas-marquee-track { animation-play-state: paused; }
@keyframes marcas-roll { to { transform: translateX(-50%); } }

.ds-marca-chip {
  flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  height: 88px; min-width: 168px;
  padding: 14px 24px;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 16px;
  box-shadow: var(--sh-1);
  transition: all .3s var(--ease-spring);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.ds-marca-chip::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(80% 60% at 50% 100%, var(--marca-cor, var(--vermelho)) 0%, transparent 70%);
  opacity: 0; transition: opacity .35s;
}
.ds-marca-chip:hover {
  transform: translateY(-6px);
  border-color: var(--marca-cor, var(--vermelho));
  box-shadow: var(--sh-3), 0 0 0 1px var(--marca-cor, var(--vermelho));
}
.ds-marca-chip:hover::before { opacity: .08; }
.ds-marca-chip img {
  max-height: 50px;
  max-width: 130px;
  width: auto; height: auto;
  object-fit: contain;
  filter: grayscale(.4) saturate(.9);
  transition: filter .35s;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: high-quality;
}
.ds-marca-chip:hover img { filter: grayscale(0) saturate(1.1); }
.ds-marca-chip-fallback {
  font-family: 'Manrope', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.06em;
  color: var(--marca-cor, var(--ink));
  text-align: center;
  line-height: 1.2;
}

/* ============================================================================
   STORY CARDS · ring + foto/ícone + tooltip
   ========================================================================== */
.ds-stories { padding: 56px 0 32px !important; background: #fff !important }
.ds-story { width: 110px !important }
.ds-story-ring {
  width: 100px !important; height: 100px !important;
  background: conic-gradient(from 0deg, var(--marca-cor, var(--vermelho)) 0%, var(--amarelo) 40%, var(--marca-cor, var(--vermelho)) 80%, var(--vermelho) 100%) !important;
  padding: 3px !important;
  box-shadow: var(--sh-1);
  transition: all .4s var(--ease-spring) !important;
  position: relative;
}
.ds-story-ring::before {
  content: ''; position: absolute; inset: -8px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--marca-cor, var(--vermelho)) 0%, transparent 70%);
  opacity: 0; transition: opacity .3s; pointer-events: none;
  z-index: -1; filter: blur(10px);
}
.ds-story:hover .ds-story-ring::before { opacity: .4 }
.ds-story:hover .ds-story-ring { transform: scale(1.08) rotate(8deg); box-shadow: var(--sh-3), 0 0 0 6px rgba(200,16,46,.08) }
.ds-story-ring-inner {
  background: linear-gradient(180deg, #fff, var(--cream)) !important;
  box-shadow: inset 0 0 0 3px #fff, inset 0 -8px 16px rgba(0,0,0,.04) !important;
  overflow: hidden !important;
}
.ds-story-ring-inner img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important;
  transition: transform .55s var(--ease-spring), filter .35s;
  filter: saturate(1.05);
  image-rendering: -webkit-optimize-contrast;
  image-rendering: high-quality;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
/* Imagens em alta · evita pixelizar quando navegador subsample */
img { image-rendering: -webkit-optimize-contrast; image-rendering: high-quality; }
.ds-story:hover .ds-story-ring-inner img {
  transform: scale(1.12) !important;
  filter: saturate(1.2);
}
.ds-story-ring-inner .emoji { font-size: 42px !important; }
.ds-story strong { font-size: 12px !important; font-weight: 800 !important; }

/* Story editorial (sem foto) · gradient da cor da categoria de fundo */
.ds-story-editorial .ds-story-ring-inner {
  background:
    radial-gradient(circle at 50% 100%, var(--marca-cor) 0%, transparent 70%),
    linear-gradient(180deg, #fff 0%, var(--cream) 100%) !important;
}
.ds-story-editorial .ds-story-ring-inner .emoji {
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.15));
}

/* Tag flutuante no story (ex: "RECEITA" pra antibióticos) */
.ds-story-tag {
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--vermelho);
  color: #fff;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.12em;
  padding: 2px 8px;
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(200,16,46,.4), 0 0 0 2px #fff;
  white-space: nowrap;
  z-index: 3;
}
.ds-story-ring-inner { position: relative; }

/* ============================================================================
   BENEFÍCIOS · cards 3D com profundidade real
   ========================================================================== */
.ds-beneficios {
  padding: 32px 0 56px !important;
  background: #fff !important;
  border: none !important;
}
.ds-beneficios-grid {
  display: grid !important;
  grid-template-columns: repeat(6, 1fr) !important;
  gap: 18px !important;
}
.ds-beneficio {
  position: relative;
  padding: 22px 18px !important;
  background: #fff !important;
  border: none !important;
  border-radius: 18px !important;
  box-shadow:
    0 1px 2px rgba(13,13,14,.04),
    0 4px 12px rgba(13,13,14,.06),
    0 16px 32px rgba(13,13,14,.04) !important;
  transition: all .35s var(--ease-spring) !important;
  display: flex; flex-direction: column; gap: 12px;
  align-items: flex-start !important;
  overflow: hidden;
  isolation: isolate;
}
.ds-beneficio::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(135deg, var(--ben-cor-soft, rgba(200,16,46,.06)) 0%, transparent 70%);
  opacity: 0; transition: opacity .3s;
}
.ds-beneficio::after {
  display: none !important;
}
.ds-beneficio:hover::before { opacity: 1 }
.ds-beneficio:hover {
  transform: translateY(-8px) !important;
  box-shadow:
    0 2px 4px rgba(13,13,14,.06),
    0 12px 24px rgba(13,13,14,.10),
    0 32px 56px rgba(13,13,14,.12),
    0 0 0 1px var(--ben-cor, var(--vermelho)) !important;
}
.ds-beneficio-ic {
  width: 56px !important; height: 56px !important;
  background: linear-gradient(135deg, var(--ben-cor, var(--vermelho)), var(--ben-cor-deep, var(--vinho))) !important;
  color: #fff !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 16px var(--ben-cor-soft, rgba(200,16,46,.3)), inset 0 1px 0 rgba(255,255,255,.2) !important;
  transition: all .35s var(--ease-spring) !important;
}
.ds-beneficio:hover .ds-beneficio-ic {
  transform: rotate(-10deg) scale(1.1) !important;
  box-shadow: 0 12px 24px var(--ben-cor-soft, rgba(200,16,46,.5)), inset 0 1px 0 rgba(255,255,255,.3) !important;
}
.ds-beneficio-txt strong {
  font-family: 'Manrope', sans-serif !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  letter-spacing: -0.02em !important;
  color: var(--ink) !important;
}
.ds-beneficio-txt small {
  font-size: 12px !important;
  color: var(--text-muted, #666) !important;
  font-weight: 500 !important;
}

@media (max-width: 980px) { .ds-beneficios-grid { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 560px) { .ds-beneficios-grid { grid-template-columns: repeat(2, 1fr) !important; } }

/* ============================================================================
   SECTIONS PREMIUM · respiro + tipografia editorial
   ========================================================================== */
.ds-section { padding: 96px 0 !important; }
.ds-section.compact { padding: 64px 0 !important; }
.ds-section.spacious { padding: 128px 0 !important; }
.ds-section.soft {
  background: linear-gradient(180deg, #fff 0%, var(--ice-2) 50%, #fff 100%) !important;
  position: relative;
}
.ds-section.soft::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .03;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* DARK section premium · mesh + blob + spotlight */
.ds-section.dark {
  background: var(--ink) !important;
  position: relative; overflow: hidden;
}
.ds-section.dark::before {
  content: ''; position: absolute; inset: -10%;
  background:
    radial-gradient(50% 50% at 15% 25%, rgba(200,16,46,.30) 0%, transparent 60%),
    radial-gradient(45% 50% at 85% 70%, rgba(255,210,0,.10) 0%, transparent 55%),
    radial-gradient(40% 40% at 60% 30%, rgba(110,10,26,.5) 0%, transparent 60%);
  filter: blur(40px);
  animation: dark-mesh 22s ease-in-out infinite alternate;
  pointer-events: none;
}
.ds-section.dark::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.4 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  opacity: .04; mix-blend-mode: overlay;
}
.ds-section.dark > * { position: relative; z-index: 2 }
@keyframes dark-mesh {
  0%   { transform: translate(0,0) }
  50%  { transform: translate(2%,-2%) }
  100% { transform: translate(-1%,2%) }
}

/* Section header escultural */
.ds-section-head h2 {
  font-family: 'Fraunces', 'Manrope', serif !important;
  font-weight: 900 !important;
  font-size: clamp(32px, 4vw, 56px) !important;
  letter-spacing: -0.035em !important;
  line-height: 1 !important;
}
.ds-section-head h2 .accent {
  background: linear-gradient(135deg, var(--vermelho) 0%, var(--vinho) 100%) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  font-style: italic;
}
.ds-section-head .ds-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  background: linear-gradient(90deg, rgba(200,16,46,.08), transparent) !important;
  border-left: 3px solid var(--vermelho);
  padding: 6px 14px !important;
  border-radius: 0 !important;
  font-family: 'Manrope', sans-serif;
  font-weight: 900 !important;
  letter-spacing: 0.18em !important;
}
.ds-section.dark .ds-section-head h2 { color: #fff !important; }
.ds-section.dark .ds-section-head h2 .accent {
  background: linear-gradient(135deg, var(--amarelo) 0%, #ff9500 100%) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

.ds-link-all {
  border: 2px solid var(--ink) !important;
  color: var(--ink) !important;
  padding: 14px 22px !important;
  font-weight: 900 !important;
  border-radius: 999px !important;
  background: #fff;
  box-shadow: 4px 4px 0 var(--ink);
  transition: all .2s var(--ease-spring) !important;
}
.ds-link-all:hover {
  background: var(--vermelho) !important; color: #fff !important;
  border-color: var(--vermelho) !important;
  transform: translate(-2px,-2px); box-shadow: 6px 6px 0 var(--vermelho);
}
.ds-section.dark .ds-link-all { background: transparent; color: #fff !important; border-color: #fff !important; box-shadow: 4px 4px 0 #fff }
.ds-section.dark .ds-link-all:hover { background: var(--amarelo) !important; color: var(--ink) !important; border-color: var(--amarelo) !important; box-shadow: 6px 6px 0 var(--amarelo) }

/* ============================================================================
   CARDS DE PRODUTO PREMIUM · tilt 3D + depth + ações vivas
   ========================================================================== */
.ds-prod {
  background: #fff !important;
  border: 1px solid transparent !important;
  border-radius: 18px !important;
  padding: 18px !important;
  box-shadow: var(--sh-1) !important;
  transition: transform .3s var(--ease-spring), box-shadow .35s, border-color .25s !important;
  transform-style: preserve-3d;
  isolation: isolate;
  position: relative;
}
.ds-prod::before {
  content: ''; position: absolute; inset: 0; border-radius: 18px;
  background: radial-gradient(120% 80% at 50% -20%, var(--marca-cor, rgba(200,16,46,.08)) 0%, transparent 60%);
  opacity: 0; transition: opacity .35s; z-index: -1;
}
.ds-prod:hover::before { opacity: .14 }
.ds-prod:hover {
  transform: translateY(-12px) !important;
  box-shadow: var(--sh-4), 0 0 0 1px var(--marca-cor, rgba(200,16,46,.18)) !important;
  border-color: rgba(13,13,14,.04) !important;
}
.ds-prod-foto {
  background: linear-gradient(180deg, var(--ice-2) 0%, #fff 100%) !important;
  border: 1px solid rgba(13,13,14,.04);
  border-radius: 14px !important;
  position: relative; overflow: hidden;
}
.ds-prod-foto::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 0%, rgba(255,255,255,.6), transparent 60%);
  pointer-events: none;
}
.ds-prod-foto img { transition: transform .55s var(--ease-spring) !important; }
.ds-prod:hover .ds-prod-foto img { transform: scale(1.08) rotate(-1deg) !important; }

/* Placeholder elegante quando foto falha */
.ds-prod-placeholder {
  width: auto !important; height: auto !important;
  background: none !important;
  color: var(--vermelho) !important;
  font-family: 'Fraunces', serif !important;
  font-size: 64px !important;
  font-weight: 900 !important;
  opacity: .25 !important;
  text-shadow: 0 4px 16px rgba(200,16,46,.3);
}

/* Badges premium */
.ds-prod-badge.oferta {
  background: linear-gradient(135deg, var(--amarelo) 0%, #ffba00 100%) !important;
  color: var(--ink) !important;
  box-shadow: var(--sh-gold), inset 0 1px 0 rgba(255,255,255,.3) !important;
  padding: 5px 12px !important;
  font-weight: 900 !important;
}
.ds-prod-badge.novo { background: var(--ink) !important; color: var(--amarelo) !important; }
.ds-prod-badge.frete { background: var(--verde) !important; box-shadow: 0 4px 12px rgba(0,135,90,.3) !important; }

/* Ações flutuantes premium */
.ds-prod-quick button {
  background: rgba(255,255,255,.95) !important;
  backdrop-filter: blur(10px);
  box-shadow: var(--sh-2) !important;
  border: 1px solid rgba(13,13,14,.04) !important;
  transition: all .25s var(--ease-spring) !important;
}
.ds-prod-quick button:hover {
  background: linear-gradient(180deg, var(--vermelho), var(--vinho)) !important;
  color: #fff !important;
  transform: scale(1.12) rotate(-6deg);
  box-shadow: var(--sh-red) !important;
}

/* Marca + nome */
.ds-prod-marca {
  color: var(--vermelho) !important;
  font-weight: 900 !important;
  letter-spacing: 0.18em !important;
}
.ds-prod-nome {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  color: var(--ink) !important;
  line-height: 1.3 !important;
}
.ds-prod-stars .stars-fill { color: var(--amarelo) !important; font-size: 14px !important; }

/* Preço gigante — Fraunces serif pro charme */
.ds-prod-preco .de {
  color: rgba(13,13,14,.4) !important;
  font-size: 12px !important;
}
.ds-prod-preco .por {
  font-family: 'Fraunces', serif !important;
  font-size: 32px !important;
  font-weight: 900 !important;
  color: var(--vermelho) !important;
  letter-spacing: -0.03em !important;
  text-shadow: 0 1px 0 rgba(200,16,46,.06);
}
.ds-prod-preco .por .real { font-size: 18px !important; }
.ds-prod-preco .por .cents { font-size: 18px !important; }
.ds-prod-preco .parcela { color: var(--ink-3) !important; font-size: 12px !important; }
.ds-prod-pix {
  background: linear-gradient(90deg, rgba(50,188,173,.15), rgba(50,188,173,.06)) !important;
  border: 1px solid rgba(50,188,173,.25);
  color: #0e8a7d !important;
  font-weight: 800 !important;
}

/* Stickers de prova social (canto inferior esquerdo da foto) */
.ds-prod-stickers {
  position: absolute;
  bottom: 10px; left: 10px;
  display: flex; flex-direction: column; gap: 4px;
  align-items: flex-start;
  z-index: 2;
  pointer-events: none;
}
.ds-prod-sticker {
  display: inline-flex; align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 9px; font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 6px rgba(0,0,0,.12);
}
.sticker-top {
  background: linear-gradient(135deg, #ff8c1a, #ffa500);
  color: #fff;
}
.sticker-farma {
  background: linear-gradient(135deg, #10b981, #00875a);
  color: #fff;
}
.sticker-continuo {
  background: linear-gradient(135deg, #0066ff, #1e40af);
  color: #fff;
}

/* Estrelas vazias (sem avaliação ainda) */
.ds-prod-stars-vazio .stars-fill {
  color: rgba(255,184,0,.35) !important;
}
.ds-prod-stars-vazio small {
  color: var(--text-faint, #9a9aa1) !important;
  font-size: 10px !important;
  font-style: italic;
}

/* Frete estimado por card */
.ds-prod-frete {
  display: inline-flex; align-items: center; gap: 5px;
  margin-top: 4px;
  padding: 4px 8px;
  border-radius: 6px;
  background: rgba(13,13,14,.04);
  color: var(--ink-3, #2a2a2e);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  width: fit-content;
}
.ds-prod-frete.is-rapido {
  background: rgba(0,135,90,.1);
  color: var(--verde, #00875a);
}
.ds-prod-frete.is-retira {
  background: rgba(0,102,255,.1);
  color: #0040c2;
}
.ds-prod-frete svg { flex-shrink: 0; }

/* Estoque baixo · FOMO laranja-vermelho */
.ds-prod-estoque {
  display: flex; align-items: center; gap: 6px;
  flex-wrap: wrap;
  margin-top: 6px;
  padding: 6px 10px;
  background: linear-gradient(90deg, rgba(255,140,26,.12), rgba(200,16,46,.08));
  border: 1px solid rgba(255,140,26,.25);
  border-radius: 8px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  color: #c2410c;
  text-transform: uppercase;
  position: relative; overflow: hidden;
}
.ds-prod-estoque-flame {
  font-size: 12px;
  animation: flame-flicker 2s ease-in-out infinite;
}
@keyframes flame-flicker {
  0%, 100% { transform: scale(1) rotate(-2deg); }
  50%      { transform: scale(1.15) rotate(3deg); }
}
.ds-prod-estoque-txt strong { color: var(--vermelho); font-size: 11px; }
.ds-prod-estoque-bar {
  width: 100%;
  height: 3px;
  background: rgba(255,255,255,.5);
  border-radius: 999px;
  overflow: hidden;
  margin-top: 2px;
}
.ds-prod-estoque-fill {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--vermelho), #ff8c1a);
  border-radius: 999px;
  animation: fill-pulse 1.8s ease-in-out infinite;
}
@keyframes fill-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: .55; }
}

/* CTA outline que preenche */
.ds-prod-cta {
  border: 2px solid var(--vermelho) !important;
  color: var(--vermelho) !important;
  font-family: 'Manrope', sans-serif !important;
  font-weight: 900 !important;
  letter-spacing: 0.1em !important;
  height: 46px !important;
  border-radius: 999px !important;
  background: #fff !important;
  box-shadow: inset 0 0 0 0 var(--vermelho), 0 1px 2px rgba(13,13,14,.04);
  transition: all .3s var(--ease-quick) !important;
  position: relative; overflow: hidden; z-index: 1;
}
.ds-prod-cta::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(135deg, var(--vermelho), var(--vinho));
  transform: scaleX(0); transform-origin: left;
  transition: transform .35s var(--ease-power);
}
.ds-prod-cta:hover { color: #fff !important; box-shadow: var(--sh-red) !important; border-color: var(--vinho) !important; }
.ds-prod-cta:hover::before { transform: scaleX(1) }
.ds-prod-cta:disabled { border-color: rgba(13,13,14,.1) !important; color: rgba(13,13,14,.3) !important; }

/* Controle de quantidade que aparece após adicionar */
.ds-prod-cta-wrap { margin-top: 6px; }
.ds-prod-cta-qtd {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; height: 46px;
  padding: 4px;
  background: linear-gradient(135deg, var(--verde, #00875a), #34d399);
  color: #fff;
  border-radius: 999px;
  box-shadow: 0 4px 12px rgba(0,135,90,.3), inset 0 1px 0 rgba(255,255,255,.3);
  animation: cta-pop .3s var(--ease-spring);
}
@keyframes cta-pop {
  from { transform: scale(.9); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}
.ds-prod-cta-qtd button {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,.18);
  color: #fff;
  font-size: 18px; font-weight: 900;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all .15s var(--ease-spring);
}
.ds-prod-cta-qtd button:hover {
  background: #fff;
  color: var(--verde, #00875a);
  transform: scale(1.08);
}
.ds-prod-cta-qtd-num {
  font-family: 'Manrope', sans-serif;
  font-size: 18px; font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.ds-prod-cta-qtd small {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: .85;
}

/* ============================================================================
   BANNER 20 ANOS · editorial gigante outline
   ========================================================================== */
.ds-banner-meio {
  background: var(--ink) !important;
  padding: 72px 64px 96px !important;
  border-radius: 24px !important;
  position: relative; overflow: hidden;
  box-shadow: var(--sh-4) !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 56px !important;
}
.ds-banner-meio::before {
  content: '20';
  position: absolute; right: -40px; bottom: -120px;
  font-family: 'Fraunces', serif !important;
  font-size: 480px !important;
  font-weight: 900 !important;
  -webkit-text-stroke: 4px rgba(200,16,46,.2);
  -webkit-text-fill-color: transparent;
  line-height: 1;
  pointer-events: none;
  letter-spacing: -0.05em;
}
.ds-banner-meio::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(60% 50% at 20% 30%, rgba(200,16,46,.4) 0%, transparent 60%),
    radial-gradient(50% 50% at 90% 70%, rgba(255,210,0,.1) 0%, transparent 55%);
  filter: blur(40px);
  z-index: 1;
}
.ds-banner-meio .info { position: relative; z-index: 3; max-width: 640px; }
.ds-banner-meio .kicker {
  background: rgba(255,210,0,.15) !important;
  color: var(--amarelo) !important;
  border-left: 3px solid var(--amarelo);
  padding: 6px 14px !important;
  border-radius: 0 !important;
}
.ds-banner-meio h2 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(38px, 5vw, 64px) !important;
  font-weight: 900 !important;
  line-height: .96 !important;
  letter-spacing: -0.035em !important;
  color: #fff !important;
}
.ds-banner-meio h2 .accent {
  background: linear-gradient(135deg, var(--amarelo), #ff9500) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  font-style: italic;
}
.ds-banner-meio p { color: rgba(255,255,255,.78) !important; font-size: 16px !important; }
.ds-banner-meio .selo-anos { display: none !important; }

/* ===== TIMELINE 20 ANOS ===== */
.ds-timeline {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.ds-timeline-line {
  position: absolute;
  top: 12px; left: 6%; right: 6%;
  height: 2px;
  background: linear-gradient(90deg, rgba(255,210,0,0) 0%, rgba(255,210,0,.4) 8%, rgba(255,210,0,.6) 50%, rgba(200,16,46,.6) 92%, rgba(200,16,46,0) 100%);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform 1.6s var(--ease-power) .3s;
  z-index: 0;
}
.ds-banner-meio.sr-in .ds-timeline-line { transform: scaleX(1); }

.ds-timeline-step {
  position: relative;
  display: flex; flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding-top: 28px;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .7s var(--ease-quick), transform .7s var(--ease-spring);
  transition-delay: calc(var(--i) * 180ms + 600ms);
}
.ds-banner-meio.sr-in .ds-timeline-step { opacity: 1; transform: none; }

.ds-timeline-dot {
  position: absolute; top: 6px; left: 0;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--amarelo);
  box-shadow: 0 0 0 4px rgba(255,210,0,.18), 0 0 20px rgba(255,210,0,.4);
  z-index: 2;
}
.ds-timeline-step:last-child .ds-timeline-dot {
  background: var(--vermelho);
  box-shadow: 0 0 0 4px rgba(200,16,46,.25), 0 0 24px rgba(200,16,46,.5);
}
.ds-timeline-ano {
  font-family: 'Fraunces', serif;
  font-size: 28px;
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1;
}
.ds-timeline-titulo {
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.18em;
  color: var(--amarelo);
  text-transform: uppercase;
  margin-top: 2px;
}
.ds-timeline-desc {
  font-size: 12px;
  color: rgba(255,255,255,.65);
  font-weight: 500;
  line-height: 1.4;
}

@media (max-width: 720px) {
  .ds-timeline { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
  .ds-timeline-line { display: none; }
  .ds-timeline-step { padding-top: 0; padding-left: 24px; }
  .ds-timeline-dot { top: 4px; }
}
.ds-banner-meio .cta-branco {
  background: var(--amarelo) !important;
  color: var(--ink) !important;
  border-radius: 999px !important;
  padding: 16px 28px !important;
  font-weight: 900 !important;
  box-shadow: var(--sh-gold), inset 0 1px 0 rgba(255,255,255,.3) !important;
  transition: all .3s var(--ease-spring) !important;
}
.ds-banner-meio .cta-branco:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 12px 32px rgba(255,210,0,.5) !important; }

/* ============================================================================
   PROVA SOCIAL GOOGLE · estilo card premium
   ========================================================================== */
.ds-google-prova {
  background: linear-gradient(180deg, #fff, var(--cream)) !important;
  border: 1px solid rgba(13,13,14,.06) !important;
  border-radius: 18px !important;
  padding: 22px !important;
  box-shadow: var(--sh-2) !important;
  position: relative; overflow: hidden;
}
.ds-google-prova::before {
  content: ''; position: absolute; right: -40px; top: -40px;
  width: 160px; height: 160px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,210,0,.2), transparent 70%);
  pointer-events: none;
}
.ds-google-info .stars { color: var(--amarelo) !important; }
.ds-google-info strong { font-family: 'Fraunces', serif !important; font-size: 28px !important; }

/* ============================================================================
   NEWSLETTER PREMIUM · escultural dark
   ========================================================================== */
.ds-newsletter {
  background: var(--ink) !important;
  padding: 96px 0 !important;
  position: relative; overflow: hidden;
}
.ds-newsletter::before {
  content: ''; position: absolute; inset: -20%;
  background:
    radial-gradient(50% 50% at 30% 50%, rgba(200,16,46,.35) 0%, transparent 55%),
    radial-gradient(40% 50% at 80% 30%, rgba(255,210,0,.12) 0%, transparent 55%);
  filter: blur(40px);
  animation: dark-mesh 18s ease-in-out infinite alternate;
}
.ds-newsletter h2 {
  font-family: 'Fraunces', serif !important;
  font-weight: 900 !important;
  font-size: clamp(32px, 4vw, 52px) !important;
  letter-spacing: -0.03em !important;
  line-height: 1 !important;
}
.ds-newsletter h2 .accent {
  background: linear-gradient(135deg, var(--amarelo), #ff9500) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  font-style: italic;
}
.ds-newsletter-form input {
  background: rgba(255,255,255,.06) !important;
  border: 2px solid rgba(255,255,255,.12) !important;
  height: 58px !important;
  font-size: 15px !important;
  font-weight: 600;
}
.ds-newsletter-form input:focus { border-color: var(--amarelo) !important; background: rgba(255,255,255,.1) !important; box-shadow: 0 0 0 6px rgba(255,210,0,.12) !important; }
.ds-newsletter-form button {
  background: var(--amarelo) !important;
  color: var(--ink) !important;
  height: 58px !important;
  font-weight: 900 !important;
  box-shadow: var(--sh-gold) !important;
}

/* ============================================================================
   DEPOIMENTOS REAIS · carrossel scroll snap
   ========================================================================== */
.ds-depoimentos {
  position: relative;
}
.ds-depoimentos-head {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.ds-depoimentos-head small {
  color: var(--text-muted, #666);
  font-size: 12px;
  letter-spacing: 0.04em;
}
.ds-depoimentos-scroll {
  display: flex; gap: 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 4px 0 20px;
  scrollbar-width: none; -ms-overflow-style: none;
  margin: 0 -24px; padding-left: 24px; padding-right: 24px;
}
.ds-depoimentos-scroll::-webkit-scrollbar { display: none; }
.ds-depoimento {
  flex: 0 0 380px;
  scroll-snap-align: start;
  background: #fff;
  border: 1px solid rgba(13,13,14,.06);
  border-radius: 18px;
  padding: 22px;
  box-shadow: var(--sh-1);
  display: flex; flex-direction: column; gap: 12px;
  transition: all .3s var(--ease-spring);
  position: relative;
  isolation: isolate;
}
.ds-depoimento::before {
  content: '"';
  position: absolute;
  top: 8px; right: 14px;
  font-family: 'Fraunces', serif;
  font-size: 88px;
  font-weight: 900;
  color: rgba(200,16,46,.08);
  line-height: 1;
  pointer-events: none;
  z-index: 0;
}
.ds-depoimento:hover {
  transform: translateY(-6px);
  box-shadow: var(--sh-3);
  border-color: rgba(13,13,14,.1);
}
.ds-depoimento > * { position: relative; z-index: 1; }

.ds-depoimento-head {
  display: flex; align-items: center; gap: 12px;
}
.ds-depoimento-avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff;
  font-family: 'Manrope', sans-serif;
  font-size: 14px; font-weight: 900;
  letter-spacing: 0.02em;
  box-shadow: 0 4px 8px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.2);
  flex-shrink: 0;
}
.ds-depoimento-info { flex: 1; line-height: 1.2; min-width: 0; }
.ds-depoimento-info strong {
  display: block;
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
}
.ds-depoimento-stars {
  display: block;
  color: var(--amarelo);
  font-size: 14px;
  letter-spacing: 1px;
  margin-top: 2px;
}
.ds-depoimento-g {
  flex-shrink: 0;
}
.ds-depoimento-texto {
  font-family: 'Fraunces', serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--ink-2);
  letter-spacing: -0.005em;
  font-style: italic;
  margin: 0;
}
.ds-depoimento-foot {
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px dashed rgba(13,13,14,.08);
}
.ds-depoimento-foot small {
  color: var(--text-muted, #666);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

@media (max-width: 540px) {
  .ds-depoimento { flex: 0 0 88vw; padding: 18px; }
}

/* ============================================================================
   NEWSLETTER PRO · cupom destaque + form premium + social proof
   ========================================================================== */
.ds-newsletter-pro {
  background: var(--ink) !important;
  position: relative; overflow: hidden;
  padding: 120px 0 !important;
}
.ds-newsletter-pro::before {
  content: ''; position: absolute; inset: -10%; z-index: 0;
  background:
    radial-gradient(45% 50% at 20% 30%, rgba(200,16,46,.4) 0%, transparent 60%),
    radial-gradient(40% 50% at 80% 70%, rgba(255,210,0,.18) 0%, transparent 55%),
    radial-gradient(35% 40% at 60% 30%, rgba(110,10,26,.5) 0%, transparent 55%);
  filter: blur(40px);
  animation: dark-mesh 20s ease-in-out infinite alternate;
}
.ds-newsletter-pro::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.4 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  opacity: .04; mix-blend-mode: overlay;
}

/* "10% OFF" outline gigante atrás */
.nw-outline {
  position: absolute; bottom: -40px; right: -60px; z-index: 0;
  font-family: 'Fraunces', serif;
  font-size: clamp(180px, 28vw, 460px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.06em;
  -webkit-text-stroke: 2px rgba(255,210,0,.18);
  -webkit-text-fill-color: transparent;
  color: transparent;
  pointer-events: none;
  white-space: nowrap;
}

.nw-grid {
  position: relative; z-index: 2;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 80px; align-items: center;
}

/* ESQUERDA */
.nw-left { color: #fff; }
.nw-tag {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px;
  background: linear-gradient(90deg, rgba(255,210,0,.18), rgba(255,210,0,.04));
  border-left: 3px solid var(--amarelo);
  color: var(--amarelo);
  font-size: 11px; font-weight: 900;
  letter-spacing: 0.18em; text-transform: uppercase;
  margin-bottom: 22px;
}
.nw-left h2 {
  font-family: 'Fraunces', serif;
  font-size: clamp(40px, 5.5vw, 78px) !important;
  font-weight: 900;
  line-height: .94;
  letter-spacing: -0.035em;
  color: #fff;
  margin-bottom: 18px;
}
.nw-left h2 .accent {
  background: linear-gradient(135deg, var(--amarelo) 0%, #ff9500 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: italic;
  display: inline-block;
  text-shadow: 0 4px 24px rgba(255,210,0,.3);
}
.nw-left p {
  font-size: 17px; line-height: 1.55;
  color: rgba(255,255,255,.78);
  margin-bottom: 28px;
  max-width: 480px;
}
.nw-left p strong { color: #fff; }

.nw-bullets {
  list-style: none; padding: 0; margin: 0 0 32px;
  display: flex; flex-direction: column; gap: 14px;
}
.nw-bullets li {
  display: flex; align-items: center; gap: 14px;
  font-size: 15px; color: rgba(255,255,255,.88);
  font-weight: 500;
}
.nw-bullets li strong { color: var(--amarelo); font-weight: 800; }
.nw-bullet-ic {
  flex-shrink: 0;
  width: 32px; height: 32px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: inset 0 0 0 1px currentColor;
}

/* Social proof */
.nw-social {
  display: inline-flex; align-items: center; gap: 14px;
  padding: 12px 16px 12px 12px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.nw-avatares { display: inline-flex; }
.nw-avatares span {
  width: 32px; height: 32px; border-radius: 50%;
  margin-left: -8px; border: 2px solid var(--ink);
  display: inline-block;
  background-size: cover; background-position: center;
}
.nw-avatares span:first-child { margin-left: 0; }
.nw-social-txt { line-height: 1.1; color: #fff; }
.nw-social-txt strong { font-size: 17px; font-weight: 900; color: var(--amarelo); font-family: 'Fraunces', serif; }
.nw-social-txt small { display: block; font-size: 12px; color: rgba(255,255,255,.7); margin-top: 2px; }

/* CARD DA DIREITA */
.nw-card {
  position: relative;
  background: linear-gradient(180deg, #fff 0%, var(--cream) 100%);
  border-radius: 24px;
  padding: 36px;
  box-shadow:
    0 4px 12px rgba(0,0,0,.2),
    0 24px 48px rgba(0,0,0,.32),
    0 48px 96px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.6) !important;
  display: flex; flex-direction: column; gap: 18px;
  border: 1px solid rgba(255,255,255,.6);
}
.nw-card::before {
  content: ''; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px;
  border-radius: 24px;
  background: linear-gradient(135deg, var(--amarelo), transparent 30%, transparent 70%, var(--vermelho));
  z-index: -1;
  opacity: .6;
  filter: blur(20px);
}

.nw-card-head {
  text-align: center;
  padding: 20px 16px;
  background: linear-gradient(135deg, var(--ink) 0%, var(--vinho) 100%);
  border-radius: 16px;
  margin-bottom: 8px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(110,10,26,.25);
}
.nw-card-head::before {
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(40% 50% at 50% 0%, rgba(255,210,0,.2), transparent 60%);
  pointer-events: none;
}
.nw-cupom-tag {
  display: inline-block;
  font-size: 10px; font-weight: 800; letter-spacing: 0.24em;
  color: rgba(255,255,255,.6); margin-bottom: 6px;
}
.nw-cupom-code {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: 42px; font-weight: 900;
  color: var(--amarelo);
  letter-spacing: -0.02em;
  line-height: 1;
  text-shadow: 0 2px 12px rgba(255,210,0,.4);
  font-style: italic;
}
.nw-card-head small {
  display: block;
  font-size: 11px; color: rgba(255,255,255,.7);
  margin-top: 6px; letter-spacing: 0.06em;
  font-weight: 600;
}

/* Floating label input */
.nw-field {
  position: relative;
}
.nw-field input {
  width: 100%;
  height: 60px;
  padding: 20px 18px 6px 46px;
  background: #fff;
  border: 2px solid var(--ice);
  border-radius: 14px;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  outline: none;
  transition: all .25s var(--ease-quick);
  font-family: inherit;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.02);
}
.nw-field input:hover { border-color: var(--ice-2); }
.nw-field input:focus {
  border-color: var(--vermelho);
  box-shadow: 0 0 0 4px rgba(200,16,46,.1), inset 0 1px 2px rgba(0,0,0,.02);
}
.nw-field label {
  position: absolute;
  left: 46px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: rgba(13,13,14,.45);
  pointer-events: none;
  transition: all .25s var(--ease-spring);
  background: transparent;
  font-weight: 500;
}
.nw-field input:focus + label,
.nw-field input:not(:placeholder-shown) + label {
  top: 12px;
  left: 18px;
  font-size: 10px;
  color: var(--vermelho);
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.nw-field-ic {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(13,13,14,.4);
  pointer-events: none;
  transition: color .25s;
}
.nw-field input:focus ~ .nw-field-ic { color: var(--vermelho); }

/* CTA gigante */
.nw-cta {
  width: 100%;
  height: 64px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--vermelho) 0%, var(--vermelho-2) 100%);
  color: #fff;
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.12em;
  border: none;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  box-shadow: var(--sh-red), inset 0 1px 0 rgba(255,255,255,.3);
  position: relative; overflow: hidden;
  transition: all .25s var(--ease-spring);
}
.nw-cta:hover {
  transform: translateY(-3px) scale(1.01);
  box-shadow: 0 8px 16px rgba(200,16,46,.3), 0 32px 64px rgba(200,16,46,.4), inset 0 1px 0 rgba(255,255,255,.3);
}
.nw-cta:active { transform: translateY(-1px); }
.nw-cta svg { transition: transform .25s; }
.nw-cta:hover svg { transform: translateX(4px); }

.nw-lgpd-mini {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px;
  color: rgba(13,13,14,.45);
  letter-spacing: 0.02em;
  justify-content: center;
  margin-top: -4px;
}

@media (max-width: 920px) {
  .nw-grid { grid-template-columns: 1fr; gap: 40px; }
  .ds-newsletter-pro { padding: 80px 0 !important; }
}
@media (max-width: 540px) {
  .nw-card { padding: 24px; }
  .nw-cupom-code { font-size: 32px; }
  .nw-left h2 { font-size: 42px !important; }
}

/* ============================================================================
   FOOTER ESCULTURAL · INOVA gigante outline + 5 cols
   ========================================================================== */
.ds-footer {
  background: #fff !important;
  border-top: 1px solid rgba(13,13,14,.06) !important;
  position: relative; overflow: hidden;
  padding-top: 80px !important;
}
.ds-footer::before {
  content: 'INOVA';
  position: absolute; bottom: 60px; left: 50%;
  transform: translateX(-50%);
  font-family: 'Fraunces', serif;
  font-size: clamp(120px, 18vw, 320px);
  font-weight: 900;
  -webkit-text-stroke: 1px rgba(13,13,14,.05);
  -webkit-text-fill-color: transparent;
  color: transparent;
  pointer-events: none;
  letter-spacing: -0.05em;
  z-index: 0;
  line-height: 1;
}
.ds-footer > .container { position: relative; z-index: 2 }
.ds-footer-col h4 {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 900 !important;
  letter-spacing: 0.18em !important;
  font-size: 11px !important;
  color: var(--ink) !important;
}
.ds-footer-col h4::after { background: var(--vermelho) !important; height: 2px !important; max-width: 24px !important; }
.ds-footer-col ul li a:hover { color: var(--vermelho) !important; }
.ds-footer-creditos { background: var(--ink) !important; }
.ds-selo-card {
  background: #fff !important;
  border: 1px solid rgba(13,13,14,.06) !important;
  box-shadow: var(--sh-1) !important;
  transition: all .25s var(--ease-spring) !important;
}
.ds-selo-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: var(--sh-2) !important;
  border-color: var(--vermelho) !important;
}
.ds-selo-card strong { font-family: 'Fraunces', serif !important; }

/* ============================================================================
   ASSISTENTE leIA · cards premium
   ========================================================================== */
.assistente-card {
  background: #fff !important;
  border: none !important;
  border-radius: 18px !important;
  padding: 24px 16px !important;
  box-shadow: var(--sh-1) !important;
  transition: all .35s var(--ease-spring) !important;
  position: relative; overflow: hidden;
}
.assistente-card::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(135deg, rgba(0,135,90,.06), transparent);
  opacity: 0; transition: opacity .3s;
}
.assistente-card:hover::before { opacity: 1 }
.assistente-card > * { position: relative; z-index: 2 }
.assistente-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: var(--sh-3), 0 0 0 1px rgba(0,135,90,.2) !important;
}
.assistente-card span:first-child { transition: transform .35s var(--ease-spring); }
.assistente-card:hover span:first-child { transform: scale(1.2) rotate(-8deg) }

/* ============================================================================
   MICROINTERAÇÕES · scroll progress, magnetic, cursor
   ========================================================================== */
.scroll-progress {
  position: fixed; top: 0; left: 0; right: 0;
  height: 3px; z-index: 100; pointer-events: none;
  background: rgba(13,13,14,.04);
}
.scroll-progress-bar {
  height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--vermelho), var(--amarelo), var(--vermelho));
  background-size: 200% 100%;
  animation: scroll-grad 3s linear infinite;
  transition: width .15s var(--ease-quick);
}
@keyframes scroll-grad { to { background-position: -200% 0; } }

/* Custom cursor */
.custom-cursor {
  position: fixed; top: 0; left: 0;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--vermelho);
  pointer-events: none; z-index: 999;
  transform: translate(-50%,-50%);
  mix-blend-mode: difference;
  transition: width .25s var(--ease-spring), height .25s var(--ease-spring), background .2s;
}
.custom-cursor.is-link { width: 40px; height: 40px; background: var(--amarelo); }
.custom-cursor.is-hidden { opacity: 0 }
@media (pointer: coarse) { .custom-cursor { display: none } }

/* Reveal sequenciado de letras (h1.split-letters) */
.split-letters span {
  display: inline-block; opacity: 0;
  transform: translateY(40px) rotateX(-40deg);
  transform-origin: 50% 100%;
  transition: opacity .8s var(--ease-quick), transform .8s var(--ease-spring);
}
.split-letters.is-in span { opacity: 1; transform: none }

/* Tilt 3D real (controlado pelo JS) */
.tilt-3d { transform-style: preserve-3d; will-change: transform; }
.tilt-3d-inner { transform-style: preserve-3d; }

/* ============================================================================
   SCROLL REVEAL premium (cada elemento entra com fade+slide+scale)
   ========================================================================== */
.sr-prep {
  opacity: 0;
  transform: translateY(36px) scale(.985);
  transition:
    opacity .9s var(--ease-quick) var(--sr-delay, 0ms),
    transform .9s var(--ease-spring) var(--sr-delay, 0ms);
  will-change: opacity, transform;
}
.sr-in {
  opacity: 1 !important;
  transform: translateY(0) scale(1) !important;
}
@media (prefers-reduced-motion: reduce) {
  .sr-prep { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Header shrink ao rolar */
.ds-header.is-shrunk .ds-header-row { padding-top: 8px !important; padding-bottom: 8px !important; }
.ds-header.is-shrunk .ds-logo img { height: 38px !important; transition: height .25s var(--ease-quick); }
.ds-header.is-shrunk { background: rgba(255,255,255,.98) !important; box-shadow: var(--sh-3) !important; }
.ds-logo img { transition: height .25s var(--ease-quick); }
.ds-header-row { transition: padding .25s var(--ease-quick); }

/* Hero content fade controlado pelo JS — só prepara will-change */
.ds-hero-content { will-change: opacity, transform; }

/* Marquee reverse alternativo (segunda marquee opcional) */
.ds-marquee + .ds-marquee .ds-marquee-track { animation-direction: reverse; }
.ds-marquee-track { will-change: transform; }

/* Imagens com lazy reveal especial */
.ds-prod-foto img,
.ds-story-ring-inner img,
figure.inova-tilt img { will-change: transform; }

/* ============================================================================
   POLISH FINAL · seções de fotos reais
   ========================================================================== */
.fotos-reais-grid img, .ds-section figure img { border-radius: 18px; }
figure.inova-tilt {
  position: relative; overflow: hidden;
  border-radius: 24px !important;
  box-shadow: var(--sh-3) !important;
  transition: all .4s var(--ease-spring);
}
figure.inova-tilt:hover { transform: translateY(-6px) scale(1.01); box-shadow: var(--sh-4) !important; }

/* RESPONSIVO */
@media (max-width: 980px) {
  .ds-banner-meio::before { font-size: 280px !important; right: -20px; bottom: -80px; }
  .ds-hero-content h1 { font-size: clamp(36px, 8vw, 56px) !important; }
}
@media (max-width: 640px) {
  .ds-section { padding: 64px 0 !important; }
  .ds-banner-meio { padding: 48px 24px !important; }
  .ds-banner-meio::before { font-size: 200px !important; }
  .ds-prod-preco .por { font-size: 26px !important; }
}

/* prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after {
    animation: none !important;
    transition: none !important;
  }
}
