:root{
  --vinho:#9F2747;
  --vinho-escuro:#6E1B32;
  --vinho-suave:#B5486A;
  --blush:#F8E0DE;
  --blush-escuro:#F1CBC8;
  --creme:#FDF8F6;
  --texto:#2E1015;
  --texto-suave:#5C3A42;
  --whatsapp:#25d366;
  --whatsapp-escuro:#1da851;
  --ouro:#C9A96A;
  --radius:16px;
  --radius-lg:26px;
  --sombra:0 20px 50px rgba(110,27,50,.14);
  --sombra-suave:0 10px 30px rgba(110,27,50,.1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Jost', sans-serif;
  font-weight:400;
  color:var(--texto);
  background:var(--creme);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Dancing Script', cursive;
  color:var(--vinho);
  line-height:1.1;
  margin:0 0 .3em 0;
  font-weight:700;
}
h3{font-size:1.7rem;}
.container{
  max-width:1160px;
  margin:0 auto;
  padding:0 24px;
}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.76rem;
  font-weight:600;
  color:var(--vinho-suave);
  margin:0 0 .7em 0;
  font-family:'Jost', sans-serif;
}
.eyebrow--light{color:var(--blush);}

/* ---------- Reveal on scroll ---------- */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--delay, 0s);
}
.reveal.is-visible{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
}

/* ---------- Tilt 3D (via JS) ---------- */
.tilt{
  transition:transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease;
  will-change:transform;
}
@media (prefers-reduced-motion: reduce){
  .tilt{transition:none;}
}

/* ---------- Topbar / Nav ---------- */
.topbar{
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(253,248,246,.9);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--blush-escuro);
}
.topbar__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:12px 24px;
}
.topbar__logo{height:60px;width:auto;display:block;}
.topbar__wordmark{display:none;align-items:center;gap:8px;font-family:'Dancing Script',cursive;font-size:1.85rem;font-weight:700;color:var(--vinho);}
.topbar__wordmark .marca-lotus{width:30px;color:var(--vinho);}
.topbar__nav{
  display:flex;
  gap:30px;
  list-style:none;
  margin:0;
  padding:0;
}
.topbar__nav a{
  font-family:'Jost', sans-serif;
  font-size:.86rem;
  letter-spacing:.03em;
  color:var(--texto-suave);
  text-decoration:none;
  padding:6px 0;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.topbar__nav a:hover{color:var(--vinho); border-color:var(--vinho-suave);}
.topbar__actions{display:flex;align-items:center;gap:14px;}

.btn{
  display:inline-block;
  padding:14px 28px;
  border-radius:999px;
  font-weight:500;
  font-family:'Jost',sans-serif;
  text-decoration:none;
  font-size:.96rem;
  letter-spacing:.01em;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  border:1.5px solid transparent;
}
.btn:hover{transform:translateY(-2px);}
.btn--whatsapp{background:var(--whatsapp);color:#fff;box-shadow:0 8px 20px rgba(37,211,102,.3);}
.btn--whatsapp:hover{background:var(--whatsapp-escuro); box-shadow:0 12px 26px rgba(37,211,102,.38);}
.btn--ghost{background:transparent;color:var(--blush);border-color:rgba(248,224,222,.55);}
.btn--ghost:hover{background:rgba(248,224,222,.14);}
.btn--ghost-vinho{background:transparent;color:var(--vinho);border-color:var(--vinho-suave);}
.btn--ghost-vinho:hover{background:rgba(159,39,71,.06);}
.btn--small{padding:9px 20px;font-size:.85rem;}

/* ---------- Parallax host/layer (reutilizável) ---------- */
.parallax-host{position:relative; overflow:hidden;}
.parallax-layer{
  position:absolute;
  top:-14%; left:0; right:0; bottom:-14%;
  background-size:cover;
  background-position:center 38%;
  will-change:transform;
  z-index:0;
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding:170px 0 130px;
  color:var(--blush);
  min-height:620px;
  display:flex;
  align-items:flex-end;
}
.hero__inner{max-width:700px; position:relative; z-index:2;}
.hero h1{color:#fff;font-size:3.4rem;font-weight:700;text-shadow:0 2px 24px rgba(0,0,0,.28);}
.hero__lead{font-size:1.18rem;color:var(--blush);opacity:.95;margin-bottom:2.2em;max-width:540px;font-weight:300;}
.hero__ctas{display:flex;gap:16px;flex-wrap:wrap;}
.hero__scroll{
  position:absolute;
  bottom:28px; left:50%;
  transform:translateX(-50%);
  z-index:2;
  width:26px;height:42px;
  border:1.5px solid rgba(255,255,255,.6);
  border-radius:14px;
}
.hero__scroll::before{
  content:"";
  position:absolute;
  top:8px;left:50%;
  width:4px;height:8px;
  margin-left:-2px;
  background:#fff;
  border-radius:2px;
  animation:scrollcue 2.2s ease infinite;
}
@keyframes scrollcue{
  0%{opacity:1; transform:translateY(0);}
  70%{opacity:0; transform:translateY(14px);}
  100%{opacity:0; transform:translateY(14px);}
}

/* ---------- Faixa de identidade ---------- */
.marquee{
  background:var(--vinho-escuro);
  color:var(--blush);
  padding:14px 0;
  overflow:hidden;
  white-space:nowrap;
}
.marquee__track{
  display:inline-flex;
  animation:marquee 32s linear infinite;
}
.marquee__item{
  font-family:'Jost',sans-serif;
  font-size:.8rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:0 28px;
  display:inline-flex;
  align-items:center;
  opacity:.92;
}
.marquee__item::after{content:"✦"; opacity:.55; margin-left:28px; font-size:.7rem;}
@keyframes marquee{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .marquee__track{animation:none;}
}

/* ---------- Marca (logo em destaque) ---------- */
.marca{
  padding:76px 0 64px;
  background:var(--creme);
  text-align:center;
}
.marca__inner{display:flex; flex-direction:column; align-items:center;}
.marca-lotus{
  color:var(--vinho);
  width:84px;
  height:auto;
  margin-bottom:.3em;
  animation:flutuar 6s ease-in-out infinite;
}
@keyframes flutuar{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-8px);}
}
@media (prefers-reduced-motion: reduce){ .marca-lotus{animation:none;} }
.marca__nome{
  font-family:'Dancing Script',cursive;
  font-weight:700;
  font-size:4rem;
  color:var(--vinho);
  margin:0;
  line-height:1;
}
.marca__tagline{
  font-family:'Jost',sans-serif;
  font-size:.8rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--vinho-suave);
  margin:.9em 0 0;
}
.marca-nome{
  font-family:'Dancing Script',cursive;
  font-weight:700;
  color:var(--vinho);
  font-size:1.15em;
}
@media (max-width:600px){
  .marca__nome{font-size:2.8rem;}
  .marca-lotus{width:66px;}
}

