/* ===== Groomer Pet — estética animal · roxo & turquesa (identidade da marca) ===== */
:root{
  --roxo:#6B2D8C;
  --roxo-esc:#3D1A52;
  --roxo-prof:#26103A;
  --turq:#2FB5C4;
  --turq-cl:#7FDCE5;
  --rosa:#E94B9B;
  --nuvem:#F8F5FB;
  --nuvem-2:#EFE7F5;
  --tinta:#241A2E;
  --tinta-2:#5E5170;
  --branco:#fff;
  --dur:.75s;
  --ease:cubic-bezier(.22,1,.36,1);
  --r:20px;
}
*{margin:0;padding:0;box-sizing:border-box}
/* trava de scroll lateral: clip nos DOIS (quem rola é o html).
   clip e NÃO hidden — hidden quebraria position:sticky.
   100% e NÃO 100vw — vw inclui a barra de rolagem e vaza. */
html{scroll-behavior:smooth;overflow-x:clip;width:100%}
body{
  font-family:'Outfit',system-ui,sans-serif;
  color:var(--tinta);background:var(--nuvem);
  overflow-x:clip;width:100%;max-width:100%;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.section{padding:clamp(70px,9vw,130px) 0}

.kicker{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:.8rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--roxo);margin-bottom:1rem;
}
.kicker::before{content:"";width:30px;height:2px;background:var(--turq);border-radius:2px}
.kicker.light{color:var(--turq-cl)}
.kicker.light::before{background:var(--turq-cl)}
.h2{
  font-family:'Fraunces',Georgia,serif;font-weight:600;
  font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.1;letter-spacing:-.02em;
}
.h2 em{font-style:italic;color:var(--roxo)}
.h2.light{color:#fff}
.h2.light em{color:var(--turq-cl)}

/* ===== BOTÕES ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-family:inherit;font-weight:600;font-size:1rem;cursor:pointer;border:none;
  padding:.9rem 1.6rem;border-radius:100px;position:relative;overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s;
}
.btn-lg{padding:1.05rem 2rem;font-size:1.05rem}
.btn::after{
  content:"";position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.28),transparent 70%);
  transform:translateX(-120%);transition:transform .7s var(--ease);
}
.btn:hover::after{transform:translateX(120%)}
.btn-primary{background:linear-gradient(120deg,var(--roxo),#8B3FB0);color:#fff;box-shadow:0 12px 30px rgba(107,45,140,.32)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(107,45,140,.42)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1.6px solid rgba(255,255,255,.5);backdrop-filter:blur(6px)}
.btn-ghost:hover{background:#fff;color:var(--roxo-esc);transform:translateY(-3px)}
.btn-ghost-light{background:transparent;color:#fff;border:1.6px solid rgba(255,255,255,.55)}
.btn-ghost-light:hover{background:rgba(255,255,255,.14);transform:translateY(-3px)}
.btn-white{background:#fff;color:var(--roxo-esc);box-shadow:0 12px 30px rgba(0,0,0,.16)}
.btn-white:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(0,0,0,.22)}
.btn-outline{background:transparent;color:var(--roxo);border:1.8px solid var(--nuvem-2)}
.btn-outline:hover{border-color:var(--roxo);transform:translateY(-3px)}

/* ===== ABERTURA (loader) ===== */
.loader{
  position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--roxo-esc) 0%,var(--roxo-prof) 60%,#1B0B2B 100%);
  overflow:hidden;transition:opacity .8s var(--ease),visibility .8s;
}
.loader.done{opacity:0;visibility:hidden;pointer-events:none}
.loader-bubbles span{
  position:absolute;bottom:-60px;border-radius:50%;
  background:radial-gradient(circle at 32% 30%,rgba(255,255,255,.55),rgba(127,220,229,.16) 60%,transparent 72%);
  border:1px solid rgba(255,255,255,.16);
  animation:bubbleUp linear infinite;
}
.loader-bubbles span:nth-child(1){left:8%;width:34px;height:34px;animation-duration:5.5s}
.loader-bubbles span:nth-child(2){left:20%;width:20px;height:20px;animation-duration:4.4s;animation-delay:.5s}
.loader-bubbles span:nth-child(3){left:32%;width:46px;height:46px;animation-duration:6.6s;animation-delay:.2s}
.loader-bubbles span:nth-child(4){left:45%;width:16px;height:16px;animation-duration:4s;animation-delay:1s}
.loader-bubbles span:nth-child(5){left:56%;width:38px;height:38px;animation-duration:5.9s;animation-delay:.35s}
.loader-bubbles span:nth-child(6){left:68%;width:24px;height:24px;animation-duration:4.8s;animation-delay:.8s}
.loader-bubbles span:nth-child(7){left:79%;width:42px;height:42px;animation-duration:6.2s}
.loader-bubbles span:nth-child(8){left:90%;width:18px;height:18px;animation-duration:4.2s;animation-delay:.6s}
.loader-bubbles span:nth-child(9){left:14%;width:26px;height:26px;animation-duration:5.2s;animation-delay:1.4s}
@keyframes bubbleUp{
  0%{transform:translateY(0) scale(.6);opacity:0}
  12%{opacity:.9}
  100%{transform:translateY(-115vh) scale(1.1);opacity:0}
}
.loader-center{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center}
.loader-logo{
  width:clamp(180px,36vw,290px);
  filter:drop-shadow(0 18px 40px rgba(0,0,0,.5));
  opacity:0;transform:scale(.82);
  animation:logoIn 1.1s var(--ease) .25s forwards;
}
@keyframes logoIn{to{opacity:1;transform:none}}
.loader-line{
  margin-top:1.8rem;width:clamp(120px,24vw,190px);height:3px;border-radius:3px;
  background:rgba(255,255,255,.2);overflow:hidden;opacity:0;
  animation:logoIn .5s var(--ease) 1s forwards;
}
.loader-line i{display:block;height:100%;width:0;border-radius:3px;
  background:linear-gradient(90deg,var(--turq),var(--turq-cl));
  animation:lineFill 1.3s var(--ease) 1.05s forwards}
