/* ═══════════════════════════════════════════════
   BMJ Home — folha de estilo
   Paleta: areia, linho, taupe, café
   ═══════════════════════════════════════════════ */

:root{
  --cream:      #faf7f2;
  --linen:      #f2ede4;
  --sand:       #e6ddd0;
  --taupe:      #b8a892;
  --stone:      #8a7f72;
  --coffee:     #4a4239;
  --espresso:   #332d26;

  --font-title: "Playfair Display", Georgia, serif;
  --font-body:  "Montserrat", "Helvetica Neue", Arial, sans-serif;

  --max:  1240px;
  --pad:  clamp(1.5rem, 5vw, 6rem);
  --ease: cubic-bezier(.22,.61,.36,1);

  /* degradê usado enquanto a foto não existe na pasta */
  --ph: linear-gradient(150deg,#efe7db 0%,#ddd0bd 45%,#c6b59d 100%);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0 }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100% }

body{
  font-family:var(--font-body);
  font-weight:300;
  font-size:clamp(.95rem, .55vw + .82rem, 1.05rem);
  line-height:1.85;
  color:var(--coffee);
  background:var(--cream);
  overflow-x:hidden;
}

img{ max-width:100%; display:block }
a{ color:inherit; text-decoration:none }
::selection{ background:var(--sand); color:var(--espresso) }

/* textura de grão sobre a página inteira — deixa tudo mais “analógico” */
.grain::after{
  content:''; position:fixed; inset:0; z-index:95; pointer-events:none;
  opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}

h1,h2,h3{ font-family:var(--font-title); font-weight:400; line-height:1.16; color:var(--espresso) }
h1{ font-size:clamp(3rem, 9vw, 6.5rem); letter-spacing:.02em }
h2{ font-size:clamp(2rem, 4.2vw, 3.4rem) }
h3{ font-size:clamp(1.1rem, 1.6vw, 1.35rem) }
p + p{ margin-top:1.1em }

.eyebrow{
  font-size:.7rem; font-weight:400; letter-spacing:.34em;
  text-transform:uppercase; color:var(--taupe); margin-bottom:1.4rem;
}
.lead{ font-size:1.12em; color:var(--stone) }

/* ── barra de progresso ────────────────────── */
.progress{ position:fixed; inset:0 0 auto 0; height:2px; z-index:120; background:transparent }
.progress span{ display:block; height:100%; width:0; background:var(--taupe); transition:width .1s linear }

/* ── navegação ─────────────────────────────── */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.6rem var(--pad);
  transition:background .5s var(--ease), padding .5s var(--ease), box-shadow .5s var(--ease);
}
.nav--solid{
  background:rgba(250,247,242,.92);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  padding:1rem var(--pad);
  box-shadow:0 1px 0 rgba(184,168,146,.28);
}
.nav__logo{ position:relative; display:block; width:clamp(84px,8vw,112px); line-height:0 }
.nav__logo img{
  width:100%; height:auto;
  transition:opacity .5s var(--ease);
}
.nav__logo--dark{ position:absolute; inset:0; opacity:0 }
.nav--solid .nav__logo--light{ opacity:0 }
.nav--solid .nav__logo--dark{ opacity:1 }

.nav__links{ display:flex; gap:2rem; align-items:center }
.nav__links a{
  font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(255,255,255,.88); position:relative; padding-bottom:3px;
  transition:color .5s var(--ease);
}
.nav--solid .nav__links a{ color:var(--stone) }
.nav__links a::after{
  content:''; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:currentColor; transition:width .4s var(--ease);
}
.nav__links a:hover::after{ width:100% }
.nav__cta{ border:1px solid currentColor; padding:.6rem 1.2rem!important; border-radius:2px }
.nav__cta::after{ display:none!important }
.nav__cta:hover{ background:rgba(255,255,255,.12) }
.nav--solid .nav__cta:hover{ background:var(--sand) }

.nav__burger{
  display:none; background:none; border:0; cursor:pointer;
  width:30px; height:22px; position:relative;
}
.nav__burger span{
  position:absolute; left:0; right:0; height:1px; background:#fff;
  transition:.4s var(--ease);
}
.nav__burger span:nth-child(1){ top:6px }
.nav__burger span:nth-child(2){ top:14px }
.nav--solid .nav__burger span{ background:var(--espresso) }
.nav--open .nav__burger span:nth-child(1){ top:11px; transform:rotate(45deg) }
.nav--open .nav__burger span:nth-child(2){ top:11px; transform:rotate(-45deg) }

/* ── hero ──────────────────────────────────── */
.hero{
  position:relative; min-height:100svh;
  display:flex; align-items:center; justify-content:center;
  text-align:center; overflow:hidden;
  background:var(--ph);
}
.hero__img{
  position:absolute; inset:-6% 0 0 0; height:112%;
  background-size:cover; background-position:center;
  transform:scale(1.08); animation:heroZoom 3s var(--ease) forwards;
  will-change:transform;
}
@keyframes heroZoom{ to{ transform:scale(1) } }
.hero__veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(43,39,33,.44) 0%, rgba(43,39,33,.10) 38%, rgba(43,39,33,.58) 100%);
}
.hero__content{ position:relative; z-index:2; padding:0 var(--pad); color:#fff; max-width:920px }
.hero__content .eyebrow{ color:rgba(255,255,255,.78) }
/* a marca entra no lugar do título */
.hero__title{ line-height:0 }
.hero__logo{
  width:min(72vw, 460px); height:auto; margin-inline:auto;
  filter:drop-shadow(0 6px 40px rgba(43,39,33,.4));
}
.hero__logo.reveal{ transform:translateY(28px) scale(.97) }
.hero__logo.reveal.is-in{ transform:none }

.hero__rule{
  width:0; height:1px; background:rgba(255,255,255,.55);
  margin:2rem auto 0; transition:width 1.4s var(--ease);
}
.hero__rule.is-in{ width:110px }
.hero__tagline{
  margin-top:1.6rem; font-size:clamp(1rem,1.6vw,1.25rem);
  font-weight:200; letter-spacing:.06em; color:rgba(255,255,255,.94);
}
.hero__local{
  margin-top:2.2rem; font-size:.7rem; letter-spacing:.32em;
  text-transform:uppercase; color:rgba(255,255,255,.7);
}
.scrollcue{
  position:absolute; bottom:2.6rem; left:50%; transform:translateX(-50%);
  z-index:3; width:1px; height:64px; overflow:hidden;
  background:rgba(255,255,255,.28);
}
.scrollcue span{
  position:absolute; inset:0; display:block; background:#fff;
  animation:cue 2.4s var(--ease) infinite;
}
@keyframes cue{ 0%{ transform:translateY(-100%) } 60%,100%{ transform:translateY(100%) } }

/* ── faixa corrida ─────────────────────────── */
.marquee{
  overflow:hidden; background:var(--espresso); color:var(--taupe);
  padding:1.15rem 0; white-space:nowrap;
}
.marquee__track{ display:inline-flex; animation:slide 48s linear infinite }
.marquee span{
  font-family:var(--font-title); font-size:1.05rem; font-style:italic;
  letter-spacing:.04em; padding-right:1rem;
}
@keyframes slide{ to{ transform:translateX(-50%) } }

/* ── manifesto ─────────────────────────────── */
.manifesto{
  padding:clamp(7rem,16vh,12rem) var(--pad);
  background:var(--cream); text-align:center; position:relative;
}
.manifesto::before{
  content:''; position:absolute; top:0; left:50%; width:1px; height:clamp(3rem,7vh,5rem);
  background:linear-gradient(var(--sand),transparent);
}
.manifesto__text{
  max-width:22ch; margin:0 auto;
  font-family:var(--font-title);
  font-size:clamp(1.6rem,4vw,3rem); line-height:1.42; color:var(--espresso);
}
.manifesto__text em{ font-style:italic; color:var(--taupe) }
.manifesto .line{
  display:block; opacity:0; transform:translateY(24px);
  transition:opacity 1.1s var(--ease), transform 1.1s var(--ease);
}
.manifesto .line.is-in{ opacity:1; transform:none }
.manifesto .line:nth-child(2){ transition-delay:.18s }
.manifesto .line:nth-child(3){ transition-delay:.36s }

/* ── seções genéricas ──────────────────────── */
.section{ padding:clamp(5rem,12vh,9rem) var(--pad); max-width:var(--max); margin-inline:auto }
.section__head{ max-width:640px; margin-bottom:clamp(3rem,7vh,5rem) }

/* ── split (texto + imagem sticky) ─────────── */
.split{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,6rem);
  max-width:var(--max); margin-inline:auto;
  padding:clamp(5rem,12vh,9rem) var(--pad);
  align-items:start;
}
.split__sticky{ position:sticky; top:13vh }
.split__text{ padding-block:1rem }
.split__text h2{ margin-bottom:1.8rem }
.split__text .lead{ margin-bottom:2.4rem }

