/* ==========================================================================
   RG Arquitetura e Design — Design System
   Ver base/design.md e base/tipografia.md para as regras por trás disto.

   Paleta customizada para este projeto (substitui a base neutra do modelo):
   olive/taupe quente em vez de dark/branco/cinza. Ver base/design.md, seção
   "Paleta (projeto)" para o mapeamento completo token → cor e o porquê de
   cada escolha. Regra de uso do accent mantida: cor de destaque com cuidado,
   sobretudo em dobras escuras, nunca como texto ou preenchimento grande
   sobre fundo claro.
   ========================================================================== */

/* ---- Tokens -------------------------------------------------------------- */
/* Paleta RG Arquitetura e Design — olive/taupe quente, substitui a base
   neutra do modelo. --ink usa Warm Charcoal (não Olive Taupe) porque é o
   par com melhor contraste para texto de corpo sobre fundo escuro; Olive
   Taupe entra como superfície escura elevada (--ink-elev) e Dark Olive Gray
   como o tom de menu/overlay, mantendo os papéis descritos pelo cliente. */
:root{
  --ink:#292924;
  --ink-soft:#4D4B41;
  --ink-elev:#807C6B;
  --paper:#F5F2E9;
  --paper-dim:#E3DEC9;
  --ph-light:#D5CFB7;
  --ph-light-line:rgba(181,171,131,.4);
  --gray:#4D4B41;
  --gray-light:#D5CFB7;
  --accent:#B5AB83;
  --accent-deep:#847E62;
  --white:#F5F2E9;
  --line:rgba(41,41,36,.14);
  --line-on-dark:rgba(245,242,233,.16);
  --text-on-light:#292924;
  --text-on-light-dim:#4D4B41;
  --text-on-dark:#F5F2E9;
  --text-on-dark-dim:#D5CFB7;

  --font-sans:'Switzer','Helvetica Neue',Arial,sans-serif;

  --fw-light:300;
  --fw-regular:400;
  --fw-medium:500;
  --fw-semibold:600;
  --fw-bold:700;

  --fs-display:clamp(2.6rem, 5vw, 4.6rem);
  --fs-h1:clamp(2.1rem, 3.6vw, 3.2rem);
  --fs-h2:clamp(1.5rem, 2.4vw, 2rem);
  --fs-stat:clamp(2.8rem, 5vw, 4rem);
  --fs-body-lg:clamp(1.05rem, 1.3vw, 1.2rem);
  --fs-body:1rem;
  --fs-small:0.875rem;
  --fs-eyebrow:0.75rem;

  --space-1:8px;  --space-2:16px; --space-3:24px; --space-4:32px;
  --space-5:48px; --space-6:64px; --space-7:96px; --space-8:128px;

  --section-pad:clamp(96px, 10vw, 160px);
  --container-pad:clamp(24px, 5vw, 80px);
  --container-max:1320px;

  --ease:cubic-bezier(.16,.8,.28,1);
}

