:root{
  /* Base clara e legível */
  --bg:#f7f8fb;
  --surface:#ffffff;
  --ink:#0b0d13;
  --muted:#667085;

  /* Paleta */
  --primary:#3f2b5a;
  --primary-600:#4b2f73;
  --accent:#d3121b;
  --accent-600:#b70f18;

  /* Detalhes/estética */
  --border:rgba(10,13,18,.08);
  --shadow:0 10px 30px rgba(16,24,40,.08);
  --radius:16px;

  /* Gradientes */
  --grad-soft:linear-gradient(180deg, rgba(63,43,90,.06) 0%, rgba(211,18,27,.05) 100%);
  --grad-cta:linear-gradient(135deg, var(--accent) 0%, #ff5252 100%);

  /* Aliases */
  --text:var(--ink);
  --card:var(--surface);
  --grad:linear-gradient(135deg, var(--primary), var(--primary-600));
  --ok:#10b981;

  /* Layout mobile */
  --page-pad-bottom:calc(68px + env(safe-area-inset-bottom, 0px));
  --hdr-h:72px;
}

/* =========================================
   RESETS / BASE
========================================= */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Arial;
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(34,211,238,.10), transparent 60%),
    radial-gradient(800px 400px at 0% 110%, rgba(139,92,246,.10), transparent 60%),
    var(--bg);
}

.wrap{max-width:1200px;margin:0 auto;padding:0 20px;}
main{padding-bottom:var(--page-pad-bottom);}