/* moldura de foto */
.frame{ position:relative }
.frame__img{
  aspect-ratio:3/4; width:100%;
  background-size:cover; background-position:center;
  background-image:var(--ph);
  border-radius:2px;
  clip-path:inset(0 0 100% 0);
  transition:clip-path 1.3s var(--ease);
}
.frame.is-in .frame__img{ clip-path:inset(0 0 0 0) }
.frame figcaption{
  margin-top:1rem; font-size:.74rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--taupe);
}
.frame--float{
  position:absolute; right:-8%; bottom:-14%;
  width:44%; box-shadow:0 24px 60px -30px rgba(51,45,38,.5);
  border:6px solid var(--cream); background:var(--cream);
}
.frame--float .frame__img{ aspect-ratio:1/1 }

/* foto que troca conforme o ambiente em foco (serviços) */
.frame__stage{
  position:relative; width:100%; aspect-ratio:3/4;
  background-image:var(--ph); border-radius:2px; overflow:hidden;
  clip-path:inset(0 0 100% 0); transition:clip-path 1.3s var(--ease);
}
.frame.is-in .frame__stage{ clip-path:inset(0 0 0 0) }
.frame__stage .frame__img{
  position:absolute; inset:0; aspect-ratio:auto;
  clip-path:none; opacity:0; transition:opacity .9s var(--ease);
}
.frame__stage .frame__img.is-on{ opacity:1 }

