/* =========================================================
   BEIRAL — arquitetura e interiores
   Design system do projeto 01
   ========================================================= */

:root{
  /* cor */
  --color-background:#F3F1EC;      /* gesso */
  --color-surface:#E4E1D9;         /* concreto claro */
  --color-surface-2:#D6D2C8;
  --color-primary:#1B1D1C;         /* grafite */
  --color-secondary:#3E4539;       /* oliva profunda */
  --color-accent:#9C6B41;          /* carvalho */
  --color-accent-hover:#7F5432;
  --color-text:#1B1D1C;
  --color-muted:#6E6E68;
  --color-muted-2:#9A9791;
  --color-border:#C9C5BB;
  --color-invert-bg:#1B1D1C;
  --color-invert-text:#EEEBE4;

  /* tipografia */
  --font-display:"Fraunces",Georgia,"Times New Roman",serif;
  --font-body:"Archivo","Helvetica Neue",Arial,sans-serif;

  /* forma */
  --radius-sm:2px;
  --radius-md:4px;
  --radius-lg:8px;

  /* medida */
  --container:1380px;
  --gutter:clamp(1.25rem,4vw,4rem);
  --section-space:clamp(5.5rem,11vw,11rem);
  --rule:1px solid var(--color-border);

  /* movimento */
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* ————— reset enxuto ————— */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body,h1,h2,h3,p,figure,blockquote,dl,dd,ol,ul{margin:0}
ul,ol{padding:0;list-style:none}
img,svg,iframe{display:block;max-width:100%}
img{height:auto}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}

html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  font-weight:400;
  font-size:clamp(1rem,.96rem + .2vw,1.0625rem);
  line-height:1.62;
  color:var(--color-text);
  background:var(--color-background);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

::selection{background:var(--color-primary);color:var(--color-background)}

:focus-visible{
  outline:2px solid var(--color-accent);
  outline-offset:3px;
}

.skip-link{
  position:fixed;top:.5rem;left:.5rem;z-index:999;
  padding:.7rem 1.1rem;background:var(--color-primary);color:var(--color-background);
  transform:translateY(-160%);transition:transform .25s var(--ease);
}
.skip-link:focus-visible{transform:none}

/* ————— tipografia utilitária ————— */
.eyebrow{
  font-size:.6875rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:var(--color-muted);
}
.lead{
  font-family:var(--font-display);
  font-size:clamp(1.35rem,1.05rem + 1.35vw,2.1rem);
  line-height:1.32;font-weight:300;letter-spacing:-.012em;
}

/* ————— botões ————— */
.btn{
  display:inline-flex;align-items:center;gap:.7rem;
  font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;
  padding:1.05rem 1.6rem;border-radius:var(--radius-sm);
  position:relative;overflow:hidden;isolation:isolate;
  transition:color .4s var(--ease),border-color .4s var(--ease);
}
.btn svg{width:15px;height:15px;flex:none;transition:transform .4s var(--ease-out)}
.btn::after{
  content:"";position:absolute;inset:0;z-index:-1;
  transform:scaleY(0);transform-origin:bottom;
  transition:transform .45s var(--ease-out);
}
.btn:hover svg,.btn:focus-visible svg{transform:translateX(5px)}

.btn--solid{background:var(--color-primary);color:var(--color-background)}
.btn--solid::after{background:var(--color-accent)}
.btn--solid:hover::after,.btn--solid:focus-visible::after{transform:scaleY(1)}

.btn--outline{border:1px solid var(--color-primary);color:var(--color-primary)}
.btn--outline::after{background:var(--color-primary)}
.btn--outline:hover,.btn--outline:focus-visible{color:var(--color-background)}
.btn--outline:hover::after,.btn--outline:focus-visible::after{transform:scaleY(1)}

.btn--ghost{border:1px solid rgba(238,235,228,.35);color:var(--color-invert-text)}
.btn--ghost::after{background:var(--color-invert-text)}
.btn--ghost:hover,.btn--ghost:focus-visible{color:var(--color-primary)}
.btn--ghost:hover::after,.btn--ghost:focus-visible::after{transform:scaleY(1)}

/* =========================================================
   TOPBAR + MENU FULLSCREEN
   ========================================================= */
