:root{
  --forest: #232B1E;
  --forest-2: #2E3626;
  --cream: #F5F0E4;
  --cream-2: #EDE6D6;
  --sage: #90A283;
  --sage-light: #C9D3BE;
  --bronze: #B8863E;
  --bronze-light: #D4A76A;
  --bronze-dark: #7A5220;
  --ink: #2B2A22;
  --ink-soft: #55584C;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Manrope',sans-serif;
  overflow-x:hidden;
}
h1,h2,h3,.display{font-family:'Fraunces',serif;}
.italic{font-style:italic;font-weight:400;}
img{max-width:100%;display:block;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
}

/* thread line following scroll — tensão → alívio, elemento-assinatura */
.thread-svg{
  position:fixed;
  left:18px; top:0;
  height:100vh; width:60px;
  z-index:40;
  pointer-events:none;
}
.thread-svg path{
  fill:none;
  stroke:var(--bronze-light);
  stroke-width:1.4;
  opacity:0.65;
}

nav{
  position:fixed; top:0; left:0; right:0;
  display:flex; justify-content:space-between; align-items:center;
  padding:28px 8%;
  z-index:50;
  mix-blend-mode:difference;
  color:var(--cream);
  transition:background 0.3s ease, box-shadow 0.3s ease;
}
/* fora do hero não há mais foto escura por trás pra justificar o
   mix-blend-mode — sem isso, o título de qualquer seção que rolar até
   ficar embaixo da nav vaza visualmente por cima da logo. Um
   IntersectionObserver na hero troca pra fundo sólido assim que ela
   sai da tela. */
nav.nav-solid{
  mix-blend-mode:normal;
  background:rgba(245,240,228,0.94);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  color:var(--forest);
  box-shadow:0 1px 0 rgba(35,43,30,0.08);
}
@media (min-width:901px){
  nav.nav-solid .links a{color:var(--forest);}
}
/* :not(.open) é essencial aqui — com o menu mobile aberto, o botão fica
   por cima do painel escuro (não da barra clara), então precisa
   continuar claro mesmo com a nav "sólida" (senão o X de fechar some,
   escuro sobre escuro) */
nav.nav-solid:not(.open) .nav-toggle span,
nav.nav-solid:not(.open) .nav-toggle span::before,
nav.nav-solid:not(.open) .nav-toggle span::after{background:var(--forest);}
nav .logo{font-family:'Fraunces',serif; font-size:1.1rem; letter-spacing:0.02em; white-space:nowrap;}
nav .links{display:flex; gap:32px; font-size:0.88rem; letter-spacing:0.08em; text-transform:uppercase;}
nav .links a{color:var(--cream); text-decoration:none; opacity:0.85; display:inline-flex; align-items:center; min-height:44px;}
nav .nav-toggle{
  display:none;
  position:relative; z-index:2;
  width:44px; height:44px;
  background:none; border:none; padding:0;
  align-items:center; justify-content:center;
  cursor:pointer;
}
nav .nav-toggle span, nav .nav-toggle span::before, nav .nav-toggle span::after{
  content:""; display:block;
  width:22px; height:2px; background:var(--cream);
  transition:transform 0.25s ease, opacity 0.25s ease;
}
nav .nav-toggle span{position:relative;}
nav .nav-toggle span::before{position:absolute; top:-7px;}
nav .nav-toggle span::after{position:absolute; top:7px;}
nav.open .nav-toggle span{background:transparent;}
nav.open .nav-toggle span::before{transform:translateY(7px) rotate(45deg);}
nav.open .nav-toggle span::after{transform:translateY(-7px) rotate(-45deg);}

@media (max-width:900px){
  nav .logo{font-size:0.95rem;}
  nav .nav-toggle{display:flex;}
  nav .links{
    display:flex; flex-direction:column; gap:0;
    position:fixed; top:0; right:0;
    width:min(78vw, 320px); height:100vh;
    background:var(--forest); color:var(--cream);
    padding:110px 10% 40px;
    transform:translateX(100%);
    transition:transform 0.35s ease;
    mix-blend-mode:normal;
  }
  nav.open .links{transform:translateX(0);}
  nav .links a{
    color:var(--cream); opacity:1;
    padding:16px 0; min-height:44px; display:flex; align-items:center;
    border-bottom:1px solid rgba(245,240,228,0.12);
    font-size:0.95rem;
  }
}

