/* =========================================
   Paleta
   ========================================= */
:root{
  --rose:#d131f9;      /* principal */
  --rose-600:#b027d1;  /* hover/ativo */
  --rose-100:#f4ddff;  /* fundos claros */
  --blue:#7ad5de;      /* secundária */
  --blue-600:#57c0cb;  /* hover/ativo */
  --blue-100:#e7fbfd;

  --gray-50:#f7f7f7;
  --gray-100:#efefef;
  --gray-300:#dcdcdc;
  --gray-600:#6b6b6b;
  --black:#111;
  --white:#fff;
}

/* =========================================
   Reset básico / base
   ========================================= */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--black);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.container{width:min(1200px,92vw);margin-inline:auto}

/* Acessibilidade de foco */
:focus-visible{
  outline:3px solid var(--blue);
  outline-offset:2px;
  border-radius:8px;
}

/* =========================================
   Top strip / Marquee (versão final com track)
   ========================================= */
.topstrip{
  background:#d131f9;           /* rosa: d131f9 */
  height:28px;                  /* linha fina */
  display:flex;
  align-items:center;
  overflow:hidden;
}
.marquee{
  position:relative;
  width:100%;
  overflow:hidden;
  line-height:1;
}
.marquee-track{
  display:inline-block;
  white-space:nowrap;
  will-change: transform;
  animation: marquee var(--marquee-speed, 14s) linear infinite;
}
.marquee-track > span{
  display:inline-block;
  padding:0 2rem;
  color:#fff;
  font-size:.78rem;
  letter-spacing:.04em;
}
.marquee:hover .marquee-track{ animation-play-state: paused; }
@keyframes marquee{
  0%   { transform: translate3d(0,0,0); }
  100% { transform: translate3d(-50%,0,0); }
}
@media (prefers-reduced-motion: reduce){
  .marquee-track{ animation: none; transform:none; }
}

/* =========================================
   Navbar
   ========================================= */
.navbar{position:sticky; top:0; z-index:50; background:var(--white); border-bottom:1px solid var(--gray-100)}
.nav-inner{display:flex; align-items:center; justify-content:space-between; height:68px}
.logo{height:34px; width:auto; display:block}