@keyframes lineFill{to{width:100%}}
body.loading{overflow:hidden}

/* ===== NAV ===== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;gap:2rem;
  padding:1rem clamp(16px,3vw,34px);
  transition:background .4s var(--ease),box-shadow .4s var(--ease),padding .4s var(--ease);
}
.nav.scrolled{background:rgba(248,245,251,.92);backdrop-filter:blur(14px);box-shadow:0 6px 26px rgba(60,26,82,.1);padding-top:.55rem;padding-bottom:.55rem}
.brand-logo{height:96px;width:auto;transition:height .35s var(--ease);filter:drop-shadow(0 2px 10px rgba(0,0,0,.4))}
.nav.scrolled .brand-logo{height:72px;filter:none}
.nav-links{display:flex;gap:1.9rem;margin-left:auto;align-items:center}
.nav-links a{font-weight:500;font-size:.98rem;color:#fff;position:relative;text-shadow:0 1px 8px rgba(0,0,0,.4);transition:color .3s}
.nav.scrolled .nav-links a{color:var(--tinta);text-shadow:none}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;background:var(--turq);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-cta{padding:.72rem 1.35rem;font-size:.95rem}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;margin-left:auto}
.burger span{width:26px;height:2.6px;background:#fff;border-radius:3px;transition:transform .35s var(--ease),opacity .25s,background .3s}
.nav.scrolled .burger span{background:var(--tinta)}
.burger.open span:nth-child(1){transform:translateY(7.6px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7.6px) rotate(-45deg)}

.mobile-menu{
  position:fixed;inset:0;z-index:99;background:var(--roxo-esc);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;
  opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s;
}
.mobile-menu.open{opacity:1;visibility:visible}
.mobile-menu a{font-family:'Fraunces',serif;font-size:1.7rem;color:#fff;opacity:0;transform:translateY(16px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.mobile-menu.open a{opacity:1;transform:none}
.mobile-menu.open a:nth-child(1){transition-delay:.07s}
.mobile-menu.open a:nth-child(2){transition-delay:.13s}
.mobile-menu.open a:nth-child(3){transition-delay:.19s}
.mobile-menu.open a:nth-child(4){transition-delay:.25s}
.mobile-menu.open a:nth-child(5){transition-delay:.31s}
.mobile-menu .btn{font-family:'Outfit',sans-serif;font-size:1.05rem;margin-top:.8rem}

/* ===== HERO full-bleed ===== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-img{width:100%;height:118%;object-fit:cover;object-position:center 30%;will-change:transform}
.hero-veil{
  position:absolute;inset:0;
  background:
    linear-gradient(100deg,rgba(38,16,58,.94) 0%,rgba(61,26,82,.82) 42%,rgba(38,16,58,.35) 72%,transparent 100%),
    linear-gradient(0deg,rgba(38,16,58,.75),transparent 45%);
}
.hero-content{position:relative;z-index:2;max-width:1200px;margin:0 auto;padding:120px 24px 90px;width:100%}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:.55rem;color:var(--turq-cl);
  font-weight:500;letter-spacing:.16em;text-transform:uppercase;font-size:.82rem;margin-bottom:1.4rem;
  opacity:0;animation:fadeUp .8s var(--ease) .3s forwards;
}
.hero-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--turq);box-shadow:0 0 0 4px rgba(47,181,196,.25);animation:pulseDot 2.4s ease-in-out infinite}
@keyframes pulseDot{50%{box-shadow:0 0 0 9px rgba(47,181,196,0)}}
.hero-title{
  font-family:'Fraunces',Georgia,serif;font-weight:600;color:#fff;
  font-size:clamp(2.5rem,6.6vw,5.2rem);line-height:1.04;letter-spacing:-.028em;max-width:16ch;
}
.hero-title em{font-style:italic;color:var(--turq-cl)}
/* texto entra por máscara, linha a linha */
.hero-title .line{display:block;overflow:hidden}
.hero-title .line>span{display:block;transform:translateY(110%);animation:lineUp 1s var(--ease) forwards}
.hero-title .line:nth-child(1)>span{animation-delay:.45s}
.hero-title .line:nth-child(2)>span{animation-delay:.58s}
@keyframes lineUp{to{transform:none}}
.hero-sub{
  color:rgba(255,255,255,.86);font-size:clamp(1rem,1.9vw,1.2rem);line-height:1.65;
  max-width:52ch;margin-top:1.5rem;opacity:0;animation:fadeUp .9s var(--ease) .9s forwards;
}
.hero-cta{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:2.4rem;opacity:0;animation:fadeUp .9s var(--ease) 1.1s forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.hero-scroll{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);width:22px;height:36px;border:2px solid rgba(255,255,255,.4);border-radius:12px;z-index:2}
.hero-scroll span{position:absolute;top:7px;left:50%;transform:translateX(-50%);width:3px;height:7px;border-radius:2px;background:var(--turq-cl);animation:scrollDot 1.9s ease-in-out infinite}
@keyframes scrollDot{0%,100%{transform:translate(-50%,0);opacity:1}60%{transform:translate(-50%,13px);opacity:.2}}

