/* =========================================================
   Afeto Artesanal — estilo visual derivado da logo
   roxo · lilás · marrom  ·  display serifada · script · sans
   ========================================================= */

/* ---------- 1. tokens ---------- */
:root{
  /* cores amostradas da logo */
  --roxo:        #9017BE;
  --roxo-medio:  #A23BCB;
  --roxo-escuro: #7A1290;
  --roxo-claro:  #C77BE8;
  --lilas:       #F7EAFC;
  --lilas-2:     #EFDDFD;
  --marrom:      #571902;
  --marrom-2:    #7A3D12;
  --branco:      #FFFFFF;
  --creme:       #FFF7FE;

  /* tipografia */
  --f-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --f-script:  'Pacifico', 'Brush Script MT', cursive;
  --f-base:    'Jost', 'Segoe UI', system-ui, -apple-system, sans-serif;

  /* ritmo */
  --gap:   clamp(1rem, 3.5vw, 1.75rem);
  --pad-x: clamp(1.1rem, 5vw, 2.5rem);
  --r-pill: 999px;
  --r-card: 22px;

  /* movimento — lento e suave, como pede a marca */
  --ease:   cubic-bezier(.22,.61,.36,1);
  --ease-2: cubic-bezier(.16,.84,.44,1);
  --slow:   .9s var(--ease-2);
  --med:    .55s var(--ease);

  /* fundo animado (JS atualiza) */
  --sy: 0px;                 /* scroll em px */
  --sp: 0;                   /* progresso 0..1 */
  --blob-a: #E9D2FA;
  --blob-b: #F6E7FD;
  --blob-c: #FBEDFF;
  --blob-d: #EFDCFB;
}