/* typing effect */
.typing-line{display:inline-block;}
.typing-cursor{
  display:inline-block; width:2px; height:0.85em; background:var(--bronze-light);
  margin-left:4px; vertical-align:-0.1em;
  animation:blink 0.9s step-end infinite;
}
@keyframes blink{0%,100%{opacity:1;} 50%{opacity:0;}}
@media (prefers-reduced-motion: reduce){
  .typing-cursor{animation:none;}
}

/* GALERIA — fotos do ambiente */
.galeria{background:var(--cream);}
.galeria-head{max-width:600px; margin-bottom:60px;}
.galeria-head .eyebrow{font-size:0.86rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--bronze-dark); margin-bottom:18px;}
.galeria-head h2{font-size:clamp(2rem,4vw,3rem); font-weight:400; line-height:1.15;}
.galeria-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(12px, 2vw, 28px);
  max-width:1600px;
  margin:0 auto;
}
.g-item{
  position:relative;
  margin:0;
  border-radius:10px;
  overflow:hidden;
  background:var(--sage-light);
  aspect-ratio:4 / 5;
  opacity:0; transform:translateY(28px);
}
.g-item img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 0.6s ease;
}
.g-item:hover img, .g-item:focus-within img{transform:scale(1.06);}
.g-item figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:28px 20px 16px;
  background:linear-gradient(180deg, rgba(35,43,30,0) 0%, rgba(35,43,30,0.65) 100%);
  color:var(--cream);
  font-size:0.86rem; letter-spacing:0.08em; text-transform:uppercase;
}
@media (max-width:820px){
  .galeria-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:480px){
  .galeria-grid{grid-template-columns:1fr; max-width:420px;}
}
@media (prefers-reduced-motion: reduce){
  .g-item:hover img, .g-item:focus-within img{transform:none;}
}

/* DEPOIMENTOS e RESULTADOS — carrosséis (mesmo padrão visual) */
.depoimentos, .resultados{background:var(--cream-2); text-align:center; overflow:hidden;}
.depoimentos-head .eyebrow{font-size:0.86rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--bronze-dark); margin-bottom:18px;}
.depoimentos-head h2{font-size:clamp(2rem,4vw,3rem); font-weight:400; margin-bottom:16px;}
.depoimentos-head p{color:var(--ink-soft); font-size:1.05rem; margin-bottom:70px;}
.dep-track{
  display:flex; gap:32px;
  transition:transform 0.5s ease;
}
.dep-card{
  flex:0 0 min(420px,86vw);
  background:var(--cream);
  border-radius:8px;
  padding:20px;
  text-align:left;
}
.dep-img-wrap{
  position:relative;
  width:100%; height:380px;
  display:flex; align-items:center; justify-content:center;
  background:var(--cream-2);
  border-radius:6px;
  overflow:hidden;
}
.dep-img-wrap .dep-img-bg{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; filter:blur(28px) brightness(0.82) saturate(1.15);
  transform:scale(1.2);
}
.dep-img-wrap picture{position:relative; z-index:1; display:flex; max-width:100%; max-height:100%;}
.dep-img-wrap img{position:relative; z-index:1; max-width:100%; max-height:100%; object-fit:contain;}
.resultados .dep-img-wrap img{transition:transform 0.5s ease;}
.resultados .dep-card:hover .dep-img-wrap img,
.resultados .dep-card:focus-within .dep-img-wrap img{transform:scale(1.08);}
@media (prefers-reduced-motion: reduce){
  .resultados .dep-card:hover .dep-img-wrap img,
  .resultados .dep-card:focus-within .dep-img-wrap img{transform:none;}
}
.dep-card cite{
  display:block; margin-top:16px;
  font-style:normal; font-size:0.86rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);
}
.dep-nav{display:flex; flex-wrap:wrap; gap:2px; justify-content:center; margin-top:44px; max-width:520px; margin-left:auto; margin-right:auto;}
.dep-dot{
  width:8px; height:8px; padding:18px;
  background-color:var(--sage-light); background-clip:content-box; box-sizing:content-box;
  border-radius:50%; cursor:pointer; transition:background-color 0.3s;
}
.dep-dot.active{background-color:var(--bronze);}