.nav-links{display:flex; align-items:center; gap:28px}
.nav-link{
  position:relative; font-weight:300; text-decoration:none; color:var(--black); padding:6px 0;
}
.nav-link::after{
  content:""; position:absolute; left:0; bottom:-2px; height:2px; width:100%;
  background:linear-gradient(90deg, var(--rose), var(--blue));
  transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.nav-link:hover::after,
.nav-link:focus-visible::after{transform:scaleX(1)}

.nav-toggle{display:none; background:transparent; border:0; padding:6px; cursor:pointer}
.nav-toggle span{display:block; width:22px; height:2px; background:var(--black); margin:4px 0; transition:all .2s}

/* Menu mobile (versão final fixa) */
.nav-mobile {
  position: fixed;
  top: 70px; /* abaixo da navbar */
  left: 0;
  right: 0;
  display: none;
  flex-direction: column;
  gap: 18px;
  background: #fff;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  z-index: 1000;
}
.nav-mobile a {
  font-size: 16px;
  font-weight: 500;
  color: #222;
  text-decoration: none;
  transition: color 0.2s ease;
}
.nav-mobile a:hover { color: #d131f9; }
.nav-mobile.open { display: flex; }
.no-scroll { overflow: hidden; }

/* Ícone de carrinho */
.cart-icon{
  color: var(--rose);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: 24px;
  transition: transform .2s ease, filter .2s ease;
}
.cart-icon:hover{
  transform: scale(1.1);
  filter: brightness(1.15);
}

/* =========================================
   Sections
   ========================================= */
.section{padding:64px 0}
.section-title{font-size:1.6rem; margin:0 0 24px}
.section-title--light{color:var(--white)}

/* =========================================
   Hero — imagem fullwidth (desktop/mobile)
   ========================================= */
.hero-full {
  position: relative;
  width: 100%;
  height: 100vh; /* ocupa toda a altura da tela */
  overflow: hidden;
}
.hero-bg {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  transition: transform 1s ease;
}
/* alterna imagens por breakpoint */
.hero-desktop { display:block; }
.hero-mobile  { display:none; }
@media (max-width: 768px){
  .hero-desktop { display:none; }
  .hero-mobile  { display:block; }
}

/* Ajuste do tamanho da imagem da hero apenas no mobile */
@media (max-width: 768px) {
  .hero-full { height: auto; }
  .hero-mobile{
    display:block;
    width:100%;
    height:auto;
    max-height:980px;
    object-fit:contain;
    object-position:center;
    position:relative;
  }
}

/* Hero (variante legacy – se usada em outra seção) */
.hero{padding:72px 0}
.hero-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:32px; align-items:center}

/* Título principal da Hero (menor – ajuste final) */
.hero-headline{
  font-size: clamp(1.6rem, 2.8vw + 0.8rem, 3rem);
  line-height: 1.1;
  margin: 0 0 24px;
  font-weight: 900;
  letter-spacing: -0.02em;
  max-width: 28ch;
}
.gradient-text{
  background: linear-gradient(90deg, var(--rose), var(--blue));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Hero image (se usado) – último ajuste */
.hero-img{
  width:150%;
  max-width:none;
  height:auto;
  display:block;
  object-fit:contain;
  border:none; border-radius:0; box-shadow:none;
  margin-left:-10%;
}

/* =========================================
   Botões
   ========================================= */
.btn{
  display:inline-block; text-decoration:none; cursor:pointer;
  border-radius:999px; padding:12px 22px; font-weight:700; transition:.2s ease;
}
.btn-rose{background:var(--rose); color:var(--white)}
.btn-rose:hover{background:var(--rose-600)}
.btn-dark{background:#1a1a1a; color:var(--white)}
.btn-dark:hover{filter:brightness(1.08)}
.btn-full{display:block; text-align:center}

/* Botão da Hero — versão final (maior) */
.btn-hero{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:24px 64px;
  font-size:1.25rem; line-height:1.1; font-weight:800; letter-spacing:.02em;
  border-radius:999px;
  background:var(--rose); color:var(--white);
  box-shadow:0 20px 40px rgba(209,49,249,.3);
  transform:translateY(0);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn-hero:hover{
  transform:translateY(-3px);
  box-shadow:0 26px 48px rgba(209,49,249,.38);
  filter:brightness(1.03);
}
.btn-hero:focus-visible{
  outline:4px solid var(--blue);
  outline-offset:3px;
}
@media (max-width: 640px){
  .btn-hero{
    width:100%;
    padding:22px 0;
    font-size:1.15rem;
  }
}

/* =========================================
   Zoom image section
   ========================================= */
.zoom-only{padding:96px 0; background:linear-gradient(180deg, var(--white), var(--blue-100))}
.center-wrap{display:flex; justify-content:center; align-items:center}
.zoom-target{
  width:min(700px, 80vw);
  max-width:100%;
  transition:transform .5s ease, filter .5s ease;
  transform:scale(.9);
  filter:drop-shadow(0 10px 25px rgba(0,0,0,.08));
  border-radius:16px;
}
.zoom-target.in-focus{transform:scale(1.03)}

/* =========================================
   Products
   ========================================= */
.products{background:var(--white)}
.products--rose{background:linear-gradient(180deg, var(--rose) 0%, #e687ff 100%)}
.cards-grid{display:grid; gap:20px; grid-template-columns:repeat(3,1fr); align-items:stretch}
.card{
  background:var(--white); border:1px solid var(--gray-100);
  border-radius:18px; padding:18px; display:flex; flex-direction:column; gap:12px;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  height:100%;
}
.card:hover{transform:translateY(-4px); box-shadow:0 12px 26px rgba(0,0,0,.08); border-color:var(--blue-100)}
.card--shadow{box-shadow:0 10px 28px rgba(0,0,0,.08)}

/* Layout produto */
.product-card{ display:grid; grid-template-rows:auto 1fr auto; gap:12px; height:100%; }
.card-media{position:relative}
.badge-free{
  position:absolute; top:10px; left:10px;
  background:var(--black); color:var(--white);
  font-size:.72rem; font-weight:700; letter-spacing:.02em;
  padding:6px 10px; border-radius:999px; box-shadow:0 6px 14px rgba(0,0,0,.18);
}
/* Box de imagem padronizado */
.img-box{
  height:220px; display:flex; align-items:center; justify-content:center; padding:10px;
}
#sec-produtos-1 .img-box{ height:200px; }
.product-img{ width:100%; height:100%; object-fit:contain; display:block; }

/* Conteúdo do card */
.card-body{ display:grid; grid-template-rows:auto auto auto auto; gap:8px; }
.u-upper{text-transform:uppercase} .u-thin{font-weight:300}
.card-title{
  text-align:center; font-size:1rem; margin:0; min-height:44px;
  display:grid; align-items:center; justify-items:center;
}

/* Estrelas */
.stars{
  position:relative; display:inline-grid; grid-auto-flow:column;
  align-items:center; justify-content:center; gap:6px; font-size:0;
}
.stars-bg span, .stars-fill span{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
  font-size:16px; letter-spacing:2px; line-height:1;
}
.stars-bg span{ color:#dcdcdc; }
.stars-fill{
  position:absolute; inset:0 auto 0 0; width:0%; overflow:hidden; white-space:nowrap; pointer-events:none;
}
.stars-fill span{ color:#f5b400; }
.stars-count{ font-size:.82rem; color:#666; }

/* Preços */
.price-row{
  display:grid; grid-auto-flow:column; align-items:baseline; justify-content:center; gap:10px;
}
.price-old{ font-size:1.1rem; color:#777; text-decoration:line-through; }
.price-now{ font-size:1.35rem; font-weight:800; color:var(--black); }
.installments, .monthly{ margin:0; text-align:center; color:#333; font-size:.95rem; }

/* Ações */
.card-actions{ margin-top:4px; }
.btn-cart{
  width:100%; padding:14px 22px; font-size:1rem; border-radius:12px;
  background:var(--rose); color:var(--white); border:none; cursor:pointer;
  transition:transform .15s ease, filter .15s ease;
}
.btn-cart:hover{ filter:brightness(1.06); transform:translateY(-1px); }

/* =========================================
   Sessões de produto (Story) — layout e temas (versão final)
   ========================================= */
.story{ overflow:hidden; }
.story-grid{
  display:grid; grid-template-columns:1.1fr .9fr;
  gap:28px; align-items:center;
  min-height:clamp(420px, 62vh, 680px);
}
.story-media{ display:flex; align-items:center; justify-content:center; }
.story-img{
  width:min(700px, 90%);
  max-width:100%;
  height:auto;
  display:block;
  object-fit:contain;
  transform:translateX(0);
  transition:transform .7s cubic-bezier(.2,.7,.2,1), opacity .7s ease;
}
.story-text{
  color:#fff;
  opacity:0;
  transform:translateX(8vw);
  transition:transform .7s cubic-bezier(.2,.7,.2,1), opacity .7s ease;
}
.story-title{
  margin:0 0 12px;
  font-size:clamp(1.4rem, 1.6vw + 1rem, 2.2rem);
  font-weight:900; letter-spacing:-.02em;
}
.story-copy{
  margin:0 0 16px;
  font-size:clamp(1rem, .6vw + .9rem, 1.15rem);
  line-height:1.55;
}

/* Fundos por tema */
.story--rose{ background: linear-gradient(180deg, var(--rose) 0%, #e687ff 100%); }
.story--blue{ background: linear-gradient(180deg, var(--blue) 0%, #b8eef3 100%); }
.story--white{ background:#fff; }
.story--white .story-text{ color:#222; }
.story--white .btn.btn-dark{ background:#111; color:#fff; }

/* Animação ao entrar em viewport */
.story.in-view .story-img{ transform: translateX(-8vw) scale(1.02); }
.story.in-view .story-text{ opacity:1; transform:translateX(0); }

/* Ajuste geral: reduzir tamanho padrão das imagens das sessões (versão final sem !important) */
.story-img{
  width:min(480px, 75%);
  max-width:70%;
}

/* Ajuste específico — três sessões de produto (último ajuste) */
#produto-cimicifuga .story-img,
#produto-vitaminas .story-img,
#produto-spray   .story-img {
  width: 320px;
  max-width: 40%;
  height: auto;
  object-fit: contain;
  margin: 0 auto;
  transition: transform 0.3s ease;
}
/* efeito leve ao rolar */
.story.in-view .story-img { transform: translateY(-10px) scale(1.03); }

/* =========================================
   Embaixadores
   ========================================= */
.ambassadors{background:var(--gray-50)}
.ambassadors-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:stretch}
.amb-card{
  background:linear-gradient(135deg, var(--rose) 0%, #e687ff 100%);
  color:var(--white); border-radius:18px; padding:28px; min-height:220px;
  display:flex; align-items:center; justify-content:center; text-align:center;
  box-shadow:0 12px 30px rgba(209,49,249,.25);
}
.amb-card h3{font-size:1.6rem; margin:0}
.amb-content{display:flex; flex-direction:column; justify-content:center; padding:8px 6px}
.amb-title{margin:0 0 10px; font-size:1.25rem}
.amb-text{margin:0 0 18px; color:#333}

/* =========================================
   Instagram — Embeds oficiais (Reels)
   ========================================= */
.insta-embed-grid{
  display:grid; gap:24px; grid-template-columns:repeat(4, 1fr);
}
@media (max-width: 1200px){ .insta-embed-grid{ grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px) { .insta-embed-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .insta-embed-grid{ grid-template-columns: 1fr; } }

.instagram-media{
  max-width:100% !important; width:100% !important; min-width:0 !important;
  margin:0 auto !important;
  box-shadow:0 1px 10px rgba(0,0,0,.08);
  border-radius:8px;
  background:#fff;
}

/* =========================================
   Footer
   ========================================= */
.footer{background:#f4f4f4; padding:30px 0; border-top:1px solid var(--gray-100)}
.footer-grid{display:grid; grid-template-columns:1fr 2fr 1fr; gap:16px; align-items:center}
.footer-brand{font-weight:800; text-decoration:none; color:var(--black)}
.footer-links{display:flex; flex-wrap:wrap; gap:14px}
.footer-links a{text-decoration:none; color:#222}
.socials{display:flex; gap:12px; justify-content:flex-end}
.social{color:var(--rose); display:inline-flex}
.social:hover{color:var(--blue)}
copyright,.copyright{color:#555; font-size:.95rem}

/* =========================================
   WhatsApp FAB
   ========================================= */
.whatsapp-fab{
  position:fixed; right:18px; bottom:18px;
  background:var(--rose); color:var(--white);
  width:56px; height:56px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px rgba(0,0,0,.22);
  text-decoration:none; transition:transform .2s ease, box-shadow .2s ease;
  z-index:60;
}
.whatsapp-fab:hover{transform:translateY(-2px); box-shadow:0 12px 28px rgba(0,0,0,.26)}

/* =========================================
   Modais (Carrinho / Cadastro)
   ========================================= */
.modal {
  position: fixed; inset: 0;
  background: rgba(0, 0, 0, 0.45);
  display: none; align-items: center; justify-content: center;
  z-index: 2000; transition: opacity 0.3s ease; opacity: 0;
}
.modal.show { display:flex; opacity:1; }
.modal-content{
  background:#fff; padding:32px 24px; border-radius:16px;
  max-width:400px; width:90%; text-align:center;
  box-shadow:0 10px 40px rgba(0,0,0,0.2);
  animation: zoomIn 0.3s ease;
}
.modal-content h2{ font-size:22px; color:#d131f9; margin-bottom:8px; }
.modal-content p{ color:#444; font-size:16px; }
.close-modal{
  position:absolute; top:18px; right:22px;
  background:transparent; border:none; font-size:26px; color:#999; cursor:pointer;
  transition:color .2s ease;
}
.close-modal:hover{ color:#d131f9; }
@keyframes zoomIn{
  from{ transform:scale(0.9); opacity:0; }
  to  { transform:scale(1);   opacity:1; }
}
/* Modal de Cadastro — títulos */
#cadastroModal .modal-content h2{
  color:#d131f9; font-size:24px; margin-bottom:10px;
}
#cadastroModal .modal-content p{ color:#333; font-size:16px; }

/* =========================================
   Responsividade
   ========================================= */
@media (max-width: 1024px){
  .hero-grid{grid-template-columns:1fr; gap:18px}
  .ambassadors-grid{grid-template-columns:1fr; gap:16px}
}
@media (max-width: 960px){
  .story-grid{ grid-template-columns:1fr; gap:18px; text-align:center; }
  .story.in-view .story-img{ transform: translateX(0) scale(1.02); }
  .story-text{ transform: translateY(12px); }
  .story.in-view .story-text{ transform: translateY(0); }
}
@media (max-width: 860px){
  .cards-grid{grid-template-columns:1fr 1fr}
  .nav-links{display:none}
  .nav-toggle{display:block}
}
@media (max-width: 768px){
  .cart-icon{ margin-left:12px; width:26px; height:26px; }
  /* imagens das sessões de produto ainda menores no mobile */
  #produto-cimicifuga .story-img,
  #produto-vitaminas .story-img,
  #produto-spray   .story-img {
    width: 240px;
    max-width: 70%;
  }
}
@media (max-width: 520px){
  .cards-grid{grid-template-columns:1fr}
  .section{padding:48px 0}
  .hero{padding:56px 0}
  .img-box{height:180px}
  #sec-produtos-1 .img-box{height:170px}
}

/* Respeita usuários que preferem menos animação */
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important}
  .story-img, .story-text{
    transform:none !important; opacity:1 !important;
  }
}
/* ===== Ajuste fino do tamanho das imagens nas sessões de produto ===== */
#produto-cimicifuga .story-img,
#produto-vitaminas .story-img,
#produto-spray   .story-img {
  width: clamp(140px, 24vw, 220px);
  max-width: 30%;
  height: auto;
  object-fit: contain;
  margin: 0 auto;
  transition: transform 0.3s ease;
}

/* Efeito leve ao aparecer */
.story.in-view .story-img {
  transform: translateY(-6px) scale(1.02);
}

/* Versão mobile ainda menor */
@media (max-width: 768px) {
  #produto-cimicifuga .story-img,
  #produto-vitaminas .story-img,
  #produto-spray   .story-img {
    width: clamp(120px, 50vw, 180px);
    max-width: 40%;
  }
}
/* ===== Cart: contador no ícone ===== */
.cart-icon{ position: relative; }
.cart-count-badge{
  position:absolute;
  top:-6px; right:-8px;
  min-width:20px; height:20px;
  padding:0 6px;
  border-radius:999px;
  background:#d131f9; color:#fff;
  font-size:.74rem; font-weight:800;
  line-height:20px; text-align:center;
  box-shadow:0 4px 12px rgba(209,49,249,.35);
  transform:scale(0); transform-origin:100% 0;
  transition:transform .18s ease;
}
.cart-count-badge.show{ transform:scale(1); }

/* ===== Cart: badge “adicionado ao carrinho” no card ===== */
.added-badge{
  position:absolute;
  top:12px; right:12px;
  background:#111; color:#fff;
  font-size:.78rem; font-weight:700;
  padding:8px 12px; border-radius:999px;
  box-shadow:0 10px 22px rgba(0,0,0,.18);
  opacity:0; transform:translateY(-8px);
  animation:addedFade .9s ease forwards;
  pointer-events:none;
  z-index:5;
}
@keyframes addedFade{
  0%{ opacity:0; transform:translateY(-8px); }
  15%{ opacity:1; transform:translateY(0); }
  85%{ opacity:1; transform:translateY(0); }
  100%{ opacity:0; transform:translateY(-6px); }
}

/* acessibilidade (para o live region) */
.visually-hidden{
  position:absolute!important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
/* ===== Destaque visual aprimorado p/ badge “Adicionado ao carrinho” ===== */
.added-badge{
  position:absolute;
  top:12px; right:12px;
  background:linear-gradient(90deg, #d131f9, #7ad5de);
  color:#fff;
  font-size:.85rem;
  font-weight:800;
  padding:10px 18px;
  border-radius:999px;
  text-transform:uppercase;
  letter-spacing:.03em;
  box-shadow:0 8px 24px rgba(209,49,249,.35);
  opacity:0;
  transform:scale(0.8);
  animation:addedPop 1.2s ease forwards;
  pointer-events:none;
  z-index:10;
}

@keyframes addedPop {
  0%   { opacity:0; transform:scale(0.8) translateY(-8px); }
  20%  { opacity:1; transform:scale(1.05) translateY(0); }
  40%  { transform:scale(1); }
  80%  { opacity:1; transform:scale(1); }
  100% { opacity:0; transform:scale(0.9) translateY(-6px); }
}
/* ===== Barra fixa de lançamento (bottom) ===== */
.launchbar{
  position: fixed;
  left: 0; right: 0; bottom: 0;
  background: #000;
  color: #fff;
  z-index: 3000; /* acima dos modais/whatsapp */
  box-shadow: 0 -10px 30px rgba(0,0,0,.35);
}
.launchbar__inner{
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
}

.launchbar__title{
  font-size: .95rem;
  letter-spacing: .02em;
}
.launchbar__msg{
  display: inline-block;
  margin-left: 10px;
  font-size: .9rem;
  opacity: .9;
}

.launchbar__timer{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 96px;
  height: 40px;
  padding: 0 12px;
  margin-right: 10px;
  border-radius: 999px;
  background: #111;
  font-weight: 900;
  font-size: 1.05rem;
  letter-spacing: .04em;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.08);
}

.launchbar__cta{
  white-space: nowrap;
  padding: 10px 16px;
  font-size: .95rem;
}

/* Botão fechar */
.launchbar__close{
  background: transparent;
  border: 0;
  color: #bbb;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  margin-left: 8px;
  transition: color .18s ease, transform .18s ease;
}
.launchbar__close:hover{ color: #fff; transform: scale(1.05); }

/* Ajustes responsivos */
@media (max-width: 900px){
  .launchbar__inner{
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "left close"
      "right right";
    gap: 10px 12px;
    padding: 12px 0;
  }
  .launchbar__left{ grid-area: left; }
  .launchbar__right{ grid-area: right; display:flex; align-items:center; gap:10px; }
  .launchbar__close{ grid-area: close; justify-self: end; }
  .launchbar__title{ font-size: .92rem; }
  .launchbar__msg{ display:block; margin: 4px 0 0 0; font-size: .88rem; }
}

@media (max-width: 520px){
  .launchbar__right{ flex-wrap: wrap; }
  .launchbar__timer{ margin-right: 0; }
  .launchbar__cta{ width: 100%; text-align: center; }
}

/* Quando a barra existir, dá espaço no final da página e move o FAB */
body.has-launchbar{
  /* altura padrão; o JS ajusta para a real em runtime */
  --launchbar-h: 72px;
  padding-bottom: var(--launchbar-h);
}
body.has-launchbar .whatsapp-fab{
  bottom: calc(18px + var(--launchbar-h));
}
/* ===== Barra fixa de lançamento (bottom) ===== */
.launchbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background: #000;
  color: #fff;
  z-index: 3000;
  box-shadow: 0 -10px 30px rgba(0,0,0,.35);
  transform: translateY(100%);
  opacity: 0;
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.8s ease;
}
.launchbar.show {
  transform: translateY(0);
  opacity: 1;
}

.launchbar__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 0;
  text-align: center;
}

/* Texto */
.launchbar__title {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .02em;
}
.launchbar__msg {
  font-size: .9rem;
  opacity: .9;
}

/* Temporizador — centralizado e com destaque */
.launchbar__timer {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #111;
  color: #fff;
  width: 120px;
  height: 44px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 1.2rem;
  letter-spacing: .05em;
  text-align: center;
  margin: 6px auto;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.08);
}

/* Botão CTA */
.launchbar__cta {
  padding: 10px 24px;
  font-size: .95rem;
  font-weight: 600;
  text-transform: uppercase;
  border-radius: 999px;
  white-space: nowrap;
}

/* Botão fechar (canto direito) */
.launchbar__close {
  position: absolute;
  right: 14px;
  top: 10px;
  background: transparent;
  border: none;
  color: #bbb;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  transition: color .18s ease, transform .18s ease;
}
.launchbar__close:hover {
  color: #fff;
  transform: scale(1.1);
}

/* ===== Layout Desktop ===== */
@media (min-width: 768px) {
  .launchbar__inner {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 16px;
    text-align: center;
  }

  .launchbar__timer {
    margin: 0 10px;
  }
}

/* ===== Espaço pro FAB ===== */
body.has-launchbar {
  padding-bottom: 95px;
}
body.has-launchbar .whatsapp-fab {
  bottom: 110px;
}
/* ===== Carrinho (layout do modal) ===== */
.cart-modal { 
  width:min(720px, 92vw); 
  padding:18px 18px 12px;
}

.cart-header{
  display:flex; align-items:center; justify-content:center;
  padding:6px 6px 14px; border-bottom:1px solid var(--gray-100);
}
.cart-header h2{ margin:0; font-size:1.2rem; font-weight:800; color:#111; }

.cart-list{
  max-height:60vh; overflow:auto;
  padding:8px 2px;
  display:grid; gap:12px;
}

/* item do carrinho em linha */
.cart-item{
  display:grid;
  grid-template-columns: 68px 1fr auto auto auto;
  align-items:center; gap:12px;
  padding:10px; border:1px solid var(--gray-100); border-radius:12px;
}
.cart-item__img{
  width:68px; height:68px; border-radius:10px; background:#fafafa;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.cart-item__img img{ width:100%; height:100%; object-fit:contain; display:block; }

.cart-item__title{
  font-size:.95rem; font-weight:700; color:#111; margin:0;
}
.cart-item__price{
  font-weight:800; color:#111; min-width:92px; text-align:right;
}

/* controles de quantidade */
.qty{
  display:inline-flex; align-items:center; gap:6px; border:1px solid var(--gray-100);
  padding:4px; border-radius:999px; min-width:92px; justify-content:center;
}
.qty button{
  width:28px; height:28px; border-radius:999px; border:none; background:#f6f6f6; cursor:pointer;
  font-weight:800; line-height:1; transition:filter .15s ease, transform .15s ease;
}
.qty button:hover{ filter:brightness(0.98); transform:translateY(-1px); }
.qty output{ min-width:22px; text-align:center; font-weight:800; }

/* remover */
.btn-trash{
  background:transparent; border:none; cursor:pointer; padding:8px; border-radius:8px;
  transition:background .15s ease, transform .15s ease;
}
.btn-trash:hover{ background:#f8f8f8; transform:translateY(-1px); }
.btn-trash svg{ width:20px; height:20px; color:#c23; }

/* rodapé */
.cart-footer{
  position:sticky; bottom:0; left:0; right:0;
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:12px 6px; margin-top:8px;
  border-top:1px solid var(--gray-100); background:#fff;
}
.cart-total{ display:flex; align-items:baseline; gap:12px; }
.cart-total span{ color:#555; }
.cart-total strong{ font-size:1.4rem; color:#111; letter-spacing:.01em; }

.cart-buy{
  min-width:200px;
  padding:12px 18px; font-size:1rem; font-weight:800;
  border-radius:12px;
}

/* estado vazio */
.cart-empty{
  text-align:center; color:#444; padding:28px 8px;
}
.cart-empty p{ margin:8px 0 18px; }
.cart-empty .btn{ padding:10px 18px; }

/* responsivo */
@media (max-width: 540px){
  .cart-item{
    grid-template-columns: 60px 1fr auto;
    grid-template-areas:
      "img title trash"
      "img qty   price";
    gap:10px;
  }
  .cart-item__img{ grid-area: img; width:60px; height:60px; }
  .cart-item__title{ grid-area: title; }
  .cart-item__price{ grid-area: price; text-align:right; }
  .qty{ grid-area: qty; justify-self:start; }
  .btn-trash{ grid-area: trash; justify-self:end; }
}
/* ====== Cart Modal: largura e layout mais confortáveis ====== */
.modal .cart-modal{
  max-width: 920px;                 /* antes: 400px */
  width: min(94vw, 920px);
  padding: 24px 22px;               /* um pouco mais de respiro */
}

/* Header e footer com espaçamento fixo */
.cart-header{ margin-bottom: 14px; }
.cart-footer{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #efefef;
}
.cart-total{
  display: flex; align-items: baseline; gap: 10px;
  font-size: 1rem;
}
.cart-total strong{ font-size: 1.35rem; }

/* Lista de itens com rolagem se crescer */
.cart-list{
  display: grid;
  gap: 12px;
  max-height: min(60vh, 520px);
  overflow: auto;
  padding-right: 6px;               /* espaço p/ scrollbar não encostar */
}

/* Item em linha: img | título | preço | qty | lixeira */
.cart-item{
  display: grid;
  grid-template-columns: 76px 1fr 120px auto 40px;
  align-items: center;
  gap: 14px;
  padding: 12px;
  border: 1px solid #efefef;
  border-radius: 12px;
  background: #fff;
}
.cart-item__img{
  width: 76px; height: 76px;
  display: grid; place-items: center;
  background: #fafafa;
  border-radius: 10px;
  overflow: hidden;
}
.cart-item__img img{
  max-width: 100%; max-height: 100%; object-fit: contain;
}
.cart-item__title{
  font-weight: 700;
  line-height: 1.25;
}
.cart-item__price{
  text-align: right;
  font-weight: 800;
}

/* Controles de quantidade */
.qty{
  display: inline-grid;
  grid-auto-flow: column;
  align-items: center;
  gap: 8px;
  border: 1px solid #e9e9e9;
  border-radius: 999px;
  padding: 6px 10px;
}
.qty button{
  background:#f6f6f6; border:0; width:28px; height:28px;
  border-radius: 999px; font-size: 16px; font-weight: 900;
  cursor: pointer;
}
.qty button:hover{ filter: brightness(0.98); }
.qty-val{ min-width: 22px; text-align: center; font-weight: 800; }

/* Botão lixeira minimalista */
.btn-trash{
  width: 40px; height: 40px;
  display: grid; place-items: center;
  background: #f6f6f6; border: 0; border-radius: 10px;
  cursor: pointer;
}
.btn-trash:hover{ filter: brightness(0.96); }

/* Botão Comprar agora ocupa mais espaço visual */
.cart-buy{
  padding: 14px 20px;
  font-size: 1rem;
  border-radius: 12px;
}

/* ====== Responsivo ====== */
@media (max-width: 820px){
  .modal .cart-modal{
    width: 96vw;
    max-width: 96vw;
  }
  .cart-item{
    grid-template-columns: 64px 1fr 84px auto 36px;
    gap: 10px;
  }
  .cart-item__img{ width: 64px; height: 64px; }
  .cart-item__price{ font-size: .95rem; }
}

@media (max-width: 560px){
  .cart-item{
    /* empilha de forma inteligente no mobile */
    grid-template-columns: 64px 1fr auto;
    grid-template-areas:
      "img title trash"
      "img price qty";
    row-gap: 8px;
  }
  .cart-item__img{ grid-area: img; }
  .cart-item__title{ grid-area: title; }
  .cart-item__price{ grid-area: price; text-align: left; }
  .qty{ grid-area: qty; justify-self: end; }
  .btn-trash{ grid-area: trash; justify-self: end; }

  .cart-footer{
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .cart-total{
    justify-content: space-between;
  }
  .cart-buy{ width: 100%; }
}
/* ===== Ajuste do nome do item no carrinho (mobile) ===== */
@media (max-width: 560px) {
  .cart-item__title {
    font-size: 0.85rem;     /* diminui a fonte */
    font-weight: 600;       /* peso mais leve que 700 */
    line-height: 1.2;       /* reduz altura da linha */
    white-space: nowrap;    /* mantém em uma linha */
    overflow: hidden;       /* corta excesso */
    text-overflow: ellipsis; /* adiciona "..." se ultrapassar */
  }
}
/* ===== Auth Modal (Login / Cadastro) ===== */
.modal .auth-modal{
  width: min(96vw, 520px);
  max-width: 520px;
  padding: 24px 22px 22px;
}

.auth-brand{
  display: grid;
  place-items: center;
  margin-bottom: 10px;
}
.auth-logo{
  height: 34px;
  width: auto;
  filter: drop-shadow(0 3px 10px rgba(209,49,249,.15));
}

.auth-tabs{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 6px 0 16px;
}
.auth-tab{
  background: transparent;
  border: 0;
  font-weight: 800;
  letter-spacing: .02em;
  padding: 8px 12px;
  border-radius: 999px;
  cursor: pointer;
  color: #555;
}
.auth-tab.is-active{
  color: #fff;
  background: linear-gradient(90deg, var(--rose), var(--blue));
  box-shadow: 0 10px 22px rgba(209,49,249,.25);
}
.auth-sep{ color:#bbb; font-weight:700; }

.auth-title{
  margin: 0 0 10px;
  font-size: 1.15rem;
  font-weight: 900;
  letter-spacing: -.01em;
  text-align: center;
}

.auth-form{
  display: grid;
  gap: 12px;
}
.auth-form.is-hidden{ display: none; }

.auth-field{
  display: grid;
  gap: 6px;
}
.auth-field > span{
  font-size: .9rem;
  color: #444;
  font-weight: 700;
}
.auth-field input{
  border: 1px solid #e9e9e9;
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 1rem;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.auth-field input:focus{
  border-color: var(--rose);
  box-shadow: 0 0 0 3px rgba(209,49,249,.12);
}

.auth-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 2px;
}
.auth-check{
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .92rem; color:#444;
}
.auth-link{
  color: var(--rose); text-decoration: none; font-weight: 700;
}
.auth-link:hover{ text-decoration: underline; }

.auth-submit{
  width: 100%;
  padding: 14px 20px;
  border-radius: 12px;
  font-size: 1rem;
}

/* Aviso: botões desabilitados só visualmente (sem lógica) */
.auth-submit[disabled]{
  opacity: .85;
  filter: saturate(.9);
}

/* Troca entre login/cadastro */
.auth-switch{
  margin: 2px 0 0;
  font-size: .95rem; color:#444; text-align: center;
}
.auth-switch-btn{
  background: none; border: 0; color: var(--rose); font-weight: 800;
  cursor: pointer; padding: 2px 4px; border-radius: 8px;
}
.auth-switch-btn:hover{ text-decoration: underline; }

/* Mobile refinado */
@media (max-width:560px){
  .modal .auth-modal{
    width: 94vw;
    max-width: 94vw;
    padding: 20px 18px 18px;
  }
  .auth-title{ font-size: 1.05rem; }
  .auth-field input{ padding: 11px 12px; }
}
/* ===== Ajuste: legenda dos campos alinhada à esquerda no cadastro ===== */
#authRegister .auth-field > span {
  text-align: left;
  width: 100%;
  display: block;
}
/* ===== Login com Google ===== */
.auth-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin: 10px 0 16px;
  position: relative;
}
.auth-divider::before,
.auth-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #e3e3e3;
  margin: 0 10px;
}
.auth-divider span {
  font-size: 0.9rem;
  color: #777;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.btn-google {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  border: 1px solid #ddd;
  border-radius: 12px;
  background: #fff;
  color: #333;
  font-weight: 700;
  font-size: 0.95rem;
  padding: 12px 16px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.btn-google:hover {
  background: #f9f9f9;
  border-color: #ccc;
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}
.btn-google:active {
  transform: translateY(0);
  box-shadow: none;
}
.google-icon {
  width: 20px;
  height: 20px;
  object-fit: contain;
}
/* Grupo de ações na navbar (Login + Carrinho) */
.nav-actions{
  display:flex;
  align-items:center;
  gap:10px;              /* distância bem curta entre login e carrinho */
  margin-left:12px;      /* separa do menu */
}

/* Botão de login com estilo leve para header */
.btn-outline{
  background:#fff;
  color:#111;
  border:1px solid #e9e9e9;
  padding:10px 14px;
  border-radius:999px;
  font-weight:800;
  letter-spacing:.01em;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.btn-outline:hover{
  border-color:#dcdcdc;
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(0,0,0,.06);
}

/* Cart mais próximo do botão */
.cart-icon{
  position:relative;
  margin-left:0;         /* remove o espaçamento grande anterior */
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Badge do carrinho continua igual; ajuste fino opcional */
.cart-count-badge{
  top:-6px;
  right:-8px;
}

/* Responsivo: deixa mais compacto no mobile */
@media (max-width: 860px){
  .nav-actions{
    gap:8px;
    margin-left:8px;
  }
  .btn-outline{
    padding:8px 12px;
    font-size:.92rem;
    font-weight:800;
  }
}
@media (max-width: 520px){
  /* em telas bem pequenas, reduz ainda mais o botão */
  .btn-outline{
    padding:8px 10px;
    font-size:.9rem;
  }
}
/* ===== 1) Animação de destaque no carrinho ===== */
.cart-icon{
  position: relative;
  isolation: isolate; /* garante que o flare não vaze */
}
.cart-icon.cart-animate::after,
.cart-icon.cart-animate::before{
  content:"";
  position:absolute;
  inset:-6px;           /* halo */
  border-radius:999px;
  z-index:-1;
  pointer-events:none;
}
.cart-icon.cart-animate::before{
  background: radial-gradient(closest-side, rgba(209,49,249,.35), rgba(209,49,249,0) 70%);
  animation: cartPulse 900ms ease-out forwards;
}
.cart-icon.cart-animate::after{
  background: conic-gradient(from 0deg, rgba(209,49,249,.5), rgba(122,213,222,.45), rgba(209,49,249,.5));
  filter: blur(10px) saturate(1.2);
  opacity:.0;
  animation: cartFlare 900ms ease-out forwards;
}
@keyframes cartPulse{
  0%   { transform: scale(.85); opacity:.0; }
  30%  { transform: scale(1);   opacity:1;  }
  100% { transform: scale(1.25);opacity:0;  }
}
@keyframes cartFlare{
  0%   { opacity:0; transform: scale(.8) rotate(0deg); }
  40%  { opacity:.9; transform: scale(1.05) rotate(40deg); }
  100% { opacity:0; transform: scale(1.25) rotate(80deg); }
}

/* ===== 2) Toast “adicionado ao carrinho” ===== */
.cart-toast{
  position: fixed;
  top: 72px; left: 50%;
  transform: translateX(-50%) translateY(-16px);
  background: #111;
  color:#fff;
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 800;
  font-size: .95rem;
  letter-spacing: .02em;
  box-shadow: 0 14px 34px rgba(0,0,0,.28);
  border: 1px solid rgba(255,255,255,.08);
  z-index: 3500;
  opacity: 0;
  pointer-events: none;
  background-image: linear-gradient(90deg, #d131f9, #7ad5de);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.cart-toast::before{
  content:"";
  position:absolute; inset:0;
  background: #111;
  border-radius: inherit;
  z-index:-1;
  opacity:.85;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.08);
}
.cart-toast.show{
  animation: toastSlide 1800ms ease forwards;
}
@keyframes toastSlide{
  0%   { opacity:0; transform: translateX(-50%) translateY(-10px); }
  15%  { opacity:1; transform: translateX(-50%) translateY(0); }
  85%  { opacity:1; transform: translateX(-50%) translateY(0); }
  100% { opacity:0; transform: translateX(-50%) translateY(-10px); }
}

/* ===== 3) Chip persistente ao lado do carrinho ===== */
.cart-chip{
  display: none; /* visível só quando houver itens */
  align-items:center; gap:10px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #111;
  color:#fff;
  font-weight: 800;
  font-size: .9rem;
  box-shadow: 0 8px 20px rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.06);
  white-space: nowrap;
}
.cart-chip__dot{
  width:10px; height:10px; border-radius:999px;
  background: linear-gradient(90deg, #d131f9, #7ad5de);
  box-shadow: 0 0 0 0 rgba(209,49,249,.6);
  animation: cartDotPulse 1.6s ease-out infinite;
}
@keyframes cartDotPulse{
  0%  { box-shadow: 0 0 0 0 rgba(209,49,249,.6); }
  70% { box-shadow: 0 0 0 10px rgba(209,49,249,0); }
  100%{ box-shadow: 0 0 0 0 rgba(209,49,249,0); }
}

/* layout do chip na navbar */
.nav-actions{ gap:10px; }
.nav-actions .cart-chip{ display:none; }
body.cart-has-items .nav-actions .cart-chip{ display:flex; }

@media (max-width: 860px){
  .cart-chip{ font-size:.86rem; padding:6px 10px; }
  .cart-toast{ top: 64px; }
}
/* ===== Exit-Intent (explosiva) ===== */
.exit-modal { z-index: 4000; }
.exit-content{
  max-width: 720px;
  width: min(92vw, 720px);
  padding: 28px 22px;
  border-radius: 20px;
  background: #0f0f10;
  color: #fff;
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: 0 40px 120px rgba(0,0,0,.55);
  position: relative;
  overflow: hidden;
  animation: exitBoom .28s cubic-bezier(.2,.9,.2,1) both;
}
.exit-content::before,
.exit-content::after{
  content:"";
  position:absolute;
  inset: -40%;
  background: conic-gradient(from 0deg, rgba(209,49,249,.22), rgba(122,213,222,.18), rgba(209,49,249,.22));
  filter: blur(60px);
  z-index: -1;
  opacity:.55;
  animation: exitFlare 1.6s ease-out infinite alternate;
}
.exit-content::after{
  inset:-60%;
  filter: blur(100px);
  opacity:.25;
  animation-duration: 2.4s;
}

@keyframes exitBoom{
  0%   { transform: scale(.86) translateY(12px); opacity: 0; }
  60%  { transform: scale(1.02) translateY(0);   opacity: 1; }
  100% { transform: scale(1)    translateY(0);   opacity: 1; }
}
@keyframes exitFlare{
  0% { transform: rotate(0deg) scale(1); }
  100% { transform: rotate(20deg) scale(1.05); }
}

.exit-hero{
  text-align: center;
  margin-bottom: 14px;
}
.exit-badge{
  display:inline-block;
  padding:6px 12px;
  font-size:.78rem;
  font-weight:900;
  border-radius:999px;
  color:#fff;
  background: linear-gradient(90deg, #d131f9, #7ad5de);
  box-shadow: 0 8px 22px rgba(209,49,249,.28);
  letter-spacing:.04em;
  text-transform: uppercase;
}
#exitTitle{
  margin:12px 0 6px;
  font-size: clamp(1.2rem, 1.4vw + 1.1rem, 2rem);
  font-weight: 900;
  letter-spacing: -.01em;
}
.exit-sub{
  margin:0;
  color:#ddd;
  opacity:.95;
  font-size: 1rem;
}

.exit-benefits{
  margin:14px auto 18px;
  padding:0 8px;
  list-style:none;
  display:grid;
  gap:8px;
  color:#eaeaea;
  max-width: 560px;
  font-size:.98rem;
}
.exit-benefits li{ line-height:1.4; }

.exit-actions{
  display:flex;
  justify-content:center;
  gap:10px;
  padding-top:6px;
}
.exit-actions .btn{
  min-width: 180px;
  padding: 12px 18px;
}
.exit-actions .btn-rose{ box-shadow:0 14px 30px rgba(209,49,249,.28); }

@media (max-width:560px){
  .exit-content{
    width: 92vw;
    padding: 22px 16px;
    border-radius: 16px;
  }
  .exit-actions{
    flex-direction: column-reverse;
    gap:8px;
  }
  .exit-actions .btn{ min-width: 100%; }
}

/* Botão X da modal */
.exit-close{
  position:absolute;
  top:12px; right:14px;
  font-size:28px;
  background: transparent;
  border:0;
  color:#aaa; cursor:pointer;
  transition: transform .15s ease, color .15s ease;
}
.exit-close:hover{ color:#fff; transform: scale(1.06); }
/* ===== Barra preta fixa (LaunchBar) ===== */
.launchbar {
  position: fixed;
  bottom: -100px;
  left: 0;
  width: 100%;
  background: #000;
  color: #fff;
  z-index: 999;
  transition: bottom 0.6s ease;
  font-family: "Inter", sans-serif;
}

/* aparece após 5s */
.launchbar.show {
  bottom: 0;
}

.launchbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 12px 24px;
  flex-wrap: nowrap; /* mantém tudo em linha no desktop */
}

/* lado esquerdo (texto + subtítulo) */
.launchbar__left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.launchbar__title {
  font-weight: 700;
  font-size: 1.1rem;
}

.launchbar__msg {
  font-size: 0.95rem;
  color: #f4ddff;
}

/* lado direito (timer + botão) */
.launchbar__right {
  display: flex;
  align-items: center;
  gap: 16px;
}

.launchbar__timer {
  font-weight: 700;
  font-size: 1.1rem;
  background: #fff;
  color: #000;
  border-radius: 8px;
  padding: 6px 12px;
  min-width: 82px;
  text-align: center;
}

/* botão principal */
.launchbar__cta {
  font-weight: 700;
  padding: 10px 20px;
  border-radius: 999px;
  background: #f4ddff;
  color: #000;
  text-decoration: none;
  transition: transform 0.2s ease, background 0.2s ease;
}
.launchbar__cta:hover {
  transform: translateY(-2px);
  background: #fff;
}

/* botão de fechar */
.launchbar__close {
  background: none;
  border: none;
  color: #fff;
  font-size: 1.6rem;
  cursor: pointer;
  margin-left: 8px;
  line-height: 1;
}

/* ===== MOBILE ===== */
@media (max-width: 768px) {
  .launchbar__inner {
    flex-direction: column;
    gap: 10px;
    text-align: center;
  }

  .launchbar__left {
    flex-direction: column;
    gap: 6px;
  }

  .launchbar__right {
    flex-direction: column;
    gap: 8px;
  }

  .launchbar__cta {
    width: 100%;
  }

  .launchbar__timer {
    font-size: 1rem;
    min-width: auto;
  }
}
/* ===== Toast de Adicionado ao Carrinho ===== */
.toast-add {
  position: absolute;
  bottom: 60px;              /* sobe 60px acima do botão */
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  background: #000;
  color: #fff;
  font-weight: 600;
  font-size: 0.9rem;
  padding: 10px 16px;
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(0,0,0,.2);
  opacity: 0;
  pointer-events: none;
  z-index: 50;
  transition: opacity .4s ease, transform .4s ease;
  white-space: nowrap;
}

.toast-add.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* para telas pequenas */
@media (max-width: 768px){
  .toast-add{
    bottom: 52px;
    font-size: 0.85rem;
    padding: 8px 14px;
  }
}
/* =========================================
   Navbar Mobile (Fixa durante a rolagem)
   ========================================= */
.navbar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--white);
  border-bottom: 1px solid var(--gray-100);
}

/* Menu mobile fixo */
.nav-mobile {
  position: fixed;
  top: 70px; /* abaixo da navbar fixa */
  left: 0;
  right: 0;
  display: none;
  flex-direction: column;
  gap: 18px;
  background: #fff;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  z-index: 1000;
  max-height: calc(100vh - 70px); /* altura máxima baseada na viewport */
  overflow-y: auto; /* permite rolagem se o conteúdo for muito longo */
}

.nav-mobile a {
  font-size: 16px;
  font-weight: 500;
  color: #222;
  text-decoration: none;
  transition: color 0.2s ease;
  padding: 12px 0;
  border-bottom: 1px solid var(--gray-100);
}

.nav-mobile a:last-child {
  border-bottom: none;
}

.nav-mobile a:hover { 
  color: #d131f9; 
}

.nav-mobile.open { 
  display: flex; 
}

/* Garante que o body não role quando o menu mobile estiver aberto */
.no-scroll { 
  overflow: hidden; 
}

/* Ajuste para garantir que a navbar mobile fique acima de outros elementos */
@media (max-width: 860px) {
  .navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
  }
  
  /* Adiciona padding-top no body para compensar a navbar fixa */
  body {
    padding-top: 70px;
  }
  
  /* Ajusta o hero para não ficar cortado pela navbar fixa */
  #hero {
    margin-top: -70px;
    padding-top: 70px;
  }
}
/* Animação do ícone hamburger */
.nav-toggle.active span:nth-child(1) {
    transform: rotate(45deg) translate(6px, 6px);
}

.nav-toggle.active span:nth-child(2) {
    opacity: 0;
}

.nav-toggle.active span:nth-child(3) {
    transform: rotate(-45deg) translate(6px, -6px);
}

.nav-toggle span {
    transition: all 0.3s ease;
}
/* =========================================
   Preços - Layout Vertical (um em cima do outro)
   ========================================= */
.price-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  margin: 8px 0;
}

.price-old {
  font-size: 1rem;
  color: #777;
  text-decoration: line-through;
  order: 1; /* fica em cima */
}

.price-now {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--black);
  order: 2; /* fica embaixo */
}

.installments {
  margin: 4px 0 0 0;
  text-align: center;
  color: #333;
  font-size: 0.95rem;
  order: 3;
}

.monthly {
  margin: 2px 0 0 0;
  text-align: center;
  color: #555;
  font-size: 0.9rem;
  order: 4;
}

/* Ajuste específico para cards em fundo rosa */
.products--rose .price-old {
  color: #999;
}

.products--rose .price-now {
  color: #111;
}

.products--rose .installments,
.products--rose .monthly {
  color: #444;
}
.compras-link {
  font-family: 'Inter', sans-serif;
  font-weight: 300; /* fonte fina */
  text-decoration: underline;
  color: var(--text, #111827);
  font-size: 0.95rem;
  margin-right: 1rem;
  transition: opacity 0.3s ease;
}

.compras-link:hover {
  opacity: 0.7;
}
/* Link "Minhas compras" (desktop) */
.compras-link {
  font-family: 'Inter', sans-serif;
  font-weight: 300; /* leve */
  text-decoration: underline;
  color: var(--text, #111827);
  font-size: 0.95rem;
  margin-right: 1rem;
  transition: opacity 0.3s ease;
}

.compras-link:hover {
  opacity: 0.7;
}

/* Versão Mobile */
.compras-link-mobile {
  font-family: 'Inter', sans-serif;
  font-weight: 300;
  text-decoration: underline;
  color: var(--text, #111827);
  display: block;
  padding: 0.8rem 1rem;
  font-size: 1rem;
  border-top: 1px solid rgba(0,0,0,0.05);
  border-bottom: 1px solid rgba(0,0,0,0.05);
}

.compras-link-mobile:hover {
  background-color: rgba(0,0,0,0.03);
}
/* Estilo do link "Minhas compras" (desktop) */
.compras-link {
  font-family: 'Inter', sans-serif;
  font-weight: 300; /* leve */
  text-decoration: underline;
  color: var(--text, #111827);
  font-size: 0.95rem;
  margin-right: 1rem;
  transition: opacity 0.3s ease;
}

.compras-link:hover {
  opacity: 0.7;
}

/* Esconde "Minhas compras" SOMENTE no mobile */
@media (max-width: 768px) {
  .compras-link {
    display: none !important;
  }
}
/* ===== Toast messages ===== */
#toastContainer {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 99999;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  pointer-events: none;
}

/* Estilo base */
.toast-message {
  opacity: 0;
  transform: translateY(-20px);
  background: #222;
  color: #fff;
  padding: 12px 24px;
  border-radius: 10px;
  font-size: 15px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);
  min-width: 260px;
  max-width: 90vw;
  text-align: center;
  transition: all 0.3s ease;
}

/* Animação de entrada */
.toast-message.show {
  opacity: 1;
  transform: translateY(0);
}

/* Tipos de mensagem */
.toast-message.success {
  background: #16a34a;
}
.toast-message.error {
  background: #dc2626;
}
.toast-message.info {
  background: #2563eb;
}
/* Mensagem dentro dos forms de autenticação */
.form-alert {
  display: none;
  margin: 10px 0 14px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 14px;
  line-height: 1.35;
  border: 1px solid transparent;
}
.form-alert.show { display: block; }
.form-alert.error {
  background: #fee2e2;
  border-color: #fecaca;
  color: #991b1b;
}
.form-alert.success {
  background: #dcfce7;
  border-color: #bbf7d0;
  color: #14532d;
}
/* ============================
   Ajuste visual do nome do usuário logado
   ============================ */
.user-hello {
  display: inline-block;
  max-width: 180px;           /* Limite padrão no desktop */
  white-space: nowrap;        /* Não quebra linha */
  overflow: hidden;
  text-overflow: ellipsis;    /* Mostra “...” se o texto for longo */
  vertical-align: middle;
  font-size: 15px;
  line-height: 1.3;
}

/* Ajuste para telas menores (mobile) */
@media (max-width: 600px) {
  .user-hello {
    max-width: 120px;         /* Mais curto no mobile */
    font-size: 13px;          /* Fonte menor */
  }
}
/* ============================
   Carrossel 80% da largura (sem corte)
   ============================ */
.carousel-80 {
  width: 80vw;             /* 80% da largura da tela */
  margin: 60px auto;
  overflow: hidden;
  position: relative;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  box-sizing: border-box;
}

.carousel-track {
  display: flex;
  will-change: transform;
  transition: transform 0.8s ease-in-out;
}

.carousel-slide {
  flex: 0 0 100%;          /* cada slide ocupa 100% do carrossel */
  display: flex;
  align-items: center;
  justify-content: center;
}

.carousel-80 .carousel-slide img {
  display: block;
  max-width: 100%;
  width: 100%;
  height: auto !important;           /* garante sem corte */
  object-fit: contain !important;    /* mostra a imagem inteira */
}

/* Responsivo */
@media (max-width: 768px) {
  .carousel-80 {
    width: 90vw;           /* um respiro no mobile */
    border-radius: 10px;
  }
}
/* ============================
   Sessão de imagem destaque (desktop + mobile)
   ============================ */
.destaque {
  background: #fff;
  padding: 60px 0;
  text-align: center;
}

.destaque-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

/* Estilo base das imagens */
.destaque-img {
  width: 100%;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}

/* Efeito leve no hover (apenas desktop) */
@media (hover: hover) {
  .destaque-img:hover {
    transform: scale(1.02);
    box-shadow: 0 14px 40px rgba(0,0,0,0.15);
  }
}

/* Exibir apenas a imagem desktop */
.desktop-img {
  display: block;
}

.mobile-img {
  display: none;
}

/* Responsividade — troca as imagens */
@media (max-width: 768px) {
  .desktop-img {
    display: none;
  }

  .mobile-img {
    display: block;
    width: 100%;
    border-radius: 12px;
  }
}
/* ============================
   Sessão destaque com texto deslizante
   ============================ */
.destaque {
  background: #fff;
  padding: 60px 0 40px;
  text-align: center;
}

.destaque-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
}

.destaque-img {
  width: 80%;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
}

.desktop-img { display: block; }
.mobile-img { display: none; }

/* Responsividade */
@media (max-width: 768px) {
  .desktop-img { display: none; }
  .mobile-img {
    display: block;
    width: 90%;
    border-radius: 12px;
  }
}

/* ===== Texto deslizante ===== */
.destaque-marquee {
  margin-top: 30px;
  background: #000;
  color: #fff;
  overflow: hidden;
  white-space: nowrap;
  padding: 10px 0;
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.5px;
}

.destaque-marquee .marquee {
  display: inline-block;
  animation: scrollLeft 18s linear infinite;
}

@keyframes scrollLeft {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
/* ============================
   Texto deslizante infinito
   ============================ */
.destaque-marquee {
  margin-top: 30px;
  background: #000;
  color: #fff;
  overflow: hidden;
  white-space: nowrap;
  padding: 10px 0;
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.5px;
  position: relative;
}

.destaque-marquee .marquee {
  display: inline-block;
  min-width: 200%; /* Garante continuidade */
  animation: scrollInfinite 20s linear infinite;
}

.destaque-marquee .marquee span {
  display: inline-block;
  padding-right: 2rem; /* Espaço entre repetições */
}

@keyframes scrollInfinite {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
/* ============================
   Navbar Glass Branca
   ============================ */
.navbar {
  background: rgba(255, 255, 255, 0.75); /* mais branca */
  backdrop-filter: blur(18px) saturate(180%);
  -webkit-backdrop-filter: blur(18px) saturate(180%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.6);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  transition: background 0.3s ease, backdrop-filter 0.3s ease;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

/* Links e botões com contraste */
.navbar .nav-link,
.navbar .nav-actions a,
.navbar .btn-auth {
  color: #111 !important;
  font-weight: 500;
  text-shadow: none;
}

.navbar .nav-link:hover,
.navbar .btn-auth:hover {
  color: #000;
  opacity: 0.8;
}

/* Estado ao rolar (um pouco mais opaca) */
.scrolled .navbar {
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(22px) saturate(200%);
  -webkit-backdrop-filter: blur(22px) saturate(200%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.8);
}