.person{
  display:flex; gap:1.4rem; align-items:flex-start;
  border-top:1px solid var(--sand);
  padding-top:1.6rem; margin-top:2.2rem;
}
.person__mark{
  font-family:var(--font-title); font-size:.8rem; letter-spacing:.12em;
  color:var(--taupe); border:1px solid var(--sand); border-radius:50%;
  width:2.9rem; height:2.9rem; min-width:2.9rem;
  display:flex; align-items:center; justify-content:center;
}
.person h3{ margin-bottom:.4rem; color:var(--espresso) }
.person p{ color:var(--stone) }
.person + p{ margin-top:2.6rem }

/* ── números ───────────────────────────────── */
.stats{ background:var(--linen); border-block:1px solid var(--sand) }
.stats__inner{
  max-width:var(--max); margin-inline:auto; padding:clamp(3rem,7vh,4.5rem) var(--pad);
  display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:2.5rem;
}
.stat{ text-align:center }
.stat strong{
  display:block; font-family:var(--font-title); font-weight:400;
  font-size:clamp(2.2rem,4vw,3.2rem); color:var(--espresso); line-height:1;
}
.stat span{
  display:block; margin-top:.9rem; font-size:.72rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--taupe); line-height:1.9;
}

/* ── parallax missão / visão ───────────────── */
.parallax{ position:relative; overflow:hidden; isolation:isolate; background:var(--taupe) }
.parallax__img{
  position:absolute; inset:-15% 0; height:130%;
  background-size:cover; background-position:center;
  background-image:var(--ph);
  will-change:transform; z-index:-2;
}
.parallax__veil{ position:absolute; inset:0; background:rgba(43,39,33,.55); z-index:-1 }
.parallax__inner{
  max-width:var(--max); margin-inline:auto;
  padding:clamp(6rem,16vh,11rem) var(--pad);
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:clamp(1.5rem,4vw,3rem);
}
.card{
  background:rgba(250,247,242,.94);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  padding:clamp(2rem,4vw,3.2rem); border-radius:2px;
}
.card .eyebrow{ margin-bottom:1.1rem }
.card p{ font-size:1.05em; color:var(--coffee) }