/* ===== CREDENCIAIS ===== */
.creds{background:var(--roxo-esc);padding:clamp(38px,5vw,58px) 0}
.creds-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;text-align:center}
.cred{position:relative}
.cred+.cred::before{content:"";position:absolute;left:-.7rem;top:14%;bottom:14%;width:1px;background:rgba(255,255,255,.16)}
.cred strong{display:inline-block;font-family:'Fraunces',serif;font-weight:600;font-size:clamp(1.9rem,4vw,2.9rem);color:#fff;line-height:1}
.cred .plus{font-family:'Fraunces',serif;font-size:clamp(1.4rem,3vw,2.1rem);color:var(--turq-cl);vertical-align:top}
.cred small{display:block;margin-top:.5rem;color:rgba(255,255,255,.62);font-size:.86rem;letter-spacing:.03em}

/* ===== BENTO (serviços) ===== */
.bento{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:2.6rem;
}
.bt{
  position:relative;border-radius:var(--r);overflow:hidden;background:#fff;
  box-shadow:0 14px 40px rgba(60,26,82,.09);
  padding:1.6rem;display:flex;flex-direction:column;justify-content:flex-end;min-height:230px;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
  transform-style:preserve-3d;
}
.bt:hover{box-shadow:0 26px 60px rgba(60,26,82,.18)}
.bt-big{grid-column:span 2;grid-row:span 2;min-height:490px}
.bt-wide{grid-column:span 2;min-height:250px}
.bt img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform 1.1s var(--ease)}
.bt:hover img{transform:scale(1.06)}
.bt:has(img)::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg,rgba(38,16,58,.92) 0%,rgba(38,16,58,.5) 40%,transparent 78%);
}
.bt:has(img) .bt-in{color:#fff}
.bt:has(img) .bt-in p{color:rgba(255,255,255,.84)}
.bt-in{position:relative;z-index:2}
.bt-in h3{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(1.25rem,2.4vw,1.7rem);margin-bottom:.5rem}
.bt-in p{color:var(--tinta-2);line-height:1.6;font-size:.98rem}
.bt-ico{
  position:relative;z-index:2;width:52px;height:52px;border-radius:15px;margin-bottom:auto;
  display:grid;place-items:center;color:var(--roxo);
  background:linear-gradient(140deg,var(--nuvem-2),#fff);
  box-shadow:inset 0 0 0 1px rgba(107,45,140,.1);
}
.bt-ico svg{width:26px;height:26px}

/* ===== OZÔNIO ===== */
.ozonio{
  position:relative;overflow:hidden;padding:clamp(80px,10vw,140px) 0;
  background:linear-gradient(150deg,var(--turq) 0%,#1D8A99 45%,var(--roxo) 120%);
}
.bubbles{position:absolute;inset:0;pointer-events:none}
.bubbles i{
  position:absolute;bottom:-70px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.5),rgba(255,255,255,.1) 60%,transparent 70%);
  border:1px solid rgba(255,255,255,.2);animation:bubbleUp linear infinite;
}
.oz-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;position:relative;z-index:2}
.oz-lead{color:rgba(255,255,255,.9);font-size:1.1rem;line-height:1.7;margin-top:1.2rem;max-width:48ch}
.oz-list{list-style:none;margin:1.8rem 0 2.2rem;display:flex;flex-direction:column;gap:.85rem}
.oz-list li{display:flex;align-items:center;gap:.75rem;color:#fff;font-weight:500;font-size:1.02rem}
.oz-list svg{flex:none;color:var(--turq-cl)}
/* a arte do ozônio é 4:5 — usa o formato dela pra aparecer inteira, sem cortar nem sobrar borda */
.oz-media{border-radius:calc(var(--r) + 6px);overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.3);transform:rotate(1.4deg);position:relative;max-width:430px;margin-inline:auto}
.oz-media img{width:100%;height:auto;display:block}

