:root{--vs-primary:var(--sc-primary,#7c5cff);--vs-accent:#ff6d3d;--vs-ink:#141423;--vs-soft:#f6f4ff;--vs-line:#e5e0f8;--vs-muted:#6d6e7e;--vs-card:#ffffff}
body{font-family:'Inter',system-ui,sans-serif!important;background:#fbfbff!important;color:var(--vs-ink)!important}body h1,body h2,body h3,body h4{font-family:'Plus Jakarta Sans','Inter',sans-serif!important}.sp-nav{background:rgba(255,255,255,.96)!important;border-bottom:1px solid var(--vs-line)!important;box-shadow:none!important;backdrop-filter:blur(16px)!important}.sp-nav-inner{max-width:1200px!important;height:72px!important}.sp-logo,.sp-logo-name{font-family:'Plus Jakarta Sans','Inter',sans-serif!important;font-weight:900!important;color:var(--vs-ink)!important}.sp-logo-text{color:var(--vs-primary)!important}.sp-nav-links a{font-family:'Inter',sans-serif!important;color:#5c5d71!important;font-size:.84rem!important;font-weight:700!important}.sp-nav-links a.active,.sp-nav-links a:hover{color:var(--vs-primary)!important}.sp-nav-cta{background:linear-gradient(135deg,var(--vs-primary),color-mix(in srgb,var(--vs-primary) 79%,#fff))!important;color:#fff!important;border-radius:999px!important;font-weight:850!important}.sp-footer{background:#121327!important;color:#cbc8dd!important;border-top:0!important}.sp-footer-brand h3,.sp-footer-col h4{color:#fff!important;font-family:'Plus Jakarta Sans','Inter',sans-serif!important}.sp-footer-col a{color:#cbc8dd!important}.sp-footer-social a{background:rgba(255,255,255,.08)!important;color:color-mix(in srgb,var(--vs-primary) 29%,#fff)!important;border-radius:12px!important}.sp-footer-bottom{border-top-color:rgba(255,255,255,.08)!important}
[data-vs-reveal],[data-vs-stagger]>*{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}[data-vs-reveal].is-visible,[data-vs-stagger]>.is-visible{opacity:1;transform:none}
.vs-wrap{width:min(1180px,calc(100% - 32px));margin-inline:auto}.vs-section{padding:90px 0}.vs-kicker{display:inline-flex;align-items:center;gap:8px;font:850 .68rem/1 'Plus Jakarta Sans';text-transform:uppercase;letter-spacing:.13em;color:var(--vs-primary)}.vs-head{max-width:760px;margin-bottom:34px}.vs-head-center{text-align:center;margin-inline:auto}.vs-head h2,.vs-copy h1,.vs-page-hero h1,.vs-product-info h2{font-size:clamp(2.2rem,4.7vw,4.8rem);line-height:.95;letter-spacing:-.06em;margin:14px 0 16px}.vs-head p,.vs-copy p,.vs-page-hero p,.vs-product-info p{color:var(--vs-muted);line-height:1.75}
.vs-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:999px;border:1px solid transparent;font:850 .76rem/1 'Plus Jakarta Sans';transition:.2s;text-decoration:none}.vs-btn:hover{transform:translateY(-2px)}.vs-btn-primary{background:linear-gradient(135deg,var(--vs-primary),color-mix(in srgb,var(--vs-primary) 79%,#fff));color:#fff;box-shadow:0 14px 36px color-mix(in srgb,var(--vs-primary) 18%,transparent)}.vs-btn-outline{background:#fff;border-color:#d9d3f3;color:var(--vs-ink)}.vs-btn-dark{background:#141423;color:#fff}.vs-actions{display:flex;gap:10px;flex-wrap:wrap}
.vs-hero{padding:62px 0 30px;background:linear-gradient(180deg,#f4f0ff,#fbfbff)}.vs-hero-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:56px;align-items:center}.vs-proof{display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:22px;color:#77788c;font-size:.6rem}.vs-proof i{color:var(--vs-primary);margin-right:5px}.vs-visual{position:relative;min-height:520px}.vs-hero-card{position:absolute;border-radius:30px;border:1px solid var(--vs-line);box-shadow:0 20px 50px rgba(20,20,35,.08)}.vs-hero-main{left:12%;top:0;width:70%;height:420px;background:linear-gradient(135deg,color-mix(in srgb,var(--vs-primary) 75%,#fff),#ffb0d3)}.vs-hero-left{left:0;bottom:36px;width:22%;height:210px;background:linear-gradient(180deg,#fff,#efe9ff)}.vs-hero-right{right:0;top:56px;width:22%;height:210px;background:linear-gradient(180deg,#fff,#fff0eb)}.vs-hero-main:before,.vs-hero-left:before,.vs-hero-right:before{content:'';position:absolute;left:16px;right:16px;top:16px;bottom:16px;border-radius:24px;background:rgba(255,255,255,.18)}.vs-float{position:absolute;background:#fff;border:1px solid var(--vs-line);border-radius:16px;padding:12px 13px;box-shadow:0 12px 30px rgba(20,20,35,.08)}.vs-float strong{display:block;font-size:.66rem}.vs-float span{display:block;font-size:.5rem;color:#5f6272;margin-top:3px}.vs-float-a{left:4%;top:20px}.vs-float-b{right:6%;bottom:12px}
.vs-benefits{padding:0 0 54px}.vs-benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.vs-benefit-grid article,.vs-cat-grid article,.vs-product-card,.vs-filter-panel,.vs-story-panel div{background:#fff;border:1px solid var(--vs-line);border-radius:22px;padding:20px}.vs-benefit-grid i{font-size:1.1rem;color:var(--vs-primary)}.vs-benefit-grid strong{display:block;font-size:.8rem;margin:16px 0 8px}.vs-benefit-grid span{display:block;font-size:.6rem;color:var(--vs-muted);line-height:1.7}
.vs-cats{background:#fff}.vs-cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.vs-cat-media{height:120px;border-radius:18px;background:linear-gradient(135deg,#f4efff,#ffe9e2);margin-bottom:16px}.vs-cat-grid strong{display:block;font-size:.78rem}.vs-cat-grid span{display:block;margin-top:6px;font-size:.58rem;color:var(--vs-muted)}
.vs-products{background:#f9f8ff}.vs-product-grid,.vs-catalog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.vs-product-card{padding:0;overflow:hidden}.vs-product-media{height:220px;background:linear-gradient(135deg,#fff,#f1ecff);position:relative}.vs-product-media span{position:absolute;top:12px;left:12px;display:inline-flex;height:28px;padding:0 10px;border-radius:999px;background:#fff;color:var(--vs-primary);font-size:.54rem;font-weight:800;align-items:center}.vs-product-body{padding:16px}.vs-product-body h3{font-size:.9rem;margin:0 0 8px}.vs-product-body p{font-size:.58rem;color:var(--vs-muted);line-height:1.7;min-height:46px}.vs-product-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.vs-product-bottom strong{font-size:.9rem}.vs-product-bottom a{text-decoration:none;color:var(--vs-primary);font-size:.58rem;font-weight:850}
.vs-banner{background:#fff}.vs-banner-box{background:linear-gradient(135deg,#f4eeff,#fff6f1);border:1px solid var(--vs-line);border-radius:28px;padding:34px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}.vs-banner-box h2{font-size:clamp(2rem,4vw,3.8rem);line-height:.96;letter-spacing:-.05em;margin:12px 0}.vs-banner-box p{color:var(--vs-muted)}
.vs-final-cta{background:#fff}.vs-final-grid,.vs-layout-catalog{display:grid;grid-template-columns:.84fr 1.16fr;gap:54px;align-items:start}
/* Na pagina de produto a foto e o argumento: ela nao pode ser a coluna
   estreita. */
.vs-product-layout{display:grid;grid-template-columns:1.02fr .98fr;gap:48px;align-items:start}.vs-story-panel{display:grid;gap:10px}.vs-story-panel div{padding:18px}.vs-story-panel i{font-size:1rem;color:var(--vs-primary)}.vs-story-panel strong{display:block;font-size:.7rem;margin:16px 0 5px}.vs-story-panel span{display:block;font-size:.56rem;color:var(--vs-muted);line-height:1.6}
.vs-page-hero{padding:70px 0 30px;background:linear-gradient(180deg,#f4efff,#fbfbff)}.vs-filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.vs-filter-row span,.vs-attrs span,.vs-product-tag{padding:8px 10px;border-radius:999px;background:#f5f1ff;border:1px solid var(--vs-line);font-size:.56rem;color:#625d80;font-weight:800}.vs-filter-panel h3{font-size:.95rem;margin:0 0 18px}.vs-filter-block{display:grid;gap:8px;margin-bottom:14px}.vs-filter-block strong{font-size:.62rem}.vs-filter-block label{font-size:.62rem;color:#696b7c;display:flex;gap:8px;align-items:center}
.vs-gallery-main{height:460px;border-radius:28px;background:linear-gradient(135deg,#faf8ff,#ece5ff);border:1px solid var(--vs-line)}.vs-gallery-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}.vs-gallery-thumbs span{height:100px;border-radius:20px;border:1px solid var(--vs-line);background:linear-gradient(135deg,#fff,#f4efff)}.vs-price-row{display:flex;align-items:flex-end;gap:10px;margin:10px 0 14px}.vs-price-row strong{font-size:1.8rem;color:var(--vs-ink)}.vs-price-row del{color:#6b6980;font-size:.9rem}.vs-checks{list-style:none;padding:0;margin:18px 0;display:grid;gap:8px}.vs-checks li{font-size:.64rem;color:#5f6072}.vs-checks i{color:var(--vs-primary);margin-right:6px}.vs-attrs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
@media(max-width:1024px){.vs-hero-grid,.vs-final-grid,.vs-layout-catalog,.vs-product-layout,.vs-banner-box{grid-template-columns:1fr}.vs-benefit-grid,.vs-cat-grid,.vs-product-grid,.vs-catalog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.vs-wrap{width:min(100% - 24px,1180px)}.vs-hero-grid{gap:34px}.vs-actions{display:grid}.vs-btn{width:100%}.vs-visual{min-height:400px}.vs-hero-main{width:76%;height:300px;left:12%}.vs-hero-left,.vs-hero-right{display:none}.vs-benefit-grid,.vs-cat-grid,.vs-product-grid,.vs-catalog-grid{grid-template-columns:1fr}.vs-layout-catalog{gap:20px}.vs-gallery-main{height:300px}.vs-gallery-thumbs{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){[data-vs-reveal],[data-vs-stagger]>*{opacity:1;transform:none;transition:none!important}}

/* A moldura do produto passa a mostrar a foto real quando ela existe. */
.vs-product-media{position:relative;overflow:hidden}
.vs-product-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vs-product-media span{position:relative;z-index:2}

/* -------------------------------------------------------------------------
   Nav legível por tenant
   -------------------------------------------------------------------------
   A barra pública consome as cores JÁ calculadas pelo Contraste no layout
   (--sp-active / --sp-cta-bg / --sp-cta-ink), derivadas do primary do próprio
   cliente. Antes o acento cru (--vs-primary) era pintado direto e reprovava no AA
   quando a marca era um tom médio (roxo/laranja/teal). O fallback preserva a
   cor da paleta caso a variável não venha. É a regra "tema = só paleta".
   ------------------------------------------------------------------------- */
.sp-nav-links a:hover,
.sp-nav-links a.active { color: var(--sp-active, var(--vs-primary)) !important; }
.sp-nav-cta { background: var(--sp-cta-bg, var(--vs-primary)) !important; color: var(--sp-cta-ink, #fff) !important; }
.sp-nav-cta:hover { background: var(--sp-cta-bg, var(--vs-primary)) !important; filter: brightness(.93); }
.sp-nav-account { color: var(--sp-active, var(--vs-primary)) !important; border-color: var(--sp-active, var(--vs-primary)) !important; }

/* Kicker de seção clara: acento legível por tenant (--sp-active). Kicker em
   seção escura, se houver, tem override próprio mais específico. */
.vs-kicker{color:var(--sp-active,var(--vs-primary))}

/* Selo do produto e link "Comprar" em acento legível por tenant (era var(--vs-primary), 4.34:1). */
.vs-product-media span,.vs-product-bottom a{color:var(--sp-active,var(--vs-primary))}

/* Páginas internas da loja (produto, categorias, promoções, contato,
   favoritos, checkout). Vivem no mesmo layout público e na mesma linguagem
   da home: antes abriam noutro layout, com outra tipografia e sem a marca. */
.vs-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.vs-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;font-size:.55rem;font-weight:850;background:#f2eeff;color:#4c31c9;border:1px solid var(--vs-line);text-decoration:none}
.vs-badge-ok{background:#e7f7ed;color:#12693a;border-color:#c8ecd6}
.vs-badge-warn{background:#fff4e0;color:#8a5a06;border-color:#f6e0b8}
.vs-badge-off{background:#fdeaea;color:#a11b1b;border-color:#f5cccc}
.vs-spec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:20px 0}
.vs-spec-grid div{border:1px solid var(--vs-line);border-radius:14px;padding:12px 14px;background:#fff}
.vs-spec-grid span{display:block;font-size:.5rem;letter-spacing:.09em;color:var(--vs-muted);text-transform:uppercase}
.vs-spec-grid strong{display:block;font-size:.66rem;margin-top:4px}
.vs-variations{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px;margin-top:12px}
.vs-variation{display:block;cursor:pointer}
.vs-variation input{position:absolute;opacity:0;pointer-events:none}
.vs-variation-card{display:block;border:1px solid var(--vs-line);border-radius:14px;padding:12px 13px;background:#fff;transition:.18s}
.vs-variation input:checked+.vs-variation-card{border-color:var(--vs-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--vs-primary) 16%,transparent)}
.vs-variation input:focus-visible+.vs-variation-card{outline:2px solid var(--vs-primary);outline-offset:2px}
.vs-variation-card strong{display:flex;align-items:center;gap:7px;font-size:.64rem}
.vs-variation-card small{display:block;font-size:.52rem;color:var(--vs-muted);margin-top:4px}
.vs-variation[data-indisponivel="1"]{opacity:.45;cursor:not-allowed}
.vs-swatch{width:15px;height:15px;border-radius:50%;border:1px solid rgba(15,18,22,.16);display:inline-block}
.vs-buy{display:grid;gap:16px;margin-top:20px}
.vs-buy-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.vs-qty{display:inline-flex;align-items:center;border:1px solid var(--vs-line);border-radius:12px;overflow:hidden;background:#fff}
.vs-qty input{width:74px;border:0;padding:13px 12px;font:800 .7rem/1 'Inter',sans-serif;text-align:center;background:transparent;color:var(--vs-ink)}
.vs-btn-fav.is-fav{background:#fdeaea;border-color:#f5cccc;color:#a11b1b}
.vs-reviews{display:grid;gap:12px;margin-bottom:26px}
.vs-review{border:1px solid var(--vs-line);border-radius:16px;padding:16px 18px;background:#fff}
.vs-review-stars{color:#f5a623;font-size:.62rem;letter-spacing:.08em}
.vs-review strong{display:block;font-size:.68rem;margin:7px 0 4px}
.vs-review p{margin:0;font-size:.6rem;color:var(--vs-muted);line-height:1.65}
.vs-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:1px solid var(--vs-line);border-radius:18px;padding:20px;background:#fff}
.vs-form .vs-field-full{grid-column:1/-1}
.vs-form label{display:block;font-size:.55rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--vs-muted);margin-bottom:6px}
.vs-form input,.vs-form select,.vs-form textarea{width:100%;border:1px solid var(--vs-line);border-radius:12px;padding:12px 13px;font:600 .66rem/1.4 'Inter',sans-serif;color:var(--vs-ink);background:#fff}
.vs-form input:focus,.vs-form select:focus,.vs-form textarea:focus{outline:2px solid var(--vs-primary);outline-offset:1px;border-color:var(--vs-primary)}
.vs-alert{border:1px solid var(--vs-line);border-radius:14px;padding:13px 16px;font-size:.62rem;margin-bottom:16px}
.vs-alert-ok{background:#e7f7ed;border-color:#c8ecd6;color:#12693a}
.vs-alert-bad{background:#fdeaea;border-color:#f5cccc;color:#a11b1b}
@media(max-width:720px){
  .vs-spec-grid,.vs-form{grid-template-columns:1fr}
  .vs-variations{grid-template-columns:1fr 1fr}
  .vs-buy-row .vs-btn{width:100%}
  .vs-qty{width:100%}.vs-qty input{width:100%}
}
.vs-chip{border:1px solid var(--vs-line);background:#f5f1ff;color:#625d80;border-radius:999px;padding:8px 13px;font-size:.56rem;font-weight:800;cursor:pointer;transition:.18s}
.vs-chip:hover{border-color:var(--vs-primary)}
.vs-chip.is-active{background:var(--vs-primary);border-color:var(--vs-primary);color:#fff}