/* ── valores ───────────────────────────────── */
.values__grid{
  list-style:none;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  border-top:1px solid var(--sand);
}
.values__grid li{
  display:flex; gap:1.4rem; align-items:flex-start;
  padding:2rem 1.6rem 2rem 0;
  border-bottom:1px solid var(--sand);
  transition:background .4s var(--ease);
}
.values__grid li:hover{ background:var(--linen) }
.values__grid span{
  font-family:var(--font-title); font-size:.95rem; color:var(--taupe);
  padding-top:.15rem; min-width:2ch;
}
.values__grid p{ color:var(--coffee) }

/* ── serviços ──────────────────────────────── */
.split--alt{ background:var(--linen) }
.ambientes{ list-style:none; border-top:1px solid var(--sand); margin-top:.5rem }
.ambientes li{
  border-bottom:1px solid var(--sand);
  padding:.95rem 0; font-size:1.02em; color:var(--stone);
  display:flex; align-items:center; gap:1rem; cursor:default;
  transition:padding-left .45s var(--ease), color .45s var(--ease);
}
.ambientes li::before{
  content:''; width:14px; height:1px; background:var(--taupe);
  transition:width .45s var(--ease), background .45s var(--ease);
}
.ambientes li:hover,
.ambientes li.is-active{ padding-left:.7rem; color:var(--espresso) }
.ambientes li:hover::before,
.ambientes li.is-active::before{ width:30px; background:var(--espresso) }
.note{ margin-top:2.4rem; color:var(--stone); font-size:.98em }
.note strong{ font-weight:500; color:var(--espresso) }

/* ── galeria horizontal ────────────────────── */
.gallery{
  height:320vh; position:relative;
  background:radial-gradient(120% 90% at 20% 0%, #443c33 0%, var(--espresso) 55%, #29241e 100%);
}
.gallery__pin{
  position:sticky; top:0; height:100svh; overflow:hidden;
  display:flex; align-items:center;
}
.gallery__track{
  display:flex; gap:clamp(2rem,5vw,5.5rem); align-items:center;
  padding-inline:var(--pad); will-change:transform;
}
.slide{ flex:0 0 auto; position:relative }

/* painel de abertura */
.slide--intro{ width:clamp(280px,34vw,440px) }
.slide--intro h2{ color:var(--cream); margin-bottom:1.6rem }
.slide--intro p{ color:rgba(242,237,228,.62); max-width:34ch }
.gallery__hint{
  margin-top:2.6rem; font-size:.66rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--taupe);
  display:flex; align-items:center; gap:.9rem;
}
.gallery__arrow{
  width:38px; height:1px; background:var(--taupe); position:relative; flex:0 0 auto;
  animation:arrowPush 2.6s var(--ease) infinite;
}
.gallery__arrow::after{
  content:''; position:absolute; right:0; top:-3px;
  width:7px; height:7px; border-top:1px solid var(--taupe); border-right:1px solid var(--taupe);
  transform:rotate(45deg);
}
@keyframes arrowPush{ 0%,100%{ transform:translateX(0) } 50%{ transform:translateX(8px) } }

