/* =========================================================
   LUZ DO SOL BEACHWEAR . Estilos (mobile first)
   Paleta tirada da logo: sol dourado, mar azul, areia clara.
   ========================================================= */
:root{
  /* Paleta tirada da logo: sol amarelo alaranjado, azul do mar e branco */
  --sol:#E8A22A;
  --sol-escuro:#C07F14;
  --sol-claro:#FBD98E;
  --sol-vidro:#FFF6E4;
  --mar:#4E7C90;
  --mar-escuro:#2E5A6B;
  --mar-claro:#E1EDF2;
  --areia:#FFFFFF;
  --papel:#FFFFFF;
  --areia-fundo:#EEF4F7;
  --tinta:#123243;
  --tinta-media:#3F5D6B;
  --tinta-suave:#7B929E;
  --borda:#E2EBEF;
  --borda-forte:#C7D8E0;
  --claro:#F4FAFC;
  --wpp:#25D366;
  --erro:#B8433A;
  --sucesso:#2F6B45;

  --raio:16px;
  --raio-sm:11px;
  --raio-lg:24px;
  --sombra-1:0 1px 3px rgba(18,50,67,.05), 0 6px 18px rgba(18,50,67,.05);
  --sombra-2:0 4px 12px rgba(18,50,67,.07), 0 16px 44px rgba(18,50,67,.09);
  --sombra-3:0 -6px 34px rgba(18,50,67,.14);
  --max:1240px;
  --header-h:58px;
  --nav-h:60px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--areia);color:var(--tinta);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit;padding:0}
h1,h2,h3,h4{font-family:'Fraunces','Georgia',serif;font-weight:600;line-height:1.12;margin:0;letter-spacing:-.012em}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 18px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
::selection{background:var(--sol-claro);color:var(--tinta)}

/* revelacao suave ao rolar */
.reveal{opacity:0;transform:translateY(18px)}
.reveal.visivel{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal.visivel{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ---------- Barra de aviso ---------- */
.topbar{
  background:var(--tinta);color:var(--claro);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;
  text-align:center;padding:0 12px;height:32px;overflow:hidden;position:relative;
}
.topbar__lista{display:flex;flex-direction:column;transition:transform .6s var(--ease)}
.topbar__lista span{height:32px;display:flex;align-items:center;justify-content:center;gap:7px;flex:none}
.topbar__lista i{width:4px;height:4px;border-radius:50%;background:var(--sol);flex:none}

/* ---------- Header ---------- */
.header{
  position:sticky;top:0;z-index:60;background:rgba(255,255,255,.88);
  backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .3s,background .3s;
}
.header.rolou{border-bottom-color:var(--borda);background:rgba(255,255,255,.96)}
.header__row{display:flex;align-items:center;gap:6px;height:var(--header-h)}
.header__logo{display:flex;align-items:center;gap:9px;margin:0 auto}
.header__logo img{height:34px;width:auto;border-radius:0}
.header__logo span{
  font-family:'Fraunces',serif;font-size:16.5px;font-weight:600;white-space:nowrap;letter-spacing:.01em;
}
.icon-btn{
  width:40px;height:40px;display:grid;place-items:center;border-radius:50%;
  position:relative;transition:background .2s,transform .12s;flex:none;
}
.icon-btn:active{background:var(--areia-fundo);transform:scale(.93)}
.icon-btn svg{width:21px;height:21px;stroke:var(--tinta);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.badge{
  position:absolute;top:2px;right:1px;min-width:17px;height:17px;padding:0 5px;
  background:var(--sol);color:#fff;font-size:10.5px;font-weight:700;border-radius:9px;
  display:grid;place-items:center;line-height:1;box-shadow:0 0 0 2px var(--areia);
}
.badge[hidden]{display:none}
.badge.pulsa{animation:pulsa .45s var(--ease)}
@keyframes pulsa{0%{transform:scale(1)}45%{transform:scale(1.45)}100%{transform:scale(1)}}
.nav-desk{display:none}

/* ---------- Menu mobile ---------- */
.menu{
  position:fixed;inset:0;z-index:90;background:var(--areia);
  transform:translateX(-100%);transition:transform .34s var(--ease);display:flex;flex-direction:column;
  visibility:hidden;
}
.menu.open{transform:none;visibility:visible}
.menu__top{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--borda)}
.menu__corpo{flex:1;overflow:auto;padding:14px 18px 20px}
.menu__cats{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:22px}
.menu__cat{position:relative;border-radius:var(--raio-sm);overflow:hidden;aspect-ratio:1/1;background:var(--areia-fundo)}
.menu__cat img{width:100%;height:100%;object-fit:cover}
.menu__cat b{
  position:absolute;left:0;right:0;bottom:0;padding:22px 10px 9px;color:#fff;font-size:13px;font-weight:600;
  background:linear-gradient(transparent,rgba(10,35,48,.72));
}
.menu__links{list-style:none;margin:0;padding:0}
.menu__links a{display:flex;justify-content:space-between;align-items:center;padding:14px 2px;font-size:15.5px;border-bottom:1px solid var(--borda)}
.menu__links svg{width:16px;height:16px;stroke:var(--tinta-suave);fill:none;stroke-width:1.8}
.menu__foot{padding:16px 18px calc(22px + env(safe-area-inset-bottom));border-top:1px solid var(--borda);background:var(--papel)}
.menu__social{display:flex;gap:9px;margin-top:11px}
.menu__social a{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:11px;border:1px solid var(--borda);border-radius:var(--raio-sm);font-size:13px;font-weight:500}
.menu__social svg{width:17px;height:17px;stroke:var(--tinta);fill:none;stroke-width:1.6}

/* logo oficial do WhatsApp: sempre preenchido, nunca contornado */
.ic-wpp{fill:currentColor;stroke:none}
.menu__social svg.ic-wpp,.social svg.ic-wpp,.barra-fixa svg.ic-wpp,.btn svg.ic-wpp,.fab-wpp svg.ic-wpp{fill:currentColor;stroke:none}
.fab-wpp svg.ic-wpp{fill:#fff}

/* ---------- Botoes ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 24px;border-radius:999px;font-weight:600;font-size:14.5px;letter-spacing:.005em;
  transition:transform .14s var(--ease),box-shadow .22s,background .22s,color .22s;text-align:center;
}
.btn:active{transform:scale(.975)}
.btn--sol{background:var(--sol);color:#fff;box-shadow:0 4px 16px rgba(232,162,42,.3)}
.btn--sol:hover{background:var(--sol-escuro);box-shadow:0 6px 20px rgba(232,162,42,.38)}
.btn--tinta{background:var(--tinta);color:var(--claro)}
.btn--tinta:hover{background:#1D4A60}
.btn--wpp{background:var(--wpp);color:#fff;box-shadow:0 4px 16px rgba(37,211,102,.28)}
.btn--wpp:hover{background:#1EBA58}
.btn--linha{border:1.5px solid var(--tinta);color:var(--tinta)}
.btn--linha:hover{background:var(--tinta);color:var(--claro)}
.btn--linha-claro{border:1.5px solid rgba(255,255,255,.75);color:#fff;backdrop-filter:blur(4px)}
.btn--linha-claro:hover{background:#fff;color:var(--tinta)}
.btn--claro{background:var(--papel);border:1px solid var(--borda);color:var(--tinta)}
.btn--claro:hover{border-color:var(--borda-forte)}
.btn--bloco{width:100%}
.btn--lg{padding:16px 28px;font-size:15.5px}
.btn[disabled]{opacity:.45;pointer-events:none}
.btn svg{width:18px;height:18px;flex:none}

/* ---------- Hero editorial ---------- */
.hero{position:relative;min-height:76vh;display:flex;align-items:flex-end;overflow:hidden;background:var(--areia-fundo)}
.hero__foto{position:absolute;inset:0}
.hero__foto img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.hero__foto::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(10,35,48,.78) 0%,rgba(10,35,48,.36) 42%,rgba(10,35,48,.06) 72%);
}
.hero__inner{position:relative;z-index:1;padding:0 18px 34px;width:100%;max-width:var(--max);margin:0 auto;color:#fff}
.hero__olho{
  font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;
  color:var(--sol-claro);margin:0 0 12px;display:flex;align-items:center;gap:9px;
}
.hero__olho::before{content:'';width:26px;height:1px;background:var(--sol)}
.hero h1{font-size:38px;line-height:1.04;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.28)}
.hero h1 em{font-style:italic;color:var(--sol-claro)}
.hero p{margin:14px 0 22px;font-size:15px;color:rgba(255,255,255,.9);max-width:38ch;line-height:1.5}
.hero__acoes{display:flex;flex-direction:column;gap:10px}
.hero__scroll{
  position:absolute;left:50%;bottom:10px;transform:translateX(-50%);z-index:2;
  width:24px;height:24px;opacity:.7;animation:desce 2.2s infinite;
}
.hero__scroll svg{stroke:#fff;fill:none;stroke-width:1.6}
@keyframes desce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,7px)}}