/* ===== GALERIA masonry ===== */
.galeria{background:var(--nuvem)}
.gal-lead{color:var(--tinta-2);margin-top:.8rem;font-size:1.05rem}
/* --- carrossel automático (laço infinito) --- */
.carousel{
  position:relative;margin-top:2.6rem;overflow:hidden;padding:16px 0;
  /* esfuma as pontas pra dar sensação de continuidade */
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.car-track{display:flex;gap:1rem;width:max-content;animation:carRun 52s linear infinite}
.carousel:hover .car-track{animation-play-state:paused}
@keyframes carRun{to{transform:translateX(-50%)}}
.car-item{
  flex:0 0 clamp(230px,25vw,320px);border-radius:18px;overflow:hidden;position:relative;
  box-shadow:0 14px 36px rgba(60,26,82,.14);background:#fff;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.car-item img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.1s var(--ease)}
.car-item::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(107,45,140,.4),transparent 52%);opacity:0;transition:opacity .45s var(--ease)}
.car-item:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 26px 56px rgba(60,26,82,.24)}
.car-item:hover img{transform:scale(1.07)}
.car-item:hover::after{opacity:1}
@media (max-width:768px){
  .car-item{flex-basis:clamp(190px,58vw,250px)}
  .car-track{gap:.75rem;animation-duration:44s}
}
@media (prefers-reduced-motion:reduce){
  .car-track{animation:none}
  .carousel{overflow-x:auto}
}

