/* ============================================================
   WESTERN — estudo estrutural "quiet luxury"
   Reconstrução autoral: medidas levantadas página a página.
   Conteúdo, marca e assets = Western / placeholders próprios.
   ============================================================ */

/* ---------- Fontes (DS aprovado A2: Cabinet display · Satoshi corpo · mono nos dados) ---------- */
/* font-display:block — as fontes são locais (40kb) e chegam em ms;
   assim nenhum título pisca em Arial antes da Cabinet entrar. */
@font-face {
  font-family: "Cabinet Grotesk";
  src: url("../fonts/CabinetGrotesk-Variable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "Satoshi";
  src: url("../fonts/Satoshi-Variable.woff2") format("woff2-variations");
  font-weight: 300 900;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "Spline Sans Mono";
  src: url("../fonts/SplineSansMono-Variable.woff2") format("woff2-variations");
  font-weight: 300 700;
  font-style: normal;
  font-display: block;
}

/* ---------- Reset mínimo ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { height: auto; -webkit-text-size-adjust: 100%; scroll-behavior: auto; }
body { margin: 0; min-height: 100%; }

/* Escala fluida: no desktop o site inteiro escala com a viewport (1rem = 1vw) */
html { font-size: calc(0rem + 1vw); }
@media screen and (max-width: 991px) { html { font-size: 1rem; } }

/* Sem scrollbar, sem overscroll */
body::-webkit-scrollbar, body ::-webkit-scrollbar { display: none; }
html { scrollbar-width: none; }
body, html { overscroll-behavior: none; -webkit-font-smoothing: antialiased; }
::selection { background-color: var(--cobre); color: var(--marfim); text-shadow: none; }
a { color: inherit; }
svg { max-width: none; height: auto; box-sizing: border-box; vertical-align: middle; }
.hide { display: none !important; }
@media screen and (max-width: 991px) { .hide-tab { display: none !important; } }
@media screen and (max-width: 767px) { .hide-mobile-landscape { display: none !important; } }
@media screen and (max-width: 479px) { .hide-mob { display: none !important; } }
img { border: 0; vertical-align: middle; max-width: 100%; }
h1, h2, h3, h4, p, blockquote { margin: 0; font-size: inherit; font-weight: inherit; }
a { background-color: transparent; }
input, button { font: inherit; margin: 0; }
svg:not(:root) { overflow: hidden; }

/* ---------- Tokens (paleta FODA — B aprovado) ---------- */
:root {
  /* nomes legados apontam pros valores novos (menor ruído no resto do arquivo) */
  --beige: #F9F6ED;            /* marfim — página */
  --off-black: #191711;        /* tinta — texto */
  --lichen: #9AA284;           /* verde-sálvia */
  --cream: #F9F6ED;            /* marfim */
  --white: white;
  --travertin: #D8C7A7;        /* areia — painéis médios */
  --card: #EAE1CC;             /* bege-pedra — painel / etiqueta */
  --travertin-light: #EAE1CC;  /* bege-pedra */
  --sienne: #A15C38;           /* argila */
  --sauge: #6E7457;            /* verde-oliva */
  /* nomes novos */
  --marfim: #F9F6ED;
  --tinta: #191711;
  --tinta-aa: #15130F;         /* microtexto sobre pedra: contraste mínimo AA */
  --bege-pedra: #EAE1CC;
  --bege-claro: #F3EEE1;
  --areia: #D8C7A7;
  --pedra: #8A7B66;
  --terra: #503E2D;
  --cobre: #93755E;            /* acento da marca */
  --caramelo: #B6926F;         /* o cobre dos fundos escuros */
  --verde-western: #23261B;    /* inversa */
  --verde-floresta: #142615;   /* profunda / logo */
  --noise-opacity: .558;       /* .62 reduzido em 10% */
  --font-body: "Satoshi", "Helvetica Neue", Arial, sans-serif;
  /* Satoshi logo depois: a Cabinet e a Spline não têm as setas (↗ ↓ ↑ →), e sem ela o celular
     caía na fonte de emoji do sistema. Com ela, a seta é sempre o desenho da marca. */
  --font-display: "Cabinet Grotesk", "Satoshi", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "Spline Sans Mono", "Satoshi", ui-monospace, Consolas, monospace;
  /* a Cabinet não tem eixo de largura — stretch neutro */
  --display-stretch: 100%;
  --display-tracking: -0.02em;
}

body {
  background-color: var(--beige);
  color: var(--off-black);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.1;
}

.f-display {
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  letter-spacing: var(--display-tracking);
}

/* ---------- Grain global (vivo: salta de posição como grão de filme) ---------- */
@keyframes grao-vivo {
  0% { background-position: 50% 50%; }
  12.5% { background-position: 12% 32%; }
  25% { background-position: 72% 8%; }
  37.5% { background-position: 34% 82%; }
  50% { background-position: 88% 58%; }
  62.5% { background-position: 18% 16%; }
  75% { background-position: 62% 88%; }
  87.5% { background-position: 82% 38%; }
  100% { background-position: 50% 50%; }
}
.grain-bg {
  z-index: 1000;
  pointer-events: none;
  mix-blend-mode: color-dodge;
  background-image: url("../img/grain.png");
  background-position: 50%;
  background-size: 150px;
  width: 100%;
  height: 100vh;
  position: fixed;
  inset: 0%;
  opacity: var(--noise-opacity);
  animation: grao-vivo .9s steps(1) infinite;
}
@media (prefers-reduced-motion: reduce) {
  .grain-bg,
  .transicao-grao { animation: none; }
}

/* ---------- Navbar ---------- */
/* NAV — legibilidade garantida: sem mix-blend. A cor do texto e o
   véu se ajustam ao que estiver por baixo (ver initNavContraste). */
.navbar {
  z-index: 999;
  pointer-events: none;
  width: 100vw;
  height: 4rem;
  color: var(--marfim);
  justify-content: space-between;
  align-items: center;
  padding: 1.25rem;
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-weight: 700;
  display: flex;
  position: fixed;
  inset: 0% 0% auto;
  transition: color .35s ease;
}
.navbar::before {
  content: "";
  position: absolute;
  inset: -1.25rem -1.25rem auto;
  height: 6.5rem;
  background: linear-gradient(#191711d6 0%, #1917117a 42%, #19171100 100%);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
  z-index: 0;
}
.navbar > * { position: relative; z-index: 1; }
.navbar.is-sobre-foto::before { opacity: 1; }
/* sobre foto, o texto ganha um halo próprio — legível mesmo em céu claro */
.navbar.is-sobre-foto .nav-link, .navbar.is-sobre-foto .line-nav { text-shadow: 0 1px 10px #191711cc, 0 0 2px #19171166; }
.navbar.is-foto-esq .logo-nav { filter: drop-shadow(0 1px 6px #191711) drop-shadow(0 0 16px #191711aa); }
/* o véu só cobre o lado que precisa */
.navbar.is-foto-esq:not(.is-foto-dir)::before { background: linear-gradient(100deg, #191711cc 0%, #1917117a 34%, #19171100 62%); }
.navbar.is-foto-dir:not(.is-foto-esq)::before { background: linear-gradient(260deg, #191711cc 0%, #1917117a 40%, #19171100 68%); }
/* menu (direita) e logo (esquerda) escurecem independentes */
.navbar.is-claro { color: var(--tinta); }
.logo-nav { pointer-events: auto; width: 6.8rem; color: inherit; display: block; position: relative; }
.logo-nav svg, .logo-nav img { display: block; width: 100%; height: auto; }
/* três versões da marca: bege (fundo escuro), branca (sobre foto) e verde (fundo claro) */
.logo-nav .logo-escuro, .logo-nav .logo-branco { position: absolute; inset: 0; opacity: 0; transition: opacity .35s ease; }
.logo-nav .logo-claro { transition: opacity .35s ease; }
.navbar.is-claro-esq .logo-nav .logo-escuro { opacity: 1; }
.navbar.is-claro-esq .logo-nav .logo-claro { opacity: 0; }
.navbar.is-foto-esq .logo-nav .logo-branco { opacity: 1; }
.navbar.is-foto-esq .logo-nav .logo-claro { opacity: 0; }
/* menu: cabe sem colidir com o logo em telas médias */
@media screen and (max-width: 1200px) {
  .nav-r { grid-column-gap: .7rem; }
  .nav-link { font-size: .58rem; letter-spacing: .08em; }
  .logo-nav { width: 5.6rem; }
}
@media screen and (max-width: 1040px) {
  .nav-r .nav-link[href^="https"], .nav-r .line-nav { display: none !important; }
}
.nav-r {
  grid-column-gap: .9375rem;
  grid-row-gap: .9375rem;
  pointer-events: auto;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}
.nav-link {
  letter-spacing: .1em;
  text-transform: uppercase;
  font-size: .625rem;
  line-height: 1.3;
  text-decoration: none;
  color: inherit;
  opacity: .55;
  font-weight: 700;
  transition: opacity .3s, font-weight .4s ease;
}
.nav-link:hover { font-weight: 880; }
.nav-link.w--current { font-weight: 850; }
.nav-link.w--current, .nav-link:hover, .nav-link.is-bright { opacity: 1; }
.nav-link.menu { display: none; }
.line-nav { justify-content: center; align-items: center; width: 1.25rem; display: flex; opacity: .4; }

/* ---------- PT / EN ---------- */
.lang-switch {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: .28rem;
  margin-left: .35rem;
  font-family: var(--font-mono);
  font-size: .56rem;
  letter-spacing: .1em;
}
.lang-switch .lang-op {
  background: none;
  border: 0;
  padding: .1rem .05rem;
  color: inherit;
  opacity: .5;
  cursor: pointer;
  font: inherit;
  letter-spacing: inherit;
  transition: opacity .3s ease;
}
.lang-switch .lang-op:hover { opacity: .85; }
.lang-switch .lang-op.is-on { opacity: 1; color: var(--caramelo); }
.navbar.is-claro .lang-switch .lang-op.is-on { color: var(--cobre); }
.lang-switch .lang-sep { opacity: .3; }
.lang-switch.is-mob { margin: 1rem 0 0; font-size: .75rem; }
@media screen and (max-width: 479px) { .navbar .lang-switch:not(.is-mob) { display: none; } }

/* ---------- Links com rolagem de letras ---------- */
.hover-link-wrap, .hover-link-line { overflow: hidden; position: relative; display: block; }
.hover-link-top, .hover-link-bottom { white-space: nowrap; }
.hover-link-bottom { position: absolute; top: 0; left: 0; }
.hover-link-top span, .hover-link-bottom span {
  display: inline-block;
  will-change: transform;
  transition: transform .55s cubic-bezier(.16, 1, .3, 1);
  transition-delay: calc(var(--i, 0) * .018s);
}
.hover-link-bottom span { transform: translate(0, 100%); }
a:hover > .hover-link-wrap .hover-link-top span,
a:hover > div .hover-link-top span,
.roll-hover:hover .hover-link-top span { transform: translate(0, -100%); }
a:hover > .hover-link-wrap .hover-link-bottom span,
a:hover > div .hover-link-bottom span,
.roll-hover:hover .hover-link-bottom span { transform: translate(0, 0); }

/* ---------- Menu overlay (mobile) ---------- */
.menu_w {
  z-index: 997;
  background-color: var(--cream);
  width: 100%;
  height: 100vh;
  padding: 1.25rem 1.25rem 7rem;
  display: none;
  position: fixed;
  inset: 0%;
}
.nav-menu { color: var(--off-black); justify-content: flex-end; align-items: center; display: flex; }
.menu_w_item { flex-flow: column; justify-content: space-between; align-items: center; height: 100%; display: flex; }
.nav-r.mob { color: var(--off-black); flex-flow: column; display: flex; align-items: center; gap: .9375rem; }
.nav-link.mob { font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: .625rem; font-weight: 700; opacity: 1; }
.logo-landing-big { mix-blend-mode: overlay; width: 34.375rem; }
.logo-landing-big.menu { height: auto; }

/* ---------- Containers ---------- */
.section { width: 100vw; position: relative; }
.section.projets, .section.projets-copy { min-height: 100vh; }
.container {
  z-index: 1;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 1.25rem;
  position: relative;
}
.container.project-hero {
  flex-flow: column;
  justify-content: space-between;
  align-items: stretch;
  min-height: 100vh;
  padding: 11.25rem .625rem .625rem;
  display: flex;
}

/* ---------- Hero /projets ---------- */
.hero-projects_w {
  grid-column-gap: 2.5rem;
  grid-row-gap: 2.5rem;
  flex-flow: column;
  justify-content: space-between;
  align-items: center;
  display: flex;
}
.h1-project_w { text-align: center; margin-left: auto; margin-right: auto; }
.h2-subtitle-about {
  z-index: 11;
  text-align: center;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-size: .5rem;
  font-weight: 600;
  line-height: 1.3;
  position: relative;
}
/* CAIXA — regra única do sistema: títulos display em sentence case;
   CAIXA ALTA só nos micro-rótulos (≤ .75rem). */
.h1-project-temp {
  text-align: center;
  text-wrap: pretty;
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  letter-spacing: var(--display-tracking);
  font-size: 3.75rem;
  font-weight: 500;
  line-height: .94;
}

/* linhas mascaradas (reveal de títulos) */
.mask-line { display: block; overflow: hidden; padding: .09em 0; margin: -.09em 0; }
.mask-line > .mask-inner { display: block; transform: translateY(100%); will-change: transform; }

/* ---------- Filtros ---------- */
.filtre_w_flip {
  z-index: 10;
  justify-content: center;
  align-items: flex-start;
  padding-top: 3.4rem;
  min-height: 6rem;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  position: fixed;
  inset: 0% 0% auto;
  pointer-events: none;
}
.filtre_w_flip .filtre_w { pointer-events: auto; }
.filtre_list {
  grid-column-gap: 1.875rem;
  grid-row-gap: 1.875rem;
  background-color: var(--card);
  justify-content: space-between;
  align-items: center;
  padding: 1.875rem;
  display: flex;
}
.filtre_item { cursor: pointer; font-size: .75rem; font-weight: 500; opacity: .45; transition: opacity .3s; }
.filtre_item:hover, .filtre_item.is-on { opacity: 1; }
.filtre_item > div { padding-bottom: .3rem; border-bottom: 1px solid transparent; transition: border-color .3s; }
.filtre_item.is-on > div { border-color: var(--cobre); }

/* ---------- Grid /projets — estado 1 (tira) ---------- */
.project-grid_item { flex: none; width: 100%; height: 13.5rem; overflow: hidden; }
.project-grid_item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.grid__state__1 {
  grid-column-gap: .625rem;
  grid-row-gap: 5rem;
  grid-template-rows: auto;
  grid-template-columns: repeat(10, 1fr);
  grid-auto-columns: 1fr;
  height: 13.5rem;
  display: grid;
}

/* ---------- Grid /projets — estado 2 ---------- */
.collection-list-wrapper { width: 100%; }
.grid__state_2 {
  grid-column-gap: .625rem;
  grid-row-gap: 3.125rem;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}
.grid__state_2.rowified { display: flex; flex-direction: column; width: 100%; }
.grid__state__2__row { display: grid; gap: .625rem; width: 100%; }
.grid__state__2__item {
  grid-column-gap: .625rem;
  grid-row-gap: .625rem;
  flex-flow: column;
  justify-content: space-between;
  align-items: flex-start;
  display: flex;
}
.grid__state__2__link {
  flex-flow: column;
  justify-content: flex-end;
  align-items: flex-end;
  width: 100%;
  height: 36vw;
  text-decoration: none;
  display: flex;
  position: relative;
  color: var(--off-black);
}
.grid__state__2__link .image-7 { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.image-7, .fake-mob, .image-8, .fakediv { display: none; }
.flex-grid-info { justify-content: space-between; align-items: center; width: 100%; display: flex; }
.text-block-3 { font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: .75rem; font-weight: 700; line-height: 1.3; }
.info-cat { font-family: var(--font-body); font-size: .6875rem; font-weight: 500; line-height: 1.3; }

/* ---------- Etiqueta hover ---------- */
.etiquette-project_list {
  min-height: 7.5rem;
  text-decoration: none;
  display: flex;
  position: absolute;
  inset: auto .625rem .625rem;
  z-index: 3;
  visibility: visible;
  clip-path: inset(100% 0% 0%);
}
/* Etiqueta v2 (C3 aprovada): bege-pedra, UMA aresta curva, facetas
   delicadas em cobre no canto, nome Cabinet 800, ano em mono, ↗ cobre. */
.home-slider_btn {
  pointer-events: auto;
  display: flex;
  flex-flow: column;
  justify-content: center;
  gap: .45rem;
  width: 100%;
  height: 100%;
  padding: 1.1rem 1.4rem 1rem;
  font-size: .75rem;
  font-weight: 500;
  position: relative;
  overflow: hidden;
  background-color: var(--bege-pedra);
  color: var(--off-black);
  border-radius: 2px 4.5rem 2px 2px;
}
.home-slider_btn.project-list { height: auto; min-height: 6.4rem; }
.etq-lin1 { display: flex; align-items: baseline; justify-content: space-between; gap: 1.4rem; padding-right: 2.2rem; position: relative; z-index: 2; }
.etq-lin2 { display: flex; align-items: center; justify-content: space-between; gap: 1.4rem; position: relative; z-index: 2; }
.etq-vai { font-size: .85rem; line-height: 1; color: var(--cobre); transition: transform .3s cubic-bezier(.22, 1, .36, 1); }
a:hover .etq-vai, .roll-hover:hover .etq-vai { transform: translate(3px, -3px); }
.etq-facetas {
  position: absolute;
  right: -2.2rem;
  top: -2rem;
  width: 13rem;
  height: 9rem;
  opacity: .22;
  pointer-events: none;
  z-index: 1;
}
.etq-facetas svg { width: 100%; height: 100%; display: block; }

/* Metadados em duas pontas, sem assinatura gráfica entre os dados. */
.ws-meta {
  --meta-accent: var(--cobre);
  position: relative;
  z-index: 2;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .55rem;
  color: var(--tinta-aa);
  font-family: var(--font-mono);
  font-size: .55rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.ws-meta > span:first-child,
.ws-meta > span:last-child { white-space: nowrap; }
.etq-meta { margin-top: .05rem; }
.etq-meta .ws-meta-end { display: inline-flex; align-items: center; gap: .55rem; }
.etq-meta .etq-vai { color: var(--meta-accent); }
.home-slider_btn.is-escuro .etq-meta,
.project-hero-left.is-dark .ws-meta {
  --meta-accent: var(--caramelo);
  color: var(--marfim);
}
.h2-project-btn.project-list { font-size: 1.25rem; }
.info-project-left {
  grid-column-gap: 1.25rem;
  grid-row-gap: 1.25rem;
  flex-flow: column;
  justify-content: space-between;
  align-self: stretch;
  align-items: flex-start;
  display: flex;
}
.info-project-right { text-align: right; flex-flow: column; justify-content: space-between; align-items: flex-end; display: flex; }
.info-project-arrow { justify-content: center; align-items: center; width: .5rem; height: .5rem; display: flex; position: absolute; inset: .5rem .5rem auto auto; color: var(--cobre); transition: transform .3s cubic-bezier(.22, 1, .36, 1); }
a:hover .info-project-arrow { transform: translate(3px, -3px); }
.arrow-contact-link, .arrow-submit-form { color: var(--cobre); }
.ms-svg-banner { mix-blend-mode: darken; justify-content: center; align-items: center; width: 12rem; height: 5rem; display: flex; }
.ms-svg-banner.project-list { mix-blend-mode: overlay; object-fit: contain; width: auto; height: 100%; }
.ms-svg-banner.project-list svg { height: 100%; width: auto; display: block; }
/* o relevo dentro de etiquetas tem teto — svg quadrado não pode estourar o card */
.etiquette-project_list .ms-svg-banner.project-list svg { height: 5rem; max-width: 100%; }
.etiquette-project_list .home-slider_btn.project-list { max-height: 9rem; }

/* ---------- Footer ---------- */
.footer { width: 100vw; position: relative; }
.container-footer { position: relative; }
.container-top-footer { justify-content: space-between; align-items: flex-end; width: 100%; padding: 2.5rem; display: flex; }
.desc-projet { max-width: 20rem; font-size: 1.25rem; line-height: 1.1; }
.flex-40 { grid-column-gap: 2.5rem; grid-row-gap: 2.5rem; justify-content: flex-start; align-items: center; display: flex; }
.contact-footer {
  grid-column-gap: .625rem;
  grid-row-gap: .625rem;
  pointer-events: auto;
  letter-spacing: .1em;
  text-transform: uppercase;
  justify-content: flex-start;
  align-items: center;
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-size: .6rem;
  font-weight: 700;
  text-decoration: none;
  color: inherit;
  display: flex;
}
.arrow-contact-link { flex: none; justify-content: center; align-items: center; width: .375rem; height: .375rem; display: flex; }
.arrow-contact-link svg, .arrow-submit-form svg { display: block; width: 100%; height: 100%; }
.grid-footer { width: 100%; display: flex; position: relative; }
.footer-bg { width: 100%; height: 30.625rem; display: grid; grid-template-columns: 1fr 1fr; }
.bg-footer { width: 100%; object-fit: cover; display: block; }
.bg-footer.cream.hide-tab { height: 32.1875rem; }
.card-footer-w { justify-content: center; align-items: flex-start; display: flex; position: absolute; inset: 0%; }
.card-contact_project { pointer-events: auto; width: 33rem; height: 19.375rem; padding: .8rem 1rem; position: relative; }
.card-contact_project.is-footer {
  z-index: 1;
  background-color: var(--cream);
  outline: .3rem solid var(--cream);
  outline-offset: 0;
  flex: none;
  width: 33.75rem;
  height: 20.25rem;
}
.card_contact_w { width: 100%; height: 100%; display: flex; }
.news-letter-card {
  background-color: #EAE1CC90;
  flex-flow: column;
  justify-content: space-between;
  align-items: flex-start;
  width: 50%;
  margin: .4375rem 0 .4375rem .4375rem;
  padding: 2.5rem;
  display: flex;
}
.text-block-2 { font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: .75rem; font-weight: 700; }
.news-form { justify-content: space-between; align-items: flex-start; width: 100%; height: 1.5rem; display: flex; position: relative; }
.field-form {
  width: 100%;
  height: 100%;
  color: var(--off-black);
  letter-spacing: .1em;
  text-transform: uppercase;
  background-color: transparent;
  border: 0 solid #000;
  border-bottom-width: .05rem;
  margin-bottom: 0;
  padding: 0 0 .5rem;
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-size: .5rem;
  font-weight: 600;
  line-height: 1.1;
}
.field-form:focus, .field-form:focus-visible { outline: none; }
.field-form::placeholder { color: var(--off-black); }
.fake-submit_w { justify-content: center; align-items: center; width: .375rem; height: .375rem; margin-top: 1px; display: flex; position: relative; }
.submit-btn { opacity: 0; background-color: transparent; border: 0; width: 100%; height: 100%; position: absolute; inset: 0%; cursor: pointer; }
.arrow-submit-form { flex: none; justify-content: center; align-items: center; width: .375rem; height: .375rem; display: flex; }
.card-svg_w {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  flex-flow: column;
  justify-content: space-between;
  align-items: center;
  width: 50%;
  height: 100%;
  padding: 2.5rem;
  display: flex;
  position: relative;
}
.card-ms-svg { justify-content: center; align-items: center; width: 10.5625rem; height: 4.375rem; display: flex; position: relative; right: -1px; }
.card-ms-svg svg { width: 100%; height: 100%; display: block; }
.card-ms-svg img { opacity: .92; }
.card-line-svg { mix-blend-mode: overlay; justify-content: center; align-items: center; margin-right: .3rem; display: flex; }
.card-address {
  text-align: center;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-size: .5rem;
  font-weight: 600;
  line-height: 1.3;
}
.cadre-contact { pointer-events: none; mix-blend-mode: overlay; justify-content: center; align-items: center; width: 100%; height: 100%; display: flex; position: absolute; inset: 0%; }
.cadre-contact.is-project { display: none; }
.cadre-contact.is-project.is-footer { display: block; }
.container-bottom-footer { justify-content: space-between; align-items: flex-end; width: 100%; margin-top: -.8rem; padding: 1.25rem; display: flex; }
.container-bottom-footer.is-menu { z-index: 5; width: 50%; color: var(--cream); position: absolute; inset: auto 0% 0%; margin-top: 0; }
.footer-link { text-transform: uppercase; font-size: .625rem; font-weight: 600; line-height: 1.3; text-decoration: none; color: inherit; }
.footer-link-left { grid-column-gap: 2.5rem; grid-row-gap: 2.5rem; justify-content: flex-start; align-items: center; min-width: 10.625rem; display: flex; }
.code-embed-5 { justify-content: center; align-items: center; display: flex; }
.footer-link-right { justify-content: flex-end; align-items: center; min-width: 10.625rem; display: flex; }

/* ---------- Home slider (listas fixas, wrap = pista de rolagem) ---------- */
.voile {
  z-index: 2;
  pointer-events: none;
  background-image: linear-gradient(#19171166, #0000);
  width: 100%;
  height: 20rem;
  display: block;
  position: fixed;
  inset: 0% 0% auto;
}
.home-slider_w { width: 100%; position: relative; height: 100vh; z-index: 1; pointer-events: none; display: flex; flex-direction: row; }
.home-slider_w .home-slider_list_w { position: fixed; top: 0; height: 100vh; }
.home-slider_w .home-slider_list_w.left { left: 0; width: calc(50% + 1px); }
.home-slider_w .home-slider_list_w.right { right: 0; width: calc(50% + 1px); }
.home-slider_w .home-slider_list { position: relative; width: 100%; height: 100%; }
.home-slider_item { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; }
.slider-left, .slider-right { flex: 1 1 0%; width: 50%; height: 100%; overflow: hidden; position: relative; }
.home-slider_list_w.left .slider-left, .home-slider_list_w.right .slider-right { width: 100%; }
.slider-left img, .slider-right img { width: 100%; height: 100%; object-fit: cover; display: block; max-width: none; }
.home-slider_btn_w { position: fixed; bottom: 2rem; left: 50%; transform: translate(-50%); z-index: 100; pointer-events: auto; }
.home-slider_btn_list_w, .home-slider_btn_list { position: relative; }
.home-slider_btn_list { width: 37.5rem; height: 100%; min-height: 7.5rem; overflow: hidden; }
.home-slider_btn_item { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.home-slider-link { width: 100%; height: 100%; text-decoration: none; color: var(--off-black); display: block; }
.code-embed-9 { width: 12rem; height: 100%; align-self: center; display: flex; align-items: center; justify-content: center; }
.code-embed-9 svg { width: 100%; height: auto; display: block; }
.hide-desk { display: none; }
.div-block-9 { position: fixed; left: 1.25rem; bottom: 1.25rem; z-index: 3; opacity: .5; font-size: .75rem; font-weight: 600; }
.div-block-9 a { color: inherit; text-decoration: none; }
.div-block-10 { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 3; opacity: .5; font-size: .75rem; font-weight: 600; }
@media (max-width: 991px) {
  .home-slider_w { flex-direction: column; }
  .home-slider_w .home-slider_list_w.left, .home-slider_w .home-slider_list_w.right { width: 100%; height: calc(50svh + 1px); position: fixed; left: 0; right: 0; }
  .home-slider_w .home-slider_list_w.left { top: 0; }
  .home-slider_w .home-slider_list_w.right { top: calc(50svh - 1px); }
  /* card central sobre a emenda das metades (vídeo mobile) */
  .home-slider_btn_w { position: fixed; inset: 0; left: 0; bottom: auto; transform: none; width: 100%; height: 100svh; display: flex; align-items: center; justify-content: center; pointer-events: none; }
  .home-slider_btn_list_w, .home-slider_btn_list { width: 100%; }
}

/* ---------- Cortinas de transição ---------- */
.transition-curtains { position: fixed; inset: 0; z-index: 998; pointer-events: none; display: flex; }
.curtain { width: 50%; height: 0%; background: #191711; position: absolute; }
.curtain-left { left: 0; bottom: 0; }
.curtain-right { right: 0; top: 0; }

/* ---------- CTA com cara de botão (clareza para todo público) ---------- */
.cta-caixa {
  background-color: var(--card);
  padding: 1.15rem 1.7rem;
  display: inline-flex;
  align-items: center;
  gap: 1.1rem;
  transition: background-color .25s ease, transform .25s ease;
  cursor: pointer;
}
.cta-caixa:hover { background-color: var(--areia); transform: translateY(-2px); }
.filtre_item > div, button[data-tom], [data-faq], .caderno-inner, .catalogo-card { cursor: pointer; }

/* ---------- Especifique — tríptico P&B que ganha cor ---------- */
.catalogo-tris {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: .625rem;
  padding: 0 .625rem;
}
.catalogo-card {
  position: relative;
  height: 74vh;
  overflow: hidden;
  display: block;
  text-decoration: none;
  color: var(--cream);
}
.catalogo-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(1);
  transform: scale(1.001);
  transition: filter .7s ease, transform 1.1s cubic-bezier(.16, 1, .3, 1);
}
.catalogo-card:hover img { filter: grayscale(0); transform: scale(1.045); }
.catalogo-card::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 9rem;
  background: linear-gradient(#0000, #19171180);
  pointer-events: none;
}
.catalogo-rotulo {
  position: absolute;
  left: 1.5rem;
  bottom: 1.4rem;
  right: 1.5rem;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
}
.catalogo-rotulo .nome {
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1;
  transition: font-weight .45s ease;
}
.catalogo-card:hover .nome { font-weight: 880; }

/* Hover de peso variável — padrão dos links em tamanho display */
.bg-video_w a { text-decoration: none; color: inherit; font-weight: 700; transition: font-weight .45s ease; }
.bg-video_w a:hover { font-weight: 870; }
.catalogo-rotulo .acao {
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: var(--font-display);
  font-size: .5625rem;
  font-weight: 600;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .45s ease, transform .45s ease;
}
.catalogo-card:hover .acao { opacity: 1; transform: translateY(0); }
@media screen and (max-width: 991px) {
  .catalogo-tris { grid-template-columns: 1fr; padding: 0 1.25rem; }
  .catalogo-card { height: 52vh; }
  .catalogo-card img { filter: grayscale(0); }
  .catalogo-rotulo .acao { opacity: 1; transform: none; }
}

/* Rodapé final: contato e navegação, sem cartão cenográfico. */
.footer { background: var(--bege-claro); overflow: hidden; }
.footer .grid-footer:not(.is-legals) { display: none !important; }
.footer .container-top-footer { min-height: 18rem; padding: 6rem 2.5rem 2.5rem; border-bottom: 1px solid rgba(25,23,17,.16); }
.footer .container-top-footer .desc-projet { max-width: 28rem; font-family: var(--font-display); font-size: clamp(1.8rem, 3vw, 3.25rem); line-height: 1; letter-spacing: -.025em; }
.footer .container-bottom-footer { margin-top: 0; padding: 1.25rem 2.5rem; align-items: center; }
.footer .container-bottom-footer > .code-embed-5 { display: none !important; }
.footer .container-bottom-footer .footer-link-left,
.footer .container-bottom-footer .footer-link-right { min-width: 0; }

/* Processo: uma abertura legível substitui o experimento de painéis. */
.process-pin { display: none !important; }
.process-intro {
  min-height: 100svh;
  display: grid;
  grid-template-columns: 58% 42%;
  background: var(--bege-claro);
}
.process-intro-media { position: relative; overflow: hidden; }
.process-intro-media img { width: 100%; height: 100%; object-fit: cover; }
.process-intro-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,38,21,.3), transparent 45%); }
.process-intro-media > span { position: absolute; z-index: 2; left: 1.5rem; bottom: 1.25rem; color: var(--marfim); font-family: var(--font-mono); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.process-intro-copy { padding: 7rem 2.5rem 2.5rem; display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; }
.process-intro-copy h1 { margin: auto 0 0; font-family: var(--font-display); font-size: clamp(4rem, 6.2vw, 7rem); font-weight: 500; line-height: .84; letter-spacing: -.045em; }
.process-intro-copy p { max-width: 30rem; font-size: 1rem; line-height: 1.55; }
.process-intro-note { width: 100%; padding-top: 1rem; border-top: 1px solid currentColor; display: flex; justify-content: space-between; gap: 1rem; font-family: var(--font-mono); font-size: .55rem; line-height: 1.3; letter-spacing: .1em; text-transform: uppercase; }
.process-missing-media { padding: 2rem; background: var(--verde-western); color: var(--marfim); display: flex; flex-direction: column; justify-content: flex-end; gap: .8rem; }
.process-missing-media::before { content: ""; position: absolute; inset: 1rem; border: 1px solid rgba(244,240,228,.35); }
.process-missing-media span,
.process-missing-media strong,
.process-missing-media small { position: relative; z-index: 1; max-width: 30rem; }
.process-missing-media span { margin-bottom: auto; font-family: var(--font-mono); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.process-missing-media strong { font-family: var(--font-display); font-size: clamp(1.8rem, 3.2vw, 3.6rem); font-weight: 500; line-height: .98; }
.process-missing-media small { font-size: .72rem; line-height: 1.4; opacity: .65; }

@media screen and (max-width: 991px) {
  .footer .container-top-footer { min-height: 22rem; padding: 5rem 1.25rem 2rem; flex-direction: column; align-items: flex-start; }
  .footer .container-bottom-footer { padding: 1rem 1.25rem; }
  .footer .footer-link-left { gap: 1rem; }
  .process-intro { display: flex; flex-direction: column; }
  .process-intro-media { min-height: 62svh; }
  .process-intro-copy { min-height: 72svh; padding: 5rem 1.25rem 2rem; }
  .process-intro-copy h1 { font-size: 15vw; }
}

/* ============================================================
   WESTERN STORE — página-ponte B2B
   A Store vende; esta página posiciona e encaminha.
   ============================================================ */

/* ---------- Obra — ficha e citação ---------- */
.obra-ficha { display: flex; gap: 3.5rem; align-items: flex-end; flex-wrap: wrap; }
.obra-quote { max-width: 30rem; font-size: 1.5rem; line-height: 1.25; }
.obra-quote-pedra { width: 1.6rem; height: 1.6rem; opacity: .75; }
.obra-quote-pedra svg { width: 100%; height: 100%; }
/* ETIQUETA CENTRAL (home) — veste a cor da obra e troca de tom a cada
   slide; o recorte é simétrico para funcionar centralizado. */
.home-slider_btn.is-central {
  border-radius: 2px 4.5rem 2px 4.5rem;
  padding: 1.5rem 2rem 1.4rem;
  gap: .6rem;
  box-shadow: 0 1.6rem 4rem -2rem #19171180;
  transition: background-color .9s cubic-bezier(.22, 1, .36, 1), color .9s ease;
}
.home-slider_btn.is-central .etq-facetas { right: -3rem; top: -2.6rem; width: 16rem; height: 11rem; opacity: .2; }
.home-slider_btn.is-central .h2-project-btn { font-size: 1.7rem; }
/* sobre tom escuro, tudo clareia junto */
.home-slider_btn.is-escuro { color: var(--marfim); }
.home-slider_btn.is-escuro .etq-ano { color: #F9F6EDa8; }
.home-slider_btn.is-escuro .etq-cat { color: #F9F6EDb0; }
.home-slider_btn.is-escuro .etq-vai { color: var(--caramelo); }
.home-slider_btn.is-escuro .etq-facetas svg { stroke: var(--caramelo); }

/* ---------- Revenda — como funciona ---------- */
.container.revenda-como {
  padding: 7.5rem 2.5rem;
  display: grid;
  grid-template-columns: 1fr .8fr;
  gap: 5rem;
  align-items: center;
}
@media screen and (max-width: 991px) {
  .container.revenda-como { grid-template-columns: 1fr; gap: 3rem; padding: 3.75rem 1.25rem; }
  .container.revenda-como .test-block.in { justify-self: center; height: 26rem; }
}

/* ---------- Próxima parada — nenhuma página simplesmente acaba ---------- */
.proxima-parada {
  width: 100%;
  padding: 8rem 2.5rem 7rem;
  display: flex;
  flex-flow: column;
  align-items: center;
  gap: 1.6rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.pp-rotulo {
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-size: .5625rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: .8rem;
}
.pp-rotulo svg { width: .8rem; height: .8rem; }
.pp-link {
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  letter-spacing: var(--display-tracking);
  font-weight: 600;
  font-size: 6rem;
  line-height: .95;
  text-transform: lowercase;
  text-decoration: none;
  color: var(--off-black);
  position: relative;
  padding-bottom: .06em;
  transition: font-weight .45s ease;
}
.pp-link:hover { font-weight: 800; }
.pp-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: .09em;
  background: var(--pp-cor, var(--off-black));
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .55s cubic-bezier(.16, 1, .3, 1);
}
.pp-link:hover::after { transform: scaleX(1); }
@media screen and (max-width: 767px) {
  .proxima-parada { padding: 5rem 1.25rem 4.5rem; }
  .pp-link { font-size: 3rem; }
}

/* ---------- Janela de escala (zoom nítido por clip, sem blur) ---------- */
.escala-visual {
  position: absolute;
  inset: 0;
  z-index: 10;
  clip-path: inset(50% 50% 50% 50%);
  pointer-events: none;
  overflow: hidden;
}
.escala-visual > img, .escala-visual .seq-stage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.escala-visual .seq-stage { position: absolute; inset: 0; opacity: 0; }
.escala-visual .seq-stage:first-child { opacity: 1; }

/* ---------- Transição de página (contraponto mineral + grão) ---------- */
.transicao {
  --registro-largura: min(58px, 13vw);
  --registro-altura: calc(var(--registro-largura) * var(--registro-ratio));
  --registro-viewport: 100vh;
  position: fixed;
  inset: 0;
  z-index: 1600;
  display: flex;
  visibility: hidden;
  pointer-events: none;
  overflow: hidden;
  /* O fundo precisa desaparecer com as metades, nunca encobrir a revelação. */
  background: transparent;
  isolation: isolate;
}
.transicao-metade {
  flex: 0 0 calc(50% + 1px);
  width: calc(50% + 1px);
  height: 100%;
  position: relative;
  overflow: hidden;
  clip-path: inset(100% 0% 0%);
  transform: translateZ(0);
  backface-visibility: hidden;
}
.transicao-metade + .transicao-metade { margin-left: -2px; }
.transicao-metade:first-child { background-color: var(--transicao-cor-a, var(--pedra)); }
.transicao-metade:nth-child(2) { background-color: var(--transicao-cor-b, var(--areia)); }
.transicao.is-moving .transicao-metade { will-change: clip-path; }
.transicao-grao {
  position: absolute;
  inset: -2px;
  background-image: url("../img/grain.png");
  background-position: 50%;
  background-size: 150px;
  mix-blend-mode: color-dodge;
  opacity: var(--noise-opacity);
  /* O padrão acompanha sua cortina e volta ao mesmo registro entre documentos. */
  animation: none;
}
.transicao-registro { position: absolute; inset: 0; display: flex; pointer-events: none; color: var(--registro-tinta, #F9F6ED); }
.transicao-registro-metade { position: relative; width: 50%; height: 100%; overflow: hidden; }
.transicao-registro-janela { position: absolute; inset: 0; clip-path: inset(calc(50% - var(--registro-altura) * 1.2) 0); }
.transicao-registro-transporte { position: absolute; inset: 0; }
.transicao-registro svg { position: absolute; top: 50%; left: 100%; width: var(--registro-largura); height: var(--registro-altura); max-width: none; fill: currentColor; transform: translate(-50%, -50%); }
.transicao-registro-metade + .transicao-registro-metade svg { left: 0; }
.transicao.is-moving .transicao-registro-transporte { will-change: transform; }
@supports (height: 100dvh) { .transicao { --registro-viewport: 100dvh; } }
@media (prefers-reduced-motion: reduce) { .transicao-registro { display: none; } }

/* ---------- Página: transição simples ---------- */
.page-fade { position: fixed; inset: 0; background: var(--cream); z-index: 2000; pointer-events: none; opacity: 0; transition: opacity .45s ease; }
.page-fade.active { opacity: 1; pointer-events: auto; }

/* ---------- Breakpoints ---------- */
@media screen and (max-width: 991px) {
  .container.project-hero { min-height: 100svh; }
  .container.project-hero.template { padding-top: 1.25rem; }
  .section.projets { min-height: 100svh; overflow: clip; }
  .nav-link.mob { font-family: var(--font-display); font-size: .625rem; font-weight: 700; }
  .nav-r.mob { color: var(--off-black); flex-flow: column; }
  .logo-landing-big { object-fit: contain; width: 100%; margin-bottom: 1.875rem; }
  .card-contact_project.is-footer { width: 100%; height: 30rem; }
  .news-letter-card.is-footer { grid-column-gap: 2.5rem; grid-row-gap: 2.5rem; width: 100%; margin-top: -1.2rem; margin-bottom: 0; margin-left: 0; padding: 1.875rem; }
  .card-svg_w { order: -9999; width: 100%; height: auto; }
  .card_contact_w { flex-flow: column; justify-content: space-between; }
  .project-grid_item { width: 8rem; }
  .grid__state__1 { margin-left: -8vw; }
  .grid__state_2 { grid-row-gap: 1.875rem; grid-template-columns: 1fr; }
  .grid__state__2__link { height: 30rem; }
  .etiquette-project_list { display: none; }
  .contact-footer { z-index: 4; }
  .flex-40 { margin-top: .1rem; }
  .container-top-footer { justify-content: space-between; align-items: flex-start; padding: 0 1.25rem 1.25rem; }
  .grid-footer { padding: 2.5rem 1.25rem 1.25rem; }
  .card-footer-w { width: 100%; position: relative; }
  .container-bottom-footer.is-menu { width: 100%; color: var(--off-black); padding-left: 0; padding-right: 0; position: relative; }
  .menu_w { z-index: 997; background-color: var(--cream); width: 100%; height: 100vh; padding: 1.25rem 1.25rem 7rem; display: none; position: fixed; inset: 0%; }
  .code-embed-9 { width: 5.375rem; height: auto; }
  .ms-svg-banner.project-list { height: 2.5rem; }
}

@media screen and (max-width: 767px) {
  .logo-nav { width: 4.8125rem; height: 2.1875rem; }
  .h1-project-temp { font-size: 1.75rem; }
  .project-grid_item { width: 7rem; height: 10rem; }
  .grid__state__1 { height: 10rem; margin-left: -4vw; }
  .etiquette-project_list { display: none; }
  .grid-footer { margin-bottom: 1.25rem; padding-top: 2.5rem; padding-left: 1.25rem; padding-right: 1.25rem; }
  .card-contact_project.is-footer { padding-bottom: 1.25rem; }
  .image-7, .fake-mob { display: block; }
  .ms-svg-banner.project-list { max-width: none; height: 2.5rem; }
  .info-project-left { justify-content: space-between; align-items: flex-start; }
  .home-slider_btn_list { min-height: 7.5rem; }
}

@media screen and (max-width: 479px) {
  .container.project-hero { justify-content: space-between; align-items: center; }
  .nav-link.menu { pointer-events: auto; display: block; }
  .h1-project-temp { font-size: 1.75rem; }
  .filtre_list { grid-column-gap: 1.5625rem; grid-row-gap: 1.5625rem; }
  .filtre_item { font-size: .625rem; }
  .grid__state_2, .grid__state__2__item { width: 100%; }
  .flex-40 { grid-column-gap: 1.25rem; grid-row-gap: 1.25rem; flex-flow: column; justify-content: space-between; align-items: flex-end; margin-top: .2rem; }
  .container-top-footer { grid-column-gap: 1rem; grid-row-gap: 1rem; justify-content: space-between; align-items: flex-start; padding-top: 0; padding-bottom: 2.5rem; }
  .grid-footer { margin-bottom: 1.25rem; }
  .container-bottom-footer { grid-column-gap: 16px; grid-row-gap: 16px; grid-template-rows: auto; grid-template-columns: 1fr 1fr 1fr; grid-auto-columns: 1fr; display: grid; }
  .footer-link { font-size: .5rem; }
  .footer-link.no-wrap { white-space: nowrap; }
  .footer-link-left { grid-column-gap: 1rem; grid-row-gap: 1rem; min-width: 0; }
  .footer-link-right { min-width: 0; }
  .card-contact_project.is-footer { width: 100%; height: 26.25rem; padding-bottom: 1rem; }
  .nav-menu { display: none; }
  .desc-projet { max-width: 15rem; }
  .home-slider_btn { padding: .9375rem; }
  .home-slider_btn_list { min-height: 7.25rem; }
}

/* ============================================================
   LOADER DE PÁGINA
   ============================================================ */
.container-loader {
  z-index: 1;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 1.25rem;
  position: relative;
}
/* Loader D2 aprovado: verde-western, ícone da pedra, linha que
   preenche em cobre e contagem 000→100 em mono; a capa sobe. */
.container-loader.loader {
  z-index: 9999;
  background-color: var(--verde-western);
  color: var(--marfim);
  flex-flow: column;
  justify-content: center;
  align-items: center;
  gap: 1.6rem;
  max-width: none;
  min-height: 100vh;
  display: flex;
  position: fixed;
  inset: 0%;
  will-change: transform;
}
.container-loader.loader.is-done { display: none; }
html.ws-ja-entrou .container-loader.loader { display: none; }
.ld-icn { width: 3.6rem; height: auto; display: block; opacity: 0; }
.ld-linha { width: min(34%, 15rem); height: 1px; background: #F9F6ED29; position: relative; overflow: hidden; }
.ld-linha i { position: absolute; inset: 0; background: var(--cobre); transform-origin: left; transform: scaleX(0); display: block; }
.ld-num { font-family: var(--font-mono); font-size: .68rem; font-weight: 500; letter-spacing: .22em; color: var(--caramelo); }
.loader-corner-l { position: absolute; left: 1.25rem; bottom: 1.25rem; letter-spacing: .1em; text-transform: uppercase; font-family: var(--font-display); font-size: .5rem; font-weight: 700; opacity: .55; }
.loader-corner-r { position: absolute; right: 1.25rem; bottom: 1.25rem; letter-spacing: .1em; text-transform: uppercase; font-family: var(--font-display); font-size: .5rem; font-weight: 700; opacity: .55; }
@media screen and (max-width: 991px) { .ld-icn { width: 3.2rem; } .ld-linha { width: 56%; } }

/* ============================================================
   PÁGINA PROJETO (detalhe) — trilho horizontal
   ============================================================ */
.horizontal_w { width: 100%; height: 100vh; overflow: hidden; position: sticky; top: 0; }
.horizontal_wrap { position: relative; }
.horizontal_track { display: flex; flex-flow: row; align-items: stretch; height: 100vh; will-change: transform; }
.horizontal_track > * { flex-shrink: 0; }
.horizontal_section { flex-shrink: 0; height: 100vh; display: flex; flex-direction: row; }
.project-hero_w { width: 100vw; height: 100vh; display: flex; position: relative; }
.project-hero_w.test { width: auto; }
.project-hero-left {
  grid-column-gap: 5rem;
  grid-row-gap: 5rem;
  flex-flow: column;
  justify-content: space-between;
  align-items: center;
  width: 50%;
  height: 100vh;
  padding: 2.5rem;
  font-size: .75rem;
  font-weight: 600;
  display: flex;
}
.project-hero-right { width: 50%; height: 100%; position: relative; overflow: hidden; }
.project-hero-right img { width: 100%; height: 100%; object-fit: cover; display: block; transform: scale(1.02); }
.voile-project { z-index: 0; background-image: linear-gradient(#19171166, #0000); width: 100%; height: 20rem; position: absolute; inset: 0% 0% auto; }
.thumb_w { width: 13.75rem; }
.info-date-project { justify-content: space-between; align-items: center; margin-bottom: 1rem; display: flex; }
.info-date-project.ws-meta { display: flex; justify-content: space-between; }
/* QUADRO WESTERN — substitui a moldura branca em relevo:
   hairline cobre + quadro deslocado + a aresta curva da etiqueta. */
.test-block { flex-flow: column; justify-content: center; align-items: center; width: 13.75rem; height: 16.875rem; display: flex; position: relative; }
.test-block.in { width: 100%; height: 100%; box-shadow: none; padding: 0; transform: none; }
.img-project-flip { width: 100%; height: 100%; position: relative; overflow: hidden; border-radius: 2px 2.6rem 2px 2px; }
.img-projet-left { object-fit: cover; width: 100%; max-width: none; height: 100%; display: block; }
.test-block::after, .croqui-frame::after, .block-img-process-info::after, .timeline-foto .test-block-mini::after {
  content: "";
  position: absolute;
  inset: -.75rem;
  border: 1px solid currentColor;
  opacity: .42;
  border-radius: 2px 3rem 2px 2px;
  pointer-events: none;
}
.test-block::after { color: var(--cobre); }
.cadre-thumb { display: none; }
.info-desc-project { justify-content: center; align-items: center; margin-top: 1rem; display: flex; }
.courte-desc { text-align: center; text-wrap: balance; line-height: 1.3; }
.h1-project { text-align: center; font-family: var(--font-display); font-stretch: var(--display-stretch); letter-spacing: var(--display-tracking); font-size: 6rem; font-weight: 500; }
.section-h { width: 45rem; min-height: 100vh; display: flex; flex-shrink: 0; }
.container.desc-project { flex-flow: column; justify-content: space-between; align-items: flex-start; padding: 7.5rem 2.5rem 2.5rem; display: flex; }
.list-services { width: 21.25rem; display: flex; }
.services_list, .services_list_w { width: 100%; }
.services_item {
  grid-column-gap: .625rem;
  grid-row-gap: .625rem;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin-top: -1px;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  display: flex;
  position: relative;
}
.line { background-color: var(--off-black); width: 100%; height: .05rem; position: absolute; inset: auto auto 0% 0%; }
.line.top { inset: 0% 0% auto; }
.line.bottom { inset: auto 0% 0%; }
.div-block-3 { grid-column-gap: .625rem; grid-row-gap: .625rem; justify-content: flex-start; align-items: center; display: flex; }
.code-embed-3 { flex: none; justify-content: center; align-items: center; width: .625rem; height: .625rem; display: flex; }
.code-embed-3 svg { width: 100%; height: 100%; }
.heading { font-size: .875rem; }
.rank { font-family: var(--font-mono); font-size: .72rem; font-weight: 500; color: #191711a1; letter-spacing: .04em; }
.surface_w { justify-content: flex-start; align-items: flex-end; display: flex; }
.surface { margin-bottom: -.8rem; font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: 7.5rem; font-weight: 700; letter-spacing: -.03em; line-height: .9; }
.m2 { font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: 1.875rem; font-weight: 600; line-height: .8; }
.gallery_list_w { position: relative; }
.gallery_list { grid-column-gap: 2.5rem; grid-row-gap: 2.5rem; justify-content: flex-start; align-items: center; height: 100%; display: flex; padding: 0 2.5rem; }
.gallery_item { flex: none; justify-content: center; align-items: center; height: 100%; display: flex; position: relative; padding: 5rem 0; }
.gallery_item img { height: 100%; width: auto; display: block; object-fit: cover; }
.contact-project_w { flex-flow: column; justify-content: space-between; align-items: stretch; width: 100%; display: flex; }
.project-contact-info { justify-content: space-between; align-items: flex-end; width: 100%; display: flex; }
.mersi-copyright { max-width: 20.625rem; font-size: .75rem; font-weight: 600; line-height: 1; }
.div-block-5 { justify-content: space-between; align-items: flex-end; display: flex; }
.card-contact_project.is-project { z-index: 1; background-color: var(--cream); outline: .6rem solid var(--cream); outline-offset: 0; flex: none; width: 33.75rem; height: 20.25rem; }
.list-contact_project { flex-flow: column; width: 31.25rem; display: flex; }
.contact-link-project { justify-content: space-between; align-items: flex-start; width: 100%; padding-top: 1.875rem; padding-bottom: 1.875rem; display: flex; position: relative; text-decoration: none; color: inherit; }
.title-link-contact { font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: 1.875rem; }
.content-link-contact { font-size: .75rem; font-weight: 600; }
.container.is--full { max-width: 100%; min-height: 100vh; padding: 7.5rem 2.5rem 2.5rem; display: flex; }

/* Slider "próximo projeto" */
.project-slider_w { width: 100vw; height: 100vh; display: flex; position: relative; flex-shrink: 0; }
.project-slider_list_w { width: 50%; height: 100%; }
.project-slider_list { width: 100%; height: 100vh; position: relative; overflow: hidden; }
.project-slider_item { justify-content: space-between; align-items: stretch; width: 100%; height: 100%; display: flex; position: absolute; inset: 0%; }
.slider-left.project, .slider-right.project { width: 100%; height: 100%; overflow: hidden; }
.slider-left.project img, .slider-right.project img { width: 100%; height: 100%; object-fit: cover; display: block; }
.project-slider_btn_w { z-index: 99; pointer-events: none; justify-content: center; align-items: center; width: 100%; height: 100vh; display: flex; position: absolute; inset: 0%; }
.project-slider_btn_list_w { z-index: 110; position: relative; }
.project-slider_btn_list { width: 37.5rem; height: 100%; min-height: 8rem; position: relative; overflow: hidden; }
.project-slider_btn_item { height: 100%; position: absolute; inset: 0%; }
.project-slider-link { height: 100%; text-decoration: none; color: var(--off-black); display: block; }
.project-slider_btn {
  pointer-events: auto;
  display: flex;
  flex-flow: column;
  justify-content: center;
  gap: .45rem;
  width: 100%;
  height: 100%;
  padding: 1.25rem 1.5rem;
  font-size: .75rem;
  font-weight: 500;
  position: relative;
  overflow: hidden;
  background-color: var(--bege-pedra);
  color: var(--off-black);
  border-radius: 2px 4.5rem 2px 2px;
}
.info-etiquette { grid-column-gap: .2rem; grid-row-gap: .2rem; flex-flow: column; display: flex; }

/* ============================================================
   AGENCE
   ============================================================ */
.section.about { min-height: 100vh; }
.container.about-hero { flex-flow: column; justify-content: flex-end; align-items: stretch; min-height: 100vh; padding: 11.25rem 2.3rem 1.8rem; display: flex; position: static; }
.hero-about_w { grid-column-gap: 2.5rem; grid-row-gap: 2.5rem; flex-flow: column; flex: 1; justify-content: space-between; align-items: center; display: flex; }
.hero-about_w.process { justify-content: space-between; align-items: center; }
.h1-about_w, .h1-about_w-copy { margin-left: auto; margin-right: auto; }
.h1-about_w-copy { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 10; }
.mersi-sr-only { white-space: nowrap; clip: rect(0, 0, 0, 0); width: 1px; height: 1px; margin: -1px; padding: 0; position: absolute; overflow: hidden; }
.cadre-hero-agence { pointer-events: none; justify-content: center; align-items: center; width: 100%; height: 100%; position: absolute; inset: 0%; mix-blend-mode: overlay; }
.cadre-hero-agence svg { width: 100%; height: 100%; display: block; }
.img-to-scale { z-index: 10; pointer-events: auto; width: 22.8125rem; height: 6.8125rem; margin-left: auto; margin-right: auto; padding: .8rem 1rem; position: relative; }
.img-to-scale img, .img-to-scale-process img { width: 100%; height: 100%; object-fit: cover; display: block; }
.about-hero-bottom { width: 100%; }
.hero-about-info-bottom { justify-content: space-between; align-items: center; width: 100%; display: flex; }
.hero-about-info-bottom.center { justify-content: center; }
.space-150 { padding-top: 9.375rem; }
.space-20 { padding-top: 1.25rem; }
.about-infos { grid-column-gap: 2rem; grid-row-gap: 2rem; justify-content: space-between; align-items: flex-start; width: 100%; display: flex; }
.desc-about { max-width: 28rem; font-size: 1.25rem; line-height: 1.1; }
.flex-col { flex-flow: column; justify-content: space-between; align-items: flex-start; display: flex; }
.ms-anime_w { text-align: center; }
.grid-info-text { grid-column-gap: 5rem; grid-row-gap: 5rem; grid-template-rows: auto; grid-template-columns: 1fr 1fr 1fr; grid-auto-columns: 1fr; place-items: center stretch; margin-top: 5rem; display: grid; }
.info-meryl, .info-simon { text-align: center; flex-flow: column; justify-content: flex-start; align-items: center; max-width: 20.8125rem; display: flex; overflow: hidden; }
.info-mersi-name { text-align: left; margin-bottom: 1.875rem; font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: 1.25rem; font-weight: 700; line-height: 1.1; }
.info-mersi-p { text-align: center; max-width: 28rem; font-size: .875rem; line-height: 1.3; }
/* ============================================================
   SISTEMA DE TEXTURA — a textura entra com intenção:
   1) dentro dos números-monumento (.tex-num)
   2) sob os painéis de cor (.tex-panel), em multiply discreto
   3) na mesa dos catálogos (.mesa)
   Arquivos finais: assets/img/tex/*.jpg (alta resolução);
   enquanto não existem, cai nas macros do acervo.
   ============================================================ */
/* Texturas de pedra DESLIGADAS a pedido do dono (2026-08-28):
   mantemos a dinâmica de cores da referência; as texturas voltam
   quando as próprias forem produzidas, com direção de arte. */
.tex-num { color: inherit; }
.tex-panel { position: relative; isolation: isolate; }
.tex-panel::after { content: none; }
.tex-panel > * { position: relative; z-index: 1; }

/* ---------- CTA que voa pro topo (una / produto) ---------- */
.cta-pill-fixed {
  position: fixed;
  inset: 0 0 auto;
  display: flex;
  justify-content: center;
  padding-top: .0rem;
  z-index: 10;
  pointer-events: none;
}
.cta-pill {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  background-color: var(--card);
  padding: 1.4rem 1.875rem;
  text-decoration: none;
  color: var(--off-black);
  clip-path: inset(0 0 100%);
  transition: clip-path .7s cubic-bezier(.16, 1, .3, 1);
}
.cta-pill-fixed.is-on .cta-pill { clip-path: inset(0 0 0%); }
.cta-pill-nome {
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-weight: 700;
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.cta-pill-acao { font-size: .75rem; font-weight: 600; }
.cta-pill .arrow-contact-link { width: .375rem; height: .375rem; }

/* ---------- UNA — o ritual ---------- */
.ritual_list { display: grid; grid-template-columns: 1fr 1fr; gap: .625rem; padding: 0 .625rem; }
.ritual_item { position: relative; overflow: hidden; height: 30vw; }
.ritual_item:first-child, .ritual_item:last-child { grid-column: 1 / -1; height: 46vw; }
.ritual_item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ritual_item::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 8rem;
  background: linear-gradient(#0000, #19171166);
  pointer-events: none;
}
.ritual_legenda {
  position: absolute;
  left: 1.25rem;
  bottom: 1.25rem;
  right: 1.25rem;
  color: var(--cream);
  display: flex;
  gap: 1rem;
  align-items: baseline;
  font-size: .75rem;
  font-weight: 600;
  z-index: 2;
}
.ritual_num {
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1;
}

/* ---------- UNA — o tom ---------- */
button[data-tom] { padding: 0 0 .3rem; border: 0; border-bottom: 1px solid transparent; background: transparent; color: inherit; font: inherit; opacity: .45; transition: opacity .25s; cursor: pointer; }
button[data-tom].is-on, button[data-tom]:hover, button[data-tom]:focus-visible { opacity: 1; }

/* ---------- UNA — perguntas ---------- */
.faq_item { flex-wrap: wrap; cursor: pointer; }
.faq-mais { font-family: var(--font-display); font-weight: 700; }
.faq_resposta {
  flex-basis: 100%;
  max-height: 0;
  overflow: hidden;
  transition: max-height .6s cubic-bezier(.16, 1, .3, 1), padding-top .6s;
  font-size: .875rem;
  line-height: 1.3;
  max-width: 34rem;
  opacity: .85;
}
.faq_item.is-open .faq_resposta { max-height: 9rem; padding-top: .8rem; }

/* ---------- Processo — a mesma pedra (sequência) ---------- */
.seq-stage { position: absolute; inset: 0; opacity: 0; }
.seq-stage:first-child { opacity: 1; }
.seq-stage img { width: 100%; height: 100%; object-fit: cover; display: block; }
.seq-caption {
  position: absolute;
  left: 1.5rem;
  bottom: 2.4rem;
  z-index: 12;
  color: var(--cream);
  display: flex;
  gap: 1.25rem;
  align-items: baseline;
  opacity: 0;
  transition: opacity .4s;
  pointer-events: none;
}
.seq-caption .seq-num {
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-weight: 700;
  font-size: 3.75rem;
  line-height: .9;
}
.seq-caption .seq-rotulo {
  letter-spacing: .1em;
  text-transform: uppercase;
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-size: .5rem;
  font-weight: 600;
}
.seq-progress {
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
  bottom: 1.5rem;
  height: 1px;
  background: #F9F6ED40;
  z-index: 12;
  pointer-events: none;
}
.seq-progress i { display: block; height: 100%; width: 0; background: var(--caramelo); }

/* ---------- Sobre — o museu ---------- */
.sala { width: 100%; }
.sala-head { text-align: center; margin-bottom: 3.75rem; }
.player-fundador {
  display: flex;
  align-items: center;
  gap: 1.875rem;
  background-color: var(--card);
  padding: 1.875rem;
  max-width: 34rem;
  margin: 0 auto;
  cursor: pointer;
}
.player-btn {
  flex: none;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: var(--cream);
  display: flex;
  align-items: center;
  justify-content: center;
}
.player-btn svg { width: 1rem; height: 1rem; }
.player-fundador.is-playing .player-icone-play { display: none; }
.player-fundador:not(.is-playing) .player-icone-pausa { display: none; }
.player-info { flex: 1; display: flex; flex-flow: column; gap: .75rem; }
.player-titulo { font-family: var(--font-display); font-stretch: var(--display-stretch); font-weight: 700; font-size: .75rem; }
.player-estado { letter-spacing: .1em; text-transform: uppercase; font-family: var(--font-display); font-size: .5rem; font-weight: 600; opacity: .7; }
.player-progress { height: 1px; background: #19171133; width: 100%; }
.player-progress i { background: var(--cobre) !important; }
.player-progress i { display: block; height: 100%; width: 0; background: var(--off-black); }
.player-fundador.is-off { opacity: .55; cursor: default; }

.sala-split { display: grid; grid-template-columns: 1fr 1fr; min-height: 88vh; }
.sala-split > div { padding: 3.75rem 2.5rem; display: flex; flex-flow: column; justify-content: space-between; gap: 2.5rem; }
.sala-criacao { background-color: var(--travertin-light); }
.sala-logica { background-color: var(--travertin); }
.sala-split .title-after-clip { color: var(--off-black); }
.sala-split p { font-size: .875rem; line-height: 1.3; max-width: 24rem; }
.croqui-frame { width: 13.75rem; height: 16.875rem; position: relative; color: var(--cobre); }
.croqui-frame .img-project-flip img { filter: grayscale(1) contrast(1.05); }

/* ---------- Croquis do Ricardo ---------- */
.croquis-faixa {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.1rem .9rem;
  margin-top: 1rem;
}
.croqui-item { position: relative; margin: 0; }
.croqui-item img {
  width: 100%;
  height: 17rem;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 2px 2.4rem 2px 2px;
  background: var(--bege-claro);
}
.croqui-item.is-largo { grid-column: span 2; }
.croqui-item.is-alto img { object-fit: contain; padding: .6rem; }
.croqui-item figcaption {
  margin-top: .8rem;
  font-family: var(--font-mono);
  font-size: .58rem;
  letter-spacing: .05em;
  color: #1917118c;
}
.croquis-nota { margin-top: 2.2rem; max-width: 30rem; font-size: .875rem; line-height: 1.45; color: #191711b8; }
@media screen and (max-width: 991px) {
  .croquis-faixa { grid-template-columns: 1fr 1fr; gap: .625rem; }
  .croqui-item.is-largo { grid-column: span 2; }
  .croqui-item img, .croqui-item.is-largo img, .croqui-item.is-alto img { height: 11rem; }
}

/* ---------- O time ---------- */
.time-grade {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.2rem;
  margin-top: 1rem;
}
.time-pessoa { display: flex; flex-flow: column; gap: .9rem; }
.time-retrato {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 2px 3rem 2px 2px;
  background: var(--bege-pedra);
  display: flex;
  align-items: center;
  justify-content: center;
}
.time-retrato img { width: 100%; height: 100%; object-fit: cover; display: block; }
.time-retrato .aguardando { width: 2.4rem; height: 2.4rem; opacity: .3; color: var(--terra); }
.time-retrato .aguardando svg { width: 100%; height: 100%; }
.time-nome { font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; line-height: 1.1; }
.time-funcao { font-family: var(--font-display); font-size: .58rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #19171199; margin-top: .3rem; }
@media screen and (max-width: 991px) { .time-grade { grid-template-columns: 1fr 1fr; } }

.massako_w { display: flex; justify-content: center; padding: 2.5rem 0; }
.massako {
  max-width: 24rem;
  text-align: center;
  display: flex;
  gap: 2rem;
  align-items: flex-start;
}
.massako-foto { width: 13rem; flex: none; position: relative; }
.massako-foto img { width: 100%; display: block; filter: grayscale(1) sepia(.22) contrast(.95); }
.massako-kanji {
  writing-mode: vertical-rl;
  letter-spacing: .35em;
  font-size: .8rem;
  opacity: .65;
  align-self: stretch;
}
.massako-legenda { font-size: .875rem; line-height: 1.3; text-align: left; }
.massako-legenda .titulo { font-family: var(--font-display); font-stretch: var(--display-stretch); font-weight: 700; font-size: 1.25rem; margin-bottom: .75rem; }

.feiras_row { display: grid; grid-template-columns: 1fr 1fr; gap: .625rem; max-width: 60rem; margin: 0 auto; }
.feira-card { min-height: 7.5rem; display: flex; }

/* ---------- Catálogos — a mesa ---------- */
.mesa {
  position: relative;
  height: 100vh;
  overflow: hidden;
  background-image: url("../img/tex/tex-mesa.jpg"), url("../img/obras/macro-meia-agua.webp");
  background-size: cover;
  background-position: center;
}
.mesa::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(#F9F6ED10, #1917113d);
  pointer-events: none;
}
.caderno { position: absolute; width: 17rem; will-change: transform; }
.caderno-inner {
  display: block;
  text-decoration: none;
  color: var(--cream);
  transform: rotate(var(--rot, 0deg));
  transition: transform .55s cubic-bezier(.16, 1, .3, 1), box-shadow .55s;
  box-shadow: 0 26px 60px #0000004d;
}
.caderno:hover .caderno-inner {
  transform: rotate(0deg) translateY(-1.2rem) scale(1.05);
  box-shadow: 0 52px 90px #00000059;
}
.caderno:hover { z-index: 9; }
.caderno-capa { aspect-ratio: 3 / 4; overflow: hidden; position: relative; background: var(--card); }
.caderno-capa img { width: 100%; height: 100%; object-fit: cover; display: block; }
.caderno-capa .cadre-thumb { position: absolute; inset: 0; }
.caderno-rotulo {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  right: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
}
.caderno-rotulo .nome { font-family: var(--font-display); font-stretch: var(--display-stretch); font-weight: 700; font-size: .875rem; }
.caderno-rotulo .acao { letter-spacing: .1em; text-transform: uppercase; font-family: var(--font-display); font-size: .5rem; font-weight: 600; }
.mesa-titulo { position: absolute; left: 2.5rem; top: 7.5rem; z-index: 3; color: var(--cream); }

@media screen and (max-width: 991px) {
  .ritual_item { height: 58vw; }
  .ritual_item:first-child, .ritual_item:last-child { height: 78vw; }
  .sala-split { grid-template-columns: 1fr; min-height: 0; }
  .massako { flex-flow: column; align-items: center; }
  .massako-kanji { writing-mode: horizontal-tb; letter-spacing: .3em; }
  .massako-legenda { text-align: center; }
  .feiras_row { grid-template-columns: 1fr; }
  .mesa { height: auto; padding: 7.5rem 1.25rem 5rem; display: flex; flex-flow: column; gap: 2.5rem; align-items: center; }
  .caderno { position: relative; width: 15rem; }
  .mesa-titulo { position: relative; left: auto; top: auto; align-self: flex-start; }
  .seq-caption .seq-num { font-size: 1.75rem; }
  .cta-pill { padding: 1.1rem 1.4rem; gap: 1rem; }
}

/* ---------- Números-monumento (processo) ---------- */
.container.numeros-processo {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 2.5rem;
  padding: 7.5rem 2.5rem;
  flex-wrap: wrap;
}
.numero-bloco { max-width: 24rem; }
.numero-legenda { margin-top: 1.25rem; font-size: .875rem; line-height: 1.3; max-width: 15rem; }

/* ---------- Texturas (processo) ---------- */
.texture_track { gap: .625rem; padding: 0 .625rem; }
.texture_item { flex: none; height: 100vh; padding: 5rem 0; position: relative; }
.texture_item > img { height: 100%; width: auto; display: block; object-fit: cover; }
.texture_item .etiquette-project_list { inset: auto .625rem 5.625rem; }
@media screen and (max-width: 991px) {
  .voile-projects-slider .hide-desk { display: block !important; }
  .container.numeros-processo { padding: 3.75rem 1.25rem; gap: 1.875rem; }
  .texture_track { flex-direction: column; padding: 0 1.25rem; gap: .625rem; }
  .texture_item { height: auto; padding: 0; }
  .texture_item > img { width: 100%; height: auto; }
}

/* ---------- Linha do tempo (sobre) ---------- */
.timeline_w { width: 100%; max-width: 75rem; margin: 0 auto; }
.timeline-head { text-align: center; margin-bottom: 3.75rem; }
.timeline-era {
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  letter-spacing: var(--display-tracking);
  font-size: 3.75rem;
  font-weight: 500;
  line-height: .94;
}
.timeline_item {
  grid-column-gap: 2.5rem;
  grid-row-gap: 1.25rem;
  grid-template-columns: .38fr .18fr 1fr .6fr;
  grid-auto-columns: 1fr;
  align-items: center;
  width: 100%;
  margin-top: -1px;
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
  display: grid;
  position: relative;
}
.timeline-year {
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  letter-spacing: var(--display-tracking);
  font-size: 3.125rem;
  font-weight: 700;
  line-height: .9;
}
.timeline-pedra { width: 1.5rem; height: 1.5rem; justify-self: center; opacity: .8; }
.timeline-pedra svg { width: 100%; height: 100%; display: block; }
.timeline-fase .heading-3 { margin-bottom: .625rem; }
.timeline-fase p { font-size: .875rem; line-height: 1.3; max-width: 26rem; }
.timeline-foto { justify-self: end; width: 13.75rem; }
.timeline-foto .test-block-mini { width: 13.75rem; height: 9.5rem; position: relative; overflow: hidden; border-radius: 2px 1.8rem 2px 2px; }
.timeline-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media screen and (max-width: 991px) {
  .timeline_item { grid-template-columns: 1fr; grid-row-gap: 1rem; padding-top: 1.875rem; padding-bottom: 1.875rem; }
  .timeline-pedra { justify-self: start; }
  .timeline-foto { justify-self: start; width: 100%; }
  .timeline-foto .test-block-mini { width: 100%; height: 52vw; }
  .timeline-era { font-size: 1.75rem; }
}

.section.talk { background-color: var(--travertin); height: 100vh; }
.container.talk { flex-flow: column; justify-content: space-between; align-items: flex-start; height: 100%; display: flex; position: static; }
.div-block-6 { flex-flow: column; justify-content: space-between; align-items: stretch; width: 100%; height: 100%; display: flex; }
.bg-video_w { grid-column-gap: 3rem; grid-row-gap: 3rem; justify-content: center; align-items: center; font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: 3.75rem; font-weight: 700; display: flex; }
.bg-video { flex: none; width: 30rem; height: 13.375rem; position: relative; overflow: hidden; }
.bg-video video { width: 100%; height: 100%; object-fit: cover; display: block; }
.talk-btn-left { z-index: 3; position: relative; }
.talk-btn-right { z-index: 2; position: relative; }
.side-video { width: 100%; }

/* ============================================================
   PROCESS
   ============================================================ */
.container.process-hero { flex-flow: column; justify-content: flex-end; align-items: stretch; min-height: 100vh; padding: 11.25rem .625rem .625rem; display: flex; position: relative; }
.img-to-scale-process { z-index: 10; pointer-events: auto; width: 14.875rem; height: 18.125rem; margin-left: auto; margin-right: auto; padding: .8rem 1rem; position: relative; }
.after-clip { z-index: 11; opacity: 0; pointer-events: none; flex-flow: column; justify-content: space-between; align-items: stretch; width: 100%; height: 100%; padding: 1.5rem; display: flex; position: absolute; inset: 0%; }
.title-after-clip { color: var(--cream); font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: 3.75rem; font-weight: 500; line-height: .94; }
.h2-subtitle-process { z-index: 11; color: var(--cream); text-align: center; letter-spacing: .1em; text-transform: uppercase; font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: .5rem; font-weight: 600; line-height: 1.3; position: relative; }
.etiquette-after-clip { background-color: var(--bege-pedra); max-width: 37.5rem; margin-left: auto; margin-right: auto; border-radius: 2px 4.5rem 2px 2px; overflow: hidden; }
.home-slider_btn.process-after-clip { background: transparent; border-radius: 0; }
.home-slider_btn.process-after-clip { grid-column-gap: 1.25rem; grid-row-gap: 1.25rem; justify-content: space-between; align-items: center; height: auto; display: flex; }
/* citação do processo: voz de gente, não rótulo em caps */
.h2-project-btn.process { text-align: left; max-width: none; font-size: 1.05rem; font-weight: 500; line-height: 1.35; letter-spacing: -.005em; }
.h2-project-btn.process::before { content: "“"; }
.h2-project-btn.process::after { content: "”"; }
.home-slider_btn.process-after-clip { padding: 2rem 2.4rem 1.8rem; text-align: left; }
.home-slider_btn.process-after-clip .info-project-left { align-items: flex-start; }
.etiquette-after-clip .etq-facetas { right: -3rem; top: -2.4rem; width: 15rem; height: 10rem; }
.ms-svg-banner.process { mix-blend-mode: overlay; object-fit: contain; width: auto; height: 100%; }
.container.sticky-anim { z-index: 999; padding: 0; position: relative; }
.step__w { grid-column-gap: 0; grid-row-gap: 0; grid-template-rows: auto; grid-template-columns: 1fr 1fr; grid-auto-columns: 1fr; justify-content: space-between; align-items: flex-start; display: grid; }
.step-img { height: 100vh; position: sticky; top: 0; overflow: hidden; }
.step-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.step-info { background-color: var(--travertin); flex-flow: column; justify-content: space-between; align-items: stretch; padding: 2.5rem 2.5rem 7.5rem; display: flex; position: relative; min-height: 100vh; }
.step-info.cream { background-color: var(--travertin-light); padding-bottom: 7.5rem; }
.step-title { justify-content: space-between; align-items: center; display: flex; }
.heading-2 { font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: 1.5625rem; line-height: 1.1; }
.heading-3 { font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: 1.5625rem; font-weight: 700; line-height: 1.1; }
.block-img-process-info { flex-flow: column; justify-content: center; align-items: center; width: 13.75rem; height: 16.875rem; display: flex; position: relative; margin: 3rem auto; color: var(--cobre); }
.div-block-7 { grid-column-gap: 2rem; grid-row-gap: 2rem; justify-content: center; align-items: center; display: flex; }
.info-p-process { flex-flow: column; justify-content: center; align-items: center; display: flex; text-align: center; max-width: 30rem; margin: 0 auto; font-size: .875rem; line-height: 1.3; }

/* ============================================================
   CONTACT
   ============================================================ */
/* contato: no fluxo (fixed cobria a próxima parada e o rodapé) */
.section.contact { position: relative; padding: 7.5rem 0 2.5rem; }
.container.contact { flex-flow: column; justify-content: flex-start; align-items: stretch; padding: 0; display: flex; }
.contact_w { width: 100%; height: 100%; }
.contact_list_w { height: 100%; }
.contact_list { width: 50%; height: 100%; position: relative; }
.contact_item { width: 100%; height: 100%; position: absolute; inset: 0%; opacity: 0; }
.contact_item_w { width: 100%; height: 100%; position: relative; }
.contact_item_w img { width: 100%; height: 100%; object-fit: cover; display: block; }
.card_contact_w_absolute {
  z-index: 99;
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  pointer-events: none;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
  position: absolute;
  inset: 0%;
}
.contact-info_w { grid-column-gap: 1.25rem; grid-row-gap: 1.25rem; pointer-events: auto; text-align: center; flex-flow: column; justify-content: flex-start; align-items: center; width: 38.3rem; display: flex; }
.text-block-4 { margin-bottom: 1.875rem; font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: .75rem; font-weight: 700; }
.text-block-4-copy { font-family: var(--font-body); font-size: .75rem; font-weight: 600; }
.card-contact_project.is-contact { justify-content: center; align-items: center; height: 18.1rem; display: flex; }
.svg-border-left, .svg-border-right { position: absolute; top: 0; bottom: 0; width: .55rem; mix-blend-mode: overlay; pointer-events: none; }
.svg-border-left { left: -.55rem; }
.svg-border-right { right: -.55rem; }
.svg-border-left svg, .svg-border-right svg { width: 100%; height: 100%; display: block; }
.contact-info_w.is-links { align-items: center; }
.contact-info_w .contact-line { text-decoration: none; }
.text-block-4-copy.off { opacity: .55; }
.contact_list_w.hide-tab { width: 100%; }
.contact_list { width: 100%; height: 26rem; position: relative; overflow: hidden; }
.contact_item { opacity: 1; clip-path: inset(100% 0% 0%); }
.card-contact_project.show-mob-footer { display: none; }
@media screen and (max-width: 991px) {
  .card-contact_project.show-mob-footer { outline: none; flex: none; width: 16.875rem; height: 54vw; margin-left: auto; margin-right: auto; display: block; }
  .card-contact_project.show-mob-footer.contact { width: 100%; height: 73vw; display: block; }
}
.card_contact_w.is-contact { background-color: var(--areia); }
.news-letter-card.is-contact { background-color: var(--bege-claro); height: 100%; margin-left: 0; }
.card-svg_w.is-contact { background-color: var(--cream); }
.container-bottom-footer.is-contact { z-index: 5; width: 50%; color: var(--cream); position: absolute; inset: auto 0% 0%; margin-top: 0; }

/* ============================================================
   NEWS
   ============================================================ */
.page_view.news { background-color: #9AA284; overflow: clip; }
.container.news-hero { grid-column-gap: .625rem; grid-row-gap: .625rem; mix-blend-mode: luminosity; flex-flow: column; min-height: 100vh; padding: 11.25rem .625rem .625rem; display: flex; }
.div-block-8 { margin-bottom: -1.25rem; }
.news-h1_w { justify-content: space-between; align-items: flex-end; width: 100%; display: flex; }
.fake-h1-news { margin-bottom: -.8rem; font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: 8.125rem; font-weight: 500; line-height: .9; }
.fake-h1-news.hide-essk { display: none; }
.h1-news { font-size: 1rem; line-height: 1.1; }
.grid-news__list__w { width: 100%; }
.grid-news__list { grid-column-gap: .625rem; grid-row-gap: 3.125rem; display: grid; grid-template-columns: 1fr 1fr 1fr; }
.grid-news__list.rowified { display: flex; flex-direction: column; }
.grid-news__row { display: grid; gap: .625rem; width: 100%; margin-bottom: 3.125rem; }
.grid-news__item { mix-blend-mode: color-burn; flex-flow: column; justify-content: flex-start; align-items: flex-start; width: 100%; display: flex; }
.grid-news-link { grid-column-gap: 1.25rem; grid-row-gap: 1.25rem; flex-flow: column; justify-content: flex-start; align-items: flex-start; width: 100%; height: 100%; text-decoration: none; display: flex; color: inherit; }
.grid-news__img_w { opacity: .75; flex: none; width: 100%; height: 100%; overflow: hidden; }
.grid-news__img_w img { width: 100%; height: 100%; object-fit: cover; display: block; }
.titre-news-item { padding-right: 3.75rem; }
.cat-news { letter-spacing: .1em; text-transform: uppercase; margin-bottom: .625rem; font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: .5rem; font-weight: 700; line-height: 1.3; }
.desc-thumb-news { font-size: 1rem; line-height: 1.1; }

/* ============================================================
   SHOP (landing soon) + TRAIL
   ============================================================ */
.container.landing {
  pointer-events: none;
  letter-spacing: .1em;
  text-transform: uppercase;
  flex-flow: column;
  justify-content: space-between;
  align-items: center;
  max-width: none;
  min-height: 100vh;
  padding: 1.25rem 1.25rem 0;
  font-family: var(--font-display);
  font-stretch: var(--display-stretch);
  font-size: .5rem;
  font-weight: 700;
  display: flex;
  position: static;
}
.text-block-6 { display: flex; }
.container-bottom-footer.soon { z-index: 99; pointer-events: auto; width: 100%; position: relative; inset: auto 0% 0%; }
.trail-section { z-index: 11; pointer-events: auto; justify-content: center; align-items: center; width: 100%; height: 100vh; display: flex; position: fixed; inset: 0%; }
.trail-wrap { z-index: 5; width: 100%; height: 100%; position: absolute; inset: 0%; pointer-events: none; }
.trail-list { width: 100%; height: 100%; position: relative; }
.trail-item { opacity: 0; border-radius: .3125em; width: 15rem; height: 15rem; position: absolute; overflow: hidden; }
.trail-item__img { object-fit: cover; width: 100%; height: 100%; }

/* ============================================================
   LEGALS
   ============================================================ */
.section.legals { flex-flow: column; justify-content: flex-end; align-items: flex-start; height: 100vh; display: flex; }
.grid-legals { grid-column-gap: 1rem; grid-row-gap: 1rem; justify-content: space-between; place-items: center stretch; margin-top: 3.75rem; margin-bottom: 1.75rem; display: flex; }
.legal-block-content { max-width: 11.25rem; }
.titlelegals { margin-bottom: 1.25rem; font-family: var(--font-display); font-stretch: var(--display-stretch); font-size: .75rem; font-weight: 700; }
.div-block-4 { flex-flow: column; display: flex; font-size: .6875rem; line-height: 1.3; }
.grid-footer.is-legals { flex-flow: column; max-height: 30.625rem; overflow: hidden; padding: 0; display: flex; }
.card-footer-w.is-legals { width: 100%; height: 100%; }
.container-bottom-footer.is-legals { background-color: var(--cream); position: relative; }

/* ---------- Breakpoints das páginas ---------- */
@media screen and (max-width: 991px) {
  .container.ms-anime { padding: 1.25rem; }
  .container.talk { justify-content: center; align-items: center; }
  .div-ms-loader.load { margin: 0 0 1.875rem; }
  .project-hero-left { width: 100%; height: 100svh; }
  .project-hero-right { width: 100%; }
  .project-hero_w { flex-flow: column; height: auto; min-height: 100svh; }
  .horizontal_w { height: auto; overflow: visible; position: static; }
  .horizontal_track { flex-direction: column; height: auto; will-change: auto; transform: none !important; }
  .horizontal_section { flex-shrink: unset; height: auto; flex-direction: column; }
  .gallery_list { display: grid; grid-template-columns: 1fr 1fr; grid-column-gap: .625rem; grid-row-gap: .625rem; height: auto; padding: 1.25rem; align-items: start; }
  .gallery_item { height: auto; padding: 0; }
  .gallery_item img { width: 100%; height: auto; }
  .gallery_item:nth-child(3n) { grid-column: 1 / -1; }
  .voile-projects-slider .h2-subtitle-process { letter-spacing: .1em; }
  .section-h { width: auto; }
  .list-services { width: 100%; }
  .list-contact_project { width: 100%; }
  .project-slider_w { flex-flow: column; }
  .project-slider_list_w.left, .project-slider_list_w.right { width: 100%; height: 50%; }
  .project-slider_list { height: 50vh; }
  .project-slider_btn_list_w, .project-slider_btn_list, .project-slider-link { width: 100%; }
  .project-slider_btn_w { padding: 1.25rem; }
  .news-h1_w { justify-content: flex-end; align-items: flex-end; margin-bottom: 7.5rem; }
  .fake-h1-news.hide-essk { display: block; }
  .grid-news__list { grid-template-columns: 1fr; }
  .grid-news__img_w { flex: 0 auto; height: 29.8125rem; max-height: 29.8125rem; }
  .card_contact_w_absolute { grid-column-gap: 2.5rem; grid-row-gap: 2.5rem; flex-flow: column-reverse; padding-left: 1.25rem; padding-right: 1.25rem; }
  .grid-legals { grid-column-gap: 1rem; grid-row-gap: 1rem; grid-template-columns: 1fr 1fr; display: grid; }
  .div-block-5 { grid-column-gap: 5.625rem; grid-row-gap: 5.625rem; flex-flow: column; justify-content: space-between; align-items: stretch; }
  .about-infos { flex-flow: column; }
  .grid-info-text { flex-flow: column; grid-template-columns: 1fr; justify-content: flex-start; align-items: center; display: flex; }
  .div-block-6 { justify-content: center; align-items: center; }
  .bg-video_w { flex-flow: column; justify-content: center; align-items: center; height: 100%; }
  .video-talk { width: 100%; height: 100%; }
  .div-block-8 { margin-bottom: 0; }
  .step__w { grid-template-columns: 1fr; }
  .step-img { display: none; }
  .container.about-hero { min-height: 100svh; padding-left: 1.25rem; padding-right: 1.25rem; }
  .contact-project_w { grid-column-gap: 5.625rem; grid-row-gap: 5.625rem; }
}
@media screen and (max-width: 767px) {
  .div-ms-loader.load { width: 100%; height: 37vw; }
  .home-slider_btn.process-after-clip { grid-column-gap: 3.5rem; grid-row-gap: 3.5rem; flex-flow: column; justify-content: space-between; align-items: center; padding-top: 2.5rem; padding-bottom: 2.5rem; }
  .title-after-clip { font-size: 1.75rem; }
  .etiquette-after-clip { max-width: 10rem; }
  .fake-h1-news { font-size: 17.5vw; }
  .about-hero-bottom { grid-column-gap: 1.25rem; grid-row-gap: 1.25rem; flex-flow: column; justify-content: flex-start; align-items: center; display: flex; }
  .bg-video { width: 16.875rem; height: 11rem; }
  .talk-btn-left, .talk-btn-right { font-size: 1.75rem; }
}
@media screen and (max-width: 479px) {
  .div-ms-loader { grid-column-gap: .5rem; grid-row-gap: .5rem; }
  .div-ms-loader.load { width: 100%; height: 30vw; }
  .trail-section { pointer-events: none; }
  .trail-item { width: 7.5rem; height: 7.5rem; }
  .test-block.in { height: 14.5rem; padding: .8rem; }
  .h1-project { font-size: 10vw; }
  .surface { font-size: 5rem; }
  .m2 { font-size: 1.25rem; }
  .title-link-contact { font-size: 1.25rem; }
  .project-slider_w { flex-flow: column; height: 100svh; }
  .project-slider_btn_w { height: 100svh; }
  .card_contact_w_absolute { padding: 1.25rem; }
  .text-block-4 { margin-bottom: 0; }
  .grid-legals { place-items: start stretch; }
  .info-mersi-name { margin-bottom: 1.25rem; }
  .heading-3 { font-size: 1.25rem; }
  .step-info { width: 100vw; padding: 6.25rem 1.25rem; }
  .step-info.cream { padding-bottom: 6.25rem; padding-left: 1.25rem; padding-right: 1.25rem; }
  .block-img-process-info { width: 11.875rem; }
  .container.landing { pointer-events: auto; }
}

/* ============================================================
   TOM DA PÁGINA — cada página tem uma cor; ela banha as fotos
   num véu levíssimo (soft-light) para que tudo pertença ao mesmo dia.
   ============================================================ */
/* o véu mora DENTRO de cada foto — nunca sobre o texto */
.tom-foto {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  mix-blend-mode: soft-light;
  background-color: var(--tom-pagina, transparent);
  opacity: .5;
}
.tom-hospede { position: relative; }
/* nas etiquetas e cartões o véu não entra */
.etiquette-project_list .tom-foto, .home-slider_btn .tom-foto { display: none; }

/* ============================================================
   RESPIRO — a pausa entre dois assuntos. O slogan em escala de
   letreiro, a textura da pedra passando devagar por trás.
   ============================================================ */
/* sem overflow aqui: recorte no palco, senão o sticky não cola */
.respiro {
  position: relative;
  width: 100%;
  background-color: var(--verde-western);
}
.respiro.is-alto { height: 210vh; }
.respiro-palco {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  gap: 2.2rem;
  overflow: hidden;
}
.respiro-fundo {
  position: absolute;
  inset: -12% 0;
  z-index: 0;
  will-change: transform;
}
.respiro-fundo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: .5;
}
.respiro-palco::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 90% at 50% 50%, #14261500 10%, #142615cc 100%);
  z-index: 1;
  pointer-events: none;
}
.respiro-frase {
  position: relative;
  z-index: 2;
  color: var(--marfim);
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 7.4rem;
  line-height: .94;
  letter-spacing: -.025em;
  text-align: center;
  text-wrap: balance;
  max-width: 18ch;
  padding: 0 1.25rem;
}
.respiro-frase .ch { opacity: .26; transition: opacity .55s ease; }
.respiro-frase .ch.on { opacity: 1; }
.respiro-rotulo {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: .9rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-family: var(--font-display);
  font-size: .6rem;
  font-weight: 700;
  color: var(--caramelo);
  text-shadow: 0 1px 12px #14261599;
}
.respiro-rotulo svg { width: .9rem; height: .9rem; }
/* variante baixa: uma frase, uma linha de cobre, sem foto */
.respiro.is-linha { background-color: var(--bege-claro); }
.respiro.is-linha .respiro-palco { height: auto; padding: 9rem 1.25rem; position: relative; gap: 1.6rem; }
.respiro.is-linha .respiro-palco::after { content: none; }
.respiro.is-linha .respiro-frase { color: var(--tinta); font-size: 3.1rem; max-width: 26ch; }
.respiro.is-linha .respiro-frase .ch { opacity: .3; }
.respiro.is-linha .respiro-rotulo { color: var(--cobre); }
.respiro-risco { position: relative; z-index: 2; width: 5rem; height: 1px; background: var(--cobre); opacity: .6; }
@media screen and (max-width: 991px) {
  .respiro.is-alto { height: 170vh; }
  .respiro-frase { font-size: 2.6rem; max-width: 14ch; }
  .respiro.is-linha .respiro-frase { font-size: 1.6rem; }
  .respiro.is-linha .respiro-palco { padding: 5rem 1.25rem; }
}

/* ============================================================
   FAIXA DE TEXTURA — a matéria entra inteira entre dois assuntos.
   Sem texto grande: só a pedra, respirando devagar.
   ============================================================ */
.faixa-tex {
  position: relative;
  width: 100%;
  height: 46vh;
  min-height: 20rem;
  overflow: hidden;
  background-color: var(--verde-western);
}
.faixa-tex img {
  position: absolute;
  inset: -12% 0;
  width: 100%;
  height: 124%;
  object-fit: cover;
  display: block;
  will-change: transform;
}
.faixa-tex figcaption {
  position: absolute;
  left: 1.875rem;
  bottom: 1.5rem;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: .7rem;
  font-family: var(--font-mono);
  font-size: .56rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #F9F6EDcc;
  text-shadow: 0 1px 10px #191711aa;
}
.faixa-tex figcaption .fx-pedra { width: .8rem; height: .8rem; opacity: .8; }
.faixa-tex figcaption .fx-pedra svg { width: 100%; height: 100%; display: block; }
@media screen and (max-width: 991px) { .faixa-tex { height: 34vh; min-height: 14rem; } }

/* ============================================================
   E4 — LETRAS QUE ACENDEM (manifesto do sobre; gesto do v3)
   ============================================================ */
.acende .ch { opacity: .34; transition: opacity .22s linear; }
.acende .ch.on { opacity: 1; }

/* dados numerados em mono (voz técnica A3) */
.info-date-project, .ritual_num { font-family: var(--font-mono); }

/* ============================================================
   REFINO EDITORIAL — sistema compartilhado
   Uma única barra, um único hover e mídia sem molduras acidentais.
   ============================================================ */
:root {
  --ease-editorial: cubic-bezier(.16, 1, .3, 1);
  --header-bg: rgba(237, 231, 222, .88);
}
.navbar {
  color: var(--tinta) !important;
  min-height: 3.75rem;
  padding-top: .8rem;
  padding-bottom: .8rem;
  background: linear-gradient(to bottom, var(--header-bg), rgba(237,231,222,.66));
  border-bottom: 1px solid rgba(25, 23, 17, .08);
  -webkit-backdrop-filter: blur(12px) saturate(.85);
  backdrop-filter: blur(12px) saturate(.85);
}
.navbar::before { content: none !important; }
.navbar .nav-link,
.navbar .line-nav { color: var(--tinta) !important; text-shadow: none !important; }
.navbar .logo-nav .logo-escuro { opacity: 1 !important; }
.navbar .logo-nav .logo-claro,
.navbar .logo-nav .logo-branco { opacity: 0 !important; }
.nav-link,
.footer-link,
.contact-footer,
.contact-link-project,
.grid-news-link,
.grid__state__2__link,
.home-slider-link {
  transition: opacity .35s ease, transform .55s var(--ease-editorial), color .35s ease !important;
}
.nav-link:hover,
.nav-link.w--current { font-weight: 700 !important; opacity: 1; }
.nav-r:hover .nav-link:not(:hover):not(.w--current) { opacity: .48; }
.grid-news-link:hover,
.grid__state__2__link:hover { transform: translateY(-.2rem); }
.cta-caixa:hover,
.contact-footer:hover { transform: translateY(-.12rem); }
.catalogo-card:hover .nome,
.pp-link:hover { font-weight: inherit; }

/* remove margens e molduras que apareciam como “gap” nas fotografias */
.gallery_list_w,
.gallery_list,
.gallery_item,
.gallery_item img,
.test-block.in,
.img-project-flip,
.project-hero-right,
.project-hero-right img { margin: 0; border: 0; outline: 0; box-shadow: none; }
.test-block.in.project { padding: 0; }
.img-project-flip { border-radius: 0; }
.gallery_list { gap: 0; padding: 0; align-items: stretch; }
.gallery_item {
  flex: 0 0 auto;
  width: calc(100vh * var(--gallery-ratio, 1.33333));
  height: 100vh;
  padding: 0;
  overflow: hidden;
}
.gallery_item img { width: 100%; height: 100%; object-fit: cover; max-width: none; }

/* etiqueta central da home: menor, centrada e sem sombra artificial */
.home-slider_btn_list_w { width: min(25rem, calc(100vw - 2.5rem)); margin-inline: auto; }
.home-slider_btn.is-central { width: 100%; min-height: 6.35rem; box-shadow: none; }
.home-slider_btn.is-central .h2-project-btn { font-size: 1.22rem; text-align: left; }
.home-slider_btn_w { justify-content: center; align-items: center; }

/* cartões de texto entram entre imagens e vestem a cor de cada obra */
.gallery_editorial {
  flex: 0 0 clamp(24rem, 34vw, 38rem);
  min-height: 100vh;
  padding: 7rem 3rem 3rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 3rem;
  color: var(--marfim);
  background: var(--obra, var(--verde-western));
}
.gallery_editorial-k {
  font-family: var(--font-mono);
  font-size: .58rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .7;
}
.gallery_editorial p {
  max-width: 22ch;
  margin: auto 0;
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.2vw, 2.5rem);
  line-height: 1.08;
  letter-spacing: -.02em;
}
.gallery_editorial small { max-width: 28rem; line-height: 1.45; opacity: .74; }
.gallery_editorial.is-creditos p { font-family: var(--font-main); font-size: 1rem; line-height: 1.5; }
@media screen and (min-width: 992px) {
  .gallery_list > .gallery_editorial:last-child {
    flex-basis: 100vw;
    width: 100vw;
    padding-right: max(3rem, 14vw);
  }
  .gallery_list > .gallery_editorial:last-child p {
    max-width: 17ch;
    font-size: clamp(2.8rem, 4.8vw, 5.5rem);
    line-height: .96;
    letter-spacing: -.04em;
  }
}

/* Collabs: capa como ensaio, não como uma grade genérica de news */
body[data-page="collabs"] .container.news-hero { padding-top: 8rem; }
body[data-page="collabs"] .div-block-8 { display: grid; grid-template-columns: 1fr 2fr; align-items: end; margin-bottom: 5rem; }
body[data-page="collabs"] .news-h1_w { margin: 0; }
body[data-page="collabs"] .h1-news { max-width: 16ch; font-size: clamp(2.8rem, 5.7vw, 6.4rem); line-height: .92; }
body[data-page="collabs"] .grid-news__row { width: 100%; }
body[data-page="collabs"] .grid-news__img_w { height: 72vh !important; min-height: 34rem; }
body[data-page="collabs"] .grid-news__img_w img { width: 100%; height: 100%; object-fit: cover; }
body[data-page="collabs"] .titre-news-item { display: grid; grid-template-columns: 1fr 2fr; padding: 1rem 0 4rem; border-top: 1px solid rgba(25,23,17,.2); }

/* Arboreal: ritmo arquitetônico e produto tratado como coleção */
body[data-page="collab"] .project-hero-left { padding-top: 5rem; }
body[data-page="collab"] .project-hero-left .h1-project { font-size: clamp(3.2rem, 5.2vw, 5.7rem) !important; line-height: .88; }
body[data-page="collab"] [data-produto] .grid__state__2__link { overflow: hidden; }
body[data-page="collab"] .grid__state__2__row { grid-template-columns: repeat(12, 1fr) !important; align-items: start; }
body[data-page="collab"] [data-produto] { grid-column: span 4; }
body[data-page="collab"] [data-produto]:nth-child(2) { grid-column: span 8; }
body[data-page="collab"] [data-produto]:nth-child(4) { grid-column: span 7; }
body[data-page="collab"] [data-produto]:nth-child(5) { grid-column: span 5; }
body[data-page="collab"] [data-produto] .grid__state__2__link { background: var(--bege-pedra); }
body[data-page="collab"] [data-produto] img { width: 100%; height: 100%; object-fit: contain; transition: transform 1.1s var(--ease-editorial); }
body[data-page="collab"] [data-produto]:hover img { transform: scale(1.025); }

/* Sobre: reduz a espera do primeiro scroll e organiza o museu em capítulos */
body[data-page="agence"] .about-pin { height: 145vh !important; }
body[data-page="agence"] .space-150:first-of-type { height: 4rem; }
body[data-page="agence"] .sala { padding-block: 5rem; border-top: 1px solid rgba(25,23,17,.16); }
body[data-page="agence"] .sala-head { position: sticky; top: 5rem; align-self: start; }
body[data-page="agence"] .timeline_w { margin-top: 5rem; }

/* Contato: primeira tela clara, direta e editorial */
body[data-page="contact"] .section.contact { min-height: 100svh; background: var(--bege-claro); }
body[data-page="contact"] .container.contact { padding: 7rem 2.5rem 3rem; }
body[data-page="contact"] .card_contact_w_absolute {
  display: block;
}
body[data-page="contact"] .contact-info_w:not(.is-links),
body[data-page="contact"] .card-contact_project.is-contact,
body[data-page="contact"] .card-contact_project.show-mob-footer.contact { display: none !important; }
body[data-page="contact"] .contact-info_w.is-links {
  min-height: 58svh;
  padding: 3rem;
  justify-content: space-between;
  background: var(--verde-western);
  color: var(--marfim);
}
body[data-page="contact"] .text-block-4 { font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
body[data-page="contact"] .text-block-4-copy { font-family: var(--font-display); font-size: clamp(1.5rem, 2.25vw, 2.7rem); line-height: 1.05; }
body[data-page="contact"] .card-contact_project.is-contact { width: 100%; height: 100%; min-height: 32rem; }
body[data-page="contact"] .container-bottom-footer.is-contact { color: var(--tinta); }

@media screen and (max-width: 991px) {
  .navbar { min-height: 3.35rem; padding: .65rem 1.25rem; }
  .home-slider_btn_list_w { width: min(21rem, calc(100vw - 2rem)); }
  .gallery_list { display: flex; flex-direction: column; padding: 0; }
  .gallery_item {
    width: 100%;
    height: auto;
    aspect-ratio: var(--gallery-ratio, 1.33333);
  }
  .gallery_item img {
    width: 100%;
    height: 100%;
    aspect-ratio: inherit;
    object-fit: cover;
  }
  .gallery_editorial { flex-basis: auto; min-height: 72svh; padding: 5rem 1.25rem 2rem; }
  .gallery_editorial p { font-size: 1.8rem; }
  body[data-page="collabs"] .div-block-8,
  body[data-page="collabs"] .titre-news-item { display: block; }
  body[data-page="collabs"] .grid-news__img_w { height: 68svh !important; min-height: 28rem; }
  body[data-page="collab"] .grid__state__2__row { grid-template-columns: 1fr 1fr !important; }
  body[data-page="collab"] [data-produto],
  body[data-page="collab"] [data-produto]:nth-child(n) { grid-column: span 1; }
  body[data-page="collab"] [data-produto]:last-child { grid-column: 1 / -1; }
  body[data-page="contact"] .card_contact_w_absolute { display: flex; flex-direction: column; padding: 0; }
  body[data-page="contact"] .contact-info_w.is-links { min-height: 70svh; padding: 2rem 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.obra-volta-fluxo {
  position: absolute;
  z-index: 130;
  right: 1.5rem;
  bottom: 1.25rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .72rem .9rem;
  color: var(--tinta);
  background: rgba(237,231,222,.9);
  border: 1px solid rgba(25,23,17,.12);
  text-decoration: none;
  font-family: var(--font-mono);
  font-size: .56rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.obra-volta-fluxo:hover { transform: translateY(-.12rem); }

.collabs-manifesto {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 2rem;
  padding: 8rem 2.5rem 10rem;
  background: var(--verde-western);
  color: var(--marfim);
}
.collabs-manifesto h2 {
  max-width: 15ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 5vw, 5.4rem);
  line-height: .96;
  letter-spacing: -.025em;
}
.collabs-manifesto p { grid-column: 2; max-width: 34rem; margin: 3rem 0 0 auto; font-size: 1rem; line-height: 1.55; }

.collab-ensaio {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 42% 58%;
  background: var(--verde-western);
  color: var(--marfim);
}
.collab-ensaio-copy { padding: 7rem 2.5rem 3rem; display: flex; flex-direction: column; justify-content: space-between; }
.collab-ensaio-copy h2 { max-width: 12ch; font-family: var(--font-display); font-size: clamp(2.4rem, 4.5vw, 5rem); line-height: .94; letter-spacing: -.025em; }
.collab-ensaio-copy p { max-width: 28rem; line-height: 1.55; }
.collab-ensaio-macro { position: relative; overflow: hidden; margin: 0; clip-path: polygon(8% 0,100% 0,100% 100%,0 100%,0 14%); }
.collab-ensaio-macro img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); }
.collab-ensaio-macro figcaption { position: absolute; left: 2rem; bottom: 1.5rem; font-family: var(--font-mono); font-size: .56rem; letter-spacing: .12em; text-transform: uppercase; }

.contacto-editorial-head { display: grid; grid-template-columns: 1fr 2fr; gap: 1rem; align-items: end; margin-bottom: 4rem; }
.contacto-editorial-head h1, .contacto-editorial-head h2 { margin: 0; font-family: var(--font-display); font-size: clamp(3.3rem, 7vw, 7.7rem); line-height: .84; letter-spacing: -.04em; }
.contacto-editorial-head p { grid-column: 2; max-width: 28rem; margin: 1.5rem 0 0; }

/* A textura funciona como recorte no fluxo, com máscara assimétrica e
   revelação controlada pelo scroll — não como uma faixa decorativa. */
.faixa-tex {
  width: calc(100% - 5rem);
  margin: 8rem 2.5rem;
  height: 72vh;
  min-height: 30rem;
  clip-path: inset(var(--tex-clip, 12%) 0 0 0);
  background: transparent;
}
.faixa-tex::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(20,38,21,.38), transparent 55%);
  pointer-events: none;
}

@media screen and (max-width: 991px) {
  .obra-volta-fluxo { right: 1rem; bottom: 1rem; }
  .collabs-manifesto { display: block; padding: 5rem 1.25rem; }
  .collabs-manifesto p { margin: 2rem 0 0; }
  .collab-ensaio { display: flex; flex-direction: column; }
  .collab-ensaio-copy { min-height: 68svh; padding: 5rem 1.25rem 2rem; }
  .collab-ensaio-macro { min-height: 65svh; clip-path: polygon(0 8%,100% 0,100% 100%,0 100%); }
  .contacto-editorial-head { display: block; margin-bottom: 2.5rem; }
  .contacto-editorial-head h1, .contacto-editorial-head h2 { margin-top: 1.5rem; }
  .contacto-editorial-head p { margin-top: 1.5rem; }
  .faixa-tex { width: calc(100% - 2.5rem); margin: 5rem 1.25rem; height: 58svh; min-height: 24rem; }
}

/* ============================================================
   CORREÇÕES DE CONTENÇÃO — estas regras ficam por último de propósito.
   Impedem experimentos editoriais de vazar para Sobre, UNA e rodapés.
   ============================================================ */
.footer .grid-footer:not(.is-legals),
.footer .card-footer-w:not(.is-legals),
.footer .footer-bg { display: none !important; }
.footer .container-top-footer {
  min-height: 18rem !important;
  padding: 6rem 2.5rem 2.5rem !important;
  border-bottom: 1px solid rgba(25,23,17,.16);
  background: var(--bege-claro);
}
.footer .container-bottom-footer {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 1.25rem 2.5rem !important;
  background: var(--bege-claro) !important;
  color: var(--tinta) !important;
}
.footer .container-bottom-footer > .code-embed-5 { display: none !important; }

body[data-page="agence"] .sala-head {
  position: static !important;
  top: auto !important;
  z-index: auto !important;
  margin: 0 0 3.75rem !important;
  padding-top: 0 !important;
  transform: none !important;
}
body[data-page="agence"] .sala,
body[data-page="agence"] .croquis-sec,
body[data-page="agence"] .timeline_w { position: relative; clear: both; }
body[data-page="agence"] .timeline-head { position: static !important; margin-bottom: 3.75rem; }
body[data-page="agence"] .time-grade { margin-bottom: 7rem; }
body[data-page="agence"] .feiras_row { margin-bottom: 7rem; }

/* O recorte grande pertence às collabs; nas demais páginas a textura volta
   a integrar o fluxo sem criar um vazio de quase uma tela. */
.faixa-tex {
  width: 100% !important;
  height: 46vh !important;
  min-height: 20rem !important;
  margin: 0 !important;
  clip-path: none !important;
}
body[data-page="collabs"] .faixa-tex,
body[data-page="collab"] .faixa-tex {
  width: calc(100% - 5rem) !important;
  height: 72vh !important;
  margin: 8rem 2.5rem !important;
  clip-path: inset(var(--tex-clip, 12%) 0 0 0) !important;
}

@media screen and (max-width: 991px) {
  .footer .container-top-footer { min-height: 22rem !important; padding: 5rem 1.25rem 2rem !important; }
  .footer .container-bottom-footer { padding: 1rem 1.25rem !important; }
  body[data-page="agence"] .sala { padding-block: 4rem; }
  body[data-page="collabs"] .faixa-tex,
  body[data-page="collab"] .faixa-tex { width: calc(100% - 2.5rem) !important; height: 58svh !important; margin: 5rem 1.25rem !important; }
}

/* CONTATO V2 — página independente, sem herdar o antigo cartão/rodapé. */
body[data-page="contact"] .section.contact,
body[data-page="contact"] main > .faixa-tex { display: none !important; }
.contact-v2 {
  min-height: 100svh;
  padding-top: 4.7rem;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(24rem, .65fr);
  grid-template-rows: 1fr auto;
  background: var(--bege-claro);
  color: var(--tinta);
}
.contact-v2-intro {
  min-width: 0;
  padding: 5rem 2.5rem 3rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2rem;
  border-right: 1px solid rgba(25,23,17,.16);
}
.contact-v2-kicker,
.contact-v2-routes > a > span:first-child,
.contact-v2-address > span {
  font-family: var(--font-mono);
  font-size: .56rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.contact-v2-intro h1 {
  max-width: 8.5ch;
  margin: auto 0 0;
  font-family: var(--font-display);
  font-size: clamp(4.8rem, 9vw, 10rem);
  font-weight: 500;
  line-height: .8;
  letter-spacing: -.05em;
}
.contact-v2-intro p { max-width: 34rem; margin: 0; font-size: 1rem; line-height: 1.55; }
.contact-v2-routes { padding-top: 1.5rem; display: flex; flex-direction: column; }
.contact-v2-routes > a {
  min-height: 8.5rem;
  padding: 1.25rem 1.5rem;
  display: grid;
  grid-template-columns: 1fr auto;
  align-content: space-between;
  color: inherit;
  border-bottom: 1px solid rgba(25,23,17,.16);
  text-decoration: none;
  transition: background-color .35s ease, color .35s ease;
}
.contact-v2-routes > a > span:first-child { grid-column: 1 / -1; opacity: .6; }
.contact-v2-routes > a strong { font-family: var(--font-display); font-size: 1.8rem; font-weight: 500; }
.contact-v2-routes > a:hover { background: var(--verde-western); color: var(--marfim); }
.contact-v2-address { margin-top: auto; padding: 2rem 1.5rem; }
.contact-v2-address p { margin: 1.5rem 0 .8rem; line-height: 1.45; }
.contact-v2-address small { opacity: .6; }
.contact-v2-bottom {
  grid-column: 1 / -1;
  padding: 1rem 2.5rem;
  display: flex;
  justify-content: space-between;
  border-top: 1px solid rgba(25,23,17,.16);
}
.contact-v2-bottom a { color: inherit; font-family: var(--font-mono); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; }

@media screen and (max-width: 991px) {
  .contact-v2 { padding-top: 4rem; display: flex; flex-direction: column; }
  .contact-v2-intro { min-height: 80svh; padding: 4rem 1.25rem 2rem; border-right: 0; border-bottom: 1px solid rgba(25,23,17,.16); }
  .contact-v2-intro h1 { font-size: 18vw; }
  .contact-v2-routes > a { min-height: 7rem; padding: 1rem 1.25rem; }
  .contact-v2-address { min-height: 15rem; padding: 2rem 1.25rem; }
  .contact-v2-bottom { padding: 1rem 1.25rem; gap: 1rem; }
}

/* ============================================================
   NAVEGAÇÃO V2 — menos ruído, sociais por ícone e um só hover.
   ============================================================ */
.navbar {
  height: 3.75rem;
  min-height: 3.75rem;
  background: rgba(249, 246, 237, .94) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
}
.navbar .line-nav { display: none !important; }
.navbar .nav-link {
  font-weight: 700 !important;
  opacity: .58;
  transform: translateY(0);
  transition: opacity .28s ease, transform .45s var(--ease-editorial) !important;
}
.navbar .nav-link:hover,
.navbar .nav-link.w--current {
  opacity: 1;
  transform: translateY(-1px);
}
.nav-social-row {
  display: inline-flex;
  align-items: center;
  gap: .22rem;
  margin-left: .15rem;
}
.nav-social {
  width: 1.7rem;
  height: 1.7rem;
  padding: .42rem;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(25, 23, 17, .14);
  border-radius: 50%;
  opacity: .66 !important;
}
.nav-social svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.nav-social svg .social-dot { fill: currentColor; stroke: none; }
.nav-social:hover {
  color: var(--marfim) !important;
  background: var(--verde-western);
  border-color: var(--verde-western);
  opacity: 1 !important;
}
.nav-social:focus-visible,
.navbar .nav-link:focus-visible {
  outline: 1px solid var(--cobre);
  outline-offset: 3px;
}

@media screen and (max-width: 1200px) {
  .navbar { padding: .8rem 1.25rem; color: var(--tinta) !important; }
  .navbar .hide-mob { display: none !important; }
  .navbar .nav-link.menu { display: block !important; pointer-events: auto; }
  .menu_w { z-index: 1002; height: 100svh; padding: 1.25rem; background: var(--bege-claro); }
  .menu_w .nav-menu { display: flex !important; min-height: 2rem; }
  .menu_w .nav-link.menu { display: block !important; font-size: .62rem; }
  .menu_w_item { height: calc(100svh - 3.25rem); padding-bottom: 0; display: grid; grid-template-rows: 1fr auto; }
  .menu_w_item > div:first-child { display: none; }
  .nav-r.mob { gap: .75rem; }
  .nav-link.mob { font-size: clamp(1.15rem, 4.8vw, 1.8rem); font-weight: 500 !important; text-transform: none; letter-spacing: -.02em; }
  .nav-social-row.is-mobile { margin: .65rem 0 0; gap: .5rem; }
  .menu_w .nav-r .nav-social-row.is-mobile .nav-social { width: 2.3rem; height: 2.3rem; padding: .62rem; display: inline-flex !important; }
  .menu_w .logo-landing-big.menu { display: none !important; }
  .menu_w_item > div:last-child { margin-top: 0; align-self: end; }
  .menu_w .container-bottom-footer.is-menu { padding: .9rem 0 0; border-top: 1px solid rgba(25,23,17,.14); }
}

/* ============================================================
   ÍNDICE DE OBRAS V2 — leitura vertical, sem FLIP ou filtros soltos.
   ============================================================ */
body.projects-index-v2 .filtre_w_flip,
body.projects-index-v2 .respiro { display: none !important; }
body.projects-index-v2 .section.projets,
body.projects-index-v2 .section.projets-copy { min-height: 0; }
.projects-index-intro {
  min-height: 78svh;
  padding: 9rem 2.5rem 2.5rem;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(18rem, .7fr);
  grid-template-rows: 1fr auto;
  column-gap: 4rem;
  border-bottom: 1px solid rgba(25,23,17,.16);
}
.projects-index-copy { align-self: start; }
.projects-index-kicker {
  display: block;
  margin-bottom: 2rem;
  font-family: var(--font-mono);
  font-size: .56rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.projects-index-copy h1 {
  max-width: 12ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(4.4rem, 8.5vw, 9.5rem);
  font-weight: 500;
  line-height: .84;
  letter-spacing: -.055em;
}
.projects-index-copy h1 em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.projects-index-intro > p {
  max-width: 28rem;
  margin: .1rem 0 0;
  align-self: end;
  font-size: 1rem;
  line-height: 1.5;
}
.projects-index-filters {
  grid-column: 1 / -1;
  margin-top: 3.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.projects-index-filters button {
  padding: .62rem .9rem;
  color: inherit;
  background: transparent;
  border: 1px solid rgba(25,23,17,.18);
  border-radius: 100vw;
  font-family: var(--font-mono);
  font-size: .55rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .3s ease, background-color .3s ease, border-color .3s ease;
}
.projects-index-filters button:hover,
.projects-index-filters button.is-active {
  color: var(--marfim);
  background: var(--verde-western);
  border-color: var(--verde-western);
}
.projects-index-shell { padding: 2.5rem; }
.projects-index-close {
  margin-top: 8rem;
  padding: 2rem 0 0;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 2rem;
  border-top: 1px solid rgba(25,23,17,.18);
}
.projects-index-close > span {
  font-family: var(--font-mono);
  font-size: .56rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.projects-index-close a {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  color: inherit;
  text-decoration: none;
}
.projects-index-close strong { font-family: var(--font-display); font-size: clamp(2.4rem, 5vw, 6rem); font-weight: 500; line-height: .92; }

@media screen and (max-width: 991px) {
  .projects-index-intro { min-height: 82svh; padding: 7rem 1.25rem 1.5rem; display: flex; flex-direction: column; }
  .projects-index-copy h1 { font-size: clamp(3.35rem, 15vw, 6rem); }
  .projects-index-intro > p { margin-top: auto; padding-top: 3rem; }
  .projects-index-filters { margin-top: 2rem; }
  .projects-index-shell { padding: 1.25rem; }
  .projects-index-close { margin-top: 5rem; grid-template-columns: 1fr; }
}

/* ============================================================
   SOBRE V2 — origem → cultura → método → jornada → pessoas.
   ============================================================ */
.agence-v2 { padding-top: 3.75rem; color: var(--tinta); background: var(--marfim); }
.agence-v2-kicker {
  font-family: var(--font-mono);
  font-size: .56rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.agence-v2-hero {
  min-height: calc(100svh - 3.75rem);
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  border-bottom: 1px solid rgba(25,23,17,.16);
}
.agence-v2-hero-copy {
  padding: 5rem 2.5rem 2.5rem;
  display: flex;
  flex-direction: column;
}
.agence-v2-hero h1 {
  margin: auto 0 2.5rem;
  font-family: var(--font-display);
  font-size: clamp(4rem, 7.2vw, 8rem);
  font-weight: 500;
  line-height: .86;
  letter-spacing: -.055em;
}
.agence-v2-hero h1 em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.agence-v2-hero-copy p { max-width: 32rem; font-size: 1rem; line-height: 1.5; }
.agence-v2-hero > figure { min-width: 0; margin: 0; position: relative; overflow: hidden; }
.agence-v2-hero > figure img { width: 100%; height: 100%; display: block; object-fit: cover; }
.agence-v2-hero > figure figcaption {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  padding: .45rem .65rem;
  color: var(--marfim);
  background: rgba(25,23,17,.72);
  font-family: var(--font-mono);
  font-size: .5rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.agence-v2-origin {
  padding: 8rem 2.5rem;
  display: grid;
  grid-template-columns: 1.1fr 1.2fr .9fr;
  gap: 4rem;
  align-items: start;
}
.agence-v2-year {
  font-family: var(--font-display);
  font-size: clamp(5rem, 11vw, 12rem);
  line-height: .7;
  letter-spacing: -.06em;
}
.agence-v2-story h2,
.agence-v2-japan h2,
.agence-v2-hand-intro h2,
.agence-v2-timeline header h2,
.agence-v2-team header h2 {
  margin: 2rem 0;
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 5vw, 5.8rem);
  font-weight: 500;
  line-height: .92;
  letter-spacing: -.045em;
}
.agence-v2-story p,
.agence-v2-japan > p,
.agence-v2-hand-intro p { font-size: 1rem; line-height: 1.58; }
.agence-v2-placeholder {
  min-height: 23rem;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  color: var(--marfim);
  background: var(--verde-western);
  border: 1px dashed rgba(249,246,237,.42);
}
.agence-v2-placeholder span {
  font-family: var(--font-mono);
  font-size: .55rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .65;
}
.agence-v2-placeholder strong { max-width: 18rem; font-family: var(--font-display); font-size: 1.55rem; font-weight: 500; line-height: 1.05; }
.agence-v2-placeholder.is-light { color: var(--tinta); background: var(--bege-pedra); border-color: rgba(25,23,17,.32); }
.agence-v2-japan {
  min-height: 78svh;
  padding: 7rem 2.5rem;
  display: grid;
  grid-template-columns: 1.1fr .7fr .7fr;
  gap: 4rem;
  align-items: start;
  color: var(--marfim);
  background: var(--verde-western);
}
.agence-v2-japan > p { align-self: end; }
.agence-v2-brothers { padding: .75rem; display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.agence-v2-brothers > article { padding: 2rem; background: var(--bege-claro); }
.agence-v2-brother-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 2rem; }
.agence-v2-brother-head span {
  font-family: var(--font-mono);
  font-size: .55rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.agence-v2-brother-head h2 { font-family: var(--font-display); font-size: clamp(3rem, 5vw, 6rem); font-weight: 500; line-height: .85; }
.agence-v2-brothers figure { height: 60svh; margin: 4rem 0 1.5rem; overflow: hidden; }
.agence-v2-brothers figure img { width: 100%; height: 100%; display: block; object-fit: cover; }
.agence-v2-brothers article:first-child figure img { object-position: 50% 35%; }
.agence-v2-brothers article p { max-width: 31rem; font-size: .9rem; line-height: 1.5; }
.agence-v2-hand { padding: 8rem 2.5rem; }
.agence-v2-hand-intro { margin-bottom: 5rem; display: grid; grid-template-columns: 1fr 1.35fr .65fr; gap: 3rem; align-items: end; }
.agence-v2-hand-intro h2 { margin: 0; }
.agence-v2-sketches { display: grid; grid-template-columns: repeat(12, 1fr); gap: .75rem; align-items: end; }
.agence-v2-sketches figure { grid-column: span 3; margin: 0; }
.agence-v2-sketches figure.is-wide { grid-column: span 3; }
.agence-v2-sketches figure:nth-child(2) { transform: translateY(3rem); }
.agence-v2-sketches figure:nth-child(3) { transform: translateY(-2rem); }
.agence-v2-sketches img { width: 100%; aspect-ratio: 4 / 5; display: block; object-fit: cover; background: var(--bege-pedra); }
.agence-v2-sketches .is-wide img { aspect-ratio: 4 / 5; }
.agence-v2-sketches figcaption { margin-top: .65rem; font-family: var(--font-mono); font-size: .5rem; letter-spacing: .08em; text-transform: uppercase; }
.agence-v2-timeline { padding: 8rem 2.5rem; background: var(--bege-claro); }
.agence-v2-timeline > header { max-width: 52rem; margin-bottom: 5rem; }
.agence-v2-milestones > article {
  min-height: 18rem;
  padding: 1rem 0;
  display: grid;
  grid-template-columns: .5fr 1.25fr .75fr;
  gap: 3rem;
  border-top: 1px solid rgba(25,23,17,.2);
}
.agence-v2-milestones time { font-family: var(--font-display); font-size: clamp(2.4rem, 5vw, 5.5rem); line-height: .9; }
.agence-v2-milestones h3 { margin-bottom: .8rem; font-family: var(--font-display); font-size: 1.7rem; font-weight: 600; }
.agence-v2-milestones p { max-width: 34rem; line-height: 1.5; }
.agence-v2-milestones figure,
.agence-v2-placeholder.is-compact { width: 100%; min-height: 0; height: 15rem; margin: 0; }
.agence-v2-milestones figure img { width: 100%; height: 100%; display: block; object-fit: cover; }
.agence-v2-placeholder.is-compact strong { font-size: 1rem; }
.agence-v2-team { padding: 8rem 2.5rem; }
.agence-v2-team > header { max-width: 60rem; margin-bottom: 5rem; }
.agence-v2-team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.agence-v2-team-grid figure,
.agence-v2-team-grid .is-pending > div { width: 100%; aspect-ratio: 3 / 4; margin: 0 0 1rem; }
.agence-v2-team-grid figure img { width: 100%; height: 100%; display: block; object-fit: cover; }
.agence-v2-team-grid .is-pending > div {
  padding: 1rem;
  display: flex;
  align-items: flex-end;
  color: rgba(25,23,17,.6);
  background: var(--bege-pedra);
  border: 1px dashed rgba(25,23,17,.3);
  font-family: var(--font-mono);
  font-size: .55rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.agence-v2-team-grid h3 { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; }
.agence-v2-team-grid p { margin-top: .25rem; font-size: .75rem; opacity: .65; }
.agence-v2-close {
  min-height: 62svh;
  padding: 4rem 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  color: var(--marfim);
  background: var(--verde-western);
}
.agence-v2-close > span { font-family: var(--font-mono); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.agence-v2-close a { display: flex; justify-content: space-between; align-items: end; gap: 2rem; color: inherit; text-decoration: none; }
.agence-v2-close strong { max-width: 12ch; font-family: var(--font-display); font-size: clamp(4rem, 9vw, 10rem); font-weight: 500; line-height: .82; letter-spacing: -.055em; }
.agence-v2-close a > span { font-size: 2rem; }

/* Acervo documental: manter fotografia inteira, sem máscara ou recorte. */
.agence-v2-archive { min-width: 0; margin: 0; align-self: start; }
.agence-v2-origin > .agence-v2-archive { width: 100%; }
.agence-v2 .agence-v2-archive img { display: block; width: 100%; height: auto; object-fit: contain; }
.agence-v2-archive figcaption {
  margin-top: 12px;
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.agence-v2-milestones figure.agence-v2-archive { height: auto; }
.agence-v2-milestones > .is-text-only { min-height: 0; padding-block: 2rem; }
.agence-v2-milestones > .is-text-only > div { grid-column: 2 / -1; }
/* Sete nomes reais, sem cartões vazios simulando retratos que ainda não existem. */
.agence-v2-team-grid.is-roster { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 4rem; }
.agence-v2-team-grid.is-roster > article { min-width: 0; padding: 1.6rem 0; border-top: 1px solid rgba(25,23,17,.2); }
.agence-v2-team-grid.is-roster h3 { margin: 0; font-size: clamp(24px, 2.4vw, 40px); font-weight: 500; line-height: 1.1; }
.agence-v2-team-grid.is-roster p { margin-top: 12px; font-size: clamp(14px, 1vw, 18px); line-height: 1.45; opacity: .8; }

@media screen and (max-width: 991px) {
  .agence-v2 { padding-top: 3.75rem; }
  .agence-v2-hero { display: flex; flex-direction: column; }
  .agence-v2-hero-copy { min-height: 72svh; padding: 4rem 1.25rem 2rem; }
  .agence-v2-hero h1 { font-size: clamp(3.6rem, 15vw, 6.2rem); }
  .agence-v2-hero > figure { height: 72svh; }
  .agence-v2-origin,
  .agence-v2-japan { padding: 5rem 1.25rem; display: flex; flex-direction: column; gap: 3rem; }
  .agence-v2-placeholder { width: 100%; min-height: 18rem; }
  .agence-v2-brothers { grid-template-columns: 1fr; }
  .agence-v2-brothers > article { padding: 1.25rem; }
  .agence-v2-brothers figure { height: 58svh; margin-top: 3rem; }
  .agence-v2-hand,
  .agence-v2-timeline,
  .agence-v2-team { padding: 5rem 1.25rem; }
  .agence-v2-hand-intro { margin-bottom: 3rem; display: flex; flex-direction: column; align-items: flex-start; }
  .agence-v2-sketches { grid-template-columns: 1fr 1fr; }
  .agence-v2-sketches figure,
  .agence-v2-sketches figure.is-wide { grid-column: span 1; transform: none !important; }
  .agence-v2-milestones > article { grid-template-columns: 1fr; gap: 1.5rem; }
  .agence-v2-team-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem .75rem; }
  .agence-v2-close { min-height: 70svh; padding: 3rem 1.25rem 1.5rem; }
  .agence-v2-close strong { font-size: clamp(3.8rem, 16vw, 6rem); }
  .agence-v2-milestones > .is-text-only > div { grid-column: auto; }
  .agence-v2-origin > .agence-v2-archive { max-width: 640px; }
  .agence-v2-team-grid.is-roster { gap: 0 2rem; }
}
@media screen and (max-width: 600px) {
  .agence-v2-team-grid.is-roster { grid-template-columns: 1fr; }
}

/* ============================================================
   COLLABS — encontro editorial, sem colisão de títulos ou macro genérica.
   ============================================================ */
body[data-page="collabs"] .container.news-hero {
  min-height: 0;
  padding: 9rem 2.5rem 2.5rem;
}
body[data-page="collabs"] .div-block-8 {
  margin: 0 0 5rem;
  display: grid;
  grid-template-columns: .42fr 1fr;
  gap: 3rem;
  align-items: start;
}
body[data-page="collabs"] .div-block-8::before {
  content: "Collabs · matéria × matéria";
  padding-top: .35rem;
  font-family: var(--font-mono);
  font-size: .56rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}
body[data-page="collabs"] .news-h1_w { display: block; }
body[data-page="collabs"] .fake-h1-news { display: none !important; }
body[data-page="collabs"] .h1-news {
  max-width: 13ch;
  font-family: var(--font-display);
  font-size: clamp(4rem, 7vw, 8rem);
  font-weight: 500;
  line-height: .88;
  letter-spacing: -.05em;
}
body[data-page="collabs"] .grid-news__img_w { height: min(68vw, 72svh) !important; }
body[data-page="collabs"] .grid-news__img_w > img { width: 100%; height: 100%; display: block; object-fit: cover; }
body[data-page="collabs"] .titre-news-item {
  padding-top: .9rem;
  display: grid;
  grid-template-columns: .35fr 1fr;
  gap: 3rem;
  border-top: 1px solid rgba(25,23,17,.18);
}
body[data-page="collabs"] .desc-thumb-news { max-width: 44rem; line-height: 1.25; }
body[data-page="collabs"] .faixa-tex { display: none !important; }
body[data-page="collabs"] .collabs-manifesto { border-top: 1px solid rgba(25,23,17,.16); }

body[data-page="collab"] .collab-ensaio-macro { clip-path: none; background: #b5a08f; }
body[data-page="collab"] .collab-ensaio-macro img { transform: none; object-fit: cover; }

/* ESPECIFIQUE V2 — catálogo como ferramenta de projeto, não vitrine vazia. */
body[data-page="catalogos"] .footer { display: none !important; }
.spec-v2-hero { min-height: 100svh; padding: 8rem 2.5rem 2.5rem; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto 1fr auto; background: var(--travertin-light); }
.spec-v2-kicker { grid-column: 1 / -1; font-family: var(--font-mono); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.spec-v2-hero h1 { grid-column: 1 / -1; align-self: center; margin: 1rem 0; font-family: var(--font-display); font-size: clamp(4.5rem, 9.5vw, 10.5rem); font-weight: 500; line-height: .82; letter-spacing: -.055em; }
.spec-v2-intro { grid-column: 2; display: grid; grid-template-columns: 1fr; gap: 2rem; max-width: 32rem; justify-self: end; }
.spec-v2-intro p { margin: 0; font-size: 1rem; line-height: 1.55; }
.spec-v2-link { padding: 1rem 0; border-top: 1px solid currentColor; display: flex; justify-content: space-between; align-items: center; gap: 2rem; font-family: var(--font-mono); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.spec-v2-lines { padding: 7rem 2.5rem; }
.spec-v2-section-head { margin-bottom: 3.5rem; display: grid; grid-template-columns: 1fr 2fr; align-items: end; gap: 2rem; }
.spec-v2-section-head > span,
.spec-v2-flow > span { font-family: var(--font-mono); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.spec-v2-section-head > .ws-meta { align-self: end; }
.spec-v2-section-head h2 { margin: 0; font-family: var(--font-display); font-size: clamp(2.6rem, 5vw, 5.2rem); font-weight: 500; line-height: .92; letter-spacing: -.04em; }
.spec-v2-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .625rem; }
.spec-v2-card { min-width: 0; }
.spec-v2-card > img { width: 100%; height: 58vh; min-height: 25rem; object-fit: cover; display: block; }
.spec-v2-card > div { padding: 1rem 0 0; display: grid; grid-template-columns: 2rem 1fr; gap: .35rem .5rem; border-top: 1px solid currentColor; }
.spec-v2-card span { grid-row: 1 / 3; font-family: var(--font-mono); font-size: .55rem; }
.spec-v2-card h3 { margin: 0; font-family: var(--font-display); font-size: 1.45rem; font-weight: 500; }
.spec-v2-card p { margin: 0; max-width: 20rem; font-size: .78rem; line-height: 1.45; opacity: .72; }
.spec-v2-missing { margin-top: 4rem; padding: 1rem 0; border-block: 1px solid currentColor; display: grid; grid-template-columns: 1fr 2fr; gap: 2rem; }
.spec-v2-missing span { font-family: var(--font-mono); font-size: .55rem; letter-spacing: .1em; text-transform: uppercase; }
.spec-v2-missing strong { font-weight: 400; }
.spec-v2-flow { min-height: 100svh; padding: 7rem 2.5rem 2.5rem; background: var(--verde-western); color: var(--marfim); display: flex; flex-direction: column; }
.spec-v2-flow ol { margin: 5rem 0 7rem; padding: 0; list-style: none; border-top: 1px solid rgba(244,240,228,.4); }
.spec-v2-flow li { padding: 1.25rem 0; border-bottom: 1px solid rgba(244,240,228,.4); display: grid; grid-template-columns: 4rem 1fr 1fr; gap: 2rem; align-items: baseline; }
.spec-v2-flow b { font-family: var(--font-mono); font-size: .55rem; font-weight: 400; }
.spec-v2-flow strong { font-family: var(--font-display); font-size: clamp(1.7rem, 3vw, 3.2rem); font-weight: 500; }
.spec-v2-flow li p { margin: 0; max-width: 25rem; font-size: .8rem; line-height: 1.5; opacity: .72; }
.spec-v2-final { margin-top: auto; display: grid; grid-template-columns: 2fr 1fr; gap: 2rem; align-items: end; }
.spec-v2-final h2 { margin: 0; font-family: var(--font-display); font-size: clamp(3rem, 6vw, 7rem); font-weight: 500; line-height: .88; letter-spacing: -.045em; }

@media screen and (max-width: 991px) {
  .spec-v2-hero { min-height: 100svh; padding: 6rem 1.25rem 1.5rem; display: flex; flex-direction: column; }
  .spec-v2-hero h1 { margin: auto 0 3rem; font-size: 17vw; }
  .spec-v2-intro { max-width: none; }
  .spec-v2-lines { padding: 5rem 1.25rem; }
  .spec-v2-section-head { display: block; }
  .spec-v2-section-head h2 { margin-top: 1rem; }
  .spec-v2-section-head > .ws-meta { margin-bottom: 1.25rem; }
  .spec-v2-grid { display: block; }
  .spec-v2-card { margin-bottom: 3rem; }
  .spec-v2-card > img { height: 58svh; min-height: 0; }
  .spec-v2-missing { grid-template-columns: 1fr; }
  .spec-v2-flow { padding: 5rem 1.25rem 1.5rem; }
  .spec-v2-flow li { grid-template-columns: 2rem 1fr; gap: 1rem; }
  .spec-v2-flow li p { grid-column: 2; }
  .spec-v2-final { display: block; }
  .spec-v2-final h2 { margin-bottom: 3rem; }
}

/* UNA — títulos fazem a ponte entre os atos; a macro explica a pátina. */
body[data-page="una"] .horizontal_wrap + * { position: relative; }
body[data-page="una"] .hero-about-info-bottom { min-height: 10rem; display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 2rem; }
body[data-page="una"] .hero-about-info-bottom .h2-subtitle-about:first-child { font-family: var(--font-display); font-size: clamp(3.5rem, 6.5vw, 7rem); font-weight: 500; line-height: .86; letter-spacing: -.045em; text-transform: none; }
body[data-page="una"] .hero-about-info-bottom .h2-subtitle-about:last-child { max-width: 20rem; justify-self: end; font-size: .68rem; line-height: 1.35; letter-spacing: .08em; }

@media screen and (max-width: 991px) {
  body[data-page="una"] .hero-about-info-bottom { min-height: 8rem; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: .75rem; }
  body[data-page="una"] .hero-about-info-bottom .h2-subtitle-about:first-child { font-size: 16vw; }
  body[data-page="una"] .hero-about-info-bottom .h2-subtitle-about:last-child { max-width: 18rem; align-self: flex-end; }
}

/* OBRAS — a melhor imagem abre o projeto; o painel informa sem imitá-la. */
@media screen and (min-width: 992px) {
  body[data-page="projet"] .project-hero_w.test,
  body[data-page="projet"] .gallery_list_w,
  body[data-page="projet"] .gallery_list { width: max-content; }
  body[data-page="projet"] .project-hero-left { width: 34%; padding: 6rem 2rem 2rem; align-items: stretch; }
  body[data-page="projet"] .project-hero-right { width: 66%; }
  body[data-page="projet"] .project-hero-left > div:first-child { display: none; }
  body[data-page="projet"] .thumb_w { width: min(100%, 18rem); margin-top: auto; }
  body[data-page="projet"] .test-block { width: 100%; height: 27vh; min-height: 11rem; }
  body[data-page="projet"] .info-desc-project { justify-content: flex-start; }
  body[data-page="projet"] .courte-desc { text-align: left; }
  body[data-page="projet"] .h1-project { margin: 2rem 0 0; text-align: left; font-size: clamp(3.6rem, 5.4vw, 6rem); line-height: .88; letter-spacing: -.045em; }
}

@media screen and (max-width: 991px) {
  body[data-page="projet"] .project-hero-right { order: -1; height: 76svh; flex: none; }
  body[data-page="projet"] .project-hero-left { height: auto; min-height: 74svh; padding: 4rem 1.25rem 1.5rem; align-items: stretch; }
  body[data-page="projet"] .project-hero-left > div:first-child { display: none; }
  body[data-page="projet"] .thumb_w { width: min(100%, 18rem); margin-top: auto; }
  body[data-page="projet"] .test-block { width: 100%; height: 15rem; }
  body[data-page="projet"] .info-desc-project { justify-content: flex-start; }
  body[data-page="projet"] .courte-desc { text-align: left; }
  body[data-page="projet"] .h1-project { margin: 2rem 0 0; text-align: left; font-size: 13vw; line-height: .9; }
}

/* HOME — sequência finita: obras, matéria, caminhos. */
.home-slider_w .home-slider_list_w,
.home-slider_w .home-slider_btn_w { transition: opacity .35s ease, visibility .35s ease; }
.home-slider_w.is-ended .home-slider_list_w,
.home-slider_w.is-ended .home-slider_btn_w { opacity: 0; visibility: hidden; pointer-events: none; }
body.home-tail-is-visible .div-block-9,
body.home-tail-is-visible .div-block-10 { opacity: 0; visibility: hidden; }
.home-after { position: relative; z-index: 20; background: var(--travertin-light); }

/* PROCESSO — atlas funcional no lugar do antigo carrossel de macros. */
.process-material-atlas { padding: 7rem 2.5rem 2.5rem; background: var(--areia); }
.process-material-atlas > header { margin-bottom: 4rem; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: end; }
.process-material-atlas > header > span { align-self: start; font-family: var(--font-mono); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.process-material-atlas > header h2 { grid-column: 2; margin: 0; font-family: var(--font-display); font-size: clamp(4rem, 7.5vw, 8rem); font-weight: 500; line-height: .84; letter-spacing: -.05em; }
.process-material-atlas > header p { grid-column: 2; max-width: 30rem; margin: 0; font-size: .9rem; line-height: 1.55; }
.process-atlas-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: .625rem; align-items: stretch; }
.process-atlas-grid figure { min-width: 0; margin: 0; background: var(--travertin-light); }
.process-atlas-grid figure img { width: 100%; height: 68svh; min-height: 30rem; object-fit: cover; display: block; }
.process-atlas-grid figcaption { padding: 1rem 0 0; display: grid; grid-template-columns: 1fr; gap: .35rem; border-top: 1px solid currentColor; }
.process-atlas-grid figcaption span,
.process-atlas-grid figcaption small { font-family: var(--font-mono); font-size: .52rem; letter-spacing: .08em; text-transform: uppercase; }
.process-atlas-grid figcaption strong { max-width: 22rem; font-family: var(--font-display); font-size: 1.35rem; font-weight: 500; line-height: 1.05; }
.process-atlas-grid figcaption small { opacity: .55; }
.process-atlas-link { margin-top: 5rem; padding: 1.15rem 0; border-block: 1px solid currentColor; display: flex; justify-content: space-between; gap: 2rem; font-family: var(--font-mono); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }

@media screen and (max-width: 991px) {
  .process-missing-media { display: flex !important; position: relative; top: auto; min-height: 65svh; height: auto; }
  .process-material-atlas { padding: 5rem 1.25rem 1.5rem; }
  .process-material-atlas > header { display: block; }
  .process-material-atlas > header h2 { margin: 1.25rem 0 2rem; font-size: 16vw; }
  .process-atlas-grid { display: block; }
  .process-atlas-grid figure { margin-bottom: 3rem; }
  .process-atlas-grid figure img { height: 65svh; min-height: 0; }
}
body[data-page="collab"] .collab-ensaio-macro figcaption { padding: .45rem .65rem; color: var(--marfim); background: rgba(25,23,17,.68); }
body[data-page="collab"] .grid__state__2__row {
  grid-template-columns: repeat(12, minmax(0,1fr)) !important;
  gap: 5rem .75rem !important;
}
body[data-page="collab"] .grid__state__2__row [data-produto]:nth-child(n) { grid-column: span 6 !important; }
body[data-page="collab"] .grid__state__2__row [data-produto]:nth-child(3) { grid-column: 1 / -1 !important; }
body[data-page="collab"] .grid__state__2__link { height: 42vw !important; }
body[data-page="collab"] .grid__state__2__item:nth-child(3) .grid__state__2__link { height: 62vw !important; max-height: 82svh; }
body[data-page="collab"] .grid__state__2__link .image-7 { width: 100%; height: 100%; object-fit: cover; }

@media screen and (max-width: 991px) {
  body[data-page="collabs"] .container.news-hero { padding: 7rem 1.25rem 1.25rem; }
  body[data-page="collabs"] .div-block-8 { margin-bottom: 3rem; display: block; }
  body[data-page="collabs"] .div-block-8::before { display: block; margin-bottom: 2rem; }
  body[data-page="collabs"] .h1-news { font-size: clamp(3.5rem, 15vw, 6rem); }
  body[data-page="collabs"] .grid-news__img_w { height: 62svh !important; }
  body[data-page="collabs"] .titre-news-item { grid-template-columns: 1fr; gap: 1rem; }
  body[data-page="collab"] .grid__state__2__row { grid-template-columns: 1fr !important; gap: 3rem !important; }
  body[data-page="collab"] .grid__state__2__row [data-produto]:nth-child(n) { grid-column: 1 !important; }
  body[data-page="collab"] .grid__state__2__link,
  body[data-page="collab"] .grid__state__2__item:nth-child(3) .grid__state__2__link { height: 105vw !important; }
}

/* ============================================================
   REVENDA V2 — uma ponte curta e inequívoca para a Western Store.
   ============================================================ */

/* RODAPÉ EDITORIAL — encerramento claro, sem newsletter ou moldura falsa. */
body:not([data-page="legals"]) footer.footer {
  background: var(--verde-western);
  color: var(--marfim);
}
body:not([data-page="legals"]) footer.footer .container-top-footer {
  min-height: 68svh !important;
  padding: 6rem 2.5rem 2.5rem !important;
  align-items: flex-end;
  gap: 4rem;
  background: var(--verde-western) !important;
  color: var(--marfim);
  border-color: rgba(244,240,228,.26);
}
body:not([data-page="legals"]) footer.footer .container-top-footer .desc-projet {
  max-width: 12ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 6.4vw, 7.5rem);
  font-weight: 500;
  line-height: .86;
  letter-spacing: -.05em;
}
body:not([data-page="legals"]) footer.footer .flex-40 {
  min-width: min(24rem, 34vw);
  padding-bottom: .35rem;
}
body:not([data-page="legals"]) footer.footer .contact-footer {
  color: inherit;
  border-color: rgba(244,240,228,.38);
}
body:not([data-page="legals"]) footer.footer .container-bottom-footer {
  background: var(--verde-western) !important;
  color: var(--marfim) !important;
  border-top: 1px solid rgba(244,240,228,.26);
}

.skip-link {
  z-index: 2000;
  position: fixed;
  top: .75rem;
  left: .75rem;
  padding: .7rem 1rem;
  color: var(--marfim);
  background: var(--verde-western);
  font-family: var(--font-mono);
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  transform: translateY(-180%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }
/* clip, não hidden: hidden cria um contêiner de rolagem e o palco sticky (cinema do processo) sai do lugar */
body.menu-is-open { overflow: hidden; overflow: clip; }
:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: 2px solid var(--cobre) !important;
  outline-offset: 4px !important;
}

@media screen and (max-width: 991px) {
  body:not([data-page="legals"]) footer.footer .container-top-footer {
    min-height: 72svh !important;
    padding: 5rem 1.25rem 2rem !important;
    justify-content: space-between;
    gap: 3rem;
  }
  body:not([data-page="legals"]) footer.footer .container-top-footer .desc-projet {
    max-width: 10ch;
    font-size: clamp(3.4rem, 15vw, 5.8rem);
  }
  body:not([data-page="legals"]) footer.footer .flex-40 {
    width: 100%;
    min-width: 0;
  }
  body:not([data-page="legals"]) footer.footer .container-bottom-footer {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
  }
  body:not([data-page="legals"]) footer.footer .footer-link-left,
  body:not([data-page="legals"]) footer.footer .footer-link-right {
    width: 100%;
    justify-content: space-between;
  }
}

/* TERMOS — estrutura pronta para conteúdo jurídico real, sem dados inventados. */
.legal-v2 { padding-top: 3.75rem; color: var(--tinta); background: var(--marfim); }
.legal-v2-head {
  min-height: 72svh;
  padding: 5rem 2.5rem 2.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr auto;
  gap: 2rem;
  border-bottom: 1px solid rgba(25,23,17,.16);
}
.legal-v2-head > span,
.legal-v2-grid article > span,
.legal-v2-bottom {
  font-family: var(--font-mono);
  font-size: .55rem;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.legal-v2-head h1 {
  grid-column: 1 / -1;
  align-self: center;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(5rem, 10vw, 11rem);
  font-weight: 500;
  line-height: .82;
  letter-spacing: -.055em;
}
.legal-v2-head p { max-width: 34rem; margin: 0; align-self: end; font-size: 1rem; line-height: 1.5; }
.legal-v2-head strong {
  align-self: end;
  justify-self: end;
  padding: .55rem .75rem;
  color: var(--marfim);
  background: var(--terra);
  font-family: var(--font-mono);
  font-size: .52rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.legal-v2-grid { display: grid; grid-template-columns: 1fr 1fr; }
.legal-v2-grid article { min-height: 28rem; padding: 2.5rem; display: flex; flex-direction: column; border-bottom: 1px solid rgba(25,23,17,.16); }
.legal-v2-grid article:nth-child(odd) { border-right: 1px solid rgba(25,23,17,.16); }
.legal-v2-grid h2 { max-width: 12ch; margin: auto 0 2rem; font-family: var(--font-display); font-size: clamp(2.5rem, 4vw, 4.8rem); font-weight: 500; line-height: .9; letter-spacing: -.04em; }
.legal-v2-grid p { max-width: 34rem; margin: 0 0 1.5rem; line-height: 1.5; }
.legal-v2-grid em { max-width: 36rem; padding-top: 1.25rem; border-top: 1px solid rgba(25,23,17,.16); font-size: .8rem; font-style: normal; line-height: 1.45; opacity: .62; }
.legal-v2-bottom { padding: 1.25rem 2.5rem; display: flex; justify-content: space-between; gap: 2rem; background: var(--verde-western); color: var(--marfim); }
.legal-v2-bottom a { color: inherit; text-decoration: none; }

@media screen and (max-width: 991px) {
  .legal-v2-head { min-height: 78svh; padding: 4rem 1.25rem 1.5rem; display: flex; flex-direction: column; }
  .legal-v2-head h1 { margin: auto 0; font-size: 20vw; }
  .legal-v2-head strong { align-self: flex-start; }
  .legal-v2-grid { display: block; }
  .legal-v2-grid article { min-height: 32rem; padding: 2rem 1.25rem; border-right: 0 !important; }
  .legal-v2-grid h2 { margin-top: auto; }
  .legal-v2-bottom { padding: 1rem 1.25rem; flex-direction: column; }
}

/* LABORATÓRIO DE MATÉRIA — protótipos isolados; não entra na navegação. */
.matter-lab { padding-top: 3.75rem; color: var(--tinta); background: var(--marfim); }
.matter-lab-hero { min-height: 100svh; padding: 6rem 2.5rem 2.5rem; display: flex; flex-direction: column; }
.matter-lab-hero > span,
.matter-caption > span,
.matter-c > span,
.matter-b-copy > span,
.matter-verdict > span { font-family: var(--font-mono); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.matter-lab-hero h1 { margin: auto 0; font-family: var(--font-display); font-size: clamp(5rem, 10vw, 11rem); font-weight: 500; line-height: .82; letter-spacing: -.06em; }
.matter-lab-hero h1 em { color: var(--cobre); font-style: normal; }
.matter-lab-hero p { max-width: 34rem; margin-left: auto; font-size: 1.05rem; line-height: 1.5; }
.matter-lab-hero small { margin-top: 2rem; font-family: var(--font-mono); font-size: .52rem; opacity: .55; }
.matter-test { position: relative; }
.matter-a, .matter-d, .matter-e { height: 190svh; }
.matter-sticky { width: 100%; height: 100svh; position: sticky; top: 0; overflow: hidden; background: var(--verde-western); }
.matter-stage-base, .matter-stage-layer, .matter-stage-lens, .matter-d-layers, .matter-d-layers figure { position: absolute; inset: 0; margin: 0; }
.matter-stage-base img, .matter-stage-layer img, .matter-stage-lens img, .matter-d-layers img { width: 100%; height: 100%; display: block; object-fit: cover; }
.matter-stage-layer { z-index: 2; clip-path: polygon(0 0,100% 0,84% 100%,0 100%); }
.matter-stage-layer::after, .matter-stage-lens::after, .matter-d-layers::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,38,21,.18), transparent 58%); pointer-events: none; }
.matter-caption { z-index: 4; position: absolute; inset: 0; padding: 2.5rem; display: flex; flex-direction: column; pointer-events: none; }
.matter-caption > strong { max-width: 10ch; margin: auto 0; font-family: var(--font-display); font-size: clamp(4rem, 8vw, 9rem); font-weight: 500; line-height: .84; letter-spacing: -.055em; }
.matter-caption > p { max-width: 29rem; margin-left: auto; line-height: 1.5; }
.matter-caption.is-light { color: var(--marfim); }
.matter-b { height: 180svh; background: var(--bege-pedra); }
.matter-b-grid { display: grid; grid-template-columns: 58% 42%; background: var(--bege-pedra); }
.matter-b-grid > figure { min-width: 0; margin: 0; position: relative; overflow: hidden; }
.matter-b-grid > figure img { width: 100%; height: 100%; display: block; object-fit: cover; }
.matter-b-grid figcaption { position: absolute; left: 1.25rem; bottom: 1.25rem; padding: .45rem .65rem; color: var(--marfim); background: rgba(25,23,17,.72); font-family: var(--font-mono); font-size: .52rem; text-transform: uppercase; }
.matter-b-copy { padding: 4rem 2.5rem 2rem; display: flex; flex-direction: column; }
.matter-b-copy h2 { margin: auto 0; font-family: var(--font-display); font-size: clamp(3rem, 5.2vw, 6rem); font-weight: 500; line-height: .88; letter-spacing: -.045em; }
.matter-b-copy p { max-width: 29rem; line-height: 1.5; }
.matter-b-copy dl { margin-top: 2rem; border-top: 1px solid rgba(25,23,17,.2); }
.matter-b-copy dl div { padding: .8rem 0; display: flex; justify-content: space-between; border-bottom: 1px solid rgba(25,23,17,.2); }
.matter-b-copy dt, .matter-b-copy dd { font-family: var(--font-mono); font-size: .52rem; text-transform: uppercase; }
.matter-b-copy dd { margin: 0; }
.matter-c { min-height: 100svh; padding: 4rem 2.5rem 2.5rem; display: flex; flex-direction: column; background: var(--marfim); }
.matter-c h2 { margin: auto 0; font-family: var(--font-display); font-size: 24vw; font-weight: 800; line-height: .7; letter-spacing: -.08em; color: transparent; background: url('../img/store/acabamento-moledo-macro.webp') center / cover; -webkit-background-clip: text; background-clip: text; }
.matter-c p { max-width: 38rem; margin-left: auto; line-height: 1.5; }
.matter-d-layers figure { opacity: 0; transition: opacity .8s ease; }
.matter-d-layers figure:first-child { opacity: 1; }
.matter-counter { z-index: 5; position: absolute; right: 2.5rem; bottom: 2.5rem; width: 16rem; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; color: var(--marfim); font-family: var(--font-mono); font-size: .52rem; }
.matter-counter i { height: 1px; background: var(--marfim); transform: scaleX(.333); transform-origin: left; transition: transform .5s ease; }
.matter-stage-lens { z-index: 2; clip-path: circle(10% at 68% 50%); }
.matter-verdict { min-height: 110svh; padding: 7rem 2.5rem 2.5rem; color: var(--marfim); background: var(--verde-western); }
.matter-verdict h2 { max-width: 14ch; margin: 3rem 0 7rem; font-family: var(--font-display); font-size: clamp(4rem, 8vw, 9rem); font-weight: 500; line-height: .84; letter-spacing: -.055em; }
.matter-verdict-grid { display: grid; grid-template-columns: repeat(5,1fr); border-top: 1px solid rgba(244,240,228,.3); }
.matter-verdict-grid article { min-height: 15rem; padding: 1rem; border-right: 1px solid rgba(244,240,228,.3); opacity: .42; }
.matter-verdict-grid article.is-selected { background: rgba(244,240,228,.1); opacity: 1; }
.matter-verdict-grid b { font-family: var(--font-mono); font-size: .58rem; }
.matter-verdict-grid h3 { margin: 5rem 0 1rem; font-family: var(--font-display); font-size: 1.4rem; font-weight: 500; }
.matter-verdict-grid p { font-size: .75rem; line-height: 1.45; }
.matter-verdict > a { margin-top: 5rem; padding: 1.25rem 0; display: flex; justify-content: space-between; color: inherit; border-top: 1px solid rgba(244,240,228,.3); border-bottom: 1px solid rgba(244,240,228,.3); text-decoration: none; }

@media screen and (max-width: 991px) {
  .matter-lab-hero { padding: 5rem 1.25rem 1.5rem; }
  .matter-lab-hero h1 { font-size: 19vw; }
  .matter-caption { padding: 5rem 1.25rem 1.5rem; }
  .matter-caption > strong { font-size: 16vw; }
  .matter-caption > p { max-width: 19rem; margin-left: 0; }
  .matter-b { height: auto; }
  .matter-b-grid { height: auto; position: relative; display: flex; flex-direction: column; }
  .matter-b-grid > figure { height: 75svh; }
  .matter-b-copy { min-height: 82svh; padding: 4rem 1.25rem 1.5rem; }
  .matter-c { padding: 5rem 1.25rem 1.5rem; }
  .matter-c h2 { font-size: 30vw; writing-mode: vertical-rl; align-self: center; line-height: .78; }
  .matter-counter { right: 1.25rem; bottom: 1.5rem; width: 12rem; }
  .matter-verdict { padding: 6rem 1.25rem 2rem; }
  .matter-verdict h2 { margin-bottom: 5rem; font-size: 17vw; }
  .matter-verdict-grid { grid-template-columns: 1fr; }
  .matter-verdict-grid article { min-height: 12rem; border-right: 0; border-bottom: 1px solid rgba(244,240,228,.3); }
  .matter-verdict-grid h3 { margin-top: 3.5rem; }
}

@media screen and (min-width: 992px) {
  .project-slider_w { overflow: hidden; }
  .project-slider_list_w { flex: 0 0 calc(50% + 1px); width: calc(50% + 1px); }
  .project-slider_list_w + .project-slider_list_w { margin-left: -2px; }
}

/* Cristal oficial de interface: proporção íntegra, nunca um polígono substituto. */
[data-svg="pedraMini"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 20px;
  height: auto;
  aspect-ratio: 174.936 / 188.007;
}
[data-svg="pedraMini"] > svg.ws-crystal { display: block; width: 100%; height: 100%; }
svg.ws-crystal { flex-shrink: 0; transform: none; }

/* Menu: uma coluna que cabe na janela e pode rolar em alturas reduzidas. */
@media screen and (max-width: 1200px) {
  body.menu-is-open .menu_w { display: flex !important; }
  .menu_w { flex-direction: column; height: 100svh; overflow-y: auto; overscroll-behavior: contain; }
  .menu_w > .nav-menu { flex: none; }
  .menu_w .menu_w_item {
    display: flex;
    flex-direction: column;
    flex: 1 0 auto;
    height: auto;
    min-height: 0;
    align-items: stretch;
    gap: 32px;
  }
  .menu_w .nav-r.mob { width: 100%; flex: 1 0 auto; justify-content: center; padding-top: 28px; }
  .menu_w .nav-link.mob { font-size: clamp(22px, 3.2vw, 30px); }
  .menu_w .menu_w_item > div:last-child { align-self: stretch; width: 100%; }
  .menu_w .container-bottom-footer.is-menu {
    position: relative;
    inset: auto;
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    color: var(--tinta);
  }
  .menu_w .footer-link-left { min-width: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; }
  .menu_w .footer-link-right { min-width: 0; justify-self: end; text-align: right; }
  .menu_w .footer-link { font-size: 11px; line-height: 1.4; white-space: normal; }
  .menu_w .container-bottom-footer.is-menu > .code-embed-5 { width: 24px; height: auto; }
}

/* September 2026: readable decisions, faithful images, direct consultation. */
:root {
  --text-reading: clamp(16px, 1.1vw, 19px);
  --text-label: 12px;
  --space-page: clamp(20px, 3vw, 64px);
}
[hidden] { display: none !important; }
html { scroll-padding-top: 88px; scrollbar-width: auto; }
body::-webkit-scrollbar { display: block; width: 10px; }
body::-webkit-scrollbar-thumb { background: var(--pedra); }
.grain-bg { display: none; }
.voile-project { display: none; }
.navbar { min-height: 64px; padding: 12px 20px; }
.navbar .nav-link:not(.mob), .navbar .lang-op { font-size: 13px !important; letter-spacing: .04em; }
.navbar .nav-link:not(.mob):not(.menu), .navbar .lang-op { min-height: 40px; display: inline-flex; align-items: center; }
.navbar .nav-social { width: 40px; height: 40px; padding: 10px; }
.page-home .voile { display: none; }
.h2-subtitle-about, .info-cat, .info-date-project, .gallery_editorial-k, .ws-meta, .projects-index-kicker, .agence-v2-kicker, .agence-v2-sketches figcaption, .process-atlas-link, .spec-v2-kicker, .spec-v2-link, .spec-v2-flow > span, .spec-v2-card > div > span, .contact-v2-kicker, .contact-v2-routes > a > span:first-child, .contact-v2-address > span, .contact-v2-bottom, .footer-link, .pp-rotulo {
  font-size: var(--text-label); line-height: 1.5;
}
.projects-index-intro > p, .courte-desc, .info-p-process, .agence-v2-story p, .agence-v2-japan > p, .agence-v2-brothers p, .agence-v2-team-grid p, .spec-v2-intro p, .spec-v2-card p, .spec-v2-flow li p, .contact-v2-intro > p, .contact-v2-address p, .collab-ensaio-copy p, .gallery_editorial p {
  font-size: var(--text-reading); line-height: 1.55;
}
.projects-index-filters button { font-size: 12px; min-height: 44px; padding: 10px 18px; }
.projects-index-intro { min-height: 0; padding-top: 104px; padding-bottom: 44px; }
.projects-index-intro > p { margin-top: 32px; padding-top: 0; }
.projects-index-filters { margin-top: 28px; }
.spec-v2-hero { min-height: 68svh; padding-top: 100px; }
.spec-v2-link { min-height: 44px; align-items: center; }
.spec-v2-card .spec-v2-link { margin-top: 24px; font-size: 13px; letter-spacing: 0; text-transform: none; }
.spec-availability { font-size: var(--text-reading); max-width: 70ch; line-height: 1.6; margin-top: 40px; }
.contact-v2 { padding-top: 64px; }
.contact-v2-routes > a > strong { font-size: clamp(24px, 2vw, 38px); }
.contact-v2-address small { font-size: 13px; }
.consultation-summary { padding: 24px 0; border-top: 1px solid currentColor; display: grid; gap: 8px; }
.consultation-summary span { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; }
.consultation-summary strong { font-size: 23px; font-weight: 500; }
.consultation-summary p { font-size: 16px; }
.agence-v2, .legal-v2 { padding-top: 64px; }
.agence-v2-japan { grid-template-columns: 1fr 1fr; }
.process-text-step { grid-template-columns: 1fr; min-height: 0; }
.process-text-step .step-info { max-width: 760px; margin: 0 auto; padding-block: 48px; }
.process-text-step .block-img-process-info { display: none; }

/* Home: the visitor controls three selected projects. */
.home-intro { padding: 100px var(--space-page) 32px; display: grid; grid-template-columns: 1.15fr 1fr; gap: 32px; align-items: end; background: var(--marfim); }
.home-intro h1 { font: 500 clamp(38px, 4.6vw, 78px)/1 var(--font-display); letter-spacing: -.04em; margin-top: 14px; }
.home-intro p { font-size: 16px; line-height: 1.5; max-width: 40ch; }
.home-intro nav { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 16px; }
.home-intro nav a { font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; border-bottom: 1px solid currentColor; text-decoration: none; }
.home-slider_w { height: 65svh; min-height: 400px; max-height: 840px; pointer-events: auto; }
.home-slider_w .home-slider_list_w { position: absolute; top: 0; height: 100%; }
.home-slider_w .home-slider_list_w.left, .home-slider_w .home-slider_list_w.right { position: absolute; width: 50%; height: 100%; }
.home-slider_w .home-slider_list_w.right { left: auto; right: 0; top: 0; }
.home-slider_item > img { width: 100%; height: 100%; object-fit: cover; }
.home-slider_w .home-slider_btn_w { position: absolute; top: auto; right: auto; bottom: 24px; left: 50%; width: auto; height: auto; transform: translateX(-50%); }
.home-slider_btn_list { width: clamp(290px, 31vw, 480px); min-height: 120px; }
.home-controls { padding: 12px var(--space-page); display: flex; justify-content: space-between; align-items: center; gap: 16px; background: var(--marfim); }
.home-controls > a { font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; text-decoration: none; }
.home-controls > div { display: flex; align-items: center; gap: 12px; }
.home-controls span { font: 12px/1.5 var(--font-mono); margin-right: 12px; }
.home-controls button { width: 44px; height: 44px; border: 1px solid var(--pedra); border-radius: 50%; background: transparent; color: inherit; font-size: 20px; cursor: pointer; }
.home-controls button:hover { background: var(--bege-pedra); }

/* Functional controls stay still while material can be inspected. */
.cta-pill-fixed { inset: auto 20px 20px auto; max-width: calc(100% - 40px); z-index: 90; }
.cta-pill { padding: 14px 20px; gap: 16px; background: var(--verde-western); color: var(--marfim); clip-path: none; transition: none; min-height: 52px; }
.cta-pill-nome { font-size: 12px; }
.cta-pill-acao { font-size: 14px; }
.cta-pill .arrow-contact-link { width: 12px; height: 12px; }
button[data-tom] { min-width: 72px; min-height: 44px; padding: 10px 16px; font-size: 14px; border: 1px solid transparent; opacity: .8; }
button[data-tom][aria-pressed="true"] { border-color: currentColor; background: var(--bege-pedra); opacity: 1; }
details.faq_item { display: block; border-bottom: 1px solid currentColor; width: 100%; padding: 0; }
details.faq_item:first-child { border-top: 1px solid currentColor; }
.faq_item summary { display: flex; align-items: center; gap: 16px; min-height: 72px; padding: 20px 0; cursor: pointer; list-style: none; font-size: 17px; line-height: 1.4; }
.faq_item summary::-webkit-details-marker { display: none; }
.faq_item .faq-mais { margin-left: auto; font-size: 24px; flex: none; }
.faq_item .faq-mais::before { content: '+'; }
.faq_item[open] .faq-mais::before { content: '−'; }
.faq_item .faq_resposta { max-height: none; max-width: 65ch; padding: 0 0 24px 36px; font-size: 16px; line-height: 1.6; opacity: 1; transition: none; }
.horizontal_wrap.is-static { height: auto !important; }
.horizontal_wrap.is-static .horizontal_w { position: static; height: auto; }
.horizontal_wrap.is-static .horizontal_track, .horizontal_wrap.is-static .project-hero_w, .horizontal_wrap.is-static .gallery_list_w { display: block; width: 100%; height: auto; transform: none !important; }
.horizontal_wrap.is-static .gallery_list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); width: 100%; }
.horizontal_wrap.is-static .gallery_item { width: auto; height: auto; aspect-ratio: 4/3; }

/* Woodstone: one shared visual language, prices and Western enquiries. */
.ws-button:hover { background: var(--verde-floresta); }
.ws-text-link { color: inherit; font-size: 16px; line-height: 1.5; display: inline-flex; min-height: 44px; align-items: center; border-bottom: 1px solid currentColor; }
.woodstone-hero { padding-top: 64px; display: grid; grid-template-columns: 42% 58%; min-height: 90svh; }
.woodstone-hero-copy { background: var(--verde-western); color: var(--marfim); padding: 56px var(--space-page); display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.woodstone-hero h1 { font: 500 clamp(52px, 5.4vw, 96px)/1 var(--font-display); letter-spacing: -.04em; margin-top: auto; }
.woodstone-hero .woodstone-lead { font: 400 clamp(24px, 2.3vw, 38px)/1.15 var(--font-display); }
.woodstone-hero-copy > p:not(.woodstone-lead) { max-width: 40ch; font-size: 16px; line-height: 1.6; }
.woodstone-hero .ws-button { background: var(--marfim); color: var(--tinta); min-width: 240px; }
.woodstone-service { font-size: 12px; line-height: 1.6; }
.woodstone-hero > figure { position: relative; min-width: 0; }
.woodstone-hero > figure > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.woodstone-hero figcaption { position: absolute; bottom: 20px; left: 20px; padding: 8px 12px; font-size: 12px; background: var(--marfim); }
.woodstone-collection { padding: 72px var(--space-page); background: var(--marfim); }
.woodstone-section-head { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px; align-items: end; }
.woodstone-section-head h2 { font: 500 clamp(36px, 4vw, 64px)/1.05 var(--font-display); letter-spacing: -.03em; margin-top: 16px; }
.woodstone-section-head > p { max-width: 48ch; font-size: 16px; line-height: 1.6; }
.woodstone-index { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0; }
.woodstone-index a { padding: 10px 20px; min-height: 44px; border: 1px solid var(--pedra); border-radius: 30px; text-decoration: none; font-size: 14px; }
.woodstone-index a:hover { background: var(--bege-pedra); }
.woodstone-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 64px 32px; align-items: start; }
.woodstone-card { min-width: 0; scroll-margin-top: 90px; }
.woodstone-image { display: block; position: relative; background: var(--bege-pedra); aspect-ratio: 1; }
.woodstone-image img { width: 100%; height: 100%; display: block; object-fit: contain; }
.woodstone-image > span { position: absolute; bottom: 16px; right: 16px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--marfim); font-size: 20px; }
.woodstone-card-head { display: flex; justify-content: space-between; align-items: end; gap: 12px; padding: 24px 0 16px; }
.woodstone-card h3 { font: 500 42px/1 var(--font-display); margin-top: 8px; }
.woodstone-price { display: grid; gap: 6px; text-align: right; }
.woodstone-price strong { font-size: 22px; font-weight: 500; white-space: nowrap; }
.woodstone-price > span { font-size: 13px; }
.woodstone-dimensions { font: 14px/1.5 var(--font-mono); padding-bottom: 20px; }
.woodstone-specs { margin-bottom: 20px; border-block: 1px solid rgba(25,23,17,.3); }
.woodstone-specs summary { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; min-height: 52px; font-size: 15px; cursor: pointer; list-style: none; }
.woodstone-specs summary::-webkit-details-marker { display: none; }
.woodstone-specs dl { padding: 8px 0 20px; display: grid; gap: 14px; }
.woodstone-specs dl > div { display: grid; grid-template-columns: 110px 1fr; gap: 20px; }
.woodstone-specs dt { font-size: 13px; }
.woodstone-specs dd { margin: 0; font-size: 15px; line-height: 1.5; }
.woodstone-second-view { display: grid; grid-template-columns: 100px 1fr; align-items: center; gap: 20px; padding-bottom: 20px; text-decoration: none; font-size: 14px; }
.woodstone-second-view img { width: 100px; height: 100px; object-fit: contain; }
.woodstone-material { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; padding: 72px var(--space-page); background: var(--bege-pedra); }
.woodstone-material > .ws-eyebrow { grid-column: 1/-1; }
.woodstone-material h2 { font: 500 clamp(40px, 4vw, 70px)/1 var(--font-display); }
.woodstone-material p { font-size: 17px; line-height: 1.6; margin-bottom: 24px; }
summary:focus-visible, .ws-button:focus-visible, .woodstone-image:focus-visible { outline: 3px solid var(--cobre); outline-offset: 4px; }

@media (max-width: 767px) {
  .home-intro { display: flex; flex-direction: column; align-items: stretch; padding-top: 96px; gap: 24px; }
  .home-intro h1 { font-size: 42px; }
  .home-intro nav { gap: 6px 18px; }
  .home-slider_w { height: 62svh; min-height: 420px; }
  .home-slider_w .home-slider_list_w.left { width: 100%; height: 100%; }
  .home-slider_w .home-slider_list_w.right { display: none; }
  .home-slider_w .home-slider_btn_w { bottom: 20px; pointer-events: auto; }
  .home-slider_btn_list_w, .home-slider_btn_list { width: 300px; }
  .home-controls { flex-wrap: wrap; }
  .home-controls > div { width: 100%; justify-content: flex-end; }
  .home-controls span { margin-right: auto; }
  .projects-index-intro { min-height: 0; padding-top: 104px; }
  .projects-index-intro > p { margin-top: 32px; padding-top: 0; }
  .spec-v2-hero { min-height: 0; padding: 104px 20px 48px; gap: 36px; }
  .spec-v2-hero h1 { margin: 0; }
  .spec-v2-intro { margin: 0; }
  .contact-v2 { padding-top: 64px; }
  .contact-v2-intro { min-height: 0; padding: 40px 20px; gap: 28px; }
  .contact-v2-intro h1 { margin: 0; font-size: 56px; }
  .agence-v2-japan { display: flex; flex-direction: column; }
  .woodstone-hero { display: flex; flex-direction: column; }
  .woodstone-hero-copy { padding: 40px 20px; }
  .woodstone-hero h1 { margin-top: 8px; font-size: 58px; }
  .woodstone-hero > figure { height: auto; aspect-ratio: 1; }
  .woodstone-section-head, .woodstone-grid, .woodstone-material { grid-template-columns: 1fr; }
  .woodstone-collection, .woodstone-material { padding: 48px 20px; }
  .woodstone-section-head { gap: 24px; }
  .woodstone-grid { gap: 48px; }
  .woodstone-card h3 { font-size: 36px; }
  .woodstone-price strong { font-size: 20px; }
  .woodstone-card .ws-button { font-size: 15px; padding-inline: 16px; }
  .horizontal_wrap.is-static .gallery_list { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .home-slider_item { transition: none; }
}