/* =========================================
   HEADER (complementa topo.css)
========================================= */
.topbar{
  position:sticky;
  top:0;
  z-index:50;
  border-bottom:1px solid var(--border);
}
.topbar .row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:70px;
}
.brand{
  display:flex;
  gap:12px;
  align-items:center;
  text-decoration:none;
  color:var(--ink);
  font-weight:800;
  letter-spacing:.3px;
}
.brand b{
  background:var(--grad);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

/* =========================================
   GRID / CARDS GENÉRICOS
========================================= */
.grid{
  display:grid;
  gap:20px;
  grid-template-columns:repeat(1,1fr);
}
@media (min-width:560px){
  .grid{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:900px){
  .grid{grid-template-columns:repeat(3,1fr);}
}
@media (min-width:1150px){
  .grid{grid-template-columns:repeat(5,1fr);}
}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.card:hover{
  transform:translateY(-2px);
  border-color:rgba(0,0,0,.12);
}
.card .body{padding:14px 14px 16px;}
.card h3{
  margin:0 0 6px;
  font-size:16px;
  line-height:1.4;
}
.price{
  font-size:24px;
  font-weight:800;
  letter-spacing:.2px;
  background:var(--grad);
  -webkit-background-clip:text;
  background-clip:text;
  color:#d94180;
}
.old{
  color:var(--muted);
  text-decoration:line-through;
  font-weight:600;
  margin-left:8px;
}
.stock{
  color:var(--ok);
  font-weight:700;
  font-size:12px;
}
.actions{
  margin-top:12px;
  display:flex;
  gap:10px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--ink);
  text-decoration:none;
  font-weight:700;
  cursor:pointer;
}
.btn.primary{
  background:var(--grad-cta);
  border-color:transparent;
  color:#fff;
}
.btn:hover{filter:brightness(1.06);}

/* =========================================
   FOOTER
========================================= */
.footer{
  margin-top:40px;
  padding:34px 0;
  background:rgba(0,0,0,.04);
  border-top:1px solid var(--border);
  color:var(--muted);
  font-size:14px;
}
.footer .row{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:center;
  justify-content:space-between;
}
.footer a{
  color:var(--ink);
  text-decoration:none;
}
.footer small{color:var(--muted);}

/* =========================================
   MODAL PARCELAS
========================================= */
dialog.parcelas{
  border:0;
  border-radius:16px;
  padding:0;
  width:min(520px,92vw);
}
dialog.parcelas::backdrop{
  background:rgba(15,23,42,.45);
}
.parc-wrap{padding:18px 18px 12px;}
.parc-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.parc-head h3{
  margin:0;
  font-size:18px;
}
.parc-close{
  border:0;
  background:#f1f5f9;
  border-radius:10px;
  padding:8px 10px;
  cursor:pointer;
}
.parc-table{
  width:100%;
  border-collapse:collapse;
  margin-top:12px;
}
.parc-table th,
.parc-table td{
  padding:10px 8px;
  border-bottom:1px solid #eee;
  text-align:left;
}
.parc-note{
  font-size:12px;
  color:#6b7280;
  margin:10px 2px 6px;
}

/* =========================================
   HERO TOPO (FRETE + BUSCA)
========================================= */
.hero-top{
  background:var(--primary);
  color:#fff;
}
.hero-top .wrap{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  padding:12px 0;
}

/* Frete */
.frete-grid{
  display:flex;
  align-items:center;
}
.frete-pill{font-weight:700;}

@media (max-width:760px){
  .frete-grid{
    display:grid;
    place-items:center;
    background:#fde8f4;
    border-radius:12px;
    padding:10px 12px;
    margin:0 0 10px;
  }
  .frete-pill{
    text-align:center;
    font-weight:800;
    color:var(--primary);
  }
}

/* Busca */
.search{
  flex:1 1 260px;
  position:relative;
  width:100%;
}
.search input{
  width:100%;
  height:42px;
  border-radius:12px;
  border:none;
  padding:0 44px 0 14px;
  font-weight:700;
}
.search button{
  position:absolute;
  right:6px;
  top:6px;
  height:30px;
  padding:0 10px;
  border:0;
  border-radius:8px;
  background:#fff;
  color:var(--primary);
  font-weight:800;
  cursor:pointer;
}

/* =========================================
   PERKS / BENEFÍCIOS
========================================= */
.perks{
  display:grid;
  gap:18px;
  grid-template-columns:1fr;
}
@media (min-width:600px){
  .perks{grid-template-columns:repeat(2,1fr);}
}
.perk{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:18px;
  padding:16px;
  box-shadow:var(--shadow);
}
.perk h3{
  margin:0 0 6px;
  font-size:20px;
  color:var(--primary);
}

/* =========================================
   SEÇÕES COM BANNER FIXO + CARROSSEL
========================================= */
.section-row{
  display:flex;
  gap:18px;
  align-items:stretch;
  margin-top:10px;
}
.section-row .banner-side{
  flex:0 0 280px;
  max-width:320px;
}
.section-row .banner-side .banner-card{
  height:100%;
}
.section-row .rail-wrap{
  flex:1 1 auto;
  min-width:0;
}
.section-row.section-row--reverse{
  flex-direction:row-reverse;
}
@media (max-width:900px){
  .section-row,
  .section-row.section-row--reverse{
    flex-direction:column;
  }
  .section-row .banner-side{
    flex:0 0 auto;
    max-width:none;
  }
}

/* =========================================
   CARROSSEL HORIZONTAL (RAIL)
========================================= */
.rail-wrap{
  position:relative;
  overflow:visible;
}
.rail{
  display:flex;
  gap:18px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x proximity;
  padding:6px 12px;
}
.rail::-webkit-scrollbar{height:6px;}
.rail::-webkit-scrollbar-track{background:transparent;}
.rail::-webkit-scrollbar-thumb{
  background:rgba(0,0,0,.08);
  border-radius:999px;
}

/* 3 itens visíveis no desktop */
.rail > *{
  scroll-snap-align:start;
  flex:0 0 calc((100% - 2*18px) / 3);
}
@media (max-width:900px){
  .rail > *{flex:0 0 calc(50% - 9px);}
}
@media (max-width:600px){
  .rail > *{flex:0 0 100%;}
}

/* botões de navegação do rail */
.rail-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid var(--border);
  background:#fff;
  box-shadow:0 8px 20px rgba(15,23,42,.18);
  cursor:pointer;
  display:grid;
  place-items:center;
  z-index:10;
}
.rail-prev{left:0;}
.rail-next{right:0;}
@media (max-width:520px){
  .rail-btn{display:none;}
}

/* Like */
[data-like]{
  position:absolute;
  right:12px;
  top:12px;
  background:#fff;
  border-radius:999px;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:1px solid var(--border);
  font-size:18px;
  text-decoration:none;
  color:#aaa;
}
[data-like].on{
  color:#e11d48;
  border-color:#fbcfe8;
  background:#fff0f5;
}