/* DEPOIMENTOS EM VÍDEO */
.video-dep{background:var(--cream); text-align:center;}
.video-dep-grid{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:clamp(16px, 2.5vw, 32px);
  max-width:1200px; margin:0 auto;
}
.video-dep-card{margin:0; text-align:left;}
.video-dep-frame{position:relative; border-radius:10px; overflow:hidden; background:var(--forest);}
.video-dep-card video{
  width:100%; aspect-ratio:9/16; object-fit:cover;
  display:block;
}
.video-play-btn{
  position:absolute; inset:0; width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(35,43,30,0.18);
  border:none; padding:0; cursor:pointer;
  transition:background 0.25s ease;
}
.video-play-btn .circle{
  width:64px; height:64px; border-radius:50%;
  background:var(--bronze);
  display:flex; align-items:center; justify-content:center;
  transition:transform 0.25s ease, background 0.25s ease;
  box-shadow:0 8px 24px rgba(35,43,30,0.35);
}
.video-play-btn svg{width:22px; height:22px; fill:var(--forest); margin-left:3px;}
.video-play-btn:hover .circle, .video-play-btn:focus-visible .circle{background:var(--bronze-light); transform:scale(1.08);}
.video-dep-frame.is-playing .video-play-btn{display:none;}
.video-dep-card figcaption{
  margin-top:14px; font-size:0.86rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);
}
@media (max-width:820px){
  .video-dep-grid{grid-template-columns:1fr; max-width:420px;}
}

/* FAQ */
.faq{background:var(--cream); max-width:820px; margin:0 auto;}
.faq-head{margin-bottom:60px;}
.faq-head .eyebrow{font-size:0.86rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--bronze-dark); margin-bottom:18px;}
.faq-head h2{font-size:clamp(2rem,4vw,3rem); font-weight:400;}
.faq-item{border-bottom:1px solid var(--sage-light); padding:28px 0;}
.faq-q{
  display:flex; justify-content:space-between; align-items:center;
  gap:16px;
  cursor:pointer; font-weight:500; font-size:1.1rem;
  min-height:44px;
}
.faq-q .plus{font-family:'Fraunces',serif; font-size:1.3rem; color:var(--bronze); transition:transform 0.3s; flex-shrink:0;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{
  max-height:0; overflow:hidden; transition:max-height 0.35s ease;
  color:var(--ink-soft); font-size:1.05rem; line-height:1.6;
}
.faq-a p{padding-top:16px;}
.faq-item.open .faq-a{max-height:320px;}

/* HERO */
.hero{
  height:100vh;
  position:relative;
  display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end;
  color:var(--cream);
  text-align:left;
  padding:0 8% clamp(32px, 10vh, 100px);
  overflow:hidden;
}
.hero-photo{
  position:absolute; inset:0;
  overflow:hidden;
  background:var(--forest);
}
.hero-photo img{
  width:100%; height:100%; object-fit:cover; object-position:center 35%;
}
.hero-photo-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(35,43,30,0.25) 0%, rgba(35,43,30,0.55) 55%, rgba(35,43,30,0.85) 100%);
}
.hero-eyebrow{
  position:relative; z-index:2;
  font-size:0.86rem; letter-spacing:0.25em; text-transform:uppercase;
  color:var(--sage-light); margin-bottom:clamp(8px, 3vh, 22px); opacity:0.9;
}
.hero h1{
  position:relative; z-index:2;
  /* min() com vh garante que numa janela larga PORÉM baixa (comum em
     desktop com a janela do navegador pequena) o título encolha pela
     altura disponível, não só pela largura — senão ele sempre renderiza
     no tamanho máximo e estoura por cima da nav. */
  font-size:clamp(1.6rem, min(6vw, 7.5vh), 4.6rem);
  font-weight:400;
  line-height:1.08;
  max-width:16ch;
}
.hero h1 .accent{color:var(--bronze-light); font-style:italic; font-weight:400;}
.hero p.sub{
  position:relative; z-index:2;
  margin-top:clamp(10px, 3vh, 24px); font-size:1.1rem; color:var(--sage-light); max-width:38ch; line-height:1.6;
}
.hero-cta{
  position:relative; z-index:2;
  display:inline-flex; align-items:center; gap:10px;
  margin-top:clamp(16px, 5vh, 38px);
  background:var(--bronze); color:var(--forest);
  padding:16px 34px; border-radius:100px;
  font-weight:600; font-size:0.88rem; letter-spacing:0.03em; text-transform:uppercase;
  text-decoration:none;
  transition:transform 0.25s ease, background 0.25s ease;
  min-height:44px;
}
.hero-cta:hover{background:var(--bronze-light); transform:translateY(-2px);}
.scroll-hint{
  position:absolute; bottom:40px; right:8%; z-index:2;
  font-size:0.78rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--sage-light); opacity:0.7;
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.scroll-hint .line{width:1px; height:36px; background:var(--sage-light); animation:pulse-line 2s ease-in-out infinite;}
@keyframes pulse-line{0%,100%{opacity:0.3;} 50%{opacity:1;}}
@media (prefers-reduced-motion: reduce){
  .scroll-hint .line{animation:none; opacity:0.6;}
}