/* ---- Reset ---------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:var(--font-sans);
  font-weight:var(--fw-regular);
  color:var(--text-on-light);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4{font-weight:var(--fw-regular);line-height:1.1}
.container{max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-pad)}

/* ---- Utility --------------------------------------------------------------- */
.eyebrow{
  font-size:var(--fs-eyebrow);
  font-weight:var(--fw-semibold);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gray);
}
.eyebrow--on-dark{color:var(--accent)}
.section{padding-block:var(--section-pad)}
.section--dark{background:#343331;color:var(--text-on-dark)}
.section--paper{background:var(--paper)}
.section-head{max-width:720px}
.section-head--center{margin-inline:auto;text-align:center}
.section-head h2{margin-top:var(--space-2);font-size:var(--fs-h1)}
.section-head p{margin-top:var(--space-3);font-size:var(--fs-body-lg);color:var(--text-on-light-dim)}
.section--dark .section-head p{color:var(--text-on-dark-dim)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- Placeholder de imagem -------------------------------------------------- */
.ph{
  position:relative;
  overflow:hidden;
  background:var(--ph-light);
  background-image:
    repeating-linear-gradient(45deg, rgba(41,41,36,.05) 0 1px, transparent 1px 22px),
    repeating-linear-gradient(-45deg, rgba(41,41,36,.05) 0 1px, transparent 1px 22px);
}
.ph::after{
  content:'';
  position:absolute; inset:14px;
  border:1px solid var(--ph-light-line);
  pointer-events:none;
}
.ph--dark{
  background:var(--ink-elev);
  background-image:
    repeating-linear-gradient(45deg, rgba(245,242,233,.06) 0 1px, transparent 1px 22px),
    repeating-linear-gradient(-45deg, rgba(245,242,233,.06) 0 1px, transparent 1px 22px);
}
.ph--dark::after{border-color:rgba(245,242,233,.2)}
.ph--tagged::before{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(41,41,36,.68) 0%, rgba(41,41,36,0) 48%);
  pointer-events:none;
}
.ph-tag{
  position:absolute; left:0; right:0; bottom:0;
  z-index:1;
  display:flex; align-items:baseline; justify-content:space-between; gap:var(--space-2);
  padding:var(--space-3);
  font-size:var(--fs-small);
  color:var(--text-on-dark);
}
.ph-tag strong{font-weight:var(--fw-medium);font-size:var(--fs-body)}
.ph-tag span{color:var(--text-on-dark-dim);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;white-space:nowrap}

/* ---- Botão CTA --------------------------------------------------------------- */
.btn-cta{
  display:inline-flex;
  align-items:stretch;
  width:fit-content;
  transition:opacity .25s var(--ease);
}
.btn-cta:hover{opacity:.85}
.btn-cta__label{
  display:flex;align-items:center;
  padding:0 var(--space-4);
  height:56px;
  background:var(--ink);
  color:var(--text-on-dark);
  font-size:var(--fs-small);
  font-weight:var(--fw-semibold);
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
}
.btn-cta__arrow{
  display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;
  background:var(--accent);
  color:var(--ink);
  flex-shrink:0;
  transition:background .25s var(--ease);
}
.btn-cta:hover .btn-cta__arrow{background:var(--accent-deep)}
.btn-cta__arrow svg{width:20px;height:20px}
.btn-cta--on-dark .btn-cta__label{background:var(--paper);color:var(--ink)}
.btn-cta--compact .btn-cta__label{height:44px;padding:0 var(--space-3)}
.btn-cta--compact .btn-cta__arrow{width:44px;height:44px}
.btn-cta--compact .btn-cta__arrow svg{width:16px;height:16px}

/* ---- Header / Nav -------------------------------------------------------------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  transition:box-shadow .25s var(--ease);
}
.site-header.is-scrolled{box-shadow:0 8px 24px rgba(0,0,0,.08)}
.site-header .container{
  display:flex;align-items:center;justify-content:space-between;
  height:88px;
}
.logo{display:inline-flex; align-items:center}
.logo img{height:40px; width:auto; display:block}
.nav-desktop{display:flex;align-items:center;gap:var(--space-6)}
.nav-links{display:flex;gap:var(--space-5)}
.nav-links a{
  position:relative;
  font-size:var(--fs-small);
  color:var(--text-on-light-dim);
  letter-spacing:.03em;
  padding-bottom:4px;
  transition:color .2s var(--ease);
}
.nav-links a::after{
  content:'';
  position:absolute; left:0; right:100%; bottom:0;
  height:2px; background:var(--accent);
  transition:right .25s var(--ease);
}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--text-on-light)}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{right:0}
.nav-toggle{
  display:none;
  width:40px;height:40px;
  align-items:center;justify-content:center;
  color:var(--text-on-light);
}
.nav-toggle svg{width:22px;height:22px}

.nav-mobile{
  position:fixed; inset:0; z-index:60;
  background:var(--ink-soft);
  display:flex; flex-direction:column;
  padding:var(--space-3) var(--container-pad) var(--space-6);
  transform:translateY(-100%);
  transition:transform .35s var(--ease);
}
.nav-mobile.is-open{transform:translateY(0)}
.nav-mobile__top{display:flex;align-items:center;justify-content:space-between;height:64px}
.nav-mobile__close{width:40px;height:40px;color:var(--text-on-dark)}
.nav-mobile__links{
  flex:1;
  display:flex;flex-direction:column;justify-content:center;gap:var(--space-3);
}
.nav-mobile__links a{
  font-size:clamp(1.6rem,7vw,2.2rem);
  font-weight:var(--fw-light);
  color:var(--text-on-dark);
}

/* ---- Hero --------------------------------------------------------------------- */
/* Imagem em tela cheia com gradiente + copy sobreposta, para que hero e CTA
   caibam numa dobra só, sem exigir scroll pra ver o texto. */
.hero{
  position:relative;
  min-height:calc(100vh - 88px);
  min-height:calc(100svh - 88px);
  display:flex;
  align-items:flex-end;
  color:var(--text-on-dark);
  overflow:hidden;
}
.hero__media{
  position:absolute;
  inset:0;
  z-index:0;
}
.hero__media img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover; object-position:50% 12%; display:block;
  opacity:0;
  transition:opacity 1.6s var(--ease);
}
.hero__media img.is-active{opacity:1}
.hero__media::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(to top,
    rgba(41,41,36,.86) 0%,
    rgba(41,41,36,.56) 28%,
    rgba(41,41,36,.2) 52%,
    rgba(41,41,36,0) 75%);
}
.hero__body{
  position:relative;
  z-index:1;
  width:100%;
  padding:var(--space-7) 0 var(--space-6);
}
.hero__body .container{
  display:flex;flex-direction:column;gap:var(--space-1);
}
.hero h1{
  font-size:var(--fs-display);
  font-weight:var(--fw-light);
  letter-spacing:-.01em;
}
.hero__glue{white-space:nowrap}
.hero__break--mobile{display:none}
.hero__row{
  display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between;
  gap:var(--space-4);
}
.hero__sub{max-width:42ch; color:var(--text-on-dark-dim); font-size:var(--fs-body-lg)}