/* =========================================
   HERO TOP COMPACT (SCROLL MOBILE)
========================================= */
@media (max-width:760px){
  .hero-top{position:relative;}
  .hero-top .frete-grid,
  .hero-top .search input{
    transition:all .2s ease;
  }

  .hero-top.compact .frete-grid{
    opacity:0;
    height:0;
    margin:0;
    padding:0;
    overflow:hidden;
  }

  .hero-top.compact .search{
    position:fixed;
    left:0;
    right:0;
    top:var(--hdr-h);
    z-index:99;
    padding:8px 12px;
    background:#fde8f4;
    box-shadow:0 10px 30px rgba(16,24,40,.12);
  }

  .hero-top.compact .search input{
    height:34px;
    border-radius:10px;
  }

  .hero-top.compact::after{
    content:"";
    display:block;
    height:58px;
  }
}

/* =========================================
   MEGA MENU (DESKTOP)
========================================= */
.mega-menu{
  background:#2b103f;
  color:#fff;
}
.mega-menu__inner{
  max-width:1200px;
  margin:0 auto;
  padding:8px 20px;
  display:flex;
  align-items:center;
}
.mega-menu__links{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  list-style:none;
  margin:0;
  padding:0;
}
.mega-menu__item{position:relative;}
.mega-menu__link{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:6px 4px;
  border-radius:8px;
  color:#ede9fe;
  text-decoration:none;
  font-size:13px;
  font-weight:600;
}
.mega-menu__link:hover{
  background:rgba(255,255,255,.08);
  color:#fff;
}
.mega-menu__item.has-sub > .mega-menu__link::after{
  content:"▾";
  font-size:10px;
  opacity:.8;
}
.mega-menu__dropdown{
  position:absolute;
  left:0;
  top:100%;
  margin-top:8px;
  min-width:220px;
  background:#2b103f;
  border-radius:14px;
  padding:8px 10px;
  box-shadow:0 18px 40px rgba(15,23,42,.45);
  list-style:none;
  opacity:0;
  transform:translateY(6px);
  pointer-events:none;
  transition:opacity .15s ease, transform .15s ease;
  z-index:40;
}
.mega-menu__dropdown li{list-style:none;}
.mega-menu__dropdown a{
  display:block;
  padding:8px 8px;
  border-radius:8px;
  font-size:13px;
  color:#ede9fe;
  text-decoration:none;
}
.mega-menu__dropdown a:hover{
  background:rgba(255,255,255,.12);
  color:#fff;
}
.mega-menu__item.has-sub:hover .mega-menu__dropdown{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
@media (max-width:900px){
  .mega-menu{display:none;}
}

/* =========================================
   HERO SLIDER (HOME)
========================================= */
.hero-slider{
  background:linear-gradient(180deg,#2b103f 0,#1c1233 40%,#f7f8fb 100%);
  padding:18px 0 32px;
  color:#fff;
}
.hero-slider__frame{
  max-width:1200px;
  margin:0 auto;
  padding:0 20px;
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
}
.hero-slider__track{
  overflow:hidden;
  border-radius:22px;
  box-shadow:0 18px 40px rgba(15,23,42,.4);
  flex:1;
  position:relative;
  display:flex;
  transition:transform .4s ease;
  z-index:1;
}
.hero-slide{
  flex:0 0 100%;
  min-height:260px;
  display:flex;
  align-items:center;
  padding:28px 32px;
  text-decoration:none;
  color:#fff;
  background-size:cover;
  background-position:center;
}
.hero-slide__content{max-width:360px;}
.hero-slide__tag{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.45);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.hero-slide h2{
  font-size:26px;
  line-height:1.1;
  margin:0 0 6px;
}
.hero-slide p{
  font-size:14px;
  opacity:.92;
  margin:0 0 10px;
}
.hero-slide__cta{
  display:inline-flex;
  align-items:center;
  padding:8px 14px;
  border-radius:999px;
  background:#f97316;
  font-size:13px;
  font-weight:700;
}
.hero-slide--1{background-image:linear-gradient(135deg,#4c1d95,#ec4899);}
.hero-slide--2{background-image:linear-gradient(135deg,#1d4ed8,#22c55e);}
.hero-slide--3{background-image:linear-gradient(135deg,#7e22ce,#ec4899);}
.hero-slide--4{background-image:linear-gradient(135deg,#f97316,#db2777);}

.hero-slider__arrow{
  width:40px;
  height:40px;
  border-radius:999px;
  border:0;
  background:rgba(15,23,42,.7);
  color:#fff;
  font-size:22px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  z-index:5;
}
.hero-slider__arrow:hover{
  background:rgba(15,23,42,.9);
}

.hero-slider__dots{
  display:flex;
  justify-content:center;
  gap:6px;
  margin-top:10px;
}
.hero-slider__dot{
  width:9px;
  height:9px;
  border-radius:999px;
  background:rgba(15,23,42,.35);
  border:0;
  cursor:pointer;
}
.hero-slider__dot--active{
  width:22px;
  background:#f97316;
}

@media (max-width:900px){
  .hero-slider{padding:10px 0 20px;}
  .hero-slider__frame{padding:0 12px;}
  .hero-slide{
    min-height:200px;
    padding:20px 18px;
  }
  .hero-slide h2{font-size:20px;}
}

/* =========================================
   BENEFÍCIOS (ICONES)
========================================= */
.benefits{
  background:#f7f8fb;
  padding:16px 0 24px;
}
.benefits__grid{
  max-width:1200px;
  margin:0 auto;
  padding:0 20px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.benefit{
  background:#fff;
  border-radius:18px;
  padding:14px 14px 12px;
  display:flex;
  align-items:flex-start;
  gap:10px;
  box-shadow:0 10px 30px rgba(15,23,42,.06);
}
.benefit__icon{font-size:26px;}
.benefit__txt h3{
  margin:0 0 4px;
  font-size:14px;
}
.benefit__txt p{
  margin:0;
  font-size:12px;
  color:#667085;
}
@media (max-width:900px){
  .benefits__grid{
    grid-template-columns:1fr 1fr;
    gap:10px;
    padding:0 12px;
  }
  .benefit{padding:12px;}
}
@media (max-width:600px){
  .benefits__grid{grid-template-columns:1fr;}
}

/* =========================================
   BOTÃO COMPRAR DOS CARDS (.pcard)
========================================= */
.pcard .actions{
  margin-top:14px;
  display:flex;
  justify-content:center;
}
.pcard .btn,
.pcard .btn.primary,
.pcard .btn.btn-buy{
  width:60%;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:6px 10px;
  border-radius:8px;
  border:none;
  background:linear-gradient(135deg,#491739);
  color:#ffffff;
  font-weight:800;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.04em;
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(5,1,10,.45);
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.pcard .btn:hover{
  filter:brightness(1.05);
  transform:translateY(1px);
  box-shadow:0 8px 20px rgba(5,1,10,.5);
}
.pcard .btn:active{
  transform:translateY(2px);
  box-shadow:0 5px 14px rgba(5,1,10,.6);
}

/* =========================================
   VIBRADORES: GRID (SEM SCROLL)
========================================= */
.section-row--vibr .rail-wrap--grid{overflow:visible;}
.section-row--vibr .rail--grid{
  display:grid;
  gap:18px;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  overflow:visible;
}
@media (max-width:1200px){
  .section-row--vibr .rail--grid{grid-template-columns:repeat(3, minmax(0, 1fr));}
}
@media (max-width:900px){
  .section-row--vibr .rail--grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
}
@media (max-width:600px){
  .section-row--vibr .rail--grid{grid-template-columns:1fr;}
}

/* =========================================
   CARROSSEL "MAIS PROCURADOS"
========================================= */
.home-block{
  max-width:1200px;
  margin:40px auto 60px;
  padding:0 16px;
}
.home-block__head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
}
.home-block__head h2{
  margin:0;
  font-size:28px;
  color:#3f2b5a;
}
.home-block__link{
  font-size:14px;
  color:#3f2b5a;
  font-weight:600;
  text-decoration:none;
}
.home-block__link:hover{text-decoration:underline;}

.prod-carousel{position:relative;}
.prod-carousel .prod-rail{
  display:flex;
  gap:24px;
  overflow:hidden;
  scroll-behavior:smooth;
  padding:4px 4px 8px;
}
.prod-carousel .pcard{
  flex:0 0 calc((100% - 3*24px) / 4);
}
@media (max-width:1024px){
  .prod-carousel .pcard{flex:0 0 calc((100% - 2*20px) / 3);}
}
@media (max-width:768px){
  .prod-carousel .pcard{flex:0 0 88%;}
}
.pnav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:38px;
  height:38px;
  border-radius:999px;
  border:none;
  background:#ffffff;
  box-shadow:0 6px 18px rgba(15,23,42,.16);
  display:grid;
  place-items:center;
  cursor:pointer;
  color:#4b164c;
  font-size:22px;
  z-index:10;
}
.pnav.prev{left:-10px;}
.pnav.next{right:-10px;}
.pnav:disabled{
  opacity:.35;
  cursor:default;
}
@media (max-width:768px){
  .pnav{display:none;}
}

/* ============================
   MOBILE: Banner full width + sem setas
============================ */
@media (max-width:720px){

  /* some com setas do banner/slider */
  .hero .arrow,
  .banner .arrow,
  .carousel .arrow,
  .slider .arrow,
  .hero .nav,
  .banner .nav,
  .hero-slider__arrow{
    display:none !important;
  }

  /* full-bleed (ponta a ponta) */
  .hero,
  .banner,
  .home-hero,
  .hero .carousel,
  .banner .carousel,
  .hero .rail,
  .banner .rail,
  .hero .track,
  .banner .track,
  .hero-slider,
  .hero-slider__frame,
  .hero-slider__track{
    width:100vw !important;
    max-width:100vw !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
    border-radius:0 !important;
    overflow:hidden !important;
  }

  .hero img,
  .banner img{
    width:100% !important;
    height:auto !important;
    display:block !important;
    border-radius:0 !important;
  }
}

/* ============================
   MOBILE: remover enfeite/bolinha perto da busca
============================ */
@media (max-width:720px){

  .topbar .search::before,
  .topbar .search::after,
  .topbar .search-wrap::before,
  .topbar .search-wrap::after,
  .topbar .searchbar::before,
  .topbar .searchbar::after,
  .topbar .search-row::before,
  .topbar .search-row::after{
    content:none !important;
    display:none !important;
  }

  .topbar .dot,
  .topbar .orb,
  .topbar .bubble,
  .topbar .pill,
  .topbar .search-dot{
    display:none !important;
  }
}
/* ============================
   PCARD: imagem sempre inteira (sem cortar)
============================ */
.pcard .thumb,
.pcard .thumb-link,
.pcard .pcard-thumb{
  width: 100%;
  aspect-ratio: 4 / 3;           /* ajuste se quiser: 1/1 ou 16/9 */
  overflow: hidden;
  border-radius: 18px 18px 0 0;  /* combina com o card */
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f7f8fb;           /* fundo quando sobrar espaço */
}

.pcard .thumb img,
.pcard .thumb-link img,
.pcard .pcard-thumb img{
  width: 100%;
  height: 100%;
  object-fit: contain;           /* 👈 mostra a imagem inteira */
  object-position: center;
  display: block;
  max-width: 100%;
  max-height: 100%;
}
/* ===== FIX MOBILE: botão COMPRAR sumindo ===== */
@media (max-width: 520px){

  /* garante que o card não corte o rodapé/ações */
  .pcard{
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  /* garante que a área de ações exista e apareça */
  .pcard .actions{
    display: flex !important;
    flex-direction: column;
    gap: 10px;
    margin-top: 10px;
  }

  /* força o botão aparecer */
  .pcard .btn-buy,
  .pcard .js-buy{
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  /* evita o menu inferior “tapar” o final da página */
  body{
    padding-bottom: 92px;
  }
}
/* ===========================
   FIX HOME: tira a bolinha (div #x) ao lado da busca
=========================== */
.hero-top #x{
  display:none !important;
  width:0 !important;
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
}

/* (extra segurança caso mudem o id) */
.hero-top .wrap > .frete-grid{
  display:none !important;
}

/* ===========================
   FIX HOME: para a busca de mudar de layout ao rolar (compact)
   Se você QUER que ela pare de virar fixa quando rola, deixa isso.
=========================== */
@media (max-width:760px){
  .hero-top.compact .search{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    z-index:auto !important;
    padding:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  .hero-top.compact::after{
    content:none !important;
    display:none !important;
    height:0 !important;
  }
  .hero-top.compact .search input{
    height:42px !important;
    border-radius:12px !important;
  }
}
/* Esconde TUDO do mobile no desktop */
.ls-only-mobile{ display:none !important; }

/* Mostra apenas em telas menores (mobile) */
@media (max-width: 991px){
  .ls-only-mobile{ display:block !important; }
}