/* ---------- Manifesto ---------- */
.manifesto{
  padding:80px 0;
  background:var(--blush);
  text-align:center;
}
.manifesto__inner{max-width:740px;margin:0 auto;}
.manifesto__flamingo{width:40px;height:auto;margin-bottom:1.2em;opacity:.85;}
.manifesto__text{
  font-family:'Dancing Script',cursive;
  font-size:1.85rem;
  font-weight:600;
  color:var(--vinho-escuro);
  line-height:1.45;
  margin:0;
}

/* ---------- Sobre Nós ---------- */
.sobre{padding:110px 0 130px; background:var(--creme); overflow:hidden;}
.sobre__grid{
  display:grid;
  grid-template-columns:1.35fr 1fr;
  gap:70px;
  align-items:center;
}
.sobre__visual{position:relative; padding:26px 34px 34px 0;}
.sobre__acento{
  position:absolute;
  top:0; right:0;
  width:62%;
  aspect-ratio:1/1;
  border-radius:var(--radius-lg);
  overflow:hidden;
  transform:rotate(7deg);
  box-shadow:var(--sombra-suave);
  z-index:1;
  opacity:.92;
}
.sobre__acento img{width:100%;height:100%;object-fit:cover;display:block;}
.sobre__photo-wrap{
  position:relative;
  z-index:2;
  transform:rotate(-2deg);
  transition:transform .4s ease;
}
.sobre__photo{
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--sombra);
  aspect-ratio:3/4;
}
.sobre__photo img{width:100%;height:100%;object-fit:cover;display:block; transform:scale(1.15); will-change:transform;}
.sobre__photo--placeholder{
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg, var(--blush), var(--creme));
}
.sobre__photo--placeholder img{width:64px;height:64px;object-fit:contain;opacity:.5;}
.sobre__badge{
  position:absolute;
  bottom:-24px; right:6px;
  background:#fff;
  border-radius:50%;
  width:124px;height:124px;
  display:flex;align-items:center;justify-content:center;
  text-align:center;
  box-shadow:var(--sombra-suave);
  font-family:'Dancing Script',cursive;
  color:var(--vinho);
  font-weight:700;
  font-size:1.02rem;
  line-height:1.15;
  padding:8px;
  border:1px solid var(--blush-escuro);
  z-index:3;
}
.sobre__text h2{font-size:2.6rem;}
.sobre__text p{color:var(--texto-suave); margin:0 0 1.1em 0;}
.sobre__text p:last-child{margin-bottom:0;}
.sobre__assinatura{
  margin-top:1.6em;
  font-family:'Dancing Script',cursive;
  font-size:1.6rem;
  color:var(--vinho);
}