/* ---------- Faixa de vantagens ---------- */
.vantagens{background:var(--tinta);color:var(--claro);overflow:hidden}
/* A faixa corre sozinha para a esquerda. A pista tem duas copias identicas dos
   selos, e a animacao anda exatamente a largura de uma copia (-50%), entao a
   volta ao inicio nao aparece. Cada selo carrega o proprio espacamento na
   margin-right, e nao no gap da pista, senao a emenda fica com meio vao. */
.vantagens__scroll{overflow:hidden;padding:15px 0;scrollbar-width:none}
.vantagens__scroll::-webkit-scrollbar{display:none}
.vantagens__pista{display:flex;width:max-content;animation:vantagens-corre 32s linear infinite}
.vantagens__scroll:hover .vantagens__pista,
.vantagens__pista:focus-within{animation-play-state:paused}
@keyframes vantagens-corre{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* Quem pede menos movimento no sistema volta a arrastar com o dedo. */
@media (prefers-reduced-motion: reduce){
  .vantagens__scroll{overflow-x:auto;padding-left:18px}
  .vantagens__pista{animation:none}
}
.vantagem{display:flex;align-items:center;gap:9px;white-space:nowrap;flex:none;font-size:12.5px;margin-right:26px}
.vantagem svg{width:19px;height:19px;stroke:var(--sol);fill:none;stroke-width:1.5;flex:none}
.vantagem b{font-weight:600}
.vantagem span{color:#9DB5C1;font-size:11.5px}

/* ---------- Secoes ---------- */
.secao{padding:44px 0}
.secao--areia{background:var(--areia-fundo)}
.secao--papel{background:var(--papel)}
.secao__topo{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:20px}
.secao h2{font-size:26px}
.secao__link{font-size:13px;color:var(--mar);font-weight:600;white-space:nowrap;display:flex;align-items:center;gap:5px}
.secao__link svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.olho{
  font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--sol-escuro);
  font-weight:700;margin:0 0 8px;display:flex;align-items:center;gap:8px;
}
.olho::before{content:'';width:20px;height:1px;background:var(--sol)}
.olho--centro{justify-content:center}
.olho--centro::before{display:none}
.centro{text-align:center}

/* divisor de ondas (referencia da logo) */
.ondas{display:block;width:100%;height:26px;color:var(--mar)}
.ondas path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;opacity:.5}
.sol-marca{display:block;width:40px;height:40px;margin:0 auto 14px;color:var(--sol)}
.sol-marca circle,.sol-marca line{stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round}