.topbar{
  position:fixed;inset:0 0 auto 0;z-index:60;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;
  padding:1.15rem var(--gutter);
  mix-blend-mode:normal;
  transition:background .45s var(--ease),padding .45s var(--ease),border-color .45s var(--ease);
  border-bottom:1px solid transparent;
}
.topbar.is-stuck{
  background:rgba(243,241,236,.92);
  backdrop-filter:blur(10px);
  border-bottom-color:var(--color-border);
  padding-top:.75rem;padding-bottom:.75rem;
}
.topbar.is-hidden{transform:translateY(-100%)}
.topbar{transition:transform .5s var(--ease),background .45s var(--ease),padding .45s var(--ease),border-color .45s var(--ease)}

.brand{display:flex;align-items:center;gap:.6rem}
.brand__mark{width:30px;height:18px;flex:none}
.brand__word{
  font-family:var(--font-display);font-weight:400;
  font-size:1.3rem;letter-spacing:-.015em;
}
.topbar__note{
  justify-self:center;font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--color-muted);
}
.menu-toggle{display:flex;align-items:center;gap:.6rem;padding:.35rem 0}
.menu-toggle__label{font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase}
.menu-toggle__bars{display:grid;gap:5px;width:24px}
.menu-toggle__bars i{display:block;height:1px;background:currentColor;transition:transform .4s var(--ease),width .4s var(--ease)}
.menu-toggle__bars i:last-child{width:15px;margin-left:auto}
.menu-toggle:hover .menu-toggle__bars i:last-child{width:24px}

.fullmenu{
  position:fixed;inset:0;z-index:80;
  background:var(--color-invert-bg);color:var(--color-invert-text);
  clip-path:inset(0 0 100% 0);visibility:hidden;
  transition:clip-path .8s var(--ease-out),visibility 0s .8s;
  overflow-y:auto;
}
.fullmenu.is-open{
  clip-path:inset(0 0 0 0);visibility:visible;
  transition:clip-path .8s var(--ease-out),visibility 0s;
}
.fullmenu__inner{
  min-height:100%;
  display:grid;grid-template-columns:1fr;align-content:center;gap:3rem;
  padding:clamp(4.5rem,12vh,8rem) var(--gutter) 3rem;
}
.fullmenu__close{
  position:absolute;top:1.35rem;right:var(--gutter);
  font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;
}
.fullmenu__close::after{content:"";display:block;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.fullmenu__close:hover::after{transform:scaleX(1);transform-origin:left}

.fullmenu__nav li{overflow:hidden}
.fullmenu__nav a{
  display:flex;align-items:baseline;gap:1.2rem;
  font-family:var(--font-display);font-weight:300;
  font-size:clamp(2.4rem,9vw,5.5rem);line-height:1.08;letter-spacing:-.03em;
  padding:.12em 0;
  transform:translateY(110%);
  transition:transform .8s var(--ease-out),color .35s var(--ease);
}
.fullmenu.is-open .fullmenu__nav a{transform:none}
.fullmenu__nav li:nth-child(1) a{transition-delay:.08s}
.fullmenu__nav li:nth-child(2) a{transition-delay:.14s}
.fullmenu__nav li:nth-child(3) a{transition-delay:.2s}
.fullmenu__nav li:nth-child(4) a{transition-delay:.26s}
.fullmenu__nav li:nth-child(5) a{transition-delay:.32s}
.fullmenu__nav a em{
  font-family:var(--font-body);font-style:normal;font-size:.7rem;letter-spacing:.2em;
  color:var(--color-muted-2);
}
.fullmenu__nav a:hover{color:var(--color-accent)}

.fullmenu__aside{
  display:grid;gap:1.4rem;
  border-top:1px solid rgba(238,235,228,.16);padding-top:2rem;
  font-size:.9375rem;color:#A9A69F;
}
.fullmenu__wa{font-family:var(--font-display);font-size:1.6rem;color:var(--color-invert-text)}
.fullmenu__wa:hover{color:var(--color-accent)}
.fullmenu__ig{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem}
.fullmenu__ig svg{width:18px;height:18px}
.fullmenu__ig:hover{color:var(--color-invert-text)}

@media (min-width:900px){
  .fullmenu__inner{grid-template-columns:1.5fr .85fr;align-items:end;gap:4rem}
  .fullmenu__aside{border-top:0;border-left:1px solid rgba(238,235,228,.16);padding:0 0 1rem 3rem}
}

/* =========================================================
   HERO — assimétrico, imagem sangrando
   ========================================================= */
.hero{
  position:relative;
  min-height:100svh;
  display:grid;
  grid-template-columns:1fr;
  align-content:end;
  gap:2.5rem;
  padding:clamp(7rem,16vh,10rem) var(--gutter) clamp(2.5rem,6vh,4rem);
}
.hero__title{
  font-family:var(--font-display);font-weight:300;
  font-size:clamp(2.9rem,11.2vw,8.6rem);
  line-height:.94;letter-spacing:-.038em;
  text-wrap:balance;
}
.hero__title .line{display:block;overflow:hidden}
.hero__title .word{display:block;transform:translateY(105%);opacity:0}
.is-ready .hero__title .word{transform:none;opacity:1;transition:transform 1.1s var(--ease-out),opacity .9s var(--ease-out)}
.is-ready .hero__title .line:nth-child(2) .word{transition-delay:.1s}
.is-ready .hero__title .line:nth-child(3) .word{transition-delay:.2s}
.hero__title .line--in{padding-left:.14em}
.hero__title .line--out{padding-left:.05em;font-style:italic;color:var(--color-secondary)}

.hero__ficha{display:grid;gap:1.8rem;max-width:34rem;opacity:0;transform:translateY(20px)}
.is-ready .hero__ficha{opacity:1;transform:none;transition:opacity .9s var(--ease-out) .45s,transform .9s var(--ease-out) .45s}
.hero__ficha dl{display:grid;gap:.55rem;border-top:var(--rule);padding-top:1rem}
.hero__ficha dl>div{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;font-size:.875rem}
.hero__ficha dt{color:var(--color-muted);letter-spacing:.04em}
.hero__ficha .btn{justify-self:start}

.hero__figure{
  position:relative;
  margin-right:calc(var(--gutter)*-1);
  opacity:0;
}
.is-ready .hero__figure{opacity:1;transition:opacity 1.2s var(--ease-out) .15s}
.hero__figure img{
  width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 42%;
  clip-path:inset(0 0 100% 0);
}
.is-ready .hero__figure img{clip-path:inset(0 0 0 0);transition:clip-path 1.4s var(--ease-out) .25s}
.hero__figure figcaption{
  margin-top:.7rem;padding-right:var(--gutter);
  font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);
}
.hero__scroll{
  display:none;
  font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted);
}
.hero__scroll span{display:block;width:1px;height:44px;background:var(--color-border);margin-bottom:.6rem;position:relative;overflow:hidden}
.hero__scroll span::after{content:"";position:absolute;inset:0;background:var(--color-primary);animation:scrollTick 2.4s var(--ease) infinite}
@keyframes scrollTick{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}