@media (max-width:860px){
  .sobre{padding:80px 0 96px;}
  .sobre__grid{grid-template-columns:1fr; gap:56px;}
  .sobre__visual{padding:20px 14px 28px 0;}
  .sobre__badge{width:100px;height:100px;font-size:.85rem;right:0;}
}

/* ---------- Público ---------- */
.publico{padding:96px 0;background:var(--creme);}
.publico h2{font-size:2.4rem;}
.publico__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(230px,1fr));
  gap:24px;
  margin-top:36px;
}
.publico__card{
  background:#fff;
  border:1px solid var(--blush-escuro);
  border-radius:var(--radius);
  padding:30px 26px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.publico__card:hover{transform:translateY(-6px); box-shadow:var(--sombra-suave);}
.publico__card h3{font-size:1.4rem;margin-bottom:.35em;}
.publico__card p{font-size:.95rem;color:var(--texto-suave);margin:0;}

/* ---------- Portfólio ---------- */
.portfolio{padding:100px 0; background:var(--blush);}
.portfolio__head{max-width:640px;}
.portfolio__head h2{font-size:2.5rem;}
.portfolio__head p{color:var(--texto-suave); font-size:1.02rem;}
.portfolio__filtros{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:32px 0 8px;
}
.portfolio__filtro{
  font-family:'Jost',sans-serif;
  font-size:.82rem;
  letter-spacing:.02em;
  padding:9px 18px;
  border-radius:999px;
  border:1.5px solid var(--vinho-suave);
  background:transparent;
  color:var(--vinho-escuro);
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.portfolio__filtro:hover{background:rgba(159,39,71,.08);}
.portfolio__filtro.is-active{background:var(--vinho); color:#fff; border-color:var(--vinho);}

.portfolio__grid{
  margin-top:28px;
  column-count:4;
  column-gap:18px;
}
.portfolio__item{
  break-inside:avoid;
  margin-bottom:18px;
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--sombra-suave);
  cursor:zoom-in;
}
.portfolio__item img{
  width:100%; display:block;
  transition:transform .5s ease;
}
.portfolio__item:hover img{transform:scale(1.06);}
.portfolio__item__tag{
  position:absolute;
  left:14px; bottom:14px;
  background:rgba(46,16,21,.55);
  backdrop-filter:blur(3px);
  color:#fff;
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:6px 14px;
  border-radius:999px;
  opacity:0;
  transform:translateY(6px);
  transition:opacity .25s ease, transform .25s ease;
}
.portfolio__item:hover .portfolio__item__tag{opacity:1; transform:translateY(0);}

@media (max-width:980px){ .portfolio__grid{column-count:3;} }
@media (max-width:700px){ .portfolio__grid{column-count:2; column-gap:12px;} .portfolio__item{margin-bottom:12px;} }

/* Lightbox */
.lightbox{
  position:fixed; inset:0;
  background:rgba(20,6,10,.92);
  z-index:100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:5vh 5vw;
}
.lightbox.is-open{display:flex;}
.lightbox img{
  max-width:100%; max-height:88vh;
  border-radius:10px;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
.lightbox__close{
  position:absolute; top:24px; right:28px;
  width:44px;height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.4);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:1.3rem;
  cursor:pointer;
  line-height:1;
}
.lightbox__close:hover{background:rgba(255,255,255,.18);}
.lightbox__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:48px;height:48px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.4);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:1.4rem;
  cursor:pointer;
}
.lightbox__nav--prev{left:18px;}
.lightbox__nav--next{right:18px;}
.lightbox__nav:hover{background:rgba(255,255,255,.18);}