/* ---- Quem somos + números ------------------------------------------------------ */
.stats{
  background:var(--ink-soft);
  border-top:1px solid var(--line-on-dark);
}
.stats .container{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
}
.stat{
  padding:var(--space-5) var(--space-4);
  border-right:1px solid var(--line-on-dark);
  display:flex; align-items:baseline; gap:var(--space-2);
}
.stat:first-child{padding-left:0}
.stat:last-child{border-right:0}
.stat strong{
  font-size:var(--fs-stat);
  font-weight:var(--fw-light);
  color:var(--text-on-dark);
  line-height:1;
}
.stat span{font-size:var(--fs-small);color:var(--text-on-dark-dim);max-width:16ch}

/* ---- Projetos (carrossel de categorias, modelo gallery4) -------------------------- */
.gallery4__head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:var(--space-4);
  margin-bottom:var(--space-6);
}
.gallery4__nav{display:flex; gap:var(--space-2); flex-shrink:0}
.gallery4__arrow{
  width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  transition:background .2s var(--ease), opacity .2s var(--ease);
}
.gallery4__arrow:hover{background:var(--ph-light)}
.gallery4__arrow:disabled{opacity:.35; pointer-events:none}
.gallery4__arrow svg{width:18px;height:18px}
.gallery4__track-wrap{
  max-width:var(--container-max);
  margin-inline:auto;
  padding-left:var(--container-pad);
  overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none;
}
.gallery4__track-wrap::-webkit-scrollbar{display:none}
.gallery4__track{
  display:flex; gap:var(--space-3);
  scroll-snap-type:x mandatory;
}
.gallery4__track::after{
  content:'';
  flex:0 0 max(0px, calc(var(--container-pad) - var(--space-3)));
}
.gallery4__card{
  position:relative;
  flex:0 0 auto;
  width:min(400px, 78vw);
  min-height:460px;
  border-radius:0;
  overflow:hidden;
  scroll-snap-align:start;
  display:block;
}
.gallery4__card .ph{position:absolute; inset:0}
.gallery4__card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.gallery4__card::after{
  content:'';
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(41,41,36,.9) 0%, rgba(41,41,36,.38) 55%, rgba(41,41,36,0) 80%);
}
.gallery4__body{
  position:absolute; z-index:2; inset:0;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:var(--space-4);
  color:var(--white);
}
.gallery4__body h3{font-size:var(--fs-h1); font-weight:var(--fw-light); margin-bottom:var(--space-2)}
.gallery4__body p{color:rgba(255,255,255,.72); max-width:34ch; margin-bottom:var(--space-3)}
.gallery4__link{
  display:inline-flex; align-items:center; gap:8px;
  font-size:var(--fs-small); font-weight:var(--fw-medium);
}
.gallery4__link svg{width:16px;height:16px; transition:transform .25s var(--ease)}
.gallery4__card:hover .gallery4__link svg{transform:translateX(4px)}
.gallery4__dots{
  display:flex; justify-content:center; gap:8px;
  margin-top:var(--space-4);
}
.gallery4__dots button{
  width:7px;height:7px;border-radius:50%;background:var(--line);
  transition:background .2s var(--ease), transform .2s var(--ease);
}
.gallery4__dots button.is-active{background:var(--ink); transform:scale(1.3)}