/* celular deitado / janelas baixas — o bloco de texto do hero (com
   justify-content:flex-end) não cabe em ~390px de altura e "estoura"
   por cima, ficando embaixo da nav fixa (~100px de altura). Reserva
   esse espaço no topo e encolhe o bloco pra caber. */
@media (max-height:500px){
  .hero{padding:112px 8% 28px;}
  .hero-eyebrow{margin-bottom:8px;}
  .hero h1{font-size:clamp(1.4rem, 5.5vh, 2.4rem); line-height:1.15;}
  .hero p.sub{margin-top:10px; font-size:0.92rem; line-height:1.4;}
  .hero-cta{margin-top:16px; padding:12px 26px;}
  .scroll-hint{display:none;}
}

section{padding:160px 8%; position:relative;}
@media (max-width:600px){
  section{padding:100px 6%;}
}

/* INTRO */
.intro{max-width:1100px; margin:0 auto; text-align:left;}
.intro-inner{
  display:flex; align-items:center; gap:clamp(32px, 5vw, 64px);
}
.intro-photo{
  flex:0 0 clamp(200px, 22vw, 380px);
  width:clamp(200px, 22vw, 380px);
  aspect-ratio:1 / 1;
  border-radius:12px;
  overflow:hidden;
  opacity:0; transform:translateY(24px);
}
.intro-photo img{width:100%; height:100%; object-fit:cover;}
.intro-copy{
  flex:1 1 360px;
  min-width:0;
  opacity:0; transform:translateY(24px);
}
.intro-name{
  font-family:'Fraunces',serif; font-weight:400;
  font-size:clamp(1.8rem, 3vw, 2.6rem);
  line-height:1.15;
  color:var(--forest);
}
.intro-role{
  font-family:'Fraunces',serif; font-style:italic; font-weight:400;
  font-size:clamp(1.1rem, 1.6vw, 1.35rem);
  color:var(--bronze);
  margin-top:10px; margin-bottom:22px;
}
.intro-desc{
  font-size:1.1rem; line-height:1.65; color:var(--ink-soft); max-width:52ch;
}
@media (max-width:860px){
  .intro-inner{flex-direction:column; align-items:flex-start; gap:32px;}
  .intro-photo{flex-basis:auto; width:clamp(200px, 55vw, 320px);}
  .intro-copy{flex-basis:auto;}
}

/* TÉCNICAS */
.tecnicas{background:var(--cream-2);}
.tecnicas-head{max-width:600px; margin-bottom:80px;}
.tecnicas-head .eyebrow{font-size:0.86rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--bronze-dark); margin-bottom:18px;}
.tecnicas-head h2{font-size:clamp(2rem,4vw,3rem); font-weight:400; line-height:1.15;}
.grid-tec{
  display:grid; grid-template-columns:repeat(3,1fr); gap:2px;
  background:var(--sage-light);
  border-radius:2px; overflow:hidden;
  max-width:1600px; margin:0 auto;
}
.card-tec{
  background:var(--cream-2);
  opacity:0; transform:translateY(36px);
}
.card-tec-img{
  width:100%; aspect-ratio:4/3; overflow:hidden;
}
.card-tec-img img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.5s ease;}
.card-tec-img--contain{background:var(--cream-2);}
.card-tec-img--contain img{object-fit:contain;}
.card-tec-img--pos-bottom img{object-position:center 88%;}
.card-tec:hover .card-tec-img img{transform:scale(1.04);}
.card-tec-body{padding:32px;}
.card-tec .num{font-family:'Fraunces',serif; font-style:italic; color:var(--sage); font-size:0.95rem; margin-bottom:18px; display:block;}
.card-tec h3{font-size:1.3rem; font-weight:500; margin-bottom:10px; font-family:'Manrope',sans-serif;}
.card-tec p{font-size:1.05rem; color:var(--ink-soft); line-height:1.55;}
@media (max-width:820px){.grid-tec{grid-template-columns:1fr;}}
@media (prefers-reduced-motion: reduce){
  .card-tec:hover .card-tec-img img{transform:none;}
}