/* fotos */
.slide__frame{
  position:relative; overflow:hidden; border-radius:2px; background-image:var(--ph);
}
.slide__img{
  position:absolute; inset:-6%;
  background-size:cover; background-position:center; background-image:var(--ph);
  will-change:background-position;
}
.slide--tall .slide__frame{ aspect-ratio:2/3 }
.slide--std  .slide__frame{ aspect-ratio:3/4 }
.slide--wide .slide__frame{ aspect-ratio:4/3 }
.slide--tall{ width:clamp(250px,27vw,380px) }
.slide--std { width:clamp(210px,23vw,320px) }
.slide--wide{ width:clamp(300px,40vw,560px) }
.slide--low { align-self:flex-end; margin-bottom:8vh }

/* numeração discreta na foto */
.slide[data-cap]::before{
  content:attr(data-cap);
  position:absolute; top:-2.2rem; left:0; z-index:2;
  font-family:var(--font-title); font-size:.8rem; letter-spacing:.18em;
  color:var(--taupe);
}
.slide[data-cap]::after{
  content:''; position:absolute; top:-1.75rem; left:2.2rem; width:2rem; height:1px;
  background:rgba(184,168,146,.5);
}

.slide figcaption{ margin-top:1.5rem; max-width:34ch }
.slide figcaption h3{
  color:var(--cream); font-size:clamp(1.05rem,1.5vw,1.3rem); margin-bottom:.6rem;
}
.slide figcaption p{
  font-size:.9rem; line-height:1.8; color:rgba(242,237,228,.55);
}

/* citação */
.slide--quote{
  width:clamp(280px,34vw,470px);
  display:flex; flex-direction:column; justify-content:center;
  padding-left:clamp(1.5rem,3vw,3rem);
  border-left:1px solid rgba(184,168,146,.35);
}
.slide--quote blockquote{
  font-family:var(--font-title); font-style:italic;
  font-size:clamp(1.3rem,2.3vw,2rem); line-height:1.5; color:var(--cream);
}
.slide__sign{
  margin-top:1.6rem; font-size:.66rem; letter-spacing:.28em;
  text-transform:uppercase; color:var(--taupe);
}

/* cartão final */
.slide--cta{ width:clamp(280px,32vw,420px) }
.slide--cta h2{ color:var(--cream); margin-bottom:.5rem }
.slide--cta .eyebrow{ color:var(--taupe) }
.btn--ghost{
  margin-top:2.4rem; border-color:rgba(250,247,242,.4); color:var(--cream);
}
.btn--ghost:hover{ background:var(--cream); color:var(--espresso) }

/* contador + barra */
.gallery__hud{
  position:absolute; left:var(--pad); right:var(--pad); bottom:clamp(2rem,5vh,3.2rem);
  display:flex; align-items:center; gap:1.4rem; z-index:3; pointer-events:none;
}
.gallery__count{
  font-size:.66rem; letter-spacing:.24em; color:rgba(184,168,146,.65);
  font-variant-numeric:tabular-nums; min-width:5.5ch;
}
.gallery__count b{ font-weight:400; color:var(--cream) }
.gallery__bar{ flex:1; height:1px; background:rgba(184,168,146,.22); display:block }
.gallery__bar i{
  display:block; height:100%; width:0; background:var(--taupe);
  transition:width .25s var(--ease);
}

/* ── processo ──────────────────────────────── */
.steps{ list-style:none; max-width:820px; position:relative }
.steps::before{
  content:''; position:absolute; left:calc(2.2rem - 1px); top:.6rem; bottom:.6rem;
  width:1px; background:var(--sand);
}
.steps li{ display:flex; gap:clamp(1.5rem,4vw,3rem); padding-bottom:3rem; position:relative }
.steps li:last-child{ padding-bottom:0 }
.steps__num{
  font-family:var(--font-title); font-size:.85rem; letter-spacing:.1em;
  color:var(--taupe); background:var(--cream);
  width:4.4rem; min-width:4.4rem; text-align:center;
  padding:.35rem 0; position:relative; z-index:1;
}
.steps h3{ margin-bottom:.5rem }
.steps p{ color:var(--stone); max-width:52ch }