/* ---- O que fazemos --------------------------------------------------------------- */
.capacity__head{
  display:flex; align-items:center; gap:var(--space-4);
  margin-bottom:var(--space-6);
}
.capacity__head h2{font-size:var(--fs-h1);white-space:nowrap}
.capacity__head hr{flex:1;border:0;border-top:1px solid var(--line)}
.capacity__sub{margin-top:var(--space-2); font-size:var(--fs-body-lg); color:var(--text-on-light-dim); max-width:60ch}
.capacity__grid{
  display:grid; grid-template-columns:1fr 1fr; gap:0;
}
.capacity__row{
  display:contents;
}
.capacity-item{
  padding:var(--space-4) var(--space-4) var(--space-5) 0;
  border-top:1px solid var(--line);
  display:flex; gap:var(--space-3);
}
.capacity-item:nth-child(2n){padding-left:var(--space-4)}
.capacity-item__num{
  font-size:var(--fs-body-lg); color:var(--ink); font-weight:var(--fw-medium);
  flex-shrink:0;
}
.capacity-item h3{font-size:var(--fs-h2);font-weight:var(--fw-medium);margin-bottom:var(--space-1)}
.capacity-item p{color:var(--text-on-light-dim);max-width:38ch}
.section--dark .capacity__head hr{border-top-color:var(--line-on-dark)}
.section--dark .capacity__sub{color:var(--text-on-dark-dim)}
.section--dark .capacity-item{border-top-color:var(--line-on-dark)}
.section--dark .capacity-item__num{color:var(--accent)}
.section--dark .capacity-item p{color:var(--text-on-dark-dim)}

/* ---- Mostras (galeria expansível) -------------------------------------------------- */
.showcase-section{background:#F3F0E6}
.showcase-section .section-head{margin-inline:auto}
.showcase{
  display:flex;
  gap:var(--space-2);
  height:560px;
  margin-top:var(--space-7);
}
.showcase__card{
  position:relative;
  flex:1 1 0;
  min-width:0;
  overflow:hidden;
  cursor:pointer;
  outline:none;
  transition:flex-grow .6s var(--ease);
}
.showcase__card.is-active{flex-grow:6}
.showcase__card:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.showcase__card img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(1) brightness(.85);
  transform:scale(1.08);
  transition:filter .6s var(--ease), transform .7s var(--ease);
}
.showcase__card.is-active img{filter:grayscale(0) brightness(1); transform:scale(1)}
.showcase__scrim{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(41,41,36,.92) 0%, rgba(41,41,36,.28) 55%, rgba(41,41,36,.04) 100%);
}
.showcase__card::before{
  content:'';
  position:absolute; left:var(--space-4); right:var(--space-4); bottom:0;
  height:2px; background:var(--accent);
  transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--ease) .1s;
}
.showcase__card.is-active::before{transform:scaleX(1)}
.showcase__body{
  position:absolute; inset:0; z-index:1;
  display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start;
  padding:var(--space-4);
  gap:6px;
}
.showcase__num{
  font-size:var(--fs-small); font-weight:var(--fw-medium); color:var(--accent);
  opacity:0; transform:translateY(6px);
  transition:opacity .35s var(--ease) .15s, transform .35s var(--ease) .15s;
}
.showcase__card.is-active .showcase__num{opacity:1; transform:none}
.showcase__title{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-size:.7rem;
  font-weight:var(--fw-light);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--text-on-dark-dim);
  white-space:nowrap;
  transition:font-size .3s var(--ease), color .3s var(--ease), letter-spacing .3s var(--ease);
}
.showcase__card.is-active .showcase__title{
  writing-mode:horizontal-tb;
  transform:none;
  font-size:var(--fs-h2);
  font-weight:var(--fw-light);
  letter-spacing:normal;
  text-transform:none;
  color:var(--text-on-dark);
  white-space:normal;
}
.showcase__desc{
  max-width:30ch;
  font-size:var(--fs-small);
  color:var(--text-on-dark-dim);
  max-height:0; opacity:0; overflow:hidden;
  transition:opacity .3s var(--ease), max-height .3s var(--ease);
}
.showcase__card.is-active .showcase__desc{opacity:1; max-height:6em; transition:opacity .3s var(--ease) .2s, max-height .3s var(--ease)}