/* ATENDIMENTO - pinned scrollytelling */
.atendimento-wrap{background:var(--forest); color:var(--cream); padding:0;}
.atendimento-pin{
  height:100vh; display:flex; align-items:center; justify-content:flex-start; position:relative; overflow:hidden;
  background:radial-gradient(circle at 78% 50%, rgba(212,167,106,0.14), transparent 60%);
}
.atendimento-pin::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:0.05; mix-blend-mode:overlay;
}
.atendimento-eyebrow{
  position:absolute; top:80px; left:8%;
  font-family:'Manrope',sans-serif; font-weight:400;
  font-size:0.86rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--sage-light);
}
.atendimento-step{
  position:absolute; max-width:560px; padding:0 8%;
  opacity:0;
}
.atendimento-step .step-num{font-family:'Fraunces',serif; font-style:italic; font-size:1.1rem; color:var(--bronze-light); margin-bottom:20px; display:block;}
.atendimento-step h3{font-size:clamp(1.8rem,4vw,2.6rem); font-weight:400; line-height:1.2; margin-bottom:18px;}
.atendimento-step p{color:var(--sage-light); font-size:1.08rem; line-height:1.6; max-width:44ch;}
.atendimento-spacer{height:400vh;}

.atendimento-progress{
  position:absolute; bottom:56px; left:8%;
  display:flex; align-items:center; gap:14px;
}
.atendimento-progress .prog-count{
  font-family:'Manrope',sans-serif; font-size:0.78rem; letter-spacing:0.1em;
  color:var(--sage-light); min-width:2.4em;
}
.atendimento-progress .prog-track{
  position:relative; width:120px; height:2px; background:rgba(245,240,228,0.18); border-radius:2px; overflow:hidden;
}
.atendimento-progress .prog-fill{
  position:absolute; top:0; left:0; height:100%; width:25%;
  background:var(--bronze-light); border-radius:2px;
  transition:width 0.1s linear;
}

/* foto real da sala — o neon em zigzag na parede é o mesmo motivo
   "tensão -> alívio" da linha-assinatura do site, então em vez de desenhar
   um traço sintético, a própria sala carrega esse significado */
.atendimento-visual{
  display:none;
  position:absolute; top:0; right:0; height:100%;
  width:min(44%, 620px);
  overflow:hidden;
  z-index:0;
}
.atendimento-visual::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(90deg, var(--forest) 0%, rgba(35,43,30,0.6) 14%, rgba(35,43,30,0) 46%),
             linear-gradient(0deg, rgba(35,43,30,0.45) 0%, transparent 32%);
}
.atendimento-visual picture{display:block; width:100%; height:100%;}
.atendimento-visual .av-img{
  position:absolute; inset:0;
  opacity:0;
  transition:opacity 1s ease;
}
.atendimento-visual .av-img.is-active{opacity:1;}
.atendimento-visual img{
  display:block; width:100%; height:100%;
  object-fit:cover; object-position:32% 38%;
  filter:sepia(0.25) hue-rotate(50deg) saturate(0.75) brightness(0.7) contrast(1.08);
  transform:scale(1.1);
}
/* fotos com pele (mãos, pele) ficam esverdeadas com o hue-rotate acima —
   tratamento mais neutro que escurece sem distorcer o tom de pele */
.atendimento-visual .av-img--skin img{
  filter:grayscale(0.3) brightness(0.72) contrast(1.12) saturate(0.85);
}
@media (min-width:1100px){
  .atendimento-visual{display:block;}
}
@media (prefers-reduced-motion: reduce){
  .atendimento-visual img{transform:none;}
  .atendimento-visual .av-img{transition:opacity 0.3s ease;}
}

@media (prefers-reduced-motion: reduce){
  .atendimento-step{position:relative; opacity:1; padding:48px 8%;}
  .atendimento-spacer{height:auto;}
  .atendimento-pin{height:auto; flex-direction:column; align-items:flex-start; padding-top:120px;}
  .atendimento-progress{display:none;}
}

/* CONTATO */
.contato{
  background:var(--forest);
  color:var(--cream);
  text-align:center;
  padding-top:140px; padding-bottom:140px;
}
.contato .eyebrow{font-size:0.86rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--sage-light); margin-bottom:22px;}
.contato h2{font-size:clamp(2.2rem,5vw,3.6rem); font-weight:400; max-width:16ch; margin:0 auto 36px; line-height:1.15;}
.contato h2 .italic{color:var(--bronze-light);}
.btn-whats{
  display:inline-flex; align-items:center; gap:12px;
  background:var(--bronze); color:var(--forest);
  padding:18px 38px; border-radius:100px;
  font-weight:600; font-size:0.95rem;
  text-decoration:none;
  transition:transform 0.25s ease, background 0.25s ease;
  min-height:44px;
}
.btn-whats:hover{background:var(--bronze-light); transform:translateY(-2px);}