/* ---------- Produtos ---------- */
.produtos{padding:96px 0;background:var(--creme);}
.produtos h2{font-size:2.4rem;margin-bottom:.6em;}
.produtos__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px,1fr));
  gap:30px;
  margin-top:32px;
}
.produto-card{
  background:#fff;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--sombra-suave);
  transition:transform .3s ease, box-shadow .3s ease;
}
.produto-card:hover{transform:translateY(-8px); box-shadow:var(--sombra);}
.produto-card__img{
  aspect-ratio:1/1;
  background:var(--creme);
  overflow:hidden;
}
.produto-card__img img{width:100%;height:100%;object-fit:cover;display:block; transition:transform .5s ease;}
.produto-card:hover .produto-card__img img{transform:scale(1.05);}
.produto-card__img--placeholder{
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg, var(--creme), var(--blush));
}
.produto-card__img--placeholder img{width:44px;height:44px;object-fit:contain;opacity:.55; transition:none;}
.produto-card:hover .produto-card__img--placeholder img{transform:none;}
.produto-card__body{padding:24px;}
.produto-card__tag{
  display:inline-block;
  font-size:.72rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--vinho-escuro);
  background:var(--blush);
  padding:4px 12px;
  border-radius:999px;
  margin-bottom:12px;
  font-family:'Jost',sans-serif;
}
.produto-card__tag--estoque{background:#dcefda;color:#2f6b2a;}
.produto-card h3{font-size:1.3rem;margin-bottom:.2em;}
.produto-card__preco{font-weight:500;color:var(--vinho);font-size:1.15rem;margin:0;font-family:'Jost',sans-serif;}
.produtos__nota{margin-top:28px;font-size:.9rem;color:var(--texto-suave);}

/* ---------- CTA final ---------- */
.cta-final{
  padding:120px 0;
  background-size:cover;
  background-position:center;
  color:var(--blush);
  text-align:center;
}
.cta-final__inner{position:relative; z-index:2;}
.cta-final h2{color:#fff;font-size:2.8rem;}
.cta-final p{max-width:520px;margin:0 auto 2.2em;opacity:.9;font-size:1.05rem;}
.cta-final .hero__ctas{justify-content:center;}
.cta-final .btn--ghost{border-color:rgba(248,224,222,.5);}

/* ---------- Rodapé ---------- */
.rodape{padding:64px 0 26px;background:var(--vinho-escuro);color:var(--blush);}
.rodape__grid{
  display:grid;
  grid-template-columns:1.3fr repeat(3, 1fr);
  gap:36px;
  padding-bottom:40px;
  border-bottom:1px solid rgba(248,224,222,.18);
}
.rodape__marca{font-family:'Dancing Script',cursive; font-size:1.7rem; color:#fff; margin-bottom:.4em;}
.rodape__col p{font-size:.88rem; opacity:.85; max-width:260px;}
.rodape__col h4{
  font-family:'Jost',sans-serif;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--blush);
  opacity:.7;
  margin:0 0 1em 0;
}
.rodape__col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
.rodape__col a{color:var(--blush); text-decoration:none; font-size:.9rem; opacity:.92;}
.rodape__col a:hover{opacity:1; text-decoration:underline;}
.rodape__bottom{
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:10px;
  padding-top:22px;
  font-size:.82rem;
  opacity:.75;
}
.rodape__social{display:flex; gap:14px;}
.rodape__social a{
  width:36px;height:36px;
  border-radius:50%;
  border:1px solid rgba(248,224,222,.35);
  display:flex;align-items:center;justify-content:center;
  color:var(--blush);
  text-decoration:none;
  font-size:.85rem;
}
.rodape__social a:hover{background:rgba(248,224,222,.12);}

@media (max-width:900px){
  .rodape__grid{grid-template-columns:1fr 1fr; row-gap:32px;}
}
@media (max-width:560px){
  .rodape__grid{grid-template-columns:1fr;}
}

@media (max-width:820px){
  .topbar__nav{display:none;}
  .hero{padding:120px 0 90px;min-height:auto;}
  .hero h1{font-size:2.3rem;}
  .manifesto__text{font-size:1.4rem;}
  .sobre{padding:70px 0;}
  .portfolio,.produtos{padding:70px 0;}
}