/* ---- Perfil do arquiteto (card único, foto + card sobreposto) ------------------------ */
.profile-card{
  display:flex; align-items:stretch;
  margin-top:var(--space-7);
}
.profile-card__media{
  position:relative; flex-shrink:0;
  width:min(400px, 38vw);
  overflow:hidden;
}
.profile-card__media .ph{position:absolute; inset:0}
.profile-card__media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 12%}
.profile-card__body{
  position:relative;
  background:var(--paper);
  flex:1;
  display:flex; flex-direction:column; justify-content:center;
  padding:var(--space-5) var(--space-6);
  border:1px solid var(--line);
  border-left:0;
  border-radius:0;
  overflow:auto;
}
.profile-card__role{
  font-size:var(--fs-eyebrow); font-weight:var(--fw-semibold);
  letter-spacing:.3em; text-transform:uppercase; color:var(--gray);
  margin-bottom:var(--space-3);
}
.profile-card__name{
  font-size:clamp(1.7rem, 2.8vw, 2.4rem);
  font-weight:var(--fw-light);
  line-height:1.1;
  color:var(--ink);
  margin-bottom:var(--space-2);
}
.profile-card__bio{margin-top:var(--space-4)}
.profile-card__bio p{font-size:var(--fs-small); line-height:1.8; color:var(--text-on-light-dim); margin-top:var(--space-2)}
.profile-card__bio p:first-child{margin-top:0}
.profile-card__social{display:flex; gap:var(--space-2); margin-top:var(--space-4)}
.profile-card__social a{
  width:48px; height:48px; border-radius:50%;
  background:var(--ink); color:var(--paper);
  display:flex; align-items:center; justify-content:center;
  transition:background .25s var(--ease), transform .25s var(--ease);
}
.profile-card__social a:hover{background:var(--accent-deep); transform:translateY(-2px)}
.profile-card__social svg{width:18px; height:18px}
.section--pureblack{background:#000}

/* ---- Método (passo a passo com linha pontilhada) -------------------------------------- */
.method__timeline{
  max-width:820px;
  margin:var(--space-6) auto 0;
  display:flex; flex-direction:column; gap:var(--space-5);
  list-style:none;
  border-left:1px dashed var(--line-on-dark);
  padding-left:var(--space-6);
}
.method__phase{position:relative}
.method__phase-num{
  position:absolute; top:2px; left:calc(-1 * var(--space-6) - 21px);
  width:42px; height:42px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  border:1px solid var(--line-on-dark);
  background:var(--ink);
  font-size:var(--fs-small); font-weight:var(--fw-medium); color:var(--accent);
}
.method__phase-card{
  display:flex; gap:var(--space-4);
  padding:var(--space-4);
  border:1px solid var(--line-on-dark);
  border-radius:0;
  background:var(--ink-soft);
}
.method__phase-icon{
  flex-shrink:0;
  width:42px; height:42px;
  display:flex; align-items:center; justify-content:center;
  border-radius:0;
  background:rgba(245,242,233,.06);
  color:var(--accent);
}
.method__phase-icon svg{width:19px; height:19px}
.method__phase-body h3{font-size:var(--fs-h2); font-weight:var(--fw-medium); margin-bottom:var(--space-2); color:var(--text-on-dark)}
.method__phase-body p{color:var(--text-on-dark-dim); max-width:56ch; line-height:1.7}
.method__phase-list{margin-top:var(--space-3); display:flex; flex-direction:column; gap:10px}
.method__phase-list li{
  display:flex; align-items:baseline; gap:10px;
  font-size:var(--fs-small); color:var(--text-on-dark-dim);
}
.method__phase-list li::before{content:''; width:5px; height:5px; border-radius:50%; background:var(--accent); flex-shrink:0}
.method__footer{
  margin-top:var(--space-6);
  padding-top:var(--space-5);
  border-top:1px solid var(--line-on-dark);
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
  gap:var(--space-4);
}
.method__footer p{font-size:var(--fs-body-lg); font-weight:var(--fw-light); max-width:38ch; color:var(--text-on-dark)}

/* ---- Prova social --------------------------------------------------------------------- */
.testimonials{background:var(--paper-dim)}
.testimonial-slider{max-width:760px;margin-inline:auto;text-align:center;margin-top:var(--space-6)}
.testimonial{display:none}
.testimonial.is-active{display:block}
.testimonial blockquote{
  font-size:var(--fs-h2);
  font-weight:var(--fw-light);
  line-height:1.4;
}
.testimonial__author{margin-top:var(--space-3)}
.testimonial__author strong{display:block;font-weight:var(--fw-medium)}
.testimonial__author span{font-size:var(--fs-small);color:var(--text-on-light-dim)}
.testimonial-nav{
  display:flex;align-items:center;justify-content:center;gap:var(--space-4);
  margin-top:var(--space-4);
}
.testimonial-nav button{
  width:40px;height:40px;border:1px solid var(--line);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s var(--ease);
}
.testimonial-nav button:hover{background:var(--ph-light)}
.testimonial-nav button svg{width:16px;height:16px}
.testimonial-dots{display:flex;gap:6px}
.testimonial-dots button{
  width:6px;height:6px;border-radius:50%;background:var(--line);border:0;
}
.testimonial-dots button.is-active{background:var(--ink)}

/* ---- Mídia (grade de capas + lightbox) ----------------------------------------------------- */
.media--accent{background:#F3F0E6; color:var(--ink)}
.media-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:var(--space-2);
  margin-top:var(--space-7);
}
.media-grid__item{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  border-radius:4px;
  cursor:pointer;
  outline:none;
}
.media-grid__item:focus-visible{box-shadow:0 0 0 2px var(--ink)}
.media-grid__item img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(.2);
  transition:transform .5s var(--ease), filter .5s var(--ease);
}
.media-grid__item:hover img{transform:scale(1.05); filter:grayscale(0)}
.media-grid__overlay{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(41,41,36,.9) 0%, rgba(41,41,36,0) 55%);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:var(--space-3);
  opacity:0;
  transition:opacity .3s var(--ease);
}
.media-grid__item:hover .media-grid__overlay,
.media-grid__item:focus-visible .media-grid__overlay{opacity:1}
.media-grid__pub{font-size:var(--fs-small); font-weight:var(--fw-medium); color:var(--text-on-dark)}
.media-grid__date{font-size:.75rem; color:var(--text-on-dark-dim); margin-top:2px}
.media-grid__item--more{display:none}
.media-grid__item--more.is-revealed{display:block}
.media-grid__more{
  display:flex; margin:var(--space-5) auto 0;
  align-items:center; gap:10px;
  padding:14px 28px;
  border:1px solid var(--line);
  border-radius:0;
  font-size:var(--fs-small); font-weight:var(--fw-medium);
  letter-spacing:.04em;
  color:var(--ink);
  transition:background .25s var(--ease), border-color .25s var(--ease);
}
.media-grid__more:hover{background:rgba(41,41,36,.06); border-color:var(--text-on-light-dim)}
.media-grid__more svg{width:16px; height:16px; transition:transform .3s var(--ease)}
.media-grid__more.is-open svg{transform:rotate(180deg)}