/* ---------- Grade de categorias ---------- */
.cats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cat{
  position:relative;display:block;border-radius:var(--raio);overflow:hidden;aspect-ratio:4/5;
  background:var(--areia-fundo);box-shadow:var(--sombra-1);
}
.cat img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.cat:hover img{transform:scale(1.07)}
.cat::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(10,35,48,.72))}
.cat__nome{
  position:absolute;left:0;right:0;bottom:0;z-index:1;padding:14px 14px 15px;color:#fff;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.cat__nome b{font-family:'Fraunces',serif;font-size:16px;font-weight:600}
.cat__nome svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2;opacity:.85}

/* ---------- Carrossel ---------- */
.carrossel{position:relative}
.carrossel__trilho{
  display:flex;gap:13px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:2px 18px 6px;margin:0 -18px;scrollbar-width:none;
  /* o card para alinhado com a margem da pagina, e nao colado na borda */
  scroll-padding-left:18px;
  /* o gesto morre no carrossel: nao empurra a pagina nem dispara o "voltar"
     do navegador quando a cliente arrasta ate o fim */
  overscroll-behavior-x:contain;
  /* arrastar de lado nao seleciona o nome do produto no meio do caminho */
  -webkit-user-select:none;user-select:none;
}
/* No celular, segurar a foto comecava a arrastar a imagem, e parecia que o
   card estava saindo do lugar. Aqui a foto vira parte do carrossel, nao um
   objeto solto. */