/* ── diferenciais (bloco escuro) ───────────── */
.dark{ background:var(--espresso); color:var(--linen) }
.dark__inner{ max-width:var(--max); margin-inline:auto; padding:clamp(5rem,13vh,9rem) var(--pad) }
.dark h2{ color:var(--cream); margin-bottom:clamp(2.5rem,6vh,4rem) }
.dark .eyebrow{ color:var(--taupe) }
.checks{
  list-style:none;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:.2rem 3rem;
}
.checks li{
  padding:1.15rem 0 1.15rem 2.2rem; position:relative;
  border-bottom:1px solid rgba(184,168,146,.22);
  color:rgba(242,237,228,.86); font-weight:300;
}
.checks li::before{
  content:''; position:absolute; left:0; top:1.65rem;
  width:9px; height:5px; border-left:1px solid var(--taupe); border-bottom:1px solid var(--taupe);
  transform:rotate(-45deg);
}

/* ── faq ───────────────────────────────────── */
.faq__list{ max-width:820px; border-top:1px solid var(--sand) }
.faq details{ border-bottom:1px solid var(--sand) }
.faq summary{
  list-style:none; cursor:pointer; padding:1.6rem 3rem 1.6rem 0;
  font-family:var(--font-title); font-size:clamp(1.02rem,1.5vw,1.25rem);
  color:var(--espresso); position:relative; transition:color .3s var(--ease);
}
.faq summary::-webkit-details-marker{ display:none }
.faq summary:hover{ color:var(--taupe) }
.faq summary::after,
.faq summary::before{
  content:''; position:absolute; right:.4rem; top:50%; background:var(--taupe);
  transition:transform .4s var(--ease), opacity .4s var(--ease);
}
.faq summary::before{ width:14px; height:1px; margin-top:-.5px }
.faq summary::after{ width:1px; height:14px; margin-top:-7px; right:calc(.4rem + 6.5px) }
.faq details[open] summary::after{ transform:rotate(90deg); opacity:0 }
.faq details p{
  padding:0 3rem 1.8rem 0; color:var(--stone); max-width:62ch;
  animation:fadeUp .5s var(--ease);
}
@keyframes fadeUp{ from{ opacity:0; transform:translateY(-6px) } to{ opacity:1; transform:none } }

/* ── encerramento ──────────────────────────── */
.closing{
  position:relative; min-height:88svh; overflow:hidden;
  display:flex; align-items:center; justify-content:center; text-align:center;
  background:var(--ph);
}
.closing__img{ position:absolute; inset:0; background-size:cover; background-position:center }
.closing__veil{ position:absolute; inset:0; background:rgba(43,39,33,.52) }
.closing__content{ position:relative; z-index:2; padding:6rem var(--pad); max-width:760px }
.closing__logo{
  width:min(46vw,190px); height:auto; margin:0 auto 2.6rem;
  opacity:.9; filter:drop-shadow(0 4px 26px rgba(43,39,33,.35));
}
.closing__logo.is-in{ opacity:.9 }
.closing .eyebrow{ color:rgba(255,255,255,.7) }
.closing h2{ color:#fff }
.closing p{ margin-top:1.6rem; color:rgba(255,255,255,.9); font-weight:200 }
.btn{
  display:inline-block; margin-top:3rem;
  padding:1.05rem 2.6rem; border:1px solid rgba(255,255,255,.65);
  color:#fff; font-size:.72rem; letter-spacing:.26em; text-transform:uppercase;
  border-radius:2px; transition:background .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease);
}
.btn:hover{ background:var(--cream); color:var(--espresso); border-color:var(--cream) }