/* ---- CTA final / CTA de projeto ---------------------------------------------------------- */
.cta-final{
  position:relative;
  color:var(--text-on-dark);
  overflow:hidden;
}
.cta-final .ph,
.cta-final > img{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover}
.cta-final .container{
  position:relative; z-index:1;
  padding-block:calc(var(--section-pad) * 0.85);
  text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:var(--space-3);
}
.cta-final::before{
  content:'';
  position:absolute; inset:0;
  background:rgba(41,41,36,.82);
  z-index:0;
}
.cta-final h2{font-size:var(--fs-display);font-weight:var(--fw-light);max-width:18ch}
.cta-final p{max-width:52ch;color:var(--text-on-dark-dim);font-size:var(--fs-body-lg)}
.cta-final .btn-cta{margin-top:var(--space-2)}

/* ---- Footer ------------------------------------------------------------------------------- */
.site-footer{background:#343331;color:var(--text-on-dark)}
.site-footer .container{padding-block:var(--space-6)}
.footer__top{
  display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:var(--space-5);
  padding-bottom:var(--space-5);
  border-bottom:1px solid var(--line-on-dark);
}
.footer__brand .logo{margin-bottom:var(--space-3)}
.logo--chip{background:var(--paper); padding:10px 14px}
.footer__social{display:flex;gap:var(--space-2);margin-top:var(--space-4)}
.footer__social a{
  width:36px;height:36px;border:1px solid var(--line-on-dark);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s var(--ease);
}
.footer__social a:hover{background:var(--ink-elev)}
.footer__social svg{width:16px;height:16px}
.footer__col h4{
  font-size:var(--fs-eyebrow);letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-on-dark-dim); margin-bottom:var(--space-2);
}
.footer__col a,.footer__col p{
  display:block; font-size:var(--fs-small); color:var(--text-on-dark-dim);
  padding-block:4px;
}
.footer__col a:hover{color:var(--text-on-dark)}
.footer__bottom{
  padding-top:var(--space-3);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--space-2);
  font-size:.75rem; color:var(--text-on-dark-dim);
}