@media (min-width:900px){
  .hero{
    grid-template-columns:minmax(0,1fr) minmax(0,42vw);
    grid-template-rows:1fr auto;
    align-content:stretch;align-items:end;
    column-gap:clamp(2rem,5vw,5rem);
    padding-bottom:clamp(3rem,7vh,5.5rem);
  }
  .hero__type{grid-column:1;grid-row:1/3;align-self:end;display:grid;gap:clamp(2.5rem,6vh,4.5rem)}
  .hero__figure{
    grid-column:2;grid-row:1/3;align-self:stretch;
    margin-right:calc(var(--gutter)*-1);
    display:flex;flex-direction:column;justify-content:flex-end;
    padding-top:clamp(5rem,12vh,8rem);
  }
  .hero__figure img{aspect-ratio:auto;height:100%;min-height:62vh;object-position:50% 40%}
  .hero__scroll{display:block;position:absolute;left:var(--gutter);bottom:clamp(3rem,7vh,5.5rem);}
  .hero__type{padding-left:3.4rem}
}
@media (min-width:1200px){
  .hero__title{font-size:clamp(5rem,7.4vw,8.6rem)}
}

/* =========================================================
   MANIFESTO
   ========================================================= */
.manifesto{
  display:grid;gap:clamp(2.5rem,6vw,5rem);
  padding:var(--section-space) var(--gutter);
  border-top:var(--rule);
}
.manifesto__sticky figure{margin:0}
.manifesto__sticky img{width:100%;aspect-ratio:4/5;object-fit:cover}
.manifesto__text{display:grid;gap:1.6rem;max-width:60ch}
.manifesto__text p:not(.lead){color:#4A4A45}
.manifesto__list{display:grid;gap:0;margin-top:1.2rem;border-top:var(--rule)}
.manifesto__list li{
  display:grid;grid-template-columns:3rem 1fr;gap:1rem;align-items:baseline;
  padding:1.05rem 0;border-bottom:var(--rule);
  font-size:.9375rem;
}
.manifesto__list span{font-size:.6875rem;letter-spacing:.14em;color:var(--color-accent)}

@media (min-width:900px){
  .manifesto{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-items:start}
  .manifesto__sticky{position:sticky;top:16vh}
  .manifesto__text{padding-top:1rem}
}

/* =========================================================
   OBRAS — scroll horizontal
   ========================================================= */
.obras{
  background:var(--color-invert-bg);color:var(--color-invert-text);
  position:relative;
}
.obras__viewport{overflow:hidden}
.obras__track{
  display:flex;align-items:stretch;gap:clamp(1.5rem,4vw,4rem);
  padding:var(--section-space) var(--gutter);
  width:max-content;
}
.slide{flex:none}

.obras__intro{
  width:min(80vw,26rem);align-self:center;display:grid;gap:1.2rem;
}
.obras__intro h2{
  font-family:var(--font-display);font-weight:300;
  font-size:clamp(2.6rem,6vw,4.4rem);line-height:1;letter-spacing:-.03em;
}
.obras__intro h2 span{display:block;font-style:italic;color:var(--color-accent)}
.obras__intro p{color:#A9A69F;font-size:.9375rem;max-width:26rem}
.obras__hint svg{width:44px;height:9px;color:var(--color-accent);margin-top:.5rem}

.obra{width:min(78vw,26rem);display:grid;gap:1.4rem;align-content:start}
.obra--wide{width:min(88vw,38rem)}
.obra figure{margin:0;overflow:hidden;background:#0F1110}
.obra img{
  width:100%;aspect-ratio:3/4;object-fit:cover;
  transition:transform 1.1s var(--ease-out),filter .6s var(--ease);
  filter:saturate(.94) contrast(1.02);
}
.obra--wide img{aspect-ratio:4/3}
.obra:hover img{transform:scale(1.04);filter:saturate(1.02) contrast(1.02)}
.obra__meta{display:grid;gap:.55rem;max-width:32rem}
.obra__num{
  font-size:.6875rem;letter-spacing:.2em;color:var(--color-accent);
}
.obra h3{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.1;letter-spacing:-.02em;
}
.obra__tag{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted-2)}
.obra__desc{font-size:.9375rem;color:#A9A69F;line-height:1.6}

.obras__end{
  width:min(76vw,24rem);align-self:center;display:grid;gap:1.2rem;justify-items:start;
  border-left:1px solid rgba(238,235,228,.18);padding-left:clamp(1.5rem,3vw,2.5rem);
}
.obras__end .eyebrow{color:var(--color-muted-2)}
.obras__end-text{
  font-family:var(--font-display);font-weight:300;font-size:clamp(1.6rem,3vw,2.3rem);
  line-height:1.18;letter-spacing:-.02em;
}
.obras__end .btn--outline{border-color:rgba(238,235,228,.4);color:var(--color-invert-text)}
.obras__end .btn--outline::after{background:var(--color-invert-text)}
.obras__end .btn--outline:hover{color:var(--color-primary)}

.obras__progress{
  position:absolute;left:var(--gutter);right:var(--gutter);bottom:clamp(1.6rem,4vh,2.6rem);
  height:1px;background:rgba(238,235,228,.18);
}
.obras__progress span{display:block;height:100%;width:0;background:var(--color-accent);transform-origin:left}

/* fallback sem GSAP / mobile: scroller nativo */
.obras--native .obras__viewport{
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.obras--native .obras__viewport::-webkit-scrollbar{display:none}
.obras--native .slide{scroll-snap-align:center}
.obras--native .obras__track{padding-bottom:calc(var(--section-space) + 1.5rem)}

/* =========================================================
   MATÉRIA — índice com troca de fotografia
   ========================================================= */
.materia{
  position:relative;isolation:isolate;
  padding:var(--section-space) var(--gutter);
  background:var(--color-surface);
  overflow:hidden;
}
.materia__bg{position:absolute;inset:0;z-index:-1}
.materia__bg img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.06);
  transition:opacity 1s var(--ease),transform 1.6s var(--ease-out);
}
.materia__bg img.is-active{opacity:.2;transform:scale(1)}
.materia__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to right,var(--color-surface) 0%,rgba(228,225,217,.72) 55%,rgba(228,225,217,.4) 100%);
}
.materia__inner{max-width:var(--container);margin-inline:auto;display:grid;gap:1.4rem}
.materia__title{
  font-family:var(--font-display);font-weight:300;font-style:italic;
  font-size:clamp(3rem,10vw,7rem);line-height:.95;letter-spacing:-.035em;
}
.materia__sub{max-width:44ch;color:#4A4A45}
.materia__list{margin-top:1.4rem;border-top:1px solid rgba(27,29,28,.18)}
.materia__list li{
  display:grid;grid-template-columns:2.6rem 1fr;gap:.3rem 1rem;
  padding:1.35rem 0;border-bottom:1px solid rgba(27,29,28,.18);
  cursor:default;transition:padding-left .5s var(--ease),color .4s var(--ease);
}
.materia__n{font-size:.6875rem;letter-spacing:.16em;color:var(--color-muted);grid-row:1}
.materia__name{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.3rem,3vw,2.1rem);line-height:1.14;letter-spacing:-.02em;
  transition:color .4s var(--ease);
}
.materia__why{grid-column:2;font-size:.9375rem;color:#585853;max-width:52ch}
.materia__list li.is-active{padding-left:.9rem}
.materia__list li.is-active .materia__name{color:var(--color-accent)}
.materia__foot{margin-top:1.5rem;font-size:.875rem;color:var(--color-muted)}

@media (min-width:900px){
  .materia__list li{grid-template-columns:3.4rem minmax(0,17rem) minmax(0,1fr);align-items:baseline}
  .materia__why{grid-column:3;grid-row:1}
  .materia__bg::after{background:linear-gradient(to right,var(--color-surface) 8%,rgba(228,225,217,.62) 62%,rgba(228,225,217,.3) 100%)}
}

/* =========================================================
   PROCESSO
   ========================================================= */
.processo{
  padding:var(--section-space) var(--gutter);
  max-width:var(--container);margin-inline:auto;
  display:grid;gap:clamp(2.5rem,5vw,4rem);
}
.processo__head{display:grid;gap:.9rem;max-width:40rem}
.processo__lead{
  font-family:var(--font-display);font-weight:300;
  font-size:clamp(1.5rem,3.2vw,2.4rem);line-height:1.22;letter-spacing:-.022em;
}
.processo__steps{display:grid;gap:0;border-top:var(--rule)}
.processo__steps li{
  display:grid;gap:.5rem;
  padding:2rem 0;border-bottom:var(--rule);
  opacity:0;transform:translateY(26px);
}
.processo__steps li.is-in{opacity:1;transform:none;transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
.processo__n{
  font-family:var(--font-display);font-size:2.2rem;font-weight:300;line-height:1;
  color:var(--color-muted-2);
}
.processo__steps h3{
  font-family:var(--font-display);font-weight:400;font-size:clamp(1.25rem,2vw,1.6rem);
  letter-spacing:-.015em;
}
.processo__prazo{
  font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent);
}
.processo__steps p:last-child{color:#4A4A45;max-width:56ch}

@media (min-width:800px){
  .processo__steps li{grid-template-columns:5rem minmax(0,15rem) minmax(0,1fr);gap:1.5rem;align-items:baseline}
  .processo__n{grid-row:1/3}
  .processo__prazo{grid-column:2;grid-row:2}
  .processo__steps li>p:last-child{grid-column:3;grid-row:1/3}
}

/* =========================================================
   ESCRITÓRIO
   ========================================================= */
.escritorio{
  padding:var(--section-space) var(--gutter);
  background:var(--color-background);
  border-top:var(--rule);
}
.escritorio__grid{
  max-width:var(--container);margin-inline:auto;
  display:grid;gap:clamp(2rem,4vw,3.5rem);
}
.escritorio__fig{margin:0}
.escritorio__fig img{width:100%;object-fit:cover}
.escritorio__fig--a img{aspect-ratio:4/5}
.escritorio__fig--b img{aspect-ratio:16/9}
.escritorio__fig figcaption{
  margin-top:.7rem;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);
}
.escritorio__text{display:grid;gap:1.2rem;align-content:start;max-width:52ch}
.escritorio__big{
  font-family:var(--font-display);font-weight:300;
  font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.22;letter-spacing:-.022em;
}
.escritorio__text p:not(.escritorio__big){color:#4A4A45}
.escritorio__text strong{font-weight:500}
.escritorio__people{
  display:grid;gap:1rem;margin-top:.6rem;padding-top:1.2rem;border-top:var(--rule);
}
.escritorio__name{font-family:var(--font-display);font-size:1.1rem}
.escritorio__role{font-size:.8125rem;color:var(--color-muted)}

@media (min-width:900px){
  .escritorio__grid{grid-template-columns:minmax(0,.82fr) minmax(0,1fr);align-items:start}
  .escritorio__fig--a{margin-top:clamp(2rem,6vw,5rem)}
  .escritorio__fig--b{grid-column:1/-1}
}

/* =========================================================
   VOZES
   ========================================================= */
.vozes{
  padding:var(--section-space) var(--gutter);
  background:var(--color-surface);
  display:grid;gap:clamp(2rem,4vw,3rem);
  max-width:var(--container);margin-inline:auto;
}
.vozes blockquote{
  display:grid;gap:1rem;padding-top:1.4rem;border-top:1px solid rgba(27,29,28,.2);
  opacity:0;transform:translateY(22px);
}
.vozes blockquote.is-in{opacity:1;transform:none;transition:opacity .85s var(--ease-out),transform .85s var(--ease-out)}
.vozes blockquote:nth-child(2).is-in{transition-delay:.1s}
.vozes blockquote:nth-child(3).is-in{transition-delay:.2s}
.vozes p{
  font-family:var(--font-display);font-weight:300;
  font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.45;letter-spacing:-.012em;
}
.vozes footer{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted)}
@media (min-width:820px){.vozes{grid-template-columns:repeat(3,1fr)}}

/* =========================================================
   LOCALIZAÇÃO
   ========================================================= */
.local{position:relative;background:var(--color-background)}
.local__map{position:relative;height:clamp(22rem,58vh,34rem);background:var(--color-surface-2)}
.local__map iframe{width:100%;height:100%;border:0;filter:grayscale(1) contrast(.92) brightness(1.04)}
.local__card{
  background:var(--color-invert-bg);color:var(--color-invert-text);
  padding:clamp(2rem,4vw,3rem);display:grid;gap:1.3rem;align-content:start;
}
.local__card .eyebrow{color:var(--color-muted-2)}
.local__addr{
  font-family:var(--font-display);font-weight:300;font-size:clamp(1.4rem,2.6vw,1.9rem);
  line-height:1.3;letter-spacing:-.02em;
}
.local__data{display:grid;gap:.65rem;border-top:1px solid rgba(238,235,228,.18);padding-top:1.1rem}
.local__data>div{display:grid;grid-template-columns:9rem 1fr;gap:1rem;font-size:.875rem}
.local__data dt{color:var(--color-muted-2)}
.local__card .btn--solid{background:var(--color-invert-text);color:var(--color-primary);justify-self:start}
.local__card .btn--solid::after{background:var(--color-accent)}
.local__card .btn--solid:hover{color:var(--color-invert-text)}

@media (min-width:900px){
  .local{display:grid;grid-template-columns:1fr}
  .local__map{height:clamp(30rem,78vh,44rem)}
  .local__card{
    position:absolute;top:50%;transform:translateY(-50%);
    left:var(--gutter);width:min(30rem,38vw);
  }
}

/* =========================================================
   RODAPÉ
   ========================================================= */
.rodape{
  background:var(--color-invert-bg);color:var(--color-invert-text);
  padding:var(--section-space) var(--gutter) 2rem;
  overflow:hidden;
}
.rodape__cta{
  max-width:var(--container);margin-inline:auto;
  display:grid;gap:1.2rem;justify-items:start;
  padding-bottom:clamp(3rem,7vw,5rem);
}
.rodape__cta .eyebrow{color:var(--color-muted-2)}
.rodape__frase{
  font-family:var(--font-display);font-weight:300;
  font-size:clamp(1.7rem,4.4vw,3.2rem);line-height:1.13;letter-spacing:-.028em;
  max-width:22ch;
}
.rodape__word{
  font-family:var(--font-display);font-weight:300;
  font-size:clamp(5rem,21vw,17rem);line-height:.8;letter-spacing:-.05em;
  color:transparent;-webkit-text-stroke:1px rgba(238,235,228,.24);
  margin:clamp(1rem,3vw,2rem) 0 clamp(2rem,5vw,3.5rem);
  user-select:none;
}
.rodape__cols{
  max-width:var(--container);margin-inline:auto;
  display:grid;gap:2rem;
  border-top:1px solid rgba(238,235,228,.16);padding-top:2.5rem;
}
.rodape__h{font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted-2);margin-bottom:.9rem}
.rodape__cols li{font-size:.9375rem;color:#A9A69F;padding:.22rem 0}
.rodape__cols a{position:relative}
.rodape__cols a::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease);
}
.rodape__cols a:hover{color:var(--color-invert-text)}
.rodape__cols a:hover::after{transform:scaleX(1);transform-origin:left}
.rodape__base{
  max-width:var(--container);margin:2.5rem auto 0;
  padding-top:1.4rem;border-top:1px solid rgba(238,235,228,.16);
  display:flex;flex-wrap:wrap;gap:.6rem 2rem;justify-content:space-between;
  font-size:.75rem;color:var(--color-muted-2);
}
@media (min-width:760px){.rodape__cols{grid-template-columns:repeat(3,1fr);gap:3rem}}