/* ── rodapé ────────────────────────────────── */
.footer{
  background:var(--linen); padding:clamp(3.5rem,8vh,5.5rem) var(--pad) 2.5rem;
  display:grid; gap:2.5rem;
  grid-template-columns:1fr auto; align-items:start;
  max-width:var(--max); margin-inline:auto;
}
.footer__logo{ width:clamp(120px,14vw,168px); height:auto; margin-bottom:1.2rem }
.footer__brand p{ color:var(--stone); font-size:.9rem; line-height:1.7 }
.footer__brand p + p{ margin-top:0 }
.footer__links{ display:flex; flex-direction:column; gap:.7rem; text-align:right }
.footer__links a{
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--stone);
  transition:color .3s var(--ease);
}
.footer__links a:hover{ color:var(--espresso) }
.footer__copy{
  grid-column:1/-1; border-top:1px solid var(--sand); padding-top:1.8rem;
  font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--taupe);
}

/* ── animação de entrada ───────────────────── */
.reveal{
  opacity:0; transform:translateY(28px);
  transition:opacity 1s var(--ease), transform 1s var(--ease);
}
.reveal.is-in{ opacity:1; transform:none }

/* ── responsivo ────────────────────────────── */
@media (max-width:900px){
  .nav__links{
    position:fixed; inset:0 0 auto 0; flex-direction:column; gap:1.5rem;
    background:rgba(250,247,242,.98); backdrop-filter:blur(16px);
    padding:6rem var(--pad) 3rem; transform:translateY(-102%);
    transition:transform .6s var(--ease); z-index:-1;
  }
  .nav--open .nav__links{ transform:none }
  .nav__links a{ color:var(--espresso)!important; font-size:.85rem }
  .nav__burger{ display:block }

  .split{ grid-template-columns:1fr }
  .split__sticky{ position:static }
  .split--alt .split__media{ order:-1 }
  .frame__img,
  .frame__stage{ aspect-ratio:4/5 }
  .frame__stage .frame__img{ aspect-ratio:auto }
  .frame--float{ display:none }

  /* galeria vira carrossel de arrastar */
  .gallery{ height:auto }
  .gallery__pin{
    position:static; height:auto; display:block;
    padding:clamp(4rem,10vh,6rem) 0 clamp(3rem,7vh,4rem);
  }
  .gallery__track{
    transform:none!important; gap:2rem;
    overflow-x:auto; scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch; padding-bottom:2.5rem;
    scrollbar-width:none;
  }
  .gallery__track::-webkit-scrollbar{ display:none }
  .slide{
    scroll-snap-align:center; opacity:1!important; transform:none!important;
    width:min(74vw,330px)!important; align-self:auto!important; margin-bottom:0!important;
  }
  .slide--intro,.slide--quote,.slide--cta{ width:min(80vw,360px)!important }
  .slide--tall .slide__frame,
  .slide--wide .slide__frame{ aspect-ratio:3/4 }
  .slide__img{ background-position:center!important }
  .gallery__hud{ position:static; padding:0 var(--pad); margin-top:.5rem }

  .footer{ grid-template-columns:1fr }
  .footer__links{ text-align:left; flex-direction:row; flex-wrap:wrap; gap:1.4rem }
}
@media (max-width:560px){
  .steps::before{ left:calc(1.6rem - 1px) }
  .steps__num{ width:3.2rem; min-width:3.2rem }
  .manifesto__text{ max-width:none }
}

/* ── acessibilidade ────────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto }
  *,*::before,*::after{ animation-duration:.01ms!important; animation-iteration-count:1!important;
    transition-duration:.01ms!important }
  .reveal,.manifesto .line{ opacity:1!important; transform:none!important }
  .hero__title .ch{ opacity:1; transform:none }
  .hero__img{ transform:none }
  .frame__img,.frame__stage{ clip-path:none!important }
  .gallery{ height:auto }
  .gallery__pin{ position:static; height:auto }
  .gallery__track{ transform:none!important; overflow-x:auto }
}