/* ---- Página de macro-projeto ---------------------------------------------------------------- */
.page-hero{background:#343331;color:var(--text-on-dark)}
.page-hero .container{padding-block:var(--space-7) var(--space-6)}
.page-hero h1{font-size:var(--fs-display);font-weight:var(--fw-light);max-width:14ch}
.page-hero p{margin-top:var(--space-3);max-width:48ch;color:var(--text-on-dark-dim);font-size:var(--fs-body-lg)}
.breadcrumb{
  display:flex; gap:var(--space-1); align-items:center;
  font-size:var(--fs-small); color:var(--text-on-dark-dim);
  margin-bottom:var(--space-4);
}
.breadcrumb a:hover{color:var(--text-on-dark)}

.pbc-grid{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:var(--space-5);
  margin-top:var(--space-6);
}
.pbc{
  position:relative;
  width:min(440px, 90vw);
  aspect-ratio:1/1;
  border-radius:0;
  border:8px solid var(--paper);
  outline:1px solid var(--line);
  box-shadow:0 4px 24px rgba(0,0,0,.14);
  overflow:hidden;
  cursor:pointer;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.pbc:hover{transform:scale(1.015); box-shadow:0 12px 40px rgba(0,0,0,.22)}
.pbc__cover{position:absolute; inset:0; overflow:hidden}
.pbc__cover img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .6s var(--ease);
}
.pbc:hover .pbc__cover img{transform:scale(1.045)}
.pbc__blur{
  pointer-events:none;
  position:absolute; left:0; right:0; bottom:0; height:44%; z-index:1;
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  mask-image:linear-gradient(to top, black 0%, black 55%, transparent 100%);
  -webkit-mask-image:linear-gradient(to top, black 0%, black 55%, transparent 100%);
}
.pbc__scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(41,41,36,.64) 0%, rgba(41,41,36,0) 55%);
  pointer-events:none;
}
.pbc__body{
  position:absolute; inset:0; z-index:2;
  display:flex; align-items:flex-end; justify-content:space-between; gap:var(--space-3);
  padding:var(--space-4);
  color:var(--white);
}
.pbc__body h3{font-size:var(--fs-h2); font-weight:var(--fw-medium)}
.pbc__subtitle{font-size:var(--fs-body); font-weight:var(--fw-regular); color:rgba(255,255,255,.9); margin-top:2px}
.pbc__body p{font-size:var(--fs-small); color:rgba(255,255,255,.78); margin-top:4px}
.pbc__arrow{
  flex-shrink:0; width:44px; height:44px; border-radius:50%;
  background:var(--white); color:var(--ink);
  display:flex; align-items:center; justify-content:center;
  transition:transform .35s var(--ease);
}
.pbc:hover .pbc__arrow{transform:rotate(-45deg)}
.pbc__arrow svg{width:18px; height:18px}
.pbc__photos{display:none}