/* ===== COMO FUNCIONA — cards que empilham (sticky) ===== */
.como{background:linear-gradient(180deg,var(--nuvem) 0%,var(--nuvem-2) 100%);padding:clamp(70px,9vw,130px) 0 clamp(90px,11vw,150px)}
.stack{max-width:1000px;margin:2.6rem auto 0;padding:0 24px;display:flex;flex-direction:column;gap:2.2rem}
.stk{
  position:sticky;
  /* cada card para um pouco mais abaixo -> vira uma pilha */
  top:calc(15vh + var(--i) * 1.7rem);
}
.stk-in{
  display:flex;align-items:center;gap:clamp(1.2rem,3vw,2.4rem);
  background:#fff;border-radius:24px;padding:clamp(1.6rem,3.4vw,2.6rem);
  box-shadow:0 20px 50px rgba(60,26,82,.14);
  border:1px solid rgba(107,45,140,.07);
}
.stk:nth-child(2) .stk-in{background:linear-gradient(120deg,#fff,#FBF7FD)}
.stk:nth-child(3) .stk-in{background:linear-gradient(120deg,#fff,#F4FCFD)}
.stk:nth-child(4) .stk-in{background:linear-gradient(120deg,var(--roxo-esc),var(--roxo-prof));border-color:transparent}
.stk:nth-child(4) h3{color:#fff}
.stk:nth-child(4) p{color:rgba(255,255,255,.78)}
.stk:nth-child(4) .stk-num{color:rgba(255,255,255,.22)}
.stk:nth-child(4) .stk-ico{background:rgba(255,255,255,.1);color:var(--turq-cl);box-shadow:none}
.stk-num{
  flex:none;font-family:'Fraunces',serif;font-weight:600;
  font-size:clamp(2.6rem,6vw,4.2rem);line-height:1;color:rgba(107,45,140,.18);
}
.stk-txt{flex:1;min-width:0}
.stk-txt h3{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(1.3rem,2.7vw,1.85rem);margin-bottom:.55rem}
.stk-txt p{color:var(--tinta-2);line-height:1.65;font-size:1rem}
.stk-ico{
  flex:none;width:66px;height:66px;border-radius:20px;display:grid;place-items:center;color:var(--roxo);
  background:linear-gradient(140deg,var(--nuvem-2),#fff);
  box-shadow:inset 0 0 0 1px rgba(107,45,140,.09);
}
.stk-ico svg{width:32px;height:32px}
@media (max-width:700px){
  .stk{top:calc(12vh + var(--i) * 1.2rem)}
  .stk-in{flex-wrap:wrap;gap:1rem;padding:1.5rem}
  .stk-ico{width:52px;height:52px;border-radius:16px}
  .stk-ico svg{width:26px;height:26px}
  .stk-txt{flex:1 1 100%;order:3}
}

/* ===== REDES SOCIAIS ===== */
.nav-soc{
  display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#fff;
  border:1.5px solid rgba(255,255,255,.4);
  transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s;
}
.nav.scrolled .nav-soc{color:var(--roxo);border-color:rgba(107,45,140,.25)}
.nav-soc:hover{transform:translateY(-3px) scale(1.06);background:var(--roxo);color:#fff;border-color:var(--roxo)}
.socials{display:flex;justify-content:center;gap:.7rem;flex-wrap:wrap;margin:.4rem 0 1.6rem}
.soc{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.62rem 1.15rem;border-radius:100px;font-size:.92rem;font-weight:500;
  color:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.18);
  transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s;
}
.soc:hover{transform:translateY(-3px);background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.4)}
.soc svg{flex:none}
@media (max-width:520px){ .soc span{display:none} .soc{padding:.7rem;border-radius:50%} }

/* ===== BRILHO passando pelas fotos ===== */
.shine{position:relative;overflow:hidden}
.shine::before{
  content:"";position:absolute;top:-60%;left:-75%;width:45%;height:220%;z-index:3;
  pointer-events:none;transform:rotate(22deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.42) 48%,rgba(255,255,255,.62) 52%,transparent);
  animation:shineRun 5.5s var(--ease) infinite;
}
/* nos cards bento o ::before já é o gradiente que deixa o texto legível —
   por isso ali o brilho vai no ::after (senão sobrescreve e a foto "lava") */
.bt.shine::before{
  background:linear-gradient(0deg,rgba(38,16,58,.92) 0%,rgba(38,16,58,.5) 40%,transparent 78%);
  top:0;left:0;width:100%;height:100%;transform:none;animation:none;z-index:1;
}
.bt.shine::after{
  content:"";position:absolute;top:-60%;left:-75%;width:45%;height:220%;z-index:2;
  pointer-events:none;transform:rotate(22deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38) 48%,rgba(255,255,255,.55) 52%,transparent);
  animation:shineRun 5.5s var(--ease) infinite;
}
.bt.shine .bt-in{z-index:3}
@keyframes shineRun{
  0%{left:-75%}
  55%,100%{left:135%}
}
/* nas fotos do carrossel o brilho passa no hover */
.car-item::before{
  content:"";position:absolute;top:-60%;left:-75%;width:45%;height:220%;z-index:3;
  pointer-events:none;transform:rotate(22deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5) 50%,transparent);
  transition:left .85s var(--ease);
}
.car-item:hover::before{left:135%}

/* ===== DEPOIMENTOS ===== */
.depo{background:var(--nuvem-2)}
.depo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.6rem}
.dp{
  background:#fff;border-radius:var(--r);padding:1.9rem;position:relative;
  box-shadow:0 14px 40px rgba(60,26,82,.08);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.dp:hover{transform:translateY(-6px);box-shadow:0 24px 56px rgba(60,26,82,.15)}
.dp::before{content:"\201C";position:absolute;top:-6px;right:20px;font-family:'Fraunces',serif;font-size:5.4rem;color:var(--nuvem-2);line-height:1}
.stars{color:#F5B301;letter-spacing:.14em;font-size:1rem;margin-bottom:.9rem}
.dp p{position:relative;color:var(--tinta-2);line-height:1.7;font-size:1rem}
.dp cite{display:block;margin-top:1.1rem;font-style:normal;font-weight:600;color:var(--roxo);font-size:.94rem}

/* ===== LOCALIZAÇÃO ===== */
.local{background:var(--nuvem)}
.local-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3.5rem);align-items:center}
.info-list{list-style:none;margin:2rem 0;display:flex;flex-direction:column;gap:1.3rem}
.info-list li{display:flex;gap:1rem;align-items:flex-start}
.info-list svg{flex:none;color:var(--turq);margin-top:3px}
.info-list strong{display:block;font-size:1.05rem}
.info-list span{color:var(--tinta-2);font-size:.94rem}
.local-btns{display:flex;gap:.8rem;flex-wrap:wrap}
.local-map{border-radius:var(--r);overflow:hidden;box-shadow:0 20px 50px rgba(60,26,82,.15);aspect-ratio:4/3}
.local-map iframe{width:100%;height:100%;border:0;filter:saturate(.9)}

/* ===== FAQ ===== */
.faq-sec{background:var(--nuvem-2)}
.faq{margin-top:2.4rem;display:flex;flex-direction:column;gap:.8rem;max-width:840px}
.faq-item{
  background:#fff;border-radius:16px;overflow:hidden;
  box-shadow:0 8px 26px rgba(60,26,82,.07);
  transition:box-shadow .35s var(--ease),transform .35s var(--ease);
}
.faq-item:hover{transform:translateY(-2px)}
.faq-item[open]{box-shadow:0 16px 40px rgba(107,45,140,.15)}
.faq-item summary{
  list-style:none;cursor:pointer;padding:1.2rem 3.3rem 1.2rem 1.4rem;position:relative;
  font-family:'Fraunces',serif;font-weight:600;font-size:clamp(1.02rem,2vw,1.16rem);
  transition:color .25s;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--roxo)}