/* =========================================================
   WHATSAPP FLUTUANTE
   ========================================================= */
.wa-float{
  position:fixed;z-index:70;
  right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);
  width:54px;height:54px;border-radius:50%;
  display:grid;place-items:center;
  background:var(--color-primary);color:var(--color-background);
  box-shadow:0 8px 24px rgba(27,29,28,.22);
  transform:scale(0);
  transition:transform .5s var(--ease-out),background .35s var(--ease);
}
.wa-float.is-visible{transform:scale(1)}
.wa-float svg{width:26px;height:26px}
.wa-float::before{
  content:"";position:absolute;inset:-6px;border-radius:50%;
  border:1px solid var(--color-primary);opacity:0;transform:scale(.85);
  transition:opacity .4s var(--ease),transform .4s var(--ease-out);
}
.wa-float:hover,.wa-float:focus-visible{background:var(--color-accent)}
.wa-float:hover::before,.wa-float:focus-visible::before{opacity:.5;transform:scale(1)}

/* =========================================================
   CURSOR CUSTOMIZADO (apenas ponteiro fino)
   ========================================================= */
.cursor{display:none}
@media (hover:hover) and (pointer:fine) and (min-width:1024px){
  .cursor{
    display:block;position:fixed;top:0;left:0;z-index:200;pointer-events:none;
    mix-blend-mode:difference;
  }
  .cursor__dot{
    position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;
    transform:translate(-50%,-50%);
  }
  .cursor__ring{
    position:absolute;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.5);
    transform:translate(-50%,-50%) scale(.55);opacity:0;
    transition:transform .35s var(--ease-out),opacity .3s var(--ease);
  }
  .cursor__label{
    position:absolute;transform:translate(-50%,-50%);
    font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;
    opacity:0;transition:opacity .25s var(--ease);white-space:nowrap;
  }
  .cursor.is-hover .cursor__ring{opacity:1;transform:translate(-50%,-50%) scale(1)}
  .cursor.is-label .cursor__ring{transform:translate(-50%,-50%) scale(1.55);opacity:1}
  .cursor.is-label .cursor__dot{opacity:0}
  .cursor.is-label .cursor__label{opacity:1}
  .cursor.is-off{opacity:0}
}

