
/* =====================================================================
   VAPEZERA CAMPAIGN — banners responsivos, loader, cookies e efeitos
   ===================================================================== */
:root{
  --vz-campaign-red:#C90000;
  --vz-campaign-red2:#ff1f1f;
  --vz-campaign-dark:#050505;
  --vz-campaign-gold:#d7aa4a;
}

/* Loader rápido e perceptível */
.vz-page-loader{
  position:fixed; inset:0; z-index:99999;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(circle at center, #160000 0%, #030303 52%, #000 100%);
  color:#fff; opacity:1; visibility:visible;
  transition:opacity .45s ease, visibility .45s ease;
}
.vz-page-loader.is-hidden{opacity:0; visibility:hidden; pointer-events:none;}
.vz-page-loader__inner{text-align:center; transform:translateY(-10px);}
.vz-page-loader__brand{
  font-size:clamp(34px,6vw,74px); font-weight:950; letter-spacing:.08em;
  text-transform:uppercase;
  background:linear-gradient(180deg,#fff,#dadada 42%,#7a7a7a);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:0 0 26px rgba(201,0,0,.58);
  animation:vzLogoPulse 1s ease-in-out infinite alternate;
}
.vz-page-loader__bar{width:min(360px,76vw); height:7px; margin:22px auto 0; border-radius:999px; overflow:hidden; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.18);}
.vz-page-loader__bar span{display:block; height:100%; width:45%; border-radius:999px; background:linear-gradient(90deg,#8f0000,#ff2020,#fff); animation:vzLoaderRun .9s ease-in-out infinite; box-shadow:0 0 24px rgba(255,0,0,.85);}
@keyframes vzLogoPulse{from{filter:drop-shadow(0 0 10px rgba(201,0,0,.3)); transform:scale(.985)}to{filter:drop-shadow(0 0 28px rgba(255,0,0,.65)); transform:scale(1)}}
@keyframes vzLoaderRun{0%{transform:translateX(-110%)}100%{transform:translateX(245%)}}

/* Banner principal por imagem */
.vz-hero-image{width:100%; background:#050505; overflow:hidden; position:relative;}
.vz-hero-image::after{content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(0,0,0,0) 76%,rgba(0,0,0,.5)); opacity:.35;}
.vz-hero-image__img{display:block; width:100%; height:auto; object-fit:cover;}
@media (min-width:768px){.vz-hero-image__img{aspect-ratio:1916/821; max-height:640px; object-fit:cover;}}
@media (max-width:767px){.vz-hero-image__img{width:100%; aspect-ratio:853/1844; object-fit:cover;}}

/* Banners secundários */
.vz-secondary-banners{padding:34px 0 10px; background:#fff;}
.vz-secondary-banners .container{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; max-width:1320px;}
.vz-secondary-banner-card{display:block; overflow:hidden; border-radius:4px; background:#080808; box-shadow:0 14px 34px rgba(17,17,17,.12); transform:translateZ(0); position:relative;}
.vz-secondary-banner-card::before{content:""; position:absolute; inset:-80% auto -80% -40%; width:40%; transform:rotate(18deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent); opacity:0; transition:opacity .2s ease;}
.vz-secondary-banner-card:hover::before{opacity:1; animation:vzShine .72s ease forwards;}
.vz-secondary-banner-card img{display:block; width:100%; height:100%; aspect-ratio:1582/994; object-fit:cover; transition:transform .42s cubic-bezier(.18,.89,.32,1.28), filter .42s ease;}
.vz-secondary-banner-card:hover img{transform:scale(1.055) rotate(.25deg); filter:saturate(1.18) contrast(1.06);}
@keyframes vzShine{to{left:130%;}}
@media(max-width:767px){.vz-secondary-banners{padding:18px 0 6px}.vz-secondary-banners .container{display:grid; grid-template-columns:1fr; gap:10px; padding:0 10px}.vz-secondary-banner-card{border-radius:2px}.vz-secondary-banner-card img{aspect-ratio:1582/994}}

/* Ajuste da faixa de benefícios: semelhante à referência, mas Vapezera */
.vz-trust-benefits--express .vz-trust-benefits-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.vz-trust-benefits--express .vz-trust-benefit-card{min-height:78px; transition:transform .25s ease, box-shadow .25s ease, background .25s ease;}
.vz-trust-benefits--express .vz-trust-benefit-card:hover{transform:translateY(-4px); box-shadow:0 14px 26px rgba(201,0,0,.12); background:#fff;}
@media(max-width:900px){.vz-trust-benefits--express .vz-trust-benefits-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.vz-trust-benefit-card{border-bottom:1px solid #ededed}}
@media(max-width:520px){.vz-trust-benefits--express .vz-trust-benefit-card{padding:14px 12px; gap:10px}.vz-trust-benefit-card h3{font-size:.73rem}.vz-trust-benefit-card p{font-size:.74rem}.vz-trust-benefit-icon{width:36px;height:36px;flex-basis:36px}}

/* Efeitos exagerados porém leves */
.vz-btn-primary,.vz-btn-outline,.pr-card-btn,.vc-btn,.vz-footer-newsletter-form button,.search-bar button{
  position:relative; overflow:hidden; isolation:isolate;
}
.vz-btn-primary::before,.pr-card-btn::before,.vc-btn-primary::before,.vz-footer-newsletter-form button::before,.search-bar button::before{
  content:""; position:absolute; inset:-140% -50%; background:linear-gradient(110deg, transparent 35%, rgba(255,255,255,.42) 50%, transparent 65%); transform:translateX(-90%); z-index:-1;
}
.vz-btn-primary:hover::before,.pr-card-btn:hover::before,.vc-btn-primary:hover::before,.vz-footer-newsletter-form button:hover::before,.search-bar button:hover::before{animation:vzBtnFlash .65s ease;}
@keyframes vzBtnFlash{to{transform:translateX(90%)}}
.pr-card,.vz-review-card,.vz-blog-card,.vc-order-summary,.vc-form-section{transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;}
.pr-card:hover,.vz-review-card:hover,.vz-blog-card:hover{transform:translateY(-8px) scale(1.015); box-shadow:0 24px 50px rgba(17,17,17,.18); border-color:rgba(201,0,0,.22)}
.vz-reveal-zoom,.pr-card,.vz-section-header{opacity:0; transform:translateY(34px) scale(.98); transition:opacity .65s ease, transform .65s cubic-bezier(.2,.8,.2,1);}
.vz-reveal-zoom.is-visible,.pr-card.is-visible,.vz-section-header.is-visible{opacity:1; transform:translateY(0) scale(1);}

/* Cookies e idade */
.vz-age-gate{position:fixed; inset:0; z-index:100000; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(0,0,0,.78); backdrop-filter:blur(10px);}
.vz-age-gate.is-visible{display:flex;}
.vz-age-gate__card{width:min(470px,100%); padding:32px; border-radius:28px; background:linear-gradient(145deg,rgba(20,20,20,.92),rgba(70,0,0,.88)); border:1px solid rgba(255,255,255,.16); box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 50px rgba(201,0,0,.25); color:#fff; text-align:center;}
.vz-age-gate__logo{font-weight:950; letter-spacing:.14em; font-size:24px; margin-bottom:16px; color:#fff; text-shadow:0 0 20px rgba(201,0,0,.75);}
.vz-age-gate__card h2{margin:0 0 12px; font-size:28px;}
.vz-age-gate__card p{margin:0; color:rgba(255,255,255,.76); line-height:1.55;}
.vz-age-gate__actions{display:flex; gap:12px; margin-top:24px; justify-content:center; flex-wrap:wrap;}
.vz-age-accept,.vz-age-exit,.vz-cookie-btn{height:46px; border:0; border-radius:999px; padding:0 22px; cursor:pointer; font-weight:900; transition:transform .2s ease, box-shadow .2s ease, background .2s ease;}
.vz-age-accept,.vz-cookie-btn{background:linear-gradient(135deg,#C90000,#ff2727); color:#fff; box-shadow:0 12px 30px rgba(201,0,0,.28);}
.vz-age-exit,.vz-cookie-btn--ghost{background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.18);}
.vz-age-accept:hover,.vz-age-exit:hover,.vz-cookie-btn:hover{transform:translateY(-2px)}
.vz-cookie-banner{position:fixed; left:18px; right:18px; bottom:18px; z-index:99998; display:none; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px; border-radius:22px; color:#fff; background:rgba(10,10,10,.88); border:1px solid rgba(255,255,255,.14); box-shadow:0 20px 60px rgba(0,0,0,.35); backdrop-filter:blur(14px);}
.vz-cookie-banner.is-visible{display:flex; animation:vzCookieIn .35s ease;}
.vz-cookie-banner__text{display:grid; gap:3px;}
.vz-cookie-banner__text strong{font-size:15px}.vz-cookie-banner__text span{font-size:13px;color:rgba(255,255,255,.72)}
.vz-cookie-banner__actions{display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end;}
@keyframes vzCookieIn{from{opacity:0; transform:translateY(20px)}to{opacity:1; transform:translateY(0)}}
@media(max-width:700px){.vz-cookie-banner{display:none; flex-direction:column; align-items:flex-start}.vz-cookie-banner.is-visible{display:flex}.vz-cookie-banner__actions{width:100%}.vz-cookie-btn{flex:1; padding:0 12px}.vz-age-gate__card{padding:26px 20px}}

@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important}.vz-page-loader{display:none!important}}


/* Calculadora de entrega grátis no produto */
.vz-product-free-shipping{background:linear-gradient(135deg,rgba(201,0,0,.08),rgba(255,255,255,.96)); border:1px solid rgba(201,0,0,.16); border-radius:16px; padding:12px 14px;}
.vz-freight-checker{margin-top:14px; padding:16px; border-radius:18px; border:1px solid rgba(201,0,0,.18); background:rgba(255,255,255,.74); box-shadow:0 12px 30px rgba(17,17,17,.06); backdrop-filter:blur(10px);}
.vz-freight-checker label{display:block; margin-bottom:9px; color:#111; font-size:.9rem; font-weight:900; text-transform:uppercase; letter-spacing:.02em;}
.vz-freight-checker__row{display:flex; gap:10px;}
.vz-freight-checker__row input{flex:1; min-width:0; height:46px; padding:0 14px; border-radius:14px; border:1px solid #ddd; outline:none; font-weight:700;}
.vz-freight-checker__row input:focus{border-color:#C90000; box-shadow:0 0 0 3px rgba(201,0,0,.1)}
.vz-freight-checker__row button{height:46px; padding:0 18px; border:0; border-radius:14px; background:linear-gradient(135deg,#C90000,#ff2424); color:#fff; font-weight:950; cursor:pointer; box-shadow:0 12px 26px rgba(201,0,0,.22); transition:transform .2s ease, box-shadow .2s ease;}
.vz-freight-checker__row button:hover{transform:translateY(-2px); box-shadow:0 18px 36px rgba(201,0,0,.28)}
.vz-freight-checker__result{margin:10px 0 0; color:#555; font-size:.88rem; font-weight:700; line-height:1.45;}
.vz-freight-checker__result.is-ok{color:#008f1f;}
@media(max-width:480px){.vz-freight-checker__row{flex-direction:column}.vz-freight-checker__row button{width:100%}}