/* ---- Lightbox de projeto ---------------------------------------------------------------------- */
.lightbox{
  position:fixed; inset:0; z-index:100;
  background:rgba(41,41,36,.97);
  display:none;
  align-items:center; justify-content:center;
  padding:var(--space-3);
}
.lightbox.is-open{display:flex}
.lightbox__frame{
  position:relative;
  width:min(1100px, 100%);
  aspect-ratio:16/10;
}
.lightbox__frame img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:contain;
}
.lightbox__title{
  position:absolute; top:var(--space-3); left:var(--space-3);
  color:var(--white); font-size:var(--fs-small);
  background:rgba(255,255,255,.1); padding:6px 14px; border-radius:100px;
}
.lightbox__close,.lightbox__prev,.lightbox__next{
  position:absolute; z-index:2;
  color:var(--white);
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  transition:background .2s var(--ease);
}
.lightbox__close:hover,.lightbox__prev:hover,.lightbox__next:hover{background:rgba(255,255,255,.18)}
.lightbox__close{top:var(--space-3); right:var(--space-3)}
.lightbox__prev{left:var(--space-3); top:50%; transform:translateY(-50%)}
.lightbox__next{right:var(--space-3); top:50%; transform:translateY(-50%)}
.lightbox__close svg{width:18px; height:18px}
.lightbox__prev svg,.lightbox__next svg{width:22px; height:22px}
.lightbox__counter{
  position:absolute; bottom:var(--space-3); left:50%; transform:translateX(-50%);
  color:var(--white); font-size:var(--fs-small);
  background:rgba(255,255,255,.1); padding:6px 14px; border-radius:100px;
}

/* ---- Responsivo ------------------------------------------------------------------------------ */
@media (max-width:1200px){
  .footer__top{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1 / -1}
  .media-grid{grid-template-columns:repeat(3, 1fr)}
}

@media (max-width:900px){
  .nav-desktop{display:none}
  .nav-toggle{display:flex}
  .stats .container{grid-template-columns:1fr;}
  .stat{border-right:0;border-bottom:1px solid var(--line-on-dark);padding:var(--space-4) 0}
  .stat:first-child{padding-left:0}
  .stat:last-child{border-bottom:0}
  .gallery4__nav{display:none}
  .gallery4__card{width:82vw; min-height:420px}
  .capacity__grid{grid-template-columns:1fr}
  .capacity-item:nth-child(2n){padding-left:0}
  .profile-card{flex-direction:column; align-items:stretch; height:auto}
  .profile-card__media{width:100%; aspect-ratio:3/4}
  .profile-card__body{padding:var(--space-4); border-left:1px solid var(--line); border-top:0}
  .method__footer{padding-inline:var(--space-3)}
  .method__timeline{padding-left:var(--space-5)}
  .method__phase-num{width:34px; height:34px; left:calc(-1 * var(--space-5) - 17px); font-size:.7rem}
  .method__phase-card{flex-direction:column; padding:var(--space-3)}
  .method__phase-icon{width:36px; height:36px}
  .method__phase-icon svg{width:17px; height:17px}

  .showcase{flex-direction:column; height:640px}
  .showcase__card.is-active{flex-grow:6}
  .showcase__title{
    writing-mode:horizontal-tb; transform:none;
    font-size:var(--fs-small); letter-spacing:.1em; text-transform:uppercase;
  }
  .showcase__card.is-active .showcase__title{
    font-size:var(--fs-h2); letter-spacing:normal; text-transform:none; white-space:normal;
  }

  .media-grid{grid-template-columns:repeat(2, 1fr)}
}

@media (max-width:600px){
  .site-header .container{height:72px}
  .hero{min-height:calc(100vh - 72px); min-height:calc(100svh - 72px)}
  .hero__glue{white-space:normal}
  .hero__break--mobile{display:inline}
  .hero__break--desktop{display:none}
  .capacity__head{flex-wrap:wrap}
  .capacity__head h2{white-space:normal}
  .capacity__head hr{flex-basis:100%}
  .hero__row{flex-direction:column;align-items:flex-start}
  .footer__top{grid-template-columns:1fr}
  .footer__bottom{flex-direction:column}
  .btn-cta__label{padding:0 var(--space-3);height:52px}
  .btn-cta__arrow{width:52px;height:52px}
  .media-grid{gap:var(--space-1)}
}