.floating-whats{
  position:fixed; bottom:28px; right:28px; z-index:60;
  width:58px; height:58px; border-radius:50%;
  background:var(--bronze);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(35,43,30,0.35);
  opacity:0; transform:scale(0.7);
  transition:bottom 0.3s ease;
}
body.cookie-banner-open .floating-whats{
  bottom:calc(var(--cookie-banner-h, 0px) + 20px);
}
.floating-whats svg{width:26px; height:26px; fill:var(--forest);}

footer{
  background:var(--forest); color:var(--sage-light);
  text-align:center; padding:36px 8% 44px;
  font-size:0.86rem; letter-spacing:0.05em;
  border-top:1px solid rgba(212,167,106,0.15);
  display:flex; flex-direction:column; align-items:center; gap:18px;
}
.footer-instagram{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--cream); text-decoration:none;
  font-size:0.88rem; letter-spacing:0.05em; text-transform:uppercase;
  padding:13px 18px; min-height:44px;
  border:1px solid rgba(245,240,228,0.25); border-radius:100px;
  transition:border-color 0.25s ease, color 0.25s ease;
}
.footer-instagram:hover{border-color:var(--bronze-light); color:var(--bronze-light);}
.footer-credit{
  display:inline-flex; align-items:center; gap:6px;
  color:var(--sage-light); opacity:0.75;
  text-decoration:none; text-transform:none; letter-spacing:0.02em;
  font-size:0.78rem;
  min-height:44px; padding:4px 6px;
  transition:opacity 0.25s ease, color 0.25s ease;
}
.footer-credit:hover{opacity:1; color:var(--bronze-light);}
.footer-credit-brand{ display:inline-flex; align-items:center; gap:5px; font-size:0.95rem; font-weight:800; letter-spacing:0.03em; }
.footer-credit-brand img{ height:22px; width:auto; flex-shrink:0; }
.lucaslabs-lucas{ color:#B9C0CA; }
.lucaslabs-labs{ color:#3FA9E8; }

/* COOKIE / LGPD */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:80;
  background:var(--forest); color:var(--cream);
  padding:24px 8%;
  display:flex; flex-wrap:wrap; align-items:center; gap:20px 32px;
  justify-content:space-between;
  box-shadow:0 -8px 28px rgba(0,0,0,0.25);
  transform:translateY(100%);
  transition:transform 0.4s ease;
}
.cookie-banner.is-visible{transform:translateY(0);}
.cookie-banner[hidden]{display:none;}
.cookie-text{flex:1 1 420px; font-size:0.92rem; line-height:1.55; color:var(--sage-light); max-width:640px;}
.cookie-text strong{color:var(--cream); font-weight:600;}
.cookie-actions{display:flex; flex-wrap:wrap; gap:12px; align-items:center;}
.cookie-btn{
  min-height:44px; padding:12px 26px; border-radius:100px;
  font-weight:600; font-size:0.86rem; letter-spacing:0.02em;
  border:none; cursor:pointer;
  transition:transform 0.25s ease, background 0.25s ease;
}
.cookie-btn-accept{background:var(--bronze); color:var(--forest);}
.cookie-btn-accept:hover{background:var(--bronze-light); transform:translateY(-2px);}
.cookie-btn-reject{
  background:transparent; color:var(--cream);
  border:1px solid rgba(245,240,228,0.3);
}
.cookie-btn-reject:hover{border-color:var(--bronze-light); color:var(--bronze-light);}
.cookie-manage{
  position:fixed; left:20px; bottom:20px; z-index:55;
  background:none; border:none; color:var(--ink-soft);
  font-size:0.78rem; text-decoration:underline; text-underline-offset:2px;
  cursor:pointer; opacity:0.75; padding:8px;
}
.cookie-manage:hover{opacity:1;}
@media (max-width:600px){
  .cookie-banner{padding:20px 6%; flex-direction:column; align-items:stretch; text-align:left;}
  .cookie-actions{justify-content:stretch;}
  .cookie-btn{flex:1 1 auto;}
}
