:root{
  --bg: #f8edff;
  --ink: #2b2140;
  --muted: #6d5a8d;
  --panel: #ffffff;
  --border: rgba(43,33,64,.12);
  --brand: #7b2cbf;
  --brand-d: #6416a8;
  --radius: 16px;
  --shadow: 0 10px 24px rgba(44,16,86,.08);
}
html{height:100%}
body{background:var(--bg); color:var(--ink); font-family:"Sora",system-ui,Segoe UI,Roboto,Ubuntu,Arial,sans-serif; overflow-x:hidden; min-height:100vh; display:flex; flex-direction:column}
main{flex:1 0 auto}
a{color:var(--brand)} a:hover{color:var(--brand-d)}
img{max-width:100%; height:auto}

/* Containers */
.container-narrow{max-width:1080px}
.container-wide{max-width:1200px}

/* Surfaces */
.surface{background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow)}
.surface-soft{background:#faf6ff; border:1px solid rgba(124,43,191,.12); border-radius:var(--radius)}
.shadow-soft{box-shadow:var(--shadow)}

/* Text */
.text-muted-ink{color:var(--muted)}

/* Buttons */
.btn-cta{background:var(--brand); color:#fff; border:none; border-radius:999px; padding:12px 20px; font-weight:800}
.btn-cta:hover{background:var(--brand-d); color:#fff}
.btn-outline{border:1px solid var(--border); border-radius:12px}
.btn-wa{background:#128C7E; color:#fff; border:none; border-radius:999px; padding:12px 20px; font-weight:800}
.btn-wa:hover{background:#0f786e; color:#fff}

/* Header/Nav */
.site-header .navbar .nav-link{font-weight:600; color:var(--ink)}
.site-header .navbar .nav-link:hover{color:var(--brand)}
.brand-logo{height:42px}

/* Hero/Sections */
.section{padding:72px 0}
.hero{position:relative}
.hero-illus{border-radius:18px; overflow:hidden}
.hero-illus img{display:block; width:100%; height:auto}
.badge-accent{display:inline-block; background:linear-gradient(90deg,#ffb86b,#ff7a00); color:#3a1900; padding:.35rem .7rem; border-radius:999px; font-size:.8rem; font-weight:800}

/* Cards de produto */
.p-card{background:#fff; border:1px solid var(--border); border-radius:18px; height:100%; display:flex; flex-direction:column; transition:box-shadow .15s ease, transform .15s ease}
.p-card:hover{transform:translateY(-2px); box-shadow:0 12px 28px rgba(44,16,86,.12)}
.p-thumb{background:#f4efff; border-bottom:1px solid var(--border); border-top-left-radius:18px; border-top-right-radius:18px; display:flex; align-items:center; justify-content:center; min-height:180px; aspect-ratio:1/1}
.p-thumb img{max-height:160px; width:auto; object-fit:contain}
.p-body{padding:14px}
.p-actions{display:grid; grid-template-columns: 1fr; gap:10px; align-items:center}
@media (min-width: 576px){ .p-actions{grid-template-columns:auto 1fr} }
.p-title{font-weight:800; font-size:1rem; line-height:1.25}
.price{font-weight:900}

/* Mini vitrine */
.product-card{border-radius:16px; border:1px solid var(--border); padding:18px; text-align:center; height:100%; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px}
.product-card img{max-width:120px; max-height:120px; object-fit:contain; display:block}
.product-card .title{font-weight:700; font-size:1rem; margin-top:.5rem}

/* Kits */
.kit-card{background:#fff; border:1px solid var(--border); border-radius:18px; padding:16px; overflow:hidden}
.kit-card .kit-img{background:#f4efff; border:1px solid var(--border); border-radius:12px; padding:10px; text-align:center; margin:8px 0}
.kit-card .kit-img img{max-height:160px; width:auto; object-fit:contain; display:block; margin:0 auto}
.kit-card .kit-img.split{display:flex; align-items:center; justify-content:center; gap:8px}
.kit-card .kit-img.split img{width:50%; max-height:140px}
.btn-cta-light{background:#efe9ff; color:var(--brand); border:1px solid rgba(124,43,191,.25); border-radius:12px; font-weight:800}

/* Contact WA block */
.contact-wa{background:linear-gradient(180deg,#fff,#faf6ff)}

/* Accordion fix */
.accordion-button{font-weight:700}
/* Produto: accordion estilizado */
.acc .accordion-button{background:#f7f2ff; color:var(--ink); font-weight:700}
.acc .accordion-item{border-radius:12px; overflow:hidden; border:1px solid var(--border)}
.acc .accordion-collapse{transition: height 0.35s ease}
.acc .accordion-body{padding: 1rem 1.25rem}

/* Produto: gallery */
.gallery{background:#f4efff; border:1px solid var(--border); border-radius:18px; padding:14px}
.gallery img{width:100%; height:auto; object-fit:contain}

/* Produto: área da imagem com altura fixa */
.product-image-area {
  height: 400px !important;
  min-height: 400px;
}

@media (max-width: 768px) {
  .product-image-area {
    height: 300px !important;
    min-height: 300px;
  }
}

@media (max-width: 576px) {
  .product-image-area {
    height: 250px !important;
    min-height: 250px;
  }
}

/* Produto: isolamento das colunas para evitar que o accordion afete a imagem */
.product-layout .row {
  align-items: flex-start;
}

.product-layout .col-12.col-lg-5,
.product-layout .col-12.col-lg-7 {
  align-self: flex-start;
}

/* Cart drawer (produtos) */
.cart-overlay{position:fixed; inset:0; background:rgba(0,0,0,.35); opacity:0; pointer-events:none; transition:opacity .2s; z-index:48}
.cart-overlay.show{opacity:1; pointer-events:auto}
.cart-drawer{position:fixed; top:0; right:0; height:100vh; width:380px; max-width:100%; transform:translateX(100%); transition:transform .25s; z-index:49; display:flex; flex-direction:column; border-top-left-radius:16px; border-bottom-left-radius:16px; padding:12px; background:#fff; border-left:1px solid var(--border); box-shadow: -12px 0 24px rgba(44,16,86,.12)}
.cart-drawer.open{transform:translateX(0)}
.cart-head{padding:8px 4px; border-bottom:1px solid var(--border)}
.cart-foot{padding:8px 4px; border-top:1px solid var(--border)}

/* Floating cart button */
.cart-fab{position:fixed; right:16px; bottom:86px; z-index:41}
.cart-fab a{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#7b2cbf;color:#fff;border-radius:50%; box-shadow:0 10px 24px rgba(0,0,0,.18); text-decoration:none; font-size:22px; line-height:1; position:relative}
.cart-fab .badge{position:absolute; top:-6px; right:-6px; background:#ff4136; color:#fff; border-radius:999px; font-weight:800; font-size:.75rem; padding:.2rem .4rem}

/* Qty stepper */
.qty-stepper{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden;min-width:118px}
.qty-stepper .btn-step{width:36px;height:36px;border:0;background:transparent;font-weight:900;line-height:1; color:var(--brand); font-size:18px}
.qty-stepper .qty-input{width:54px;text-align:center;border:0;box-shadow:none; height:36px; font-weight:700}

/* Cart elements */
.cart-items{padding:8px 4px}
.cart-row{border-bottom:1px solid var(--border); padding:10px 0}
.cart-thumb{width:56px; height:56px; object-fit:contain; border:1px solid var(--border); border-radius:10px; background:#f4efff}

/* Trust section */
.trust .icon{width:42px; height:42px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:#efe9ff; color:var(--brand); font-weight:900}

/* Floating buttons (opcional) */
.wa-float{position:fixed; right:16px; bottom:16px; z-index:40}
.wa-float a{display:flex; align-items:center; justify-content:center; width:56px; height:56px; background:#25D366; color:#fff; border-radius:50%; box-shadow:0 10px 24px rgba(0,0,0,.18); font-size:22px; text-decoration:none}
/* (removed duplicate .cart-fab definitions to avoid overrides) */

/* Mobile tweaks */
@media (max-width: 576px){
  .display-5{font-size:2rem; line-height:1.2}
  h1,.h1{font-size:1.6rem}
  h2,.h2,.h4{font-size:1.25rem}
  p,.lead{font-size:1rem}
  .lead{font-weight:400}
  .section{padding:48px 0}
  /* Produto: mobile cards */
  .p-thumb{min-height:140px}
  .p-card .p-body{padding:12px}
  .p-card [data-qty-wrap]{display:grid; grid-template-columns:1fr; gap:10px}
  .p-card .qty-stepper .btn-step{width:34px; height:34px; font-size:18px}
  .p-card .qty-stepper .qty-input{width:46px; height:34px}
  .p-card .add-to-cart{width:100%; padding:10px 14px}
}

@media (max-width: 768px) {
  .cart-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px; /* Adiciona um pequeno espaçamento entre os itens empilhados */
  }
  .cart-row .flex-grow-1 {
    width: 100%; /* Garante que o nome e preço do produto ocupem a largura total */
  }
  .cart-row .qty-stepper {
    width: 100%; /* Stepper ocupa a largura total */
    justify-content: center; /* Centraliza o stepper */
  }
  .cart-row .ms-2.fw-bold { /* Preço total do item */
    width: 100%;
    text-align: right; /* Alinha o preço à direita */
  }
  .cart-row .btn-outline-danger { /* Botão Remover */
    width: 100%; /* Botão ocupa a largura total */
    margin-left: 0 !important; /* Remove o margin-left padrão */
    margin-top: 8px; /* Adiciona um espaçamento superior */
  }
}

/* Em telas muito estreitas, usar 1 coluna nos cards */
@media (max-width: 380px){
  .row.g-3 > .col-6{flex:0 0 100%; max-width:100%}
}

/* Link: Comprar direto (no card do produto) */
.buy-direct{display:inline-block; font-size:.9rem; color:var(--brand); text-decoration:none; padding:0 !important; border:0 !important; background:transparent !important}
.buy-direct:hover{color:var(--brand-d); text-decoration:underline}

/* Breadcrumbs */
.breadcrumb-nav{margin-bottom:1rem}
.breadcrumb{background:transparent; padding:0; margin:0; font-size:.875rem}
.breadcrumb-item{color:var(--muted)}
.breadcrumb-item a{color:var(--muted); text-decoration:none; transition:color .15s ease}
.breadcrumb-item a:hover{color:var(--brand); text-decoration:underline}
.breadcrumb-item.active{color:var(--ink); font-weight:500}
.breadcrumb-item + .breadcrumb-item::before{content:"/"; color:var(--muted); margin:0 .5rem}