.faq-item summary::after{
  content:"";position:absolute;right:1.35rem;top:50%;width:10px;height:10px;
  border-right:2.4px solid var(--roxo);border-bottom:2.4px solid var(--roxo);
  transform:translateY(-70%) rotate(45deg);transition:transform .35s var(--ease);
}
.faq-item[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq-ans{padding:0 1.4rem 1.35rem;animation:faqIn .35s var(--ease)}
.faq-ans p{color:var(--tinta-2);line-height:1.7}
@keyframes faqIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ===== CTA ===== */
.cta{position:relative;overflow:hidden;background:linear-gradient(140deg,var(--roxo-esc),var(--roxo-prof));padding:clamp(70px,9vw,120px) 0;text-align:center}
.cta-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(900px,120%);aspect-ratio:2/1;pointer-events:none;
  background:radial-gradient(ellipse,rgba(47,181,196,.35),transparent 68%);filter:blur(50px);animation:glowPulse 7s ease-in-out infinite}
@keyframes glowPulse{50%{opacity:.55;transform:translate(-50%,-50%) scale(1.14)}}
.cta-in{position:relative;z-index:2}
.cta h2{font-family:'Fraunces',serif;font-weight:600;color:#fff;font-size:clamp(1.9rem,4.4vw,3.1rem);line-height:1.12}
.cta h2 em{font-style:italic;color:var(--turq-cl)}
.cta p{color:rgba(255,255,255,.78);margin-top:1rem;font-size:1.1rem}
.cta-btns{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin-top:2.2rem}

/* ===== RODAPÉ ===== */
.foot{background:var(--roxo-prof);color:rgba(255,255,255,.6);text-align:center;padding:2.8rem 0 3.2rem}
.foot-logo{height:66px;width:auto;margin:0 auto 1.2rem;filter:drop-shadow(0 4px 16px rgba(0,0,0,.5))}
.foot p{font-size:.94rem;line-height:1.7}
.foot-small{margin-top:.4rem;font-size:.84rem;color:rgba(255,255,255,.4)}

/* ===== FAB ===== */
.fab{
  position:fixed;right:20px;bottom:20px;z-index:90;
  display:inline-flex;align-items:center;gap:.6rem;
  background:linear-gradient(120deg,var(--roxo),#8B3FB0);color:#fff;
  padding:.95rem 1.35rem;border-radius:100px;font-weight:600;
  box-shadow:0 14px 34px rgba(107,45,140,.42);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.fab:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 20px 44px rgba(107,45,140,.55)}
.fab::before{content:"";position:absolute;inset:0;border-radius:100px;border:2px solid var(--roxo);animation:fabPulse 2.6s ease-out infinite}
@keyframes fabPulse{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(1.35)}}

/* ===== REVEALS ===== */
[data-reveal]{opacity:0;transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);transition-delay:var(--d,0s)}
[data-reveal="up"]{transform:translateY(34px)}
[data-reveal="left"]{transform:translateX(46px)}
[data-reveal="right"]{transform:translateX(-46px)}
[data-reveal="zoom"]{transform:scale(.92)}
[data-reveal].vis{opacity:1;transform:none}