/* =========================================================
   REVEALS GENÉRICOS
   ========================================================= */
[data-reveal],[data-reveal-lines],[data-reveal-stagger]>li{
  opacity:0;transform:translateY(22px);
}
.is-in[data-reveal],.is-in[data-reveal-lines]{
  opacity:1;transform:none;transition:opacity .85s var(--ease-out),transform .85s var(--ease-out);
}
[data-reveal-stagger].is-in>li{
  opacity:1;transform:none;transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);
}
[data-reveal-stagger].is-in>li:nth-child(2){transition-delay:.07s}
[data-reveal-stagger].is-in>li:nth-child(3){transition-delay:.14s}
[data-reveal-stagger].is-in>li:nth-child(4){transition-delay:.21s}

/* =========================================================
   ACESSIBILIDADE — movimento reduzido
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
  .cursor{display:none !important}
  .hero__title .word,.hero__ficha,.hero__figure{opacity:1 !important;transform:none !important}
  .hero__figure img{clip-path:none !important}
  .fullmenu__nav a{transform:none !important}
  [data-reveal],[data-reveal-lines],[data-reveal-stagger]>li,
  .processo__steps li,.vozes blockquote{opacity:1 !important;transform:none !important}
  .wa-float{transform:scale(1) !important}
  .hero__scroll span::after{display:none}
}