.carrossel__trilho img,.card img,.cat img{
  -webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none;pointer-events:none;
}
.carrossel__trilho::-webkit-scrollbar{display:none}
.carrossel__trilho > *{flex:0 0 62%;scroll-snap-align:start;max-width:300px}
.carrossel__seta{
  display:none;position:absolute;top:38%;z-index:3;width:42px;height:42px;border-radius:50%;
  background:var(--papel);box-shadow:var(--sombra-2);place-items:center;transition:.2s;
}
.carrossel__seta:hover{background:var(--tinta)}
.carrossel__seta:hover svg{stroke:#fff}
.carrossel__seta svg{width:17px;height:17px;stroke:var(--tinta);fill:none;stroke-width:2}
.carrossel__seta.esq{left:-14px}
.carrossel__seta.dir{right:-14px}
.carrossel__seta[disabled]{opacity:0;pointer-events:none}

/* ---------- Grade de produtos ---------- */
.grade{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}
.card{
  background:var(--papel);border-radius:var(--raio);overflow:hidden;position:relative;
  box-shadow:var(--sombra-1);display:flex;flex-direction:column;
  transition:box-shadow .3s,transform .3s var(--ease);
}
.card:hover{box-shadow:var(--sombra-2);transform:translateY(-3px)}
.card__foto{position:relative;aspect-ratio:3/4;background:var(--areia-fundo);overflow:hidden;display:block}
.card__foto img{
  width:100%;height:100%;object-fit:cover;position:absolute;inset:0;
  transition:opacity .55s var(--ease),transform .8s var(--ease);
}
/* A troca de foto no hover so acontece em card com duas fotos (--dupla). Sem
   essa condicao, produto de foto unica sumia e mostrava o fundo vazio. */
.card__foto .alt{opacity:0}
.card:hover .card__foto--dupla .alt{opacity:1}
.card:hover .card__foto--dupla .principal{opacity:0}
.card__selos{position:absolute;top:9px;left:9px;z-index:2;display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.selo{
  font-size:9.5px;font-weight:700;padding:4px 9px;border-radius:999px;letter-spacing:.07em;
  text-transform:uppercase;backdrop-filter:blur(4px);
}
.selo--off{background:var(--sol);color:#fff}
.selo--novo{background:rgba(255,255,255,.92);color:var(--mar-escuro)}
.selo--breve{background:var(--tinta);color:#fff}
.card__rapido{
  position:absolute;right:9px;bottom:9px;z-index:2;width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.94);box-shadow:var(--sombra-1);display:grid;place-items:center;
  transition:.2s;backdrop-filter:blur(4px);
}
.card__rapido:hover{background:var(--tinta)}
.card__rapido:hover svg{stroke:#fff}
.card__rapido svg{width:18px;height:18px;stroke:var(--tinta);fill:none;stroke-width:1.7}
.card__body{padding:11px 12px 13px;display:flex;flex-direction:column;flex:1}
.card__cat{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-suave);font-weight:600;margin-bottom:5px}
.card__nome{
  font-size:13.5px;font-weight:500;line-height:1.35;margin:0 0 8px;color:var(--tinta);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.card__precos{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;margin-top:auto}
.card__preco{font-size:17px;font-weight:600;font-family:'Fraunces',serif}
.card__de{font-size:12px;color:var(--tinta-suave);text-decoration:line-through}
.card__parcela{font-size:11px;color:var(--tinta-suave);margin-top:3px}
.card__cores{display:flex;gap:4px;margin-top:8px}
.card__cores i{width:11px;height:11px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:block}
/* Cor que a loja nao reconhece: bolinha listrada, para nao fingir um tom que
   nao e' o da peca. O nome da cor continua aparecendo ao passar o mouse. */
.card__cores i.cor--sem{background:repeating-linear-gradient(45deg,#E4DACA,#E4DACA 2px,#F5F0E6 2px,#F5F0E6 4px);border-style:dashed;border-color:rgba(0,0,0,.2)}

/* ---------- Bloco editorial ---------- */
.editorial{position:relative;overflow:hidden;background:var(--mar-claro)}
.editorial__grid{display:grid;gap:22px;justify-items:center;text-align:center;max-width:660px;margin:0 auto}
.editorial h2{font-size:27px;margin-bottom:12px}
.editorial p{color:var(--tinta-media);font-size:14.5px;line-height:1.68;margin:0 0 12px}
.editorial .olho{justify-content:center}
.editorial__assina{display:flex;align-items:center;gap:11px;margin-top:22px;justify-content:center;text-align:left}
.editorial__assina img{width:52px;height:52px;flex:none;border-radius:50%;object-fit:contain;object-position:center;background:var(--papel);border:1px solid var(--borda);padding:2px}
.editorial__assina b{display:block;font-size:13.5px}
.editorial__assina span{font-size:12px;color:var(--tinta-suave)}

/* ---------- Instagram ---------- */
.insta__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.insta__grid a{position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:var(--areia-fundo)}
.insta__grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.insta__grid a:hover img{transform:scale(1.08)}

/* ---------- Faixa WhatsApp ---------- */
.faixa-wpp{
  position:relative;overflow:hidden;text-align:center;padding:44px 0;
  background:linear-gradient(150deg,#0C2938,#123243 55%,#1D4C60);color:var(--claro);
}
/* sol de verdade no canto: disco, brilho e raios girando devagar */
.faixa-wpp::before,.faixa-wpp::after{content:'';position:absolute;pointer-events:none}
.faixa-wpp::before{
  top:-58px;right:-46px;width:190px;height:190px;border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%,
      rgba(255,236,196,.95) 0 16%,
      rgba(255,201,105,.72) 26%,
      rgba(232,162,42,.34) 42%,
      rgba(232,162,42,.12) 58%,
      transparent 72%);
}
.faixa-wpp::after{
  top:-133px;right:-121px;width:340px;height:340px;
  background:repeating-conic-gradient(from 0deg,
    rgba(255,205,110,.30) 0deg 2.4deg, transparent 2.4deg 15deg);
  -webkit-mask:radial-gradient(circle at 50% 50%,transparent 24%,#000 32%,#000 46%,transparent 64%);
          mask:radial-gradient(circle at 50% 50%,transparent 24%,#000 32%,#000 46%,transparent 64%);
  animation:girarSol 60s linear infinite;
}
@keyframes girarSol{to{transform:rotate(1turn)}}
@media(prefers-reduced-motion:reduce){.faixa-wpp::after{animation:none}}
.faixa-wpp__inner{position:relative;z-index:1}
.faixa-wpp h2{font-size:24px;margin-bottom:9px}
.faixa-wpp p{color:#A9C2CE;font-size:14px;margin:0 auto 22px;max-width:40ch}

/* ---------- Rodape ---------- */
.footer{background:var(--papel);border-top:1px solid var(--borda);padding:38px 0 calc(var(--nav-h) + 34px);font-size:13.5px}
.footer__logo{height:46px;width:auto;border-radius:9px;margin-bottom:13px}
.footer h3{font-size:12px;margin-bottom:12px;font-family:'Inter',sans-serif;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--tinta)}
.footer ul{list-style:none;margin:0 0 26px;padding:0}
.footer li{margin-bottom:9px;color:var(--tinta-media)}
.footer a:hover{color:var(--sol-escuro)}
.footer__copy{border-top:1px solid var(--borda);padding-top:18px;font-size:11.5px;color:var(--tinta-suave);text-align:center;line-height:1.7}
.social{display:flex;gap:9px;margin-bottom:24px}
.social a{width:40px;height:40px;border-radius:50%;border:1px solid var(--borda);display:grid;place-items:center;transition:.2s}
.social a:hover{background:var(--tinta);border-color:var(--tinta)}
.social a:hover svg{stroke:#fff}
.social svg{width:19px;height:19px;stroke:var(--tinta);fill:none;stroke-width:1.6}
.pagamentos-rodape{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:22px}
.pagamentos-rodape i{
  font-style:normal;font-size:10.5px;font-weight:600;padding:6px 10px;border-radius:7px;
  background:var(--areia);border:1px solid var(--borda);color:var(--tinta-media);
}

/* ---------- Botao flutuante WhatsApp ---------- */
.fab-wpp{
  position:fixed;right:15px;bottom:calc(var(--nav-h) + 15px);z-index:55;width:52px;height:52px;border-radius:50%;
  background:var(--wpp);display:grid;place-items:center;box-shadow:0 6px 22px rgba(37,211,102,.4);
  transition:transform .2s var(--ease);
}
.fab-wpp:active{transform:scale(.9)}
.fab-wpp svg{width:27px;height:27px;fill:#fff}

/* ---------- Barra inferior fixa (mobile) ---------- */
.barra-fixa{
  position:fixed;left:0;right:0;bottom:0;z-index:58;background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-top:1px solid var(--borda);display:flex;padding:0 4px env(safe-area-inset-bottom);height:calc(var(--nav-h) + env(safe-area-inset-bottom));
}
.barra-fixa a{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  font-size:10px;color:var(--tinta-suave);font-weight:500;height:var(--nav-h);
}
.barra-fixa svg{width:21px;height:21px;stroke:var(--tinta-suave);fill:none;stroke-width:1.6;stroke-linecap:round}
.barra-fixa a.ativo{color:var(--sol-escuro)}
.barra-fixa a.ativo svg{stroke:var(--sol-escuro)}
.barra-fixa .pos{position:relative;display:block}

/* ---------- Carrinho lateral ---------- */
.overlay{position:fixed;inset:0;background:rgba(10,35,48,.5);z-index:80;opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:blur(2px)}
.overlay.on{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(430px,92vw);background:var(--areia);z-index:85;
  transform:translateX(101%);transition:transform .38s var(--ease);display:flex;flex-direction:column;visibility:hidden;
}
.drawer.open{transform:none;box-shadow:var(--sombra-2);visibility:visible}
.drawer__top{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;border-bottom:1px solid var(--borda);background:var(--papel)}
.drawer__top h3{font-size:17px}
.drawer__itens{flex:1;overflow:auto;padding:14px 17px;-webkit-overflow-scrolling:touch}
.drawer__foot{border-top:1px solid var(--borda);padding:15px 17px calc(17px + env(safe-area-inset-bottom));background:var(--papel)}
.item{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--borda)}
.item:last-child{border-bottom:0}
.item__foto{width:72px;height:92px;border-radius:10px;object-fit:cover;background:var(--areia-fundo);flex:none}
.item__info{flex:1;min-width:0}
.item__nome{font-size:13.5px;font-weight:500;line-height:1.32}
.item__var{font-size:11.5px;color:var(--tinta-suave);margin-top:3px}
.item__preco{font-weight:600;font-size:14.5px;margin-top:6px;font-family:'Fraunces',serif}
.qtd{display:inline-flex;align-items:center;border:1px solid var(--borda);border-radius:9px;overflow:hidden;margin-top:8px;background:var(--papel)}
.qtd button{width:31px;height:31px;font-size:16px;line-height:1;color:var(--tinta-media);transition:background .15s}
.qtd button:active{background:var(--areia-fundo)}
.qtd span{width:28px;text-align:center;font-size:13.5px;font-weight:600}
.item__lixo{align-self:flex-start;padding:5px;color:var(--tinta-suave)}
.item__lixo svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6}
.resumo{font-size:14px}
.resumo > div{display:flex;justify-content:space-between;margin-bottom:8px;color:var(--tinta-media)}
.resumo .total{font-size:20px;font-weight:600;color:var(--tinta);font-family:'Fraunces',serif;margin:12px 0 14px}
.frete-barra{background:var(--sol-vidro);border-radius:11px;padding:11px 13px;margin-bottom:14px;font-size:12.5px;color:var(--sol-escuro)}
.frete-barra.completo{background:#ECF6F0;color:var(--sucesso)}
.frete-barra__trilho{height:5px;border-radius:3px;background:rgba(192,127,20,.16);margin-top:8px;overflow:hidden}
.frete-barra__cheio{height:100%;border-radius:3px;background:var(--sol);transition:width .5s var(--ease)}
.frete-barra.completo .frete-barra__cheio{background:var(--sucesso)}
.vazio{text-align:center;padding:54px 20px;color:var(--tinta-suave)}
/* Aviso de carrinho acertado pelo catalogo, no topo da pagina de compra. */
.alerta-carrinho{background:#FDF3DE;border:1px solid #E8CE94;border-left-width:4px;border-radius:10px;padding:12px 14px;margin:0 0 18px;font-size:13.5px;line-height:1.6;color:#6B5518}
.vazio svg{width:52px;height:52px;stroke:var(--sol-claro);fill:none;stroke-width:1.3;margin:0 auto 16px}
.vazio p{margin:0 0 16px}

/* ---------- Guia de medidas ---------- */
.guia-medidas{
  display:flex;align-items:center;gap:11px;width:100%;margin-top:13px;padding:12px 13px;
  background:var(--sol-vidro);border:1px solid var(--sol-claro);border-radius:var(--raio-sm);
  text-align:left;transition:background .2s,transform .12s;
}
.guia-medidas:active{transform:scale(.985)}
.guia-medidas:hover{background:#FFEFD4}
.guia-medidas__ic{width:32px;height:32px;flex:none;border-radius:50%;background:var(--sol);display:grid;place-items:center}
.guia-medidas__ic svg{width:17px;height:17px;stroke:#fff;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.guia-medidas__txt{flex:1;min-width:0}
.guia-medidas__txt strong{display:block;font-size:13.5px;color:var(--tinta);line-height:1.3}
.guia-medidas__txt small{display:block;font-size:11.5px;color:var(--tinta-media);margin-top:2px}
.guia-medidas > svg{width:17px;height:17px;flex:none;stroke:var(--sol-escuro);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.medidas__titulo{display:flex;align-items:center;gap:9px;font-size:19px;margin:0 0 6px}
.medidas__titulo svg{width:21px;height:21px;stroke:var(--sol);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.medidas__intro{font-size:13.5px;color:var(--tinta-media);margin:0 0 14px}
.medidas__nota{font-size:13px;color:var(--tinta-suave);margin:14px 0 16px}
.medidas__rolo{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.medidas{width:100%;border-collapse:collapse;font-size:13.5px;min-width:400px}
table.medidas th{text-align:left;padding:10px 6px;border-bottom:2px solid var(--borda);font-weight:700}
table.medidas td{padding:10px 6px;color:var(--tinta-media)}
table.medidas tbody tr:not(:last-child) td{border-bottom:1px solid var(--borda)}
.sheet--medidas{z-index:92}

/* ---------- Sheet de compra rapida ---------- */
.sheet{
  position:fixed;left:0;right:0;bottom:0;z-index:88;background:var(--areia);
  border-radius:var(--raio-lg) var(--raio-lg) 0 0;transform:translateY(101%);
  transition:transform .38s var(--ease);box-shadow:var(--sombra-3);visibility:hidden;
  max-height:88vh;display:flex;flex-direction:column;
}
.sheet.open{transform:none;visibility:visible}
.sheet__alca{width:40px;height:4px;border-radius:2px;background:var(--borda-forte);margin:10px auto 4px;flex:none}
.sheet__corpo{padding:12px 18px 0;overflow:auto;flex:1}
.sheet__prod{display:flex;gap:13px;margin-bottom:20px}
.sheet__prod img{width:76px;height:98px;object-fit:cover;border-radius:11px;background:var(--areia-fundo);flex:none}
.sheet__prod h3{font-size:16px;margin-bottom:5px;line-height:1.25}
.sheet__prod .preco{font-family:'Fraunces',serif;font-size:18px;font-weight:600}
.sheet__prod .de{font-size:12.5px;color:var(--tinta-suave);text-decoration:line-through;margin-left:6px}
.sheet__foot{padding:14px 18px calc(18px + env(safe-area-inset-bottom));border-top:1px solid var(--borda);background:var(--papel);flex:none}
.sheet__link{display:block;text-align:center;font-size:12.5px;color:var(--mar);font-weight:600;margin-top:11px}

/* ---------- Opcoes (tamanho / cor) ---------- */
.opcoes{margin-bottom:20px}
.opcoes h4{font-size:12px;font-family:'Inter',sans-serif;font-weight:700;margin-bottom:10px;letter-spacing:.1em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}
.opcoes h4 em{font-style:normal;color:var(--tinta-suave);font-weight:500;text-transform:none;letter-spacing:0;font-size:12.5px}
.opcoes h4 a{font-style:normal;color:var(--mar);font-weight:600;text-transform:none;letter-spacing:0;font-size:11.5px;text-decoration:underline}
.ops{display:flex;flex-wrap:wrap;gap:8px}
.op{
  min-width:50px;padding:11px 16px;border:1.5px solid var(--borda);background:var(--papel);
  border-radius:10px;font-size:13.5px;font-weight:500;transition:.18s var(--ease);
}
.op:hover{border-color:var(--borda-forte)}
.op.sel{border-color:var(--tinta);background:var(--tinta);color:var(--claro)}
.op.pisca{animation:pisca .5s}
@keyframes pisca{0%,100%{box-shadow:0 0 0 0 rgba(184,67,58,0)}50%{box-shadow:0 0 0 4px rgba(184,67,58,.22)}}

/* ---------- Pagina de produto ---------- */
.trilha{font-size:11.5px;color:var(--tinta-suave);padding:14px 0 0;display:flex;gap:6px;flex-wrap:wrap}
.trilha a:hover{color:var(--sol-escuro)}
.galeria{position:relative;margin:0 -18px}
.galeria__slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;background:var(--areia-fundo)}
.galeria__slides::-webkit-scrollbar{display:none}
/* cada foto ocupa exatamente a largura visivel da galeria (senao o slide fica
   mais largo que a tela e a galeria nao avanca direito) */
.galeria__slides img{flex:0 0 100%;width:100%;max-width:100%;height:auto;scroll-snap-align:start;aspect-ratio:3/4;object-fit:cover}
.galeria__seta{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.92);box-shadow:var(--sombra-1);display:grid;place-items:center;
  transition:opacity .2s,background .2s;backdrop-filter:blur(4px);
}
.galeria__seta svg{width:17px;height:17px;stroke:var(--tinta);fill:none;stroke-width:2;stroke-linecap:round}
/* no mobile a galeria sangra 18px para fora do wrap, entao as setas compensam */
.galeria__seta.esq{left:30px}
.galeria__seta.dir{right:30px}
.galeria__seta:hover{background:#fff}
.galeria__seta[disabled]{opacity:0;pointer-events:none}
.galeria__dots{position:absolute;bottom:12px;left:0;right:0;display:flex;justify-content:center;gap:5px}
.galeria__dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6);box-shadow:0 1px 3px rgba(0,0,0,.2);transition:.3s}
.galeria__dots i.on{background:#fff;width:18px;border-radius:3px}
.galeria__minis{display:none}
.prod{padding:20px 0 26px}
.prod h1{font-size:25px;margin-bottom:12px}
.prod__precos{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.prod__preco{font-size:28px;font-weight:600;font-family:'Fraunces',serif}
.prod__de{color:var(--tinta-suave);text-decoration:line-through;font-size:15px}
.prod__off{background:var(--sol-vidro);color:var(--sol-escuro);font-size:11.5px;font-weight:700;padding:4px 9px;border-radius:999px}
.prod__parcela{color:var(--tinta-suave);font-size:12.5px;margin:5px 0 24px}
.desc{margin:4px 0 22px;font-size:14px;color:var(--tinta-media);line-height:1.68}
.acordeao{border-top:1px solid var(--borda)}
.acordeao details{border-bottom:1px solid var(--borda)}
.acordeao summary{padding:16px 2px;font-weight:600;font-size:13.5px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.acordeao summary::-webkit-details-marker{display:none}
.acordeao summary::after{content:'';width:9px;height:9px;border-right:1.5px solid var(--tinta-suave);border-bottom:1.5px solid var(--tinta-suave);transform:rotate(45deg);margin-right:4px;transition:transform .25s}
.acordeao details[open] summary::after{transform:rotate(-135deg)}
.acordeao p,.acordeao ul{font-size:13.5px;color:var(--tinta-media);margin:0 0 16px;line-height:1.65}
.acordeao ul{padding-left:18px}
.acordeao li{margin-bottom:6px}
.compra-fixa{
  position:fixed;left:0;right:0;bottom:0;z-index:59;background:rgba(255,255,255,.97);
  backdrop-filter:blur(12px);border-top:1px solid var(--borda);
  padding:11px 16px calc(11px + env(safe-area-inset-bottom));display:flex;gap:10px;align-items:center;
  box-shadow:0 -4px 22px rgba(18,50,67,.08);
}
.compra-fixa .btn{flex:1}
.compra-fixa .btn--wpp{flex:0 0 52px;padding:14px 0}

/* na pagina de produto a barra de compra substitui a navegacao inferior */
@media(max-width:767px){
  .pagina-produto .barra-fixa,
  .pagina-produto .fab-wpp{display:none}
  .pagina-produto .toast{bottom:88px}
}

/* ---------- Formularios / checkout ---------- */
.form-grid{display:grid;gap:15px}
.campo label{display:block;font-size:12px;font-weight:600;margin-bottom:7px;letter-spacing:.03em}
.campo input,.campo select,.campo textarea{
  width:100%;padding:13px 15px;border:1.5px solid var(--borda);border-radius:11px;
  background:var(--papel);font-size:16px;font-family:inherit;color:var(--tinta);transition:border-color .18s,box-shadow .18s;
}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--sol);box-shadow:0 0 0 3px rgba(232,162,42,.14)}
.campo input.erro,.campo select.erro{border-color:var(--erro);background:#FDF6F5}
.campo small{display:block;font-size:11.5px;color:var(--tinta-suave);margin-top:6px}
.campo .msg-erro{color:var(--erro);font-size:11.5px;margin-top:6px;display:none}
.campo.invalido .msg-erro{display:block}
.dupla{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bloco{background:var(--papel);border:1px solid var(--borda);border-radius:var(--raio);padding:19px 17px;margin-bottom:15px}
.bloco h3{font-size:16px;margin-bottom:16px;display:flex;align-items:center;gap:10px}
.bloco h3 .ic{
  width:36px;height:36px;border-radius:11px;flex:none;display:grid;place-items:center;
  background:var(--sol-vidro);border:1px solid var(--borda);
}
.bloco h3 .ic svg{width:19px;height:19px;stroke:var(--sol-escuro);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.passo{
  width:25px;height:25px;border-radius:50%;background:var(--sol);color:#fff;font-size:12.5px;font-weight:700;
  display:grid;place-items:center;font-family:'Inter',sans-serif;flex:none;
}
.opcao-radio{
  display:flex;gap:12px;align-items:flex-start;padding:14px;border:1.5px solid var(--borda);
  border-radius:12px;margin-bottom:9px;cursor:pointer;transition:.18s;background:var(--areia);
}
.opcao-radio:last-child{margin-bottom:0}
.opcao-radio.sel{border-color:var(--sol);background:var(--sol-vidro)}
.opcao-radio input{margin:1px 0 0;accent-color:var(--sol);width:18px;height:18px;flex:none}
.opcao-radio strong{display:block;font-size:14px}
.opcao-radio span{font-size:12px;color:var(--tinta-suave);line-height:1.45}
.resumo-pedido{list-style:none;margin:0 0 16px;padding:0}
.resumo-pedido li{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:8px 0;border-bottom:1px dashed var(--borda)}
.resumo-pedido li:last-child{border-bottom:0}
.pagina{padding:22px 0 calc(var(--nav-h) + 40px)}
.pagina h1{font-size:26px;margin-bottom:7px}
.pagina .sub{color:var(--tinta-suave);font-size:14px;margin-bottom:24px;max-width:52ch}
.selo-seguro{display:flex;align-items:center;justify-content:center;gap:7px;font-size:11.5px;color:var(--tinta-suave);margin-top:13px}
.selo-seguro svg{width:14px;height:14px;stroke:var(--sucesso);fill:none;stroke-width:1.8}
.mel{position:absolute;left:-9999px;opacity:0;height:0;width:0}

/* ---------- Toast ---------- */
.toast{
  position:fixed;left:50%;bottom:calc(var(--nav-h) + 22px);transform:translate(-50%,22px);z-index:95;
  background:var(--tinta);color:var(--claro);padding:12px 20px;border-radius:999px;font-size:13.5px;font-weight:500;
  opacity:0;pointer-events:none;transition:.3s var(--ease);box-shadow:var(--sombra-2);max-width:90vw;text-align:center;
}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- Busca ---------- */
.busca{position:relative;margin-bottom:16px}
.busca input{width:100%;padding:13px 16px 13px 44px;border:1.5px solid var(--borda);border-radius:999px;background:var(--papel);font-size:15px;font-family:inherit}
.busca input:focus{outline:none;border-color:var(--sol)}
.busca > svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;stroke:var(--tinta-suave);fill:none;stroke-width:1.8}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 18px 14px;margin:0 -18px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{
  flex:none;padding:9px 17px;border-radius:999px;background:var(--papel);border:1px solid var(--borda);
  font-size:13px;font-weight:500;white-space:nowrap;transition:.18s;
}
.chip.ativo{background:var(--tinta);color:var(--claro);border-color:var(--tinta)}
.contagem{font-size:12px;color:var(--tinta-suave);margin-bottom:14px}

.skeleton{background:linear-gradient(90deg,#E9F0F4 25%,#F7FBFD 50%,#E9F0F4 75%);background-size:200% 100%;animation:sk 1.4s infinite}
@keyframes sk{to{background-position:-200% 0}}

/* ---------- Desktop ---------- */
@media(min-width:768px){
  body{font-size:16px}
  :root{--header-h:76px}
  .wrap{padding:0 28px}
  .grade{grid-template-columns:repeat(3,1fr);gap:22px}
  /* no desktop o hero vira duas colunas, sem cortar a modelo */
  .hero{
    display:grid;grid-template-columns:1.02fr .98fr;align-items:stretch;
    min-height:min(660px,78vh);background:var(--sol-vidro);
  }
  .hero__foto{position:relative;order:2;height:100%}
  .hero__foto img{object-position:center 4%}
  .hero__foto::after{background:linear-gradient(90deg,var(--sol-vidro) 0%,rgba(255,246,228,.35) 12%,transparent 34%)}
  .hero__inner{
    order:1;display:flex;flex-direction:column;justify-content:center;color:var(--tinta);
    padding:56px 46px 56px max(28px,calc((100vw - var(--max))/2 + 28px));margin:0;max-width:none;
  }
  .hero h1{font-size:clamp(40px,4.2vw,62px);max-width:12ch;color:var(--tinta);text-shadow:none}
  .hero h1 em{color:var(--sol-escuro)}
  .hero__olho{color:var(--sol-escuro)}
  .hero p{font-size:17px;max-width:40ch;color:var(--tinta-media)}
  .hero__acoes{flex-direction:row}
  .hero .btn--linha-claro{border-color:var(--tinta);color:var(--tinta);backdrop-filter:none}
  .hero .btn--linha-claro:hover{background:var(--tinta);color:var(--claro)}
  .hero__scroll{display:none}
  .secao{padding:72px 0}
  .secao h2{font-size:34px}
  .vantagens__scroll{padding:18px 0}
  .vantagens__pista{animation-duration:46s}
  .vantagem{margin-right:52px}
  .cats{grid-template-columns:repeat(4,1fr);gap:18px}
  .cat__nome b{font-size:18px}
  .header__logo{margin:0 auto 0 0}
  .header__logo img{height:44px}
  .header__logo span{font-size:20px}
  .nav-desk{display:flex;gap:30px;font-size:14px;font-weight:500;margin:0 auto}
  .nav-desk a{padding:8px 0;position:relative}
  .nav-desk a::after{content:'';position:absolute;left:0;right:100%;bottom:2px;height:1.5px;background:var(--sol);transition:right .3s var(--ease)}
  .nav-desk a:hover::after{right:0}
  .menu-btn{display:none}
  .barra-fixa{display:none}
  .fab-wpp{bottom:26px;right:26px;width:58px;height:58px}
  .footer{padding:60px 0 36px}
  .footer__cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:40px}
  .carrossel__trilho > *{flex:0 0 calc((100% - 3*22px)/4);max-width:none}
  .carrossel__trilho{gap:22px;padding:2px 28px 8px;margin:0 -28px;scroll-padding-left:28px}
  .carrossel__seta{display:grid}
  .editorial__grid{gap:26px}
  .editorial h2{font-size:34px}
  .editorial p{font-size:15.5px}
  .insta__grid{grid-template-columns:repeat(6,1fr);gap:10px}
  .prod-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:start;padding-top:10px}
  .galeria{margin:0;border-radius:var(--raio);overflow:hidden;position:sticky;top:calc(var(--header-h) + 20px)}
  .galeria__seta.esq{left:12px}
  .galeria__seta.dir{right:12px}
  .galeria__dots{display:none}
  .galeria__minis{display:flex;gap:9px;margin-top:10px}
  .galeria__minis button{width:64px;height:82px;border-radius:9px;overflow:hidden;border:1.5px solid transparent;transition:.2s}
  .galeria__minis button.on{border-color:var(--tinta)}
  .galeria__minis img{width:100%;height:100%;object-fit:cover}
  .compra-fixa{position:static;border:0;padding:24px 0 0;box-shadow:none;background:none;backdrop-filter:none}
  .prod h1{font-size:34px}
  .checkout-layout{display:grid;grid-template-columns:1.4fr .85fr;gap:30px;align-items:start}
  .checkout-layout .lado{position:sticky;top:calc(var(--header-h) + 20px)}
  .toast{bottom:32px}
  .pagina{padding:34px 0 70px}
  .card__nome{font-size:15px}
  .card__preco{font-size:19.5px}
  .faixa-wpp{padding:74px 0}
  .faixa-wpp::before{top:-70px;right:-54px;width:250px;height:250px}
  .faixa-wpp::after{top:-165px;right:-149px;width:440px;height:440px}
  .faixa-wpp h2{font-size:32px}
  .sheet{left:50%;right:auto;bottom:auto;top:50%;transform:translate(-50%,-46%) scale(.97);width:min(460px,92vw);
    border-radius:var(--raio-lg);max-height:86vh;opacity:0}
  .sheet.open{transform:translate(-50%,-50%) scale(1);opacity:1}
  .sheet__alca{display:none}
  .sheet__corpo{padding-top:22px}
}
@media(min-width:1100px){
  .grade{grid-template-columns:repeat(4,1fr)}
}