/* ---------- 2. reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  scroll-padding-top:5.5rem;   /* nao deixa o header fixo cobrir a ancora */
}
body{
  margin:0;
  font-family:var(--f-base);
  font-weight:400;
  color:var(--marrom);
  background:var(--lilas);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3{ margin:0; line-height:1.1; font-family:var(--f-display); font-weight:700; }
p{ margin:0; }
button{ font:inherit; color:inherit; border:0; background:none; cursor:pointer; }
::selection{ background:var(--roxo); color:#fff; }

:focus-visible{
  outline:3px solid var(--roxo-medio);
  outline-offset:3px;
  border-radius:6px;
}

/* ---------- 3. fundo animado ---------- */
.bg{
  position:fixed; inset:0; z-index:-1; overflow:hidden;
  background:var(--lilas);
  pointer-events:none;
}
.bg__blob{
  position:absolute; border-radius:50%;
  filter:blur(90px);
  transition:background-color 1.4s var(--ease);
  will-change:transform;
}
.bg__blob--a{
  width:62vmax; height:62vmax; left:-18vmax; top:-14vmax;
  background:var(--blob-a);
  transform:translate3d(0, calc(var(--sy) * -0.055), 0) scale(calc(1 + var(--sp) * .12));
}
.bg__blob--b{
  width:54vmax; height:54vmax; right:-16vmax; top:22vmax;
  background:var(--blob-b);
  transform:translate3d(0, calc(var(--sy) * .085), 0);
}
.bg__blob--c{
  width:48vmax; height:48vmax; left:18vmax; bottom:-20vmax;
  background:var(--blob-c);
  transform:translate3d(0, calc(var(--sy) * -.04), 0) scale(calc(1 + var(--sp) * .08));
}
.bg__blob--d{
  width:38vmax; height:38vmax; right:14vmax; bottom:8vmax;
  background:var(--blob-d);
  transform:translate3d(0, calc(var(--sy) * .11), 0);
}
/* coração gigante bem diluído, como marca d'água */
.bg__heart{
  position:absolute; left:50%; top:50%;
  font-size:min(120vmin,900px); line-height:1;
  color:var(--roxo); opacity:.028;
  transform:translate(-50%,-50%) rotate(12deg) scale(calc(1 + var(--sp) * .1));
  transition:opacity 1.4s var(--ease);
}

/* ---------- 4. utilitários ---------- */
.wrap{ width:min(1180px,100%); margin-inline:auto; padding-inline:var(--pad-x); }
.section{
  position:relative;
  padding-block:clamp(3.5rem,10vw,7rem);
  scroll-margin-top:5.5rem;
}

/* ---------- 5. botões ---------- */
.btn{
  --btn-bg:var(--roxo);
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  padding:.85rem 1.5rem;
  border-radius:var(--r-pill);
  background:var(--btn-bg);
  color:#fff;
  font-family:var(--f-base); font-weight:500; font-size:.95rem;
  letter-spacing:.02em;
  border:2px solid var(--roxo);
  box-shadow:0 10px 26px -14px rgba(87,25,2,.55);
  transition:transform var(--med), background var(--med), box-shadow var(--med), border-color var(--med);
  will-change:transform;
}
.btn svg{ width:19px; height:19px; fill:currentColor; flex:none; }
.btn:hover{
  background:var(--roxo-escuro); border-color:var(--roxo-escuro);
  transform:translateY(-3px);
  box-shadow:0 16px 30px -14px rgba(87,25,2,.65);
}
.btn:active{ transform:translateY(-1px); }
.btn--sm{ padding:.6rem 1.05rem; font-size:.86rem; }
.btn--full{ width:100%; }
.btn--ghost{
  background:transparent; color:var(--roxo); border-color:var(--roxo);
}
.btn--ghost:hover{ background:var(--roxo); color:#fff; border-color:var(--roxo); }
.btn--light{ background:#fff; color:var(--roxo-escuro); border-color:#fff; }
.btn--light:hover{ background:var(--roxo); color:#fff; border-color:var(--roxo); }

/* ---------- 6. cabeçalho ---------- */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:60;
  transition:background var(--med), box-shadow var(--med), padding var(--med);
  padding-block:.5rem;
}
.topbar.is-fixed{
  background:rgba(247,234,252,.86);
  backdrop-filter:blur(14px) saturate(1.3);
  -webkit-backdrop-filter:blur(14px) saturate(1.3);
  box-shadow:0 8px 30px -22px rgba(87,25,2,.6);
}
.topbar__inner{
  width:min(1180px,100%); margin-inline:auto; padding-inline:var(--pad-x);
  display:flex; align-items:center; gap:1rem;
}
.brand{ display:flex; align-items:center; gap:.6rem; margin-right:auto; }
.brand__logo{
  width:44px; height:44px; border-radius:50%;
  transition:transform var(--med);
}
.brand:hover .brand__logo{ transform:rotate(-8deg) scale(1.06); }
.brand__text{ display:flex; flex-direction:column; line-height:1; }
.brand__text strong{
  font-family:var(--f-display); font-weight:900; font-size:1.12rem;
  color:var(--marrom); letter-spacing:.01em;
}
.brand__text em{
  font-style:normal; font-family:var(--f-base); font-weight:500;
  font-size:.6rem; letter-spacing:.34em; text-transform:uppercase;
  color:var(--roxo);
}

.nav{
  position:absolute; top:100%; left:var(--pad-x); right:var(--pad-x);
  display:flex; flex-direction:column; gap:.2rem;
  padding:.8rem; border-radius:20px;
  background:rgba(255,255,255,.96);
  box-shadow:0 26px 50px -30px rgba(87,25,2,.7);
  border:2px dashed var(--roxo-claro);
  opacity:0; visibility:hidden; transform:translateY(-10px);
  transition:opacity var(--med), transform var(--med), visibility var(--med);
}
.nav.is-open{ opacity:1; visibility:visible; transform:translateY(0); }
.nav a{
  padding:.65rem .8rem; border-radius:12px;
  font-weight:500; font-size:.95rem; color:var(--marrom);
  transition:background var(--med), color var(--med);
}
.nav a:hover{ background:var(--lilas-2); color:var(--roxo); }

.burger{
  width:42px; height:42px; display:grid; place-content:center; gap:5px;
  border-radius:50%; background:var(--roxo); flex:none;
}
.burger span{
  display:block; width:18px; height:2px; background:#fff; border-radius:2px;
  transition:transform var(--med), opacity var(--med);
}
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.topbar__cta{ display:none; }

@media (min-width:900px){
  .nav{
    position:static; flex-direction:row; gap:1.6rem;
    padding:0; background:none; border:0; box-shadow:none;
    opacity:1; visibility:visible; transform:none;
  }
  .nav a{ padding:.3rem 0; position:relative; }
  .nav a::after{
    content:''; position:absolute; left:0; bottom:0; width:100%; height:2px;
    background:var(--roxo); border-radius:2px;
    transform:scaleX(0); transform-origin:left;
    transition:transform var(--med);
  }
  .nav a:hover::after{ transform:scaleX(1); }
  .burger{ display:none; }
  .topbar__cta{ display:inline-flex; }
}

/* ---------- 7. hero ---------- */
.hero{
  min-height:100svh; display:flex; align-items:center;
  padding-top:clamp(6.5rem,14vw,9rem); padding-bottom:clamp(4rem,9vw,6rem);
  overflow:hidden;
}
.hero__glow{
  position:absolute; left:50%; top:46%; translate:-50% -50%;
  width:min(130vw,900px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.85) 0%, rgba(247,234,252,.45) 42%, transparent 68%);
  animation:breath 11s var(--ease) infinite;
}
@keyframes breath{
  0%,100%{ transform:translate(-50%,-50%) scale(1); opacity:.85; }
  50%    { transform:translate(-50%,-50%) scale(1.09); opacity:1; }
}
.hero__inner{
  position:relative; display:grid; gap:clamp(2rem,6vw,4rem); align-items:center;
}
.hero__content{ text-align:center; }
.hero__eyebrow{
  display:inline-flex; align-items:center; gap:.55rem;
  font-size:.7rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--roxo); font-weight:500;
  margin-bottom:1rem;
}
.hero__eyebrow span{ color:var(--roxo-medio); font-size:.6rem; }
.hero__title{
  font-family:var(--f-display); font-weight:900;
  font-size:clamp(2.6rem,11vw,5.4rem); letter-spacing:-.01em;
  color:var(--marrom);
}
.hero__title-line{ display:block; }
.hero__title-line--script{
  font-family:var(--f-script); font-weight:400;
  font-size:clamp(1.9rem,7.5vw,3.9rem);
  color:var(--roxo); letter-spacing:0;
  margin-top:.15em;
}
.hero__lead{
  margin:1.4rem auto 0; max-width:34ch;
  font-size:clamp(1rem,2.6vw,1.14rem); color:var(--marrom-2);
}
.hero__lead em{ display:block; font-style:italic; color:var(--marrom); }
.hero__actions{
  margin-top:1.9rem; display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center;
}
.hero__pills{
  margin-top:2rem; display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center;
}
.hero__pills li{
  padding:.42rem .95rem; border-radius:var(--r-pill);
  border:1.5px solid var(--roxo-claro); background:rgba(255,255,255,.7);
  font-size:.8rem; font-weight:500; color:var(--marrom-2);
  transition:transform var(--med), background var(--med), color var(--med);
}
.hero__pills li:hover{ background:var(--roxo); color:#fff; transform:translateY(-3px); }

/* selo da logo — circulo perfeito (1254 x 1254): aro, monograma,
   AFETO/ARTESANAL e lourela. O conteudo de baixo foi removido. */
.hero__art{ display:grid; place-items:center; position:relative; }
.hero__seal{ position:relative; width:min(78vw,380px); aspect-ratio:1; }
.hero__seal-ring{
  position:absolute; inset:-7%;
  border:2px dashed var(--roxo-medio); border-radius:50%;
  animation:spin 46s linear infinite;
  opacity:.75;
}
.hero__seal::after{
  content:''; position:absolute; inset:4%;
  border-radius:50%; border:2px solid rgba(144,23,190,.22);
}
.hero__seal img{
  position:relative; width:100%; height:100%; object-fit:contain;
  animation:float 8s var(--ease) infinite;
  filter:drop-shadow(0 26px 44px rgba(87,25,2,.28));
}
.hero__seal-shadow{
  width:58%; height:22px; margin-top:-6px; border-radius:50%;
  background:radial-gradient(ellipse, rgba(87,25,2,.26), transparent 70%);
  animation:shadow 8s var(--ease) infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }
@keyframes float{
  0%,100%{ transform:translateY(0) rotate(0deg); }
  50%    { transform:translateY(-16px) rotate(1.2deg); }
}
@keyframes shadow{
  0%,100%{ transform:scaleX(1); opacity:.85; }
  50%    { transform:scaleX(.82); opacity:.45; }
}

/* decorações flutuantes */
.deco{ position:absolute; pointer-events:none; }
.deco--heart{ color:var(--roxo); opacity:.32; }
.deco--h1{ font-size:clamp(1.4rem,4vw,2.3rem); left:7%; top:22%; animation:drift 11s var(--ease) infinite; }
.deco--h2{ font-size:clamp(1rem,2.6vw,1.5rem); right:9%; top:33%; color:var(--roxo-medio); animation:drift 14s var(--ease) infinite reverse; }
.deco--h3{ font-size:clamp(.9rem,2.2vw,1.25rem); right:16%; bottom:24%; color:var(--roxo-claro); animation:drift 17s var(--ease) infinite; }
.deco--ring{
  width:clamp(120px,26vw,240px); aspect-ratio:1; border-radius:50%;
  border:2px dashed rgba(144,23,190,.22); left:-4%; bottom:16%;
  animation:spin 60s linear infinite;
}
@keyframes drift{
  0%,100%{ transform:translate(0,0) rotate(-4deg); }
  33%    { transform:translate(14px,-22px) rotate(5deg); }
  66%    { transform:translate(-12px,-12px) rotate(-2deg); }
}

.hero__scroll{
  position:absolute; bottom:1.2rem; left:50%; translate:-50% 0;
  width:22px; height:36px; border-radius:12px;
  border:2px solid var(--roxo-claro);
}
.hero__scroll span{
  position:absolute; top:6px; left:50%; translate:-50% 0;
  width:4px; height:8px; border-radius:2px; background:var(--roxo);
  animation:scrollDot 2.2s var(--ease) infinite;
}
@keyframes scrollDot{
  0%,100%{ transform:translate(-50%,0); opacity:1; }
  60%    { transform:translate(-50%,12px); opacity:.2; }
}

@media (min-width:900px){
  .hero__inner{ grid-template-columns:1.05fr .95fr; text-align:left; }
  .hero__content{ text-align:left; }
  .hero__lead{ margin-left:0; }
  .hero__actions,.hero__pills{ justify-content:flex-start; }
  .hero__art{ order:-1; }
}

/* ---------- 8. cabeçalho de seção ---------- */
.sec-head{ text-align:center; margin-bottom:clamp(2.2rem,5vw,3.4rem); }
.sec-head__eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.68rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--roxo); font-weight:500; margin-bottom:.8rem;
}
.sec-head__eyebrow span{ color:var(--roxo-medio); font-size:.58rem; }
.sec-head__title{
  font-size:clamp(1.9rem,6.2vw,3.3rem); color:var(--marrom);
}
.sec-head__title em{
  display:block; font-family:var(--f-script); font-style:normal; font-weight:400;
  font-size:.72em; color:var(--roxo); margin-top:.25em;
}
.sec-head__sub{
  margin:.9rem auto 0; max-width:46ch; color:var(--marrom-2);
  font-size:clamp(.95rem,2.4vw,1.05rem);
}
.sec-head--light .sec-head__title{ color:#fff; }
.sec-head--light .sec-head__eyebrow{ color:var(--roxo-claro); }
.rule{
  display:block; width:74px; height:2px; margin:1.1rem auto 0;
  background:linear-gradient(90deg,transparent,var(--roxo),transparent);
  position:relative;
}
.rule::after{
  content:'♥'; position:absolute; left:50%; top:50%;
  translate:-50% -50%; font-size:.72rem; color:var(--roxo);
  background:var(--lilas); padding:0 .4rem;
}
.sec-head--light .rule{ background:linear-gradient(90deg,transparent,var(--roxo-claro),transparent); }
.sec-head--light .rule::after{ color:var(--roxo-claro); background:var(--roxo-escuro); }

/* ---------- 9. sobre ---------- */
.sobre__grid{ display:grid; gap:var(--gap); }
.card{
  background:rgba(255,255,255,.82);
  border:2px dashed var(--roxo-claro);
  border-radius:var(--r-card);
  padding:clamp(1.3rem,3.5vw,2rem);
  box-shadow:0 22px 46px -34px rgba(87,25,2,.6);
}
.card--text p{ margin-bottom:1rem; color:var(--marrom-2); }
.card--text strong{ color:var(--marrom); font-weight:600; }
.card__quote{
  margin:1.4rem 0 0 !important; padding-top:1.2rem;
  border-top:2px dashed var(--roxo-claro);
  font-family:var(--f-script); color:var(--roxo) !important;
  font-size:1rem; line-height:1.6;
}
.sobre__cards{ display:grid; gap:var(--gap); }
.card--mini{ text-align:center; transition:transform var(--med), box-shadow var(--med); }
.card--mini:hover{ transform:translateY(-6px); box-shadow:0 30px 54px -34px rgba(87,25,2,.7); }
.card__icon{ font-size:1.9rem; display:block; margin-bottom:.6rem; }
.card--mini h3{ font-size:1.2rem; color:var(--marrom); margin-bottom:.4rem; }
.card--mini p{ font-size:.93rem; color:var(--marrom-2); }

@media (min-width:760px){
  .sobre__grid{ grid-template-columns:1.15fr .85fr; align-items:start; }
  .sobre__cards{ grid-template-columns:1fr; }
}
@media (min-width:1100px){
  .sobre__cards{ grid-template-columns:repeat(3,1fr); grid-column:1/-1; }
  .sobre__grid{ grid-template-columns:1fr; }
}

/* ---------- 10. produtos ---------- */
.grid-produtos{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--gap);
}
@media (min-width:520px){
  .grid-produtos{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:980px){
  .grid-produtos{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
.produto{
  display:flex; flex-direction:column;
  background:rgba(255,255,255,.86);
  border:2px dashed var(--roxo-claro);
  border-radius:var(--r-card);
  padding:.7rem .7rem 1rem;
  box-shadow:0 22px 46px -34px rgba(87,25,2,.6);
  transition:transform var(--med), box-shadow var(--med), border-color var(--med);
  will-change:transform;
}
.produto:hover{
  transform:translateY(-8px);
  border-color:var(--roxo);
  box-shadow:0 34px 60px -34px rgba(87,25,2,.72);
}
.produto__frame{
  position:relative; border-radius:16px; overflow:hidden;
  background:
    radial-gradient(circle at 50% 88%, rgba(144,23,190,.10), transparent 62%),
    var(--lilas);
  aspect-ratio:1/1;
  display:grid; place-items:center;
  margin-bottom:.85rem;
}
.produto__img{ width:100%; height:100%; display:grid; place-items:center; }
/* a flutuacao fica no <picture> e o hover no <img>: se estivessem no mesmo
   elemento, a animacao (prioridade sobre transform) anularia o hover */
.produto__img picture{
  width:86%; height:86%; display:block;
  animation:prodFloat 7s var(--ease) infinite;
  transition:transform var(--slow);
}
.produto__img picture img{
  width:100%; height:100%; object-fit:contain;
  transition:transform var(--slow);
  filter:drop-shadow(0 16px 22px rgba(87,25,2,.24));
}
.produto:hover .produto__img picture img{ transform:scale(1.07); }
@keyframes prodFloat{
  0%,100%{ transform:translateY(0); }
  50%    { transform:translateY(-9px); }
}
.produto:nth-child(2) .produto__img picture{ animation-delay:-2.4s; animation-duration:8.2s; }
.produto:nth-child(3) .produto__img picture{ animation-delay:-4.1s; animation-duration:7.4s; }
.produto:nth-child(4) .produto__img picture{ animation-delay:-1.3s; animation-duration:9s; }
.produto:nth-child(5) .produto__img picture{ animation-delay:-5.6s; animation-duration:8.6s; }

.produto__tag{
  position:absolute; top:.5rem; left:.5rem; z-index:2;
  padding:.24rem .6rem; border-radius:var(--r-pill);
  background:var(--roxo); color:#fff;
  font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  box-shadow:0 6px 14px -8px rgba(87,25,2,.9);
}
.produto__body{ display:flex; flex-direction:column; gap:.55rem; flex:1; padding-inline:.35rem; }
.produto__nome{
  font-size:clamp(.98rem,2.3vw,1.12rem); color:var(--marrom);
  font-weight:700; line-height:1.25;
}
.produto__desc{
  font-size:.86rem; color:var(--marrom-2); line-height:1.55;
  flex:1;
}
.produto__sabores{ display:flex; flex-wrap:wrap; gap:.3rem; }
.produto__sabores li{
  font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500;
  padding:.22rem .55rem; border-radius:var(--r-pill);
  background:var(--lilas-2); color:var(--roxo-escuro);
  border:1px solid rgba(144,23,190,.22);
}
.produto__body .btn{ margin-top:.35rem; padding-block:.62rem; font-size:.85rem; }

.produtos__nota{
  margin-top:clamp(2rem,5vw,3rem); text-align:center;
  font-size:.9rem; color:var(--marrom-2);
}
.produtos__nota span{ color:var(--roxo); margin-right:.3rem; }

/* ---------- 11. contato ---------- */
.section--contato{ color:#fff; }
.section--contato::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(150deg,var(--roxo-escuro) 0%,var(--roxo) 52%,var(--roxo-medio) 100%);
  clip-path:polygon(0 0,100% 4%,100% 100%,0 96%);
}
.contato__grid{ display:grid; gap:var(--gap); }
.contato__box{
  background:rgba(255,255,255,.1);
  border:2px dashed rgba(255,255,255,.42);
  border-radius:var(--r-card);
  padding:clamp(1.3rem,3.5vw,2rem);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  transition:transform var(--med), background var(--med);
}
.contato__box:hover{ transform:translateY(-6px); background:rgba(255,255,255,.16); }
.contato__box h3{ font-size:1.25rem; margin-bottom:.6rem; color:#fff; }
.contato__box p{ font-size:.93rem; color:rgba(255,255,255,.85); margin-bottom:1.1rem; }
.contato__lista{ display:grid; gap:.55rem; }
.contato__lista li{
  display:flex; gap:.55rem; align-items:baseline;
  font-size:.9rem; color:rgba(255,255,255,.9);
}
.contato__lista span{ color:var(--roxo-claro); }
@media (min-width:760px){
  .contato__grid{ grid-template-columns:repeat(3,1fr); }
}

/* ---------- 12. rodapé ---------- */
.rodape{
  padding-block:clamp(2.5rem,6vw,4rem);
  background:rgba(247,234,252,.7);
  border-top:2px dashed var(--roxo-claro);
}
.rodape__inner{ text-align:center; }
.rodape__logo{ width:64px; height:64px; margin:0 auto .8rem; }
.rodape__frase{
  font-family:var(--f-script); color:var(--roxo);
  font-size:clamp(1.05rem,3.4vw,1.35rem); margin-bottom:.7rem;
}
.rodape__copy{ font-size:.8rem; color:var(--marrom-2); }

/* ---------- 13. botão flutuante do whatsapp ---------- */
.wa-float{
  position:fixed; z-index:70;
  right:14px; bottom:14px;
  display:flex; align-items:center; gap:.6rem;
  padding:.55rem; padding-right:.55rem;
  border-radius:var(--r-pill);
  background:var(--roxo);
  color:#fff;
  box-shadow:0 18px 34px -16px rgba(87,25,2,.85), 0 0 0 0 rgba(144,23,190,.55);
  animation:waPulse 3.4s var(--ease) infinite;
  transition:transform var(--med), background var(--med);
}
.wa-float:hover{ background:var(--roxo-escuro); transform:translateY(-3px) scale(1.03); animation-play-state:paused; }
.wa-float__icon{
  width:46px; height:46px; border-radius:50%;
  display:grid; place-items:center;
  background:#fff; color:var(--roxo);
  flex:none;
}
.wa-float__icon svg{ width:26px; height:26px; fill:currentColor; }
.wa-float__text{
  display:none;
  font-size:.86rem; font-weight:500; letter-spacing:.01em; padding-right:.55rem;
}
@keyframes waPulse{
  0%,72%,100%{ box-shadow:0 18px 34px -16px rgba(87,25,2,.85), 0 0 0 0 rgba(144,23,190,.5); }
  86%          { box-shadow:0 18px 34px -16px rgba(87,25,2,.85), 0 0 0 14px rgba(144,23,190,0); }
}
/* no desktop vira uma aba lateral vertical */
@media (min-width:900px){
  .wa-float{
    right:0; top:50%; bottom:auto; translate:0 -50%;
    flex-direction:column; gap:.7rem;
    padding:.85rem .55rem;
  }
  .wa-float__text{
    display:block;
    writing-mode:vertical-rl;
    padding:.2rem 0 .55rem;
    font-size:.82rem; letter-spacing:.06em;
  }
}

/* ---------- 14. animação de entrada ---------- */
.reveal{
  opacity:0; transform:translateY(26px);
  transition:opacity .85s var(--ease-2), transform .85s var(--ease-2);
  transition-delay:var(--d,0ms);
}
.reveal.is-in{ opacity:1; transform:none; }

/* ---------- 15. acessibilidade: menos movimento ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .reveal{ opacity:1; transform:none; }
}