/* ===== RESPONSIVO ===== */
@media (max-width:1024px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .bt-big{grid-column:span 2;grid-row:auto;min-height:340px}
  .bt-wide{grid-column:span 2}
  .masonry{columns:3}
  .tl{grid-template-columns:repeat(2,1fr);gap:2.4rem}
  .tl-line{display:none}
}
@media (max-width:900px){
  .nav-links,.nav-cta{display:none}
  .burger{display:flex}
  .oz-grid{grid-template-columns:1fr}
  .oz-media{order:-1;transform:none;max-width:460px}
  .local-grid{grid-template-columns:1fr}
  .depo-grid{grid-template-columns:1fr}
  .creds-grid{grid-template-columns:repeat(2,1fr);gap:2rem 1rem}
  .cred:nth-child(3)::before{display:none}
  .fab-txt{display:none}
  .fab{padding:1rem;border-radius:50%}
}
@media (max-width:640px){
  .masonry{columns:2;column-gap:.7rem;padding:0 16px}
  .ms{margin-bottom:.7rem}
  .bento{grid-template-columns:1fr}
  .bt-big,.bt-wide{grid-column:span 1}
  .tl{grid-template-columns:1fr;gap:2rem}
  .brand-logo{height:64px}
  .nav.scrolled .brand-logo{height:54px}
  .hero-content{padding-top:100px}
}

/* ===== reduced motion ===== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  [data-reveal]{opacity:1;transform:none}
  .hero-title .line>span{transform:none}
}
