/* =================================================================
   ZGRADA ENGENHARIA | Landing page de construcao financiada (M2 Black)
   Estrutura clonada da LP de melhor conversao do mes (Moura, 24,6% em ago/2026)
   e re-skinada com o kit de marca da Zgrada.

   Identidade traduzida da marca:
     - Logo 100% angular, densidade 0,868 -> border-radius: 0 em tudo
     - Simbolo = o Z chapado; a DIAGONAL do Z (44 graus) e o motivo que tileia
       -> vira marcador de eyebrow, regua dos titulos, divisoria e textura,
          nunca icone generico de biblioteca.
   Paleta oficial (kit): azul #038FBE + turquesa #44C0C5 + ink #063a4b.

   CONTRASTE: #038FBE reprova AA sobre branco (3,70:1). Texto em dobra clara
   vai em --bronze-700 (#025d7c, 7,3:1); o azul cheio fica para titulo grande,
   botao, borda e detalhe. Em dobra escura, texto pequeno usa --bronze-400.
   ================================================================= */

/* ---- tokens do kit de marca (gerados por montar-kit.py, nao editar) ---- */
:root{

  --brand:#038FBE; --brand-2:#44C0C5; --brand-light:#72dafd;
  --brand-soft:#038FBE1a;                 /* fill de baixo contraste (10%) */
  --ink:#063a4b; --white:#FFFFFF; --off:#F7F6F5; --line:#E6E2E1;

  --radius-btn:0px; --radius-card:0px;   /* medido no ícone, não chutado */

  --font-display:'Poppins',sans-serif;
  --font-text:'Inter',sans-serif;

  /* motivos da marca — data URI: funcionam em file://, em print e em PDF */
  --mark-full:url('data:image/png;base64,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');
  --mark-band:url('data:image/png;base64,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');
  /* o símbolo CHEIO, para uso miúdo. Em marca sólida o --mark-full é o contorno erodido:
     a 1em o traço cai abaixo de 1px e o marcador some, lendo como caixa vazia (Zgrada, 25/08).
     Em marca vazada os dois são o mesmo desenho, então nada muda. */
  --mark-solid:url('data:image/png;base64,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');

  /* liga as DUAS cores oficiais: é o único degradê que não inventa cor nenhuma.
     É a SUPERFÍCIE PRINCIPAL da marca, com branco em cima — o mesmo par do selo do cliente
     (bloco azul, logo negativa). Estamparia branca por cima funciona à vontade: textura não
     tem requisito de contraste. TEXTO branco, não: na ponta turquesa cai para 2,19:1. */
  --grad-brand:linear-gradient(46deg,#038FBE 0%,#44C0C5 100%);
  /* a variante para bloco COM texto branco: começa num azul mais fundo e termina no azul da
     marca, então o branco fica entre 5,51:1 e 3,70:1 de ponta a ponta */
  --grad-brand-texto:linear-gradient(46deg,#027197 0%,#038FBE 100%);
  /* dobra escura: o ink puxando para a marca, para o fundo não ficar preto morto */
  --grad-deep:linear-gradient(46deg,#063a4b 0%,#022f3e 58%,#038FBE 190%);
  /* véu de foto: vertical de propósito, é legibilidade e não decoração */
  --grad-veu:linear-gradient(180deg,#063a4b00 0%,#063a4b59 46%,#063a4be6 100%);
  /* fundo de seção clara, quase imperceptível */
  --grad-soft:linear-gradient(46deg,#F7F6F5 0%,#72dafd26 100%);
  /* régua que esmaece: a divisória some em vez de bater na margem */
  --grad-line:linear-gradient(90deg,#038FBE 0%,#038FBE00 100%);

  --paper:#B9C9D7;                        /* o fundo das 23 páginas do portfólio */
  --paper-soft:#e0e7ed;              /* o mesmo, rebaixado para dobra clara */
  --off:#f5f7f9;                            /* off-white puxado para o azul institucional,
                                             no lugar do cinza quente genérico */
  --teal:#1e7878;                          /* o uniforme da equipe */
  --grad-paper:linear-gradient(46deg,#B9C9D7 0%,#e0e7ed 100%);

  --pat-hachura:url('data:image/png;base64,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');
  --pat-trilho:url('data:image/png;base64,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');
  --pat-grade:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVQAAAFUCAYAAAB7ksS1AAAEeElEQVR42u3csU3DQBiG4e9ixBysACswBhVTMAGiQEzBBKxCzxYUgJL8FLkgamL5FPI8UkQVFyfr9Z/T4QQGqKqp/72tnXX93f67T7+vDUtbWQIAQQUQVABBBUBQAQQVQFABBBUAQQUQVABBBUBQAQQVQFABBBUAQQUQVABBBRBUAAQVQFABBBUAQQUQVABBBRBUAAQVQFABBBVAUAEQVABBBRBUAAQVQFABBBVAUAEQVABBBRBUAAQVQFABBBVAUAEQVABBBRBUAEEFQFABBBVAUAEQVABBBRBUAEEFQFABBBVAUAEEFQBBBRBUAEEFQFABBBVAUAEEFQBBBRBUAEEFEFQABBVAUAEEFQBBBRBUAEEFEFQABBVAUAEEFQBBBRBUAEEFEFQABBVAUAEEFUBQARBUAEEFEFQABBVAUAEEFUBQARBUAEEFEFQAQQVAUAEEFUBQARBUAEEFEFQAQQVAUAEEFUBQAQQVAEEFEFQAQQVAUAEEFUBQAQQVAEEFEFQAQQVAUAEEFUBQAQQVAEEFEFQAQQUQVAAEFUBQAQQVAEEFEFQAQQUQVAAEFUBQAQQVQFABEFQAQQUQVAAEFUBQAQQVQFABEFQAQQUQVAAEFUBQAQQVQFABEFQAQQUQVABBBUBQAQQVQFAB6M6qarIMDDBVVc38UF9V1arf11aY5YPaWttYBgbYJElVvc94zY/W2jbJp+Vl1IT6YBnImO2mrySXM2w/7b97XVX3SaYkRlQW18pvI4B5JtQka8vAyId6nyjnsO0fMKECxLEpAAQVQFABBBVAUAEQVABBBcgRHez3v/xk8MH+uR7sFQf7cbAf4H9MqC+WgYx749RFkqs+XbYDJtOW5C3Jq60sRk6o3odKBu3fr5PcJHnucZ0OCPOU5DHJXR8U/PRnyITqxmPIw7y1VlV1PvP7fatvY7mvGfKCaXuoLK522szvLf25pvsax6Y4tRG1juGaIKgAggogqACCCoCgAggqgKACIKgAggogqACCCoCgAggqgKACIKgAggogqACCCoCgAggqgKACCCoAggogqACCCoCgAggqgKACCCoAggogqACCCiCoAAgqgKACCCoAggogqACCCiCoAAgqgKACCCqAoAIgqACCCiCoAAgqgKACCCqAoAIgqACCCiCoAAgqgKACCCqAoAIgqACCCiCoAIIKgKACCCqAoAIgqACCCiCoAIIKgKACCCqAoAIIKgCCCiCoAIIKgKACCCqAoAIIKgCCCiCoAIIKIKiWAEBQAQQVQFABEFQAQQUQVABBBUBQAQQVQFABEFQAQQUQVABBBUBQAQQVQFABBBUAQQUQVABBBUBQAQQVQFABBBUAQQUQVABBBRBUAAQVQFABBBUAQQUQVABBBRBUAAQVQFABBBUAQQUQVABBBRBUAAQVQFABBBVAUAEQVABBBRBUAAQVQFABBBVAUAEQVABBBRBUAEEFQFABBBVAUAEQVABBBRBUAEEFQFABBBVAUAEEFQBBBRBUAEEFQFABBBVAUAFOyDfgRbNLHOp0egAAAABJRU5ErkJggg==');
  --pat-degrau:url('data:image/png;base64,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');
}

:root {
  /* escala escura = o ink da marca puxado para o azul, nunca preto morto */
  --navy-950: #032330;
  --navy-900: #063a4b;
  --navy-800: #0a4a5e;
  --navy-700: #0e5b72;
  --navy-600: #136d87;

  /* escala da marca. O nome vem do template de origem; o valor e o do kit.
     700 = texto sobre claro | 600 = botao/foco | 500 = a marca cheia
     400 = texto pequeno sobre escuro | cream-300 = realce sobre escuro */
  --bronze-700: #025d7c;
  --bronze-600: #027197;
  --bronze-500: #038FBE;
  --bronze-400: #72dafd;
  --cream-300: #a5e8ff;
  --cream-100: #e0e7ed;
  --cream-50:  #f5f7f9;

  --white: #ffffff;
  --ink-900: #063a4b;
  --ink-700: #274853;
  --ink-500: #4a6570;
  --ink-400: #6d838c;
  --ink-300: #a8bcc4;
  --line:    rgba(255,255,255,0.12);
  --line-dark: rgba(6,58,75,0.12);

  /* conversao = verde (gatilho positivo), fora da paleta de proposito */
  --green: #1fa858;
  --green-deep: #17974c;
  --green-light: #2bd46e;

  --font-display: 'Poppins', 'Inter', system-ui, -apple-system, sans-serif;
  --font-body:    'Inter', system-ui, -apple-system, sans-serif;

  --fs-eyebrow: 0.75rem;
  --fs-body:    1rem;
  --fs-lead:    1.125rem;
  --fs-h3:      clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
  --fs-h2:      clamp(1.6rem, 1.15rem + 1.8vw, 2.35rem);
  --fs-h1:      clamp(1.9rem, 1.2rem + 2.8vw, 3.35rem);

  --container:  1200px;
  --gutter:     clamp(20px, 4vw, 40px);
  --header-h:   72px;

  --shadow-lg:  0 30px 60px -30px rgba(0,0,0,0.6);
  --shadow-md:  0 18px 40px -20px rgba(0,0,0,0.5);
  --ease:       cubic-bezier(.2,.7,.2,1);

}

/* =================================================================
   RESET & BASE — IDENTIDADE ANGULAR                                  */
*,
*::before,
*::after { box-sizing: border-box; }

/* A logo da Zgrada é 100% angular (densidade 0,868, raio medido 0): nada de cantos arredondados
   em nenhum elemento. É decisão de marca, não esquecimento. */
*, *::before, *::after { border-radius: 0 !important; }

html {
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 14px);
}

body {
  margin: 0;
  overflow-x: clip;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 1.65;
  color: var(--ink-900);
  background: var(--cream-50);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, video { display: block; max-width: 100%; height: auto; }
img { border: 0; }

a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s var(--ease), opacity 0.2s var(--ease);
}

button, input, select, textarea { font: inherit; color: inherit; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0;
}

p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }

::selection { background: var(--bronze-600); color: #fff; }

:focus-visible {
  outline: 2px solid var(--bronze-500);
  outline-offset: 3px;
}

/* =================================================================
   LAYOUT HELPERS                                                     */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* Marcador de eyebrow = o Z chapado da Zgrada (herda a cor) */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-body);
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--bronze-500);
  margin-bottom: 1rem;
}
.eyebrow::before {
  content: '';
  width: 15px;                 /* razao do Z chapado: 1377x1905 = 0,723 */
  height: 20px;
  flex-shrink: 0;
  background: currentColor;
  -webkit-mask: var(--mark-solid) left center / contain no-repeat;
  mask: var(--mark-solid) left center / contain no-repeat;
}
.eyebrow--dark { color: var(--bronze-700); }
.eyebrow--onvideo { color: var(--cream-300); filter: drop-shadow(0 2px 10px rgba(0,0,0,0.6)); }
/* Tarja marca-texto: uma faixa bronze preenche atrás da frase da esquerda p/ a
   direita no load (marca-texto), acompanhando cada linha quando quebra no mobile
   via box-decoration-break. A frase permanece legível por cima. */
.hero__mark {
  background-image: linear-gradient(var(--bronze-600), var(--bronze-600));
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 0% 100%;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  padding: 0.06em 0.22em;
  border-radius: 2px;
  color: var(--cream-100);
  animation: heroMarkIn 0.8s cubic-bezier(0.45, 0, 0.2, 1) 0.55s both;
}
@keyframes heroMarkIn {
  from { background-size: 0% 100%; }
  to   { background-size: 100% 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .hero__mark { animation: none; background-size: 100% 100%; }
}

.section-title {
  font-size: var(--fs-h2);
  max-width: 22ch;
  margin-bottom: 1rem;
}
.section-title .accent {
  color: var(--bronze-600);
  font-style: italic;
  font-weight: 500;
}
/* Régua sob os títulos = a diagonal do Z (44°), o motivo que tileia sem costura */
.section-title::after {
  content: '';
  display: block;
  width: 0;
  height: 12px;              /* tile 150x61 -> a 12px de altura ele mede 29,5px */
  max-width: 88px;           /* 3 tiles exatos: com 2 a regua le como fragmento */
  margin-top: 16px;
  background: var(--bronze-600);
  -webkit-mask: var(--mark-band) left center / auto 100% repeat-x;
  mask: var(--mark-band) left center / auto 100% repeat-x;
  transition: width 0.8s var(--ease);
}
.section-title.is-visible::after { width: 88px; }

.section-lead {
  font-size: var(--fs-lead);
  max-width: 62ch;
  color: var(--ink-500);
  margin-bottom: 1.75rem;
}
.section-lead--short { max-width: 58ch; }

/* =================================================================
   BOTÕES — angulares, com microinterações                           */
.btn {
  --btn-bg: var(--bronze-600);
  --btn-fg: #fff;
  --btn-bd: var(--bronze-600);
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 26px;
  font-family: var(--font-body);
  font-weight: 600;
  letter-spacing: 0.01em;
  font-size: 0.95rem;
  line-height: 1.1;
  color: var(--btn-fg);
  background: var(--btn-bg);
  border: 1.5px solid var(--btn-bd);
  cursor: pointer;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease),
              background 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease);
  will-change: transform;
  text-align: center;
}
.btn > * { position: relative; z-index: 1; }
.btn:hover { transform: translateY(-2px); }

/* Brilho que atravessa os botões primários (bronze/verde) */
.btn--accent::after,
.btn--green::after {
  content: '';
  position: absolute;
  top: 0; left: -125%;
  width: 55%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,0.5), transparent);
  transform: skewX(-18deg);
  animation: btnShine 4s ease-in-out infinite;
  pointer-events: none;
  z-index: 2;
}
@keyframes btnShine { 0% { left: -125%; } 55%, 100% { left: 135%; } }

/* Primário = degradê da marca, mas na FAIXA QUE SUSTENTA TEXTO BRANCO.
   O azul #038FBE já dá só 3,70:1 com branco, e o brand-light (#72dafd) dá 1,7:1:
   o botão do template abria no claro e o rótulo sumia na ponta esquerda.
   Aqui a rampa vai de #01536f (7,9:1) a #0280aa (4,50:1), toda ela AA. */
.btn--accent {
  --btn-bg: linear-gradient(115deg, #01536f 0%, #027197 58%, #0280aa 100%);
  --btn-bd: var(--bronze-600);
  box-shadow: 0 14px 34px -14px rgba(2,113,151,0.7);
  animation: bronzePulse 2.6s ease-in-out infinite;
}
.btn--accent:hover {
  --btn-bg: linear-gradient(115deg, #026a8d 0%, #0280aa 58%, #038FBE 100%);
  --btn-bd: var(--bronze-500);
  box-shadow: 0 20px 40px -16px rgba(3,143,190,0.6);
  animation-play-state: paused;
}
@keyframes bronzePulse {
  0%, 100% { box-shadow: 0 14px 34px -16px rgba(2,113,151,0.55), 0 0 0 0 rgba(3,143,190,0.45); }
  50%      { box-shadow: 0 16px 36px -16px rgba(2,113,151,0.6), 0 0 0 9px rgba(3,143,190,0); }
}

/* Verde = botões de conversão (formulário, popup, CTA fixo) — degradê + brilho */
.btn--green {
  --btn-bg: linear-gradient(115deg, #2bd46e 0%, #1fa858 55%, #17974c 100%);
  --btn-fg: #fff;
  --btn-bd: var(--green-deep);
  box-shadow: 0 14px 32px -14px rgba(31,168,88,0.7);
  animation: greenPulse 2.4s ease-in-out infinite;
}
.btn--green:hover {
  --btn-bg: linear-gradient(115deg, #35df79 0%, #1fa858 50%, #148244 100%);
  --btn-bd: var(--green-deep);
  box-shadow: 0 20px 40px -16px rgba(31,168,88,0.6);
  animation-play-state: paused;
}
@keyframes greenPulse {
  0%, 100% { box-shadow: 0 12px 30px -14px rgba(31,168,88,0.5), 0 0 0 0 rgba(43,212,110,0.45); }
  50%      { box-shadow: 0 14px 34px -14px rgba(31,168,88,0.55), 0 0 0 9px rgba(43,212,110,0); }
}

.btn--ghost {
  --btn-bg: transparent;
  --btn-fg: #fff;
  --btn-bd: rgba(255,255,255,0.4);
}
.btn--ghost:hover { --btn-bg: rgba(255,255,255,0.08); --btn-bd: rgba(255,255,255,0.7); }

.btn--back {
  --btn-bg: transparent;
  --btn-fg: var(--ink-700);
  --btn-bd: #d3dde3;
  animation: none;
  box-shadow: none;
}
.btn--back:hover { --btn-bg: #eaeff2; --btn-bd: var(--bronze-500); }

.btn--lg { padding: 18px 32px; font-size: 1rem; }
.btn--compact { padding: 11px 20px; font-size: 0.875rem; animation: none; box-shadow: none; }
.btn--block { width: 100%; }

/* =================================================================
   READ PROGRESS BAR                                                  */
.read-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0;
  background: linear-gradient(90deg, var(--bronze-600), var(--cream-300));
  z-index: 1000;
  transition: width 0.1s linear;
  pointer-events: none;
}

/* =================================================================
   SITE HEADER — fundo sólido da marca + faixa de nav deslizante      */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 900;
  height: var(--header-h);
  display: flex;
  align-items: center;
  background: linear-gradient(115deg, #0a4a5e 0%, #063a4b 55%, #032330 100%);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  transition: box-shadow 0.35s var(--ease), border-color 0.35s var(--ease), background 0.35s var(--ease);
}
.site-header::before {
  /* fio bronze no topo, ecoando a barra da marca */
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--bronze-500) 30%, var(--cream-300) 50%, var(--bronze-500) 70%, transparent);
  opacity: 0.8;
}
.site-header.is-solid {
  background: linear-gradient(115deg, rgba(22,27,48,0.92) 0%, rgba(6,58,75,0.94) 55%, rgba(7,10,22,0.95) 100%);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 10px 34px -14px rgba(0,0,0,0.85);
}
.site-header__inner {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  height: 100%;
}
.site-header__brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.site-header__brand { gap: clamp(9px, 1vw, 13px); }
.site-header__brand .site-header__lettering { width: clamp(88px, 9vw, 116px); height: auto; }

/* faixa de nav: acompanha a rolagem, desliza até a seção atual (todas as telas) */
.site-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  -webkit-mask: linear-gradient(90deg, transparent 0, #000 4%, #000 92%, transparent 100%);
          mask: linear-gradient(90deg, transparent 0, #000 4%, #000 92%, transparent 100%);
}
.site-nav::-webkit-scrollbar { display: none; }
.site-nav a[data-section] {
  flex: 0 0 auto;
  padding: 8px 15px;
  font-size: 0.9rem;
  font-weight: 500;
  color: rgba(255,255,255,0.82);
  white-space: nowrap;
  border: 1px solid transparent;
  transition: color 0.2s var(--ease), background 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.site-nav a[data-section]:hover { color: #fff; background: rgba(255,255,255,0.12); }
/* seção atual: chip preenchido creme, bem destacado conforme rola */
.site-nav a[data-section].current {
  color: var(--navy-900);
  background: var(--cream-300);
  border-color: var(--cream-300);
  font-weight: 700;
  box-shadow: 0 6px 16px -6px rgba(0,0,0,0.5);
}
.site-header__cta { flex-shrink: 0; margin-left: 4px; }

@media (max-width: 900px) {
  :root { --header-h: 64px; }
  .site-header__cta { display: none; }
  .site-header__brand img { width: clamp(104px, 30vw, 128px); }
  /* SEM hambúrguer: os nomes continuam sempre visíveis, deslizando pro lado */
  .site-nav { margin-left: 12px; gap: 8px; }
  .site-nav a[data-section] {
    padding: 6px 12px;
    font-size: 0.82rem;
    color: #fff;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.16);
  }
  .site-nav a[data-section].current { background: var(--cream-300); color: var(--navy-900); border-color: var(--cream-300); }
}

/* =================================================================
   HERO | scroll-driven video                                         */
.hero {
  position: relative;
  background: var(--navy-900);
  color: #fff;
}
.hero__scroll-track { height: 260vh; position: relative; }
.hero__sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  width: 100%;
  overflow: hidden;
  display: grid;
  place-items: end center;
  isolation: isolate;
}
/* vídeo full-bleed de fundo (sem deslocar, sem esticar) */
.hero__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
  pointer-events: none;
}
.hero__video--desktop { display: block; object-position: center; }
.hero__video--mobile  { display: none; }
.hero__overlay {
  position: absolute; inset: 0; z-index: 1;
  /* escurecimento leve pra leitura + sombra à esquerda p/ contrastar as frases */
  background:
    linear-gradient(90deg, rgba(6,58,75,0.55) 0%, rgba(6,58,75,0.28) 45%, rgba(6,58,75,0) 78%),
    radial-gradient(ellipse at 50% 100%, rgba(6,58,75,0.9) 0%, rgba(6,58,75,0.5) 42%, rgba(6,58,75,0.12) 78%),
    linear-gradient(180deg, rgba(6,58,75,0.34) 0%, rgba(6,58,75,0.12) 30%, rgba(6,58,75,0.72) 100%);
  pointer-events: none;
}
.hero__content {
  position: relative;
  z-index: 2;
  justify-self: stretch;
  width: 100%;
  padding-bottom: clamp(40px, 7vh, 110px);
  padding-top: clamp(90px, 12vh, 150px);
  max-width: 1050px;
  text-align: left;
}
.hero .eyebrow { margin-bottom: clamp(0.8rem, 1.8vh, 1.3rem); }
.hero__headline {
  font-size: clamp(1.5rem, 1rem + 1.6vw, 2.35rem);
  font-weight: 600;
  line-height: 1.16;
  letter-spacing: -0.02em;
  max-width: 30ch;
  margin-bottom: clamp(0.85rem, 1.9vh, 1.45rem);
  text-wrap: balance;
  text-shadow: 0 2px 24px rgba(0,0,0,0.7), 0 1px 3px rgba(0,0,0,0.5);
}
.hero__headline .accent { color: var(--bronze-400); font-style: italic; font-weight: 500; display: inline; }
.hero__sub {
  font-size: clamp(0.95rem, 0.88rem + 0.3vw, 1.1rem);
  max-width: 46ch;
  color: rgba(255,255,255,0.88);
  margin-bottom: clamp(1.4rem, 3vh, 2.2rem);
  line-height: 1.62;
  text-wrap: balance;
  text-shadow: 0 2px 18px rgba(0,0,0,0.85), 0 1px 3px rgba(0,0,0,0.7);
}
.hero__cta { display: flex; gap: 16px; flex-wrap: wrap; }

/* Chamada "Conheça a Zgrada", em FLUXO (nunca sobre os botões), todas as telas */
.hero__cue {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: clamp(26px, 4vh, 44px);
  padding-top: clamp(18px, 2.6vh, 26px);
  border-top: 1px solid rgba(255,255,255,0.16);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.9);
}
.hero__cue:hover { color: var(--cream-300); }
.hero__cue-chevron {
  display: inline-grid;
  place-items: center;
  width: 30px; height: 30px;
  border: 1.5px solid rgba(255,255,255,0.5);
  color: #fff;
  animation: cueBounce 1.8s ease-in-out infinite;
}
.hero__cue:hover .hero__cue-chevron { border-color: var(--cream-300); color: var(--cream-300); }
.hero__cue-chevron svg { width: 16px; height: 16px; }
@keyframes cueBounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(4px); }
}

@media (max-width: 767px) {
  .hero__scroll-track { height: 220vh; }
  .hero__video--desktop { display: none; }
  .hero__video--mobile  { display: block; object-position: center; }
  .hero__sticky { place-items: center center; }
  .hero__content {
    padding-top: calc(var(--header-h) + 20px);
    padding-bottom: clamp(24px, 5vh, 56px);
  }
  .hero__headline { font-size: clamp(1.4rem, 4.5vw, 1.85rem); line-height: 1.24; margin-bottom: 1rem; }
  .hero__sub { font-size: 0.9rem; line-height: 1.62; margin-bottom: clamp(1rem, 2.4vh, 1.7rem); }
  .eyebrow { margin-bottom: 0.75rem; }
  .hero__cta { flex-direction: column; align-items: stretch; }
  .hero__cta .btn { width: 100%; padding: 14px 24px; font-size: 0.9rem; }
}

/* =================================================================
   PROOF BAR (contadores)                                             */
.proof {
  background: var(--navy-900);
  color: #fff;
  padding: 60px 0;
  border-bottom: 1px solid var(--line);
  position: relative;
  z-index: 1;
}
.proof::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(3,143,190,0.6) 50%, transparent);
}
.proof__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px 20px;
}
@media (min-width: 800px) { .proof__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } }
.proof__item { text-align: center; padding: 10px; }
.proof__num {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3rem);
  font-weight: 700;
  color: var(--bronze-500);
  line-height: 1;
  letter-spacing: -0.02em;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  max-width: 100%;
}
.proof__num em { font-style: normal; color: var(--bronze-400); font-size: 0.7em; margin-right: 1px; }
.proof__num .counter small,
.proof__num small {
  font-size: 0.42em;
  color: var(--bronze-400);
  margin-left: 5px;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.proof__num--word { font-size: clamp(1.1rem, 0.8rem + 1.1vw, 1.55rem); gap: 8px; flex-wrap: wrap; }
.proof__arrow { color: var(--cream-300); font-weight: 400; }
.proof__label { margin-top: 10px; font-size: 0.875rem; color: rgba(255,255,255,0.75); font-weight: 500; }

/* =================================================================
   PILLARS (4 diferenciais)                                           */
.pillars {
  background: var(--cream-50);
  color: var(--ink-900);
  padding: clamp(64px, 7vw, 100px) 0;
  position: relative;
  overflow: hidden;
}
.pillars .eyebrow { color: var(--bronze-700); }

.pillars__grid { display: grid; gap: 18px; margin-top: 2.25rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .pillars__grid { grid-template-columns: repeat(2, 1fr); gap: 22px; } }
@media (min-width: 1080px) { .pillars__grid { grid-template-columns: repeat(4, 1fr); } }

.pillar {
  background: #fff;
  border: 1px solid var(--line-dark);
  padding: 32px 26px;
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
  position: relative;
}
.pillar:hover { transform: translateY(-4px); border-color: rgba(3,143,190,0.4); box-shadow: var(--shadow-md); }
.pillar__icon {
  width: 64px; height: 64px;
  display: grid; place-items: center;
  margin-bottom: 1.35rem;
  background: linear-gradient(135deg, rgba(3,143,190,0.14), rgba(165,232,255,0.06));
  border: 1px solid rgba(3,143,190,0.28);
  color: var(--bronze-600);
  transition: transform 0.35s var(--ease), background 0.35s var(--ease), border-color 0.35s var(--ease), color 0.35s var(--ease);
}
.pillar__icon svg { width: 34px; height: 34px; }
.pillar:hover .pillar__icon {
  transform: translateY(-2px) scale(1.04);
  background: linear-gradient(135deg, rgba(3,143,190,0.22), rgba(165,232,255,0.12));
  border-color: rgba(3,143,190,0.55);
  color: var(--bronze-700);
}
.pillar__title { font-size: var(--fs-h3); margin-bottom: 0.75rem; color: var(--ink-900); line-height: 1.25; }
.pillar__text { color: var(--ink-500); font-size: 0.95rem; line-height: 1.65; }

/* =================================================================
   ROOF DIVIDER — símbolo da marca tileado entre dobras               */
.roof-divider {
  height: 22px;
  background: var(--cream-50);
  position: relative;
}
.roof-divider::before {
  content: '';
  position: absolute; inset: 0;
  background: var(--bronze-500);
  opacity: 0.34;
  -webkit-mask: var(--mark-band) center / auto 100% repeat-x;
  mask: var(--mark-band) center / auto 100% repeat-x;
}

/* =================================================================
   COMPARE (Não arrisque sua obra)                                    */
.compare { background: var(--cream-50); color: var(--ink-900); padding: clamp(64px, 7vw, 100px) 0; }
.compare .eyebrow { color: var(--bronze-700); }
.compare__grid { margin-top: 2.5rem; display: grid; gap: 22px; grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 860px) { .compare__grid { grid-template-columns: 1fr 1fr; gap: 26px; } }
.compare__col { padding: 34px 30px; display: flex; flex-direction: column; position: relative; border: 1px solid var(--line-dark); background: #fff; }
.compare__col--bad { background: #fafcfd; color: var(--ink-700); }
.compare__col--good {
  background: linear-gradient(180deg, var(--navy-800), var(--navy-900));
  color: #fff;
  border-color: rgba(3,143,190,0.45);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}
.compare__col--good::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 80% 0%, rgba(3,143,190,0.18), transparent 55%);
  pointer-events: none;
}
.compare__seal {
  position: absolute; top: 18px; right: 18px;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px;
  background: rgba(31,159,90,0.18);
  border: 1px solid rgba(52,209,127,0.5);
  color: #6ee7a8;
  font-size: 0.7rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.08em;
}
.compare__seal::before {
  content: '';
  width: 14px; height: 14px;
  background: #34d17f;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/contain no-repeat;
}
.compare__head { margin-bottom: 22px; position: relative; }
.compare__col--good .compare__head { margin-top: 22px; }
.compare__tag { display: inline-block; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; margin-bottom: 10px; }
.compare__tag--bad { color: #c14a3f; }
.compare__tag--good { color: var(--cream-300); }
.compare__title { font-size: var(--fs-h3); line-height: 1.2; }
.compare__col--good .compare__title { color: #fff; }
.compare__list { display: grid; gap: 14px; position: relative; }
.compare__list li { position: relative; padding-left: 30px; font-size: 0.95rem; line-height: 1.5; }
.compare__list li::before { content: ''; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; background-repeat: no-repeat; background-position: center; background-size: contain; }
.compare__col--bad .compare__list li::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c14a3f' stroke-width='2.6' stroke-linecap='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
}
.compare__col--bad .compare__list li[data-strike] {
  /* era uma TARJA (faixa de 18% da altura da caixa): em item de duas linhas ela
     caia no meio da segunda e lia como marca-texto borrado. Agora e um fio de
     1,5px no meio do item, que e a leitura de "riscado" que se espera. */
  background-image: linear-gradient(rgba(193,74,63,0.6), rgba(193,74,63,0.6));
  background-repeat: no-repeat;
  background-position: 0 54%;
  background-size: 0 1.5px;
  transition: background-size 0.6s var(--ease);
}
.compare__col--bad .compare__list li[data-strike].is-struck { background-size: 100% 1.5px; }
.compare__list--check li::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334d17f' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}
.compare__col--good .compare__list li { color: rgba(255,255,255,0.9); }
.compare__col--good .btn { margin-top: 26px; position: relative; z-index: 1; }
/* card vencedor: glow pulsante + brilho que atravessa (sheen) */
.compare__col--good { animation: goodGlow 4.5s ease-in-out infinite; }
@keyframes goodGlow {
  0%, 100% { box-shadow: var(--shadow-lg); }
  50%      { box-shadow: 0 30px 70px -24px rgba(3,143,190,0.55); }
}
.compare__col--good::after {
  content: '';
  position: absolute; top: 0; left: -70%;
  width: 55%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(165,232,255,0.16), transparent);
  animation: sheen 4.8s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
}
@keyframes sheen { 0% { left: -70%; } 55%, 100% { left: 135%; } }
.compare__col--good > * { position: relative; z-index: 1; }

/* =================================================================
   FINANCING CARDS                                                    */
.financing { background-color: var(--navy-900); color: #fff; padding: clamp(64px, 7vw, 100px) 0; position: relative; overflow: hidden; }
.financing .eyebrow { color: var(--bronze-400); }
.financing .section-title { color: #fff; }
.financing .section-title .accent { color: var(--bronze-400); }
.financing .section-lead { color: rgba(255,255,255,0.78); }
.financing__grid { margin-top: 2.25rem; display: grid; gap: 22px; grid-template-columns: 1fr; }
@media (min-width: 720px) { .financing__grid { grid-template-columns: repeat(3, 1fr); } }
.financing__card {
  /* a transparencia de 3% deixava o conteudo boiando no fundo da dobra.
     Preenchimento solido, na familia do ink, para o card existir. */
  background: linear-gradient(180deg, #0a4a5e 0%, #05323f 100%);
  border: 1px solid rgba(114,218,253,0.20);
  overflow: hidden;
  position: relative;
  display: flex; flex-direction: column;
  transition: transform 0.35s var(--ease), border-color 0.35s var(--ease), background 0.35s var(--ease);
}
.financing__card:hover { transform: translateY(-4px); border-color: rgba(114,218,253,0.45); background: linear-gradient(180deg, #0d566c 0%, #06394a 100%); }
.financing__img { aspect-ratio: 4 / 3; overflow: hidden; }
.financing__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--ease), filter 0.5s var(--ease); filter: saturate(0.92) brightness(0.96); }
.financing__card:hover .financing__img img { transform: scale(1.05); filter: saturate(1) brightness(1); }
/* card do sobrado (foto retrato): enquadra a fachada */
.financing__card:nth-child(3) .financing__img img { object-position: center 32%; }
.financing__body { padding: 26px 26px 28px; display: flex; flex-direction: column; flex: 1; }
.financing__type { font-family: var(--font-display); font-size: var(--fs-h3); font-weight: 600; color: #fff; margin-bottom: 12px; line-height: 1.25; }
.financing__type span { color: var(--bronze-400); font-weight: 500; }
.financing__specs { display: flex; flex-direction: column; gap: 6px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.financing__specs li { color: rgba(255,255,255,0.7); font-size: 0.875rem; padding-left: 18px; position: relative; }
.financing__specs li::before { content: ''; position: absolute; left: 0; top: 8px; width: 6px; height: 6px; background: var(--bronze-600); }
.financing__price { display: flex; flex-direction: column; gap: 2px; margin-bottom: 16px; }
.financing__label { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.15em; color: rgba(255,255,255,0.5); }
.financing__value { font-family: var(--font-display); font-size: 1.15rem; font-weight: 600; color: rgba(255,255,255,0.9); }
.financing__installment {
  margin-top: auto;
  background: linear-gradient(135deg, rgba(3,143,190,0.15), rgba(165,232,255,0.08));
  border: 1px solid rgba(3,143,190,0.3);
  padding: 16px 18px;
  display: flex; flex-direction: column; gap: 4px;
}
.financing__inst-label { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.15em; color: var(--bronze-400); }
.financing__inst-value { font-family: var(--font-display); font-size: clamp(1.5rem, 1.2rem + 1vw, 1.85rem); font-weight: 700; color: var(--cream-300); letter-spacing: -0.02em; line-height: 1.1; }
.financing__inst-value small { font-size: 0.5em; font-weight: 500; color: var(--bronze-400); margin-left: 2px; }
.financing__disclaimer { margin-top: 2rem; font-size: 0.75rem; color: rgba(255,255,255,0.4); line-height: 1.6; max-width: 70ch; }

/* =================================================================
   PROCESS — timeline conectada com animação sequencial               */
.process {
  /* banda "spotlight" — tom mais rico que as dobras navy vizinhas,
     pra não virar um bloco escuro monótono */
  background: radial-gradient(130% 90% at 50% 0%, #0d566c 0%, #063a4b 58%, #032330 100%);
  color: #fff;
  padding: clamp(64px, 7vw, 104px) 0;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(3,143,190,0.22);
  border-bottom: 1px solid rgba(3,143,190,0.22);
}
/* estampa fina fiel à logo (linhas de contorno subindo ao cume) — dá vida sem ser grosseira */
.process::before {
  content: '';
  position: absolute; inset: 0;
  background: var(--bronze-500);
  opacity: 0.08;
  -webkit-mask: var(--pat-hachura) 0 0 / 150px 100px repeat;
  mask: var(--pat-hachura) 0 0 / 150px 100px repeat;
  pointer-events: none;
}
.process .eyebrow { color: var(--bronze-400); }
.process .section-title { color: #fff; }
.process .section-lead { color: rgba(255,255,255,0.72); }

.timeline {
  position: relative;
  margin-top: 3rem;
  padding-left: 8px;
  display: grid;
  gap: clamp(18px, 3vw, 30px);
}
/* trilho vertical + preenchimento que "sobe" conforme acende.
   Trilho/preenchimento ficam ATRÁS dos passos (z-index baixo); como o passo
   só é opaco no marcador, a linha some sob os números e aparece só nos vãos. */
.timeline::before {
  content: '';
  position: absolute;
  left: 33px; top: 20px; bottom: 20px;
  width: 2px;
  background: rgba(255,255,255,0.14);
  z-index: 0;
}
.timeline__fill {
  position: absolute;
  left: 33px; top: 20px;
  width: 2px; height: 0;
  background: linear-gradient(180deg, var(--cream-300), var(--bronze-500));
  box-shadow: 0 0 16px rgba(3,143,190,0.6);
  transition: height 1.1s var(--ease);
  z-index: 0;
}
.timeline__step {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 68px 1fr;
  align-items: start;
  gap: 20px;
  opacity: 0.42;
  transform: translateY(14px);
  transition: opacity 0.5s var(--ease), transform 0.5s var(--ease);
}
.timeline__step.on { opacity: 1; transform: translateY(0); }
.timeline__marker {
  position: relative;
  z-index: 2;
  width: 68px; height: 68px;
  display: grid; place-items: center;
  background: var(--navy-800);
  border: 1.5px solid rgba(255,255,255,0.16);
  transition: background 0.45s var(--ease), border-color 0.45s var(--ease), box-shadow 0.45s var(--ease), transform 0.45s var(--ease);
}
.timeline__num { font-family: var(--font-display); font-weight: 700; font-size: 1.35rem; color: rgba(255,255,255,0.55); transition: color 0.45s var(--ease); }
.timeline__step.on .timeline__marker {
  background: linear-gradient(150deg, var(--bronze-500), var(--bronze-700));
  border-color: var(--cream-300);
  box-shadow: 0 0 0 5px rgba(3,143,190,0.16), 0 18px 34px -14px rgba(3,143,190,0.6);
  transform: scale(1.06);
}
.timeline__step.on .timeline__num { color: #fff; }
.timeline__card {
  /* o 0,04 de branco sumia sobre a dobra escura e o card nao lia como card.
     Agora o fundo e da familia da marca, com fio de acento a esquerda. */
  background: linear-gradient(120deg, rgba(3,143,190,0.16), rgba(3,143,190,0.06) 62%, rgba(255,255,255,0.02));
  border: 1px solid rgba(114,218,253,0.22);
  border-left: 3px solid var(--bronze-500);
  padding: 24px 26px;
  transition: background 0.45s var(--ease), border-color 0.45s var(--ease), transform 0.45s var(--ease);
}
.timeline__step.on .timeline__card { background: linear-gradient(120deg, rgba(3,143,190,0.30), rgba(3,143,190,0.10) 62%, rgba(255,255,255,0.03)); border-color: rgba(114,218,253,0.45); border-left-color: var(--cream-300); }
.timeline__card:hover { transform: translateX(4px); }
.timeline__card h3 { font-size: var(--fs-h3); color: #fff; margin-bottom: 10px; }
.timeline__card p { color: rgba(255,255,255,0.86); font-size: 0.95rem; line-height: 1.65; }
@media (max-width: 560px) {
  .timeline::before, .timeline__fill { left: 27px; }
  .timeline__step { grid-template-columns: 56px 1fr; gap: 14px; }
  .timeline__marker { width: 56px; height: 56px; }
  .timeline__num { font-size: 1.1rem; }
}

/* =================================================================
   GALLERY                                                            */
.gallery { background-color: var(--navy-900); padding: clamp(64px, 7vw, 100px) 0; color: #fff; position: relative; }
.gallery .eyebrow { color: var(--bronze-400); }
.gallery .section-title { color: #fff; }
.gallery .section-lead { color: rgba(255,255,255,0.72); }
.gallery__grid { margin-top: 2.5rem; display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 720px) { .gallery__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1080px) { .gallery__grid { grid-template-columns: repeat(4, 1fr); } }
.gallery__item { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; position: relative; border: 1px solid var(--line); }
.gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--ease), filter 0.5s var(--ease); filter: saturate(0.92) brightness(0.96); }
.gallery__item:hover img { transform: scale(1.05); filter: saturate(1) brightness(1); }
/* enquadramento: sobe a foto pra destacar a casa (não o passeio) */
.gallery__item:nth-child(3) img { object-position: center 22%; }
.gallery__item:nth-child(6) img { object-position: center 30%; }
.gallery__item:nth-child(7) img { object-position: center 16%; }

/* =================================================================
   EXPERTS (Quem somos)                                               */
.experts { background: var(--cream-50); color: var(--ink-900); padding: clamp(64px, 7vw, 100px) 0; position: relative; overflow: hidden; }
.experts .eyebrow { color: var(--bronze-700); }
/* mobile: título + reforço → foto → descrição (via grid-areas) */
.experts__inner {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas: "head" "photo" "copy";
  gap: clamp(22px, 4vw, 34px);
  position: relative;
  z-index: 1;
}
.experts__head { grid-area: head; }
.experts__photo { grid-area: photo; }
.experts__copy { grid-area: copy; }
.experts__reinforce { margin-top: 14px; font-size: 1.08rem; line-height: 1.55; color: var(--ink-700); font-weight: 500; max-width: 44ch; }
@media (min-width: 900px) {
  .experts__inner {
    grid-template-columns: minmax(280px, 0.82fr) 1.18fr;
    grid-template-areas: "photo head" "photo copy";
    column-gap: clamp(40px, 5vw, 64px);
    row-gap: 20px;
    align-items: start;
  }
  .experts__photo { align-self: center; }
}
.experts__photo { margin: 0; overflow: hidden; box-shadow: var(--shadow-md); position: relative; aspect-ratio: 4 / 5; background: var(--navy-900); }
@media (min-width: 900px) { .experts__photo { aspect-ratio: 3 / 4; } }
.experts__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease); }
.experts:hover .experts__photo img { transform: scale(1.02); }
.experts__copy { max-width: 560px; }
.experts__lead { font-size: 1rem; line-height: 1.7; color: var(--ink-700); margin-top: 1rem; }
.experts__lead strong { color: var(--bronze-700); font-weight: 600; }
.experts__cta { margin-top: 2rem; }

/* Equipe (fundadores) — cartões com barra bronze da marca */
.experts__team {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 1.75rem;
}
@media (min-width: 560px) { .experts__team { grid-template-columns: 1fr 1fr; gap: 24px; } }
.expert-member { border-left: 2px solid var(--bronze-500); padding-left: 16px; }
.expert-member__name {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--navy-900);
  line-height: 1.2;
  margin-bottom: 4px;
}
.expert-member__role {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--bronze-700);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.35;
  margin-bottom: 10px;
}
.expert-member__bio { font-size: 0.9rem; color: var(--ink-500); line-height: 1.6; }

/* =================================================================
   FAQ                                                                */
.faq { background: var(--cream-50); padding: clamp(64px, 7vw, 100px) 0; }
/* mobile: título/subtítulo → FAQ → botão (via grid-areas) */
.faq__inner {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas: "head" "list" "cta";
  gap: clamp(24px, 4vw, 40px);
}
.faq__head { grid-area: head; }
.faq__list { grid-area: list; }
.faq__cta { grid-area: cta; justify-self: start; margin-top: 4px; }
@media (min-width: 940px) {
  .faq__inner {
    grid-template-columns: 0.85fr 1.15fr;
    grid-template-areas: "head list" "cta list";
    column-gap: clamp(32px, 4vw, 56px);
    row-gap: 24px;
    align-items: start;
  }
  .faq__cta { align-self: start; }
}
.faq .eyebrow { color: var(--bronze-700); }
.faq__list { display: grid; gap: 14px; }
.faq__item { background: #fff; border: 1px solid var(--line-dark); overflow: hidden; transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease); }
.faq__item.is-open { border-color: rgba(3,143,190,0.5); box-shadow: var(--shadow-md); }
.faq__q { width: 100%; text-align: left; background: transparent; border: 0; cursor: pointer; padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; font-family: var(--font-display); font-size: 1.02rem; font-weight: 600; color: var(--navy-900); line-height: 1.35; }
.faq__icon { position: relative; width: 20px; height: 20px; flex-shrink: 0; }
.faq__icon::before, .faq__icon::after { content: ''; position: absolute; background: var(--bronze-600); transition: transform 0.3s var(--ease), opacity 0.3s var(--ease); }
.faq__icon::before { top: 9px; left: 0; width: 20px; height: 2px; }
.faq__icon::after  { left: 9px; top: 0; width: 2px; height: 20px; }
.faq__item.is-open .faq__icon::after { transform: scaleY(0); opacity: 0; }
.faq__a { max-height: 0; overflow: hidden; transition: max-height 0.4s var(--ease); }
.faq__a p { padding: 0 24px 24px; color: var(--ink-500); font-size: 0.95rem; line-height: 1.7; }

/* =================================================================
   VIABILITY / FORM (padrão Militão)                                  */
.viability { background-color: var(--navy-900); color: #fff; padding: clamp(64px, 7vw, 104px) 0; position: relative; overflow: hidden; }
.viability::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 10% 0%, rgba(2,113,151,0.12), transparent 45%), radial-gradient(ellipse at 90% 100%, rgba(3,143,190,0.10), transparent 50%);
  pointer-events: none;
}
.form-head { text-align: center; max-width: 660px; margin: 0 auto clamp(26px, 3vw, 40px); position: relative; z-index: 1; }
.form-head .eyebrow { justify-content: center; color: var(--bronze-400); }
.form-head .section-title { color: #fff; margin-inline: auto; }
.form-head .section-title::after { margin-inline: auto; }
.form-head .section-lead { color: rgba(255,255,255,0.78); margin-inline: auto; margin-bottom: 0; }

.steps-indicator { display: flex; align-items: center; justify-content: center; gap: 0; max-width: 460px; margin: 0 auto 26px; position: relative; z-index: 1; }
.step-item { display: flex; align-items: center; gap: 10px; }
.step-circle { width: 34px; height: 34px; display: grid; place-items: center; background: rgba(255,255,255,0.1); border: 1.5px solid rgba(255,255,255,0.25); color: rgba(255,255,255,0.7); font-family: var(--font-display); font-weight: 700; font-size: 0.9rem; transition: all 0.3s var(--ease); }
.step-circle.active { background: var(--bronze-600); border-color: var(--bronze-600); color: #fff; }
.step-circle.complete { background: var(--green); border-color: var(--green); color: #fff; }
.step-label { font-size: 0.82rem; font-weight: 600; color: rgba(255,255,255,0.7); white-space: nowrap; }
.step-item.active .step-label { color: #fff; }
.step-connector { flex: 1; height: 2px; background: rgba(255,255,255,0.18); margin: 0 14px; position: relative; min-width: 30px; }
.step-connector-fill { position: absolute; inset: 0; width: 0; background: var(--green); transition: width 0.4s var(--ease); }

.form-card { max-width: 640px; margin: 0 auto; background: #fff; color: var(--ink-900); padding: 36px 30px; box-shadow: var(--shadow-lg); position: relative; z-index: 1; }
@media (min-width: 700px) { .form-card { padding: 42px 40px; } }
.form-step { display: none; }
.form-step.active { display: block; animation: formFade 0.35s var(--ease); }
@keyframes formFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.form-step-title { font-size: 1.15rem; color: var(--navy-900); margin-bottom: 20px; }
.form-group { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.form-group label { font-size: 0.8rem; font-weight: 600; color: var(--ink-700); letter-spacing: 0.02em; }
.form-group input, .form-group select {
  height: 50px; padding: 0 16px;
  border: 1.5px solid #dde6ea;
  background: #fafcfd;
  font-size: 0.975rem;
  color: var(--navy-900);
  width: 100%;
  transition: border-color 0.2s var(--ease), background 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.form-group input::placeholder { color: var(--ink-400); }
.form-group input:focus, .form-group select:focus { outline: 0; border-color: var(--bronze-600); background: #fff; box-shadow: 0 0 0 4px rgba(3,143,190,0.15); }
.form-group input.error, .form-group select.error { border-color: #c83232; background: #fff6f6; }
.form-group select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath fill='%239c765a' d='M6 7L0 1 1.4-.4 6 4.2 10.6-.4 12 1z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 18px center; padding-right: 42px;
}
.error-msg { display: none; font-size: 0.78rem; color: #c83232; font-weight: 500; }
.error-msg.show { display: block; }
.form-row { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 560px) { .form-row { grid-template-columns: 1fr 1fr; } }
.form-actions { display: flex; gap: 12px; margin-top: 8px; align-items: stretch; }
.form-actions .btn--back { flex: 0 0 auto; }

.form-success { display: none; text-align: center; padding: 24px 10px; }
.form-success.show { display: block; animation: formFade 0.4s var(--ease); }
.form-success .success-icon, .lead-popup__success .success-icon {
  width: 64px; height: 64px; margin: 0 auto 18px;
  display: grid; place-items: center;
  background: rgba(31,168,88,0.12); border: 1.5px solid rgba(31,168,88,0.4); color: var(--green);
}
.form-success .success-icon svg, .lead-popup__success .success-icon svg { width: 30px; height: 30px; }
.form-success h3 { font-size: 1.3rem; color: var(--navy-900); margin-bottom: 8px; }
.form-success p { color: var(--ink-500); font-size: 0.95rem; line-height: 1.6; max-width: 46ch; margin: 0 auto; }

.trust-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 26px; max-width: 640px; margin: 26px auto 0; position: relative; z-index: 1; }
.trust-item { display: inline-flex; align-items: center; gap: 8px; font-size: 0.82rem; font-weight: 500; color: rgba(255,255,255,0.72); }
.trust-item svg { width: 18px; height: 18px; stroke: var(--bronze-400); fill: none; }

/* =================================================================
   FOOTER (sem navegação e sem contato — o caminho é o funil)         */
.site-footer { background: var(--navy-950); color: rgba(255,255,255,0.72); padding: 70px 0 34px; border-top: 1px solid var(--line); text-align: center; }
.site-footer__logo { display: inline-flex; margin: 0 auto; }
.site-footer__logo img { width: clamp(200px, 24vw, 260px); height: auto; }
.site-footer__divider { width: 88px; height: 12px; margin: 26px auto; background: var(--bronze-500); opacity: 0.7; -webkit-mask: var(--mark-band) center / auto 100% repeat-x; mask: var(--mark-band) center / auto 100% repeat-x; }
.site-footer__tagline { color: rgba(255,255,255,0.6); font-size: 0.9rem; max-width: 60ch; line-height: 1.7; margin: 0 auto; }
.site-footer__info { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 30px; margin: 32px auto; max-width: 820px; }
.site-footer__info-item { display: inline-flex; align-items: center; gap: 9px; font-size: 0.85rem; color: rgba(255,255,255,0.66); }
.site-footer__info-item svg { width: 18px; height: 18px; stroke: var(--bronze-400); fill: none; flex-shrink: 0; }
.site-footer__copy { font-size: 0.82rem; color: rgba(255,255,255,0.44); max-width: 920px; margin: 0 auto; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.08); }
.site-footer__dev { font-size: 0.82rem; color: rgba(255,255,255,0.5); margin-top: 8px; }
/* crédito M² BLACK: link para o site, selo com borda + pulso (padrão Militão, no azul da Zgrada) */
.site-footer__dev a {
  display: inline-block;
  color: var(--bronze-400);
  font-weight: 600;
  padding: 4px 12px;
  margin-left: 4px;
  border: 1px solid rgba(255,255,255,0.22);
  background: rgba(255,255,255,0.04);
  letter-spacing: 0.02em;
  transition: background 0.25s var(--ease), border-color 0.25s var(--ease), color 0.25s var(--ease);
  animation: m2Pulse 2.8s ease-in-out infinite;
}
.site-footer__dev a:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.42); color: #fff; animation-play-state: paused; }
@keyframes m2Pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(3,143,190,0); border-color: rgba(255,255,255,0.22); }
  50%      { box-shadow: 0 0 0 4px rgba(3,143,190,0.14); border-color: rgba(3,143,190,0.5); }
}

/* =================================================================
   MOBILE CTA fixo (verde)                                            */
/* CTA fixo de conversão — barra full-width no rodapé, em TODAS as versões (padrão Militão) */
.mobile-cta {
  position: fixed;
  bottom: 0; left: 0; width: 100%;
  z-index: 850;
  display: flex;
  justify-content: center;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: rgba(6,58,75, 0.92);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255,255,255,0.1);
  transform: translateY(120%);
  transition: transform 0.35s var(--ease);
}
.mobile-cta.is-visible { transform: translateY(0); }
.mobile-cta .btn {
  width: 100%;
  max-width: 560px;
  animation: none; /* na barra fixa, sem pulso — evita distração */
}

/* =================================================================
   FAB WhatsApp — REDONDO (exceção proposital à identidade angular)   */
.wa-fab {
  position: fixed; right: 18px; bottom: 18px; z-index: 95;
  width: 58px; height: 58px;
  border: 0; cursor: pointer;
  border-radius: 50% !important;
  display: grid; place-items: center;
  background: #25d366; color: #fff;
  box-shadow: 0 14px 30px -8px rgba(37,211,102,0.6);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), bottom 0.3s var(--ease);
  animation: waPulse 2.6s var(--ease) infinite;
}
.wa-fab svg { width: 32px; height: 32px; }
.wa-fab:hover { transform: scale(1.06); box-shadow: 0 18px 36px -8px rgba(37,211,102,0.75); }
@keyframes waPulse {
  0%, 100% { box-shadow: 0 14px 30px -8px rgba(37,211,102,0.6), 0 0 0 0 rgba(37,211,102,0.5); }
  50%      { box-shadow: 0 14px 30px -8px rgba(37,211,102,0.6), 0 0 0 12px rgba(37,211,102,0); }
}
.wa-fab.lifted { bottom: calc(94px + env(safe-area-inset-bottom)); }
@media (max-width: 767px) {
  .wa-fab { bottom: 18px; width: 52px; height: 52px; }
  .wa-fab.lifted { bottom: calc(90px + env(safe-area-inset-bottom)); }
  .wa-fab svg { width: 28px; height: 28px; }
}

/* =================================================================
   LEAD POPUP (40s)                                                   */
.lead-popup { position: fixed; inset: 0; z-index: 1100; display: grid; place-items: center; padding: 20px; }
.lead-popup[hidden] { display: none; }
.lead-popup__backdrop { position: absolute; inset: 0; background: rgba(7,10,22,0.72); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); animation: popupFade 0.3s var(--ease); }
/* O popup carrega o formulario completo em 2 passos e nao cabe em tela baixa.
   O overlay centraliza por grid (place-items:center): card maior que a tela
   transborda pros DOIS lados e o topo fica inalcancavel, sem scroll pra
   recuperar. 40px = os 20px de padding do overlay, dos dois lados. */
.lead-popup__card { position: relative; width: 100%; max-width: 440px; background: #fff; padding: 40px 32px 34px; box-shadow: var(--shadow-lg); animation: popupRise 0.4s var(--ease); max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); overflow-y: auto; overscroll-behavior: contain; }
@keyframes popupFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes popupRise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.lead-popup__close { position: absolute; top: 14px; right: 16px; width: 36px; height: 36px; border: 0; background: transparent; font-size: 1.7rem; line-height: 1; color: var(--ink-400); cursor: pointer; transition: color 0.2s var(--ease); }
.lead-popup__close:hover { color: var(--navy-900); }
.lead-popup__title { font-size: var(--fs-h3); color: var(--navy-900); margin-bottom: 8px; line-height: 1.2; }
.lead-popup__title .accent { color: var(--bronze-600); font-style: italic; font-weight: 500; }
.lead-popup__sub { font-size: 0.9rem; color: var(--ink-500); margin-bottom: 22px; line-height: 1.6; }
.lead-popup__form .btn { margin-top: 4px; }
.lead-popup__success { display: none; text-align: center; padding: 10px 0; }
.lead-popup__success.show { display: block; animation: formFade 0.4s var(--ease); }
.lead-popup__success h3 { font-size: 1.2rem; color: var(--navy-900); margin-bottom: 6px; }
.lead-popup__success p { color: var(--ink-500); font-size: 0.9rem; line-height: 1.6; }

/* =================================================================
   REVEAL ON SCROLL                                                   */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.8s var(--ease), transform 0.8s var(--ease); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* cascata: itens de grade entram em sequência (mais vivo, menos monótono) */
.pillars__grid .pillar:nth-child(2),
.financing__grid .financing__card:nth-child(2),
.gallery__grid .gallery__item:nth-child(2) { transition-delay: 0.08s; }
.pillars__grid .pillar:nth-child(3),
.financing__grid .financing__card:nth-child(3),
.gallery__grid .gallery__item:nth-child(3) { transition-delay: 0.16s; }
.pillars__grid .pillar:nth-child(4),
.gallery__grid .gallery__item:nth-child(4) { transition-delay: 0.24s; }
.gallery__grid .gallery__item:nth-child(5) { transition-delay: 0.32s; }
.gallery__grid .gallery__item:nth-child(6) { transition-delay: 0.40s; }
.gallery__grid .gallery__item:nth-child(7) { transition-delay: 0.48s; }
.gallery__grid .gallery__item:nth-child(8) { transition-delay: 0.56s; }

/* =================================================================
   REDUCED MOTION                                                     */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto; }
  .wa-fab, .btn--accent, .btn--green { animation: none; }
}


/* =================================================================
   10. AJUSTES ZGRADA (o que o clone da Moura não previa)
   ================================================================= */

/* 10.1 AUTORIA NA GALERIA. A Zgrada não tem casa residencial entregue em
   acervo: o que existe é uma obra sob gerenciamento (Atibaia) e referências
   de projeto. Misturar as duas sem etiqueta é apropriação de obra de
   terceiro, então cada item diz de quem é. */
.gallery__item { position: relative; }
.gallery__tag {
  position: absolute; top: 10px; left: 10px; z-index: 2;
  font-family: var(--font-display);
  font-size: 0.62rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 5px 9px;
  background: rgba(3,35,48,0.72); color: var(--cream-300);
  border: 1px solid rgba(114,218,253,0.34);
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
}
.gallery__tag--real { background: var(--bronze-600); color: #fff; border-color: var(--bronze-600); }
.gallery__item figcaption {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: 26px 12px 10px;
  font-size: 0.78rem; font-weight: 500; letter-spacing: 0.02em; color: rgba(255,255,255,0.92);
  background: var(--grad-veu);
}
/* as duas fotos reais entram maiores: são a única prova de obra da página */
@media (min-width: 720px) {
  .gallery__grid .gallery__item--real { grid-column: span 2; aspect-ratio: 16 / 10; }
}

/* 10.2 QUEM SOMOS. A única foto de equipe é DEITADA (1100x830). Numa célula
   3/4 o object-fit:cover decepa cabeça, que é o erro 15.7 do playbook. */
.experts__photo { aspect-ratio: 4 / 3; }
@media (min-width: 900px) {
  .experts__photo { aspect-ratio: 4 / 3; }
  .experts__inner { grid-template-columns: minmax(320px, 1fr) 1fr; }
}

/* 10.3 CONTRASTE NA DOBRA ESCURA. #038FBE sobre o ink dá 3,31:1: passa em
   texto grande e reprova em texto pequeno. Os números vão no claro. */
.proof__num { color: var(--cream-300); }
.proof__num em, .proof__num small, .proof__num .counter small { color: var(--bronze-400); }

/* 10.4 O SEGUNDO E O TERCEIRO MOTIVO. O playbook 15.2 pede a marca como
   SISTEMA, não um símbolo repetido igual em tudo. A hachura já veste o
   "como funciona"; o trilho veste o investimento e o degrau veste o form. */
.financing { position: relative; isolation: isolate; }
.financing::after {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--bronze-500); opacity: 0.07;
  -webkit-mask: var(--pat-trilho) left top / 260px repeat;
  mask: var(--pat-trilho) left top / 260px repeat;
}
.viability { position: relative; isolation: isolate; }
.viability::after {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--bronze-500); opacity: 0.05;
  -webkit-mask: var(--pat-degrau) left top / 300px repeat;
  mask: var(--pat-degrau) left top / 300px repeat;
}

/* 10.5 SELETOR DE PAÍS (formulário canônico da frota) */
.tel-row { display: flex; gap: 8px; align-items: stretch; }
.tel-row .tel-country { flex: 0 0 auto; width: auto; max-width: 42%; min-width: 104px; padding-right: 26px; }
.tel-row input { flex: 1 1 auto; min-width: 0; }
@media (max-width: 380px) { .tel-row .tel-country { max-width: 46%; min-width: 92px; font-size: 13px; } }

/* 10.6 SELO LGPD: o link é obrigatório junto do selo. Afirmar conformidade
   sem apontar a política é afirmar o que não se sustenta. */
.trust-item a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.trust-item a:hover { color: var(--bronze-700); }
.site-footer__legal { margin-top: 6px; font-size: 0.82rem; }
.site-footer__legal a { color: rgba(255,255,255,0.72); text-decoration: underline; text-underline-offset: 3px; }
.site-footer__legal a:hover { color: var(--cream-300); }


/* 10.7 A REGUA NA DOBRA ESCURA. O --bronze-600 (#027197) sobre o ink some:
   os dois tons quase empatam e a regua vira sujeira. No escuro ela sobe
   para a cor cheia da marca, que e elemento grafico e nao texto. */
.proof .section-title::after,
.process .section-title::after,
.gallery .section-title::after,
.financing .section-title::after,
.viability .section-title::after { background: var(--bronze-500); }

/* 10.8 FAIXA DE RENDA: o <small> colava no valor ("R$ 15 mila R$ 25 mil").
   O template usava o slot para "/mes", que nao precisava de respiro. */
.financing__inst-value { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; }
.financing__inst-value small { margin-left: 0; font-size: 0.52em; }


/* =================================================================
   11. REVISAO 2 (25/08/2026)
   ================================================================= */

/* --- 11.0 utilitario de estamparia do kit ------------------------------
   Vem do kit (montar-kit.py) e nao tinha sido colado junto com os tokens:
   sem ele a classe `estampa` no HTML nao pinta nada. A superficie recebe a
   COR e a estamparia RECORTA; a estamparia e mascara, nao imagem colorida. */
.estampa { position: relative; isolation: isolate; }
.estampa::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--pat-cor, var(--brand));
  opacity: var(--pat-op, .06);
  -webkit-mask: var(--pat-tile, var(--pat-grade)) left top / var(--pat-escala, 220px) repeat;
  mask: var(--pat-tile, var(--pat-grade)) left top / var(--pat-escala, 220px) repeat;
}
.estampa-hachura { --pat-tile: var(--pat-hachura); }
.estampa-trilho  { --pat-tile: var(--pat-trilho); }
.estampa-grade   { --pat-tile: var(--pat-grade); --pat-escala: 44px; }
.estampa-degrau  { --pat-tile: var(--pat-degrau); }

/* --- 11.1 REGUA DE AUTORIDADE COMO SECAO PROPRIA -----------------------
   Antes ela era `--navy-900`, o mesmo tom do hero: lia como rodape do hero,
   nao como dobra nova. Agora e uma superficie da marca, mais clara que o
   hero e mais escura que a dobra clara seguinte, com a estamparia
   quadriculada em branco por cima.
   A rampa vai de #01536f (branco 7,9:1) a #0280aa (branco 4,50:1): AA de
   ponta a ponta, inclusive nos rotulos, que sao texto pequeno. O
   `--grad-brand` cheio nao serve aqui, termina em 2,19:1 com branco. */
.proof--destaque {
  background: linear-gradient(46deg, #01536f 0%, #0280aa 100%);
  padding: clamp(46px, 5vw, 68px) 0;
  border-top: 3px solid var(--cream-300);
  border-bottom: 3px solid rgba(3,35,48,0.35);
  position: relative;
  isolation: isolate;
}
/* a estamparia quadriculada, em branco e de leve (o pedido foi baixa opacidade) */
.proof--destaque.estampa::before {
  --pat-cor: #ffffff;
  --pat-op: 0.10;
  --pat-escala: 52px;
  z-index: -1;
}
/* mata a risca decorativa herdada: quem marca a quebra agora e a borda */
.proof--destaque::after { content: none; }
.proof__grid--duo { display: grid; gap: 30px; grid-template-columns: 1fr; }
@media (min-width: 720px) {
  .proof__grid--duo { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(30px, 6vw, 80px); }
  /* fio da marca separando os dois numeros */
  .proof__grid--duo .proof__item + .proof__item { border-left: 1px solid rgba(255,255,255,0.28); }
}
.proof--destaque .proof__num { color: #fff; font-size: clamp(2.6rem, 1.6rem + 3.6vw, 4.4rem); }
.proof--destaque .proof__num em,
.proof--destaque .proof__num small,
.proof--destaque .proof__num .counter small { color: var(--cream-300); }
.proof--destaque .proof__label {
  color: rgba(255,255,255,0.94);
  font-size: 1rem;
  font-weight: 600;
  max-width: 30ch;
  margin-left: auto; margin-right: auto;
}

/* --- 11.2 ACENTO FORTE: degrade animado dentro da familia da marca -----
   Usado onde a palavra-chave estava sumindo (o "quatro etapas com dono" e o
   "construcao" do formulario). A rampa nao introduz cor nova: brand-light,
   branco e cream-300, todos ja no kit. O `color` fica declarado ANTES do
   clip, entao navegador sem suporte mostra a palavra em brand-light cheio,
   nunca transparente. */
.accent--forte {
  color: var(--cream-300);
  background-image: linear-gradient(100deg, var(--bronze-400) 0%, #ffffff 42%, var(--cream-300) 62%, var(--bronze-400) 100%);
  background-size: 260% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: acentoFlui 7s ease-in-out infinite;
}
@keyframes acentoFlui {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
  .accent--forte { -webkit-text-fill-color: currentColor; background-image: none; animation: none; }
}
/* na dobra clara do formulario a rampa tem que ser escura, senao o branco do
   meio do degrade some no fundo claro */
.viability .accent--forte,
.faq .accent--forte,
.compare .accent--forte,
.experts .accent--forte {
  color: var(--bronze-700);
  background-image: linear-gradient(100deg, var(--bronze-700) 0%, var(--bronze-500) 42%, var(--bronze-600) 62%, var(--bronze-700) 100%);
}
/* a dobra do formulario e ESCURA nesta LP: volta para a rampa clara */
.viability .accent--forte {
  color: var(--cream-300);
  background-image: linear-gradient(100deg, var(--bronze-400) 0%, #ffffff 42%, var(--cream-300) 62%, var(--bronze-400) 100%);
}

/* --- 11.3 COMPARATIVO: quatro itens alinhados lado a lado --------------
   Os dois cabecalhos ganham a mesma altura minima e os itens tambem, senao
   a linha 3 de um lado cai na altura da linha 4 do outro e a comparacao,
   que e o ponto da dobra, para de funcionar. */
.compare__head { min-height: 104px; }
.compare__list li { min-height: 3.5em; display: flex; align-items: center; }
@media (max-width: 720px) { .compare__list li { min-height: 0; } }

/* card vencedor com mais presenca: anel que pulsa, sem agressividade */
.compare__col--good {
  animation: goodGlow 4.5s ease-in-out infinite, goodPulso 3.8s ease-in-out infinite;
}
@keyframes goodPulso {
  0%, 100% { box-shadow: 0 0 0 1px rgba(114,218,253,0.30), 0 26px 60px -28px rgba(3,143,190,0.45); }
  50%      { box-shadow: 0 0 0 2px rgba(114,218,253,0.85), 0 34px 74px -22px rgba(3,143,190,0.65); }
}

/* --- 11.4 MOLDURA QUE DESENHA O RETANGULO (referencia: LP da LCR) ------
   Nao e degrade passeando: e um fio da marca que percorre topo, direita,
   base e esquerda, segura o retangulo cheio e recomeca. Quatro lados = dois
   pseudo-elementos com background-size animado.
   Os TRES cards andam na MESMA fase (mesma duracao, delay zero): com os tres
   na tela ao mesmo tempo, uma cascata leria como bug e nao como ritmo. */
.financing__card::before,
.financing__card::after {
  content: '';
  position: absolute; inset: 0; z-index: 4; pointer-events: none;
  background-repeat: no-repeat;
  background-image: linear-gradient(var(--cream-300), var(--cream-300)),
                    linear-gradient(var(--cream-300), var(--cream-300));
}
/* topo (esquerda -> direita) e direita (cima -> baixo) */
.financing__card::before {
  background-position: 0 0, 100% 0;
  background-size: 0 2px, 2px 0;
  animation: zgDesenhaTD 6s linear infinite; animation-delay: 0s;
}
/* base (direita -> esquerda) e esquerda (baixo -> cima) */
.financing__card::after {
  background-position: 100% 100%, 0 100%;
  background-size: 0 2px, 2px 0;
  animation: zgDesenhaBE 6s linear infinite; animation-delay: 0s;
}
@keyframes zgDesenhaTD {
  0%        { background-size: 0 2px, 2px 0; opacity: 1; }
  22%       { background-size: 100% 2px, 2px 0; }
  44%, 88%  { background-size: 100% 2px, 2px 100%; opacity: 1; }
  97%, 100% { background-size: 100% 2px, 2px 100%; opacity: 0; }
}
@keyframes zgDesenhaBE {
  0%, 44%   { background-size: 0 2px, 2px 0; opacity: 1; }
  66%       { background-size: 100% 2px, 2px 0; }
  88%       { background-size: 100% 2px, 2px 100%; opacity: 1; }
  97%, 100% { background-size: 100% 2px, 2px 100%; opacity: 0; }
}

/* --- 11.5 A FAIXA DE RENDA E A INFORMACAO PRIORITARIA ------------------
   Ela e o filtro de auto-qualificacao da dobra: quem se reconhece na faixa
   e quem preenche o formulario. Entao ela pesa mais que a metragem e mais
   que o valor estimado. */
.financing__installment {
  background: linear-gradient(46deg, #01536f 0%, #0280aa 100%);
  border: 1px solid rgba(114,218,253,0.42);
  padding: 16px 18px;
  margin-top: 14px;
}
.financing__inst-label {
  color: var(--cream-300);
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
}
.financing__inst-value {
  color: #fff;
  font-size: clamp(1.55rem, 1.2rem + 1.2vw, 2rem);
  margin-top: 4px;
}
.financing__inst-value small { color: var(--cream-300); font-weight: 600; }
/* o valor estimado recua: e informacao de apoio, nao a chamada */
.financing__price { opacity: 0.9; }
.financing__value { font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem); color: rgba(255,255,255,0.88); }

/* --- 11.6 QUEM SOMOS: a foto e dos dois socios, em quadrado -----------
   A foto enviada pelo cliente e 1:1 depois do recorte. Numa celula 3/4 o
   object-fit:cover decepava a cabeca (playbook 15.7). */
.experts__photo { aspect-ratio: 1 / 1; }
@media (min-width: 900px) { .experts__photo { aspect-ratio: 1 / 1; } }

/* --- 11.7 O reveal nao pode apagar a moldura nem o acento -------------- */
@media (prefers-reduced-motion: reduce) {
  .accent--forte { animation: none; }
  .compare__col--good { animation: none; box-shadow: 0 0 0 2px rgba(114,218,253,0.55), var(--shadow-lg); }
  .financing__card::before { animation: none; background-size: 100% 2px, 2px 100%; }
  .financing__card::after  { animation: none; background-size: 100% 2px, 2px 100%; }
}


/* --- 11.8 CORRECOES DA REVISAO 2 --------------------------------------- */

/* O selo saia do lugar: `.compare__col--good > *` declara position:relative
   com a MESMA especificidade de `.compare__seal` e vem depois, entao ganhava.
   O selo virava item em fluxo, esticado na largura do cartao, e empurrava a
   lista 54px para baixo: era por isso que os itens dos dois lados nao batiam. */
.compare__col--good > .compare__seal {
  position: absolute;
  width: -moz-max-content;
  width: max-content;
  max-width: calc(100% - 36px);
}

/* com o selo fora do fluxo, so falta garantir que os dois cabecalhos meçam
   igual, senao um titulo que quebre em duas linhas desalinha tudo de novo */
.compare__head { min-height: 104px; }
@media (max-width: 720px) { .compare__head { min-height: 0; } }

/* O fio agora corre no TEXTO, nao na caixa do item: em item de duas linhas o
   fio da caixa caia no vao entre as linhas e lia como sublinhado torto. Com
   box-decoration-break cada linha recebe o seu proprio fio. */
.compare__col--bad .compare__list li[data-strike] { background-image: none; }
.compare__col--bad .compare__list li[data-strike] .risco {
  background-image: linear-gradient(rgba(193,74,63,0.62), rgba(193,74,63,0.62));
  background-repeat: no-repeat;
  background-position: 0 52%;
  background-size: 0 1.5px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  transition: background-size 0.6s var(--ease);
}
.compare__col--bad .compare__list li[data-strike].is-struck .risco { background-size: 100% 1.5px; }

/* O acento forte tinha branco no meio e brand-light nas pontas: em parte do
   ciclo a palavra voltava a ser azul claro, que e exatamente o contraste que
   esta revisao veio corrigir. Agora a rampa inteira mora entre o branco e o
   cream-300 (9,1:1 sobre o ink): brilha, mas nunca perde contraste. */
.accent--forte,
.viability .accent--forte {
  background-image: linear-gradient(100deg, #ffffff 0%, var(--cream-300) 26%, #ffffff 52%, var(--cream-300) 76%, #ffffff 100%);
  color: #ffffff;
}

/* disclaimer a 40% de branco sobre dobra escura e ilegivel */
.financing__disclaimer { color: rgba(255,255,255,0.68); }

/* O cartao bom ja tinha 22px de recuo no cabecalho para nao passar por baixo
   do selo. O cartao ruim nao tinha, e era esse o desencontro que sobrava
   depois de tirar o selo do fluxo: mesmo recuo nos dois, itens na mesma linha. */
.compare__col--bad .compare__head { margin-top: 22px; }
@media (max-width: 720px) { .compare__col--bad .compare__head { margin-top: 0; } }

/* A classe estava aplicando, mas o `color` de reserva perdia para
   `.section-title .accent` (0,2,0 contra 0,1,0): em navegador sem
   background-clip:text a palavra voltava ao azul de baixo contraste.
   E a rampa passava tempo demais no cream: agora ela e branca na maior
   parte do ciclo, e o cream entra so como brilho de passagem. */
.section-title .accent--forte,
.hero__headline .accent--forte,
.lead-popup__title .accent--forte { color: #ffffff; }
.accent--forte {
  background-image: linear-gradient(100deg,
    #ffffff 0%, #ffffff 26%, var(--cream-300) 44%, #ffffff 62%, #ffffff 100%);
}


/* =================================================================
   12. REVISAO 3 (25/08/2026)
   ================================================================= */

/* --- 12.1 O Z SENDO CONSTRUIDO -----------------------------------------
   A marca e simples e angular, entao ela pode se montar na entrada: barra de
   cima, diagonal, barra de baixo, nessa ordem. Cada pedaco e a MESMA mascara
   do simbolo do kit (`--mark-solid`), recortada na sua faixa por clip-path.
   Nao ha desenho novo, e o Z fechado no fim e exatamente o do arquivo. */
.zbuild {
  position: relative;
  display: block;
  width: clamp(21px, 2.2vw, 27px);
  aspect-ratio: 1377 / 1905;      /* razao medida no simbolo do kit */
  flex: 0 0 auto;
}
.zbuild i {
  position: absolute; inset: 0;
  background: #fff;
  -webkit-mask: var(--mark-solid) center / contain no-repeat;
  mask: var(--mark-solid) center / contain no-repeat;
  opacity: 0;
  animation: zMonta 0.52s cubic-bezier(.2,.8,.2,1) forwards;
}
/* as tres faixas do Z. A diagonal ocupa a barriga do desenho, entao as bordas
   se sobrepoem de proposito: sem a sobreposicao aparece um fio vazado na junta. */
.zbuild__p1 { clip-path: inset(0 0 68% 0);   animation-delay: 0.15s; }
.zbuild__p2 { clip-path: inset(31% 0 31% 0); animation-delay: 0.42s; }
.zbuild__p3 { clip-path: inset(68% 0 0 0);   animation-delay: 0.69s; }
@keyframes zMonta {
  from { opacity: 0; transform: translateY(-22%) scaleY(0.7); }
  to   { opacity: 1; transform: none; }
}
/* o lettering entra depois que o Z fecha, deslizando de dentro dele */
.site-header__lettering {
  opacity: 0;
  animation: letteringEntra 0.6s cubic-bezier(.2,.8,.2,1) 0.95s forwards;
  transform-origin: left center;
}
@keyframes letteringEntra {
  from { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateX(-6px); }
  to   { opacity: 1; clip-path: inset(0 0 0 0);    transform: none; }
}
/* quem pediu menos movimento recebe a marca JA MONTADA, nunca invisivel
   (playbook 15.3: identidade nao pode depender de animacao) */
@media (prefers-reduced-motion: reduce) {
  .zbuild i, .site-header__lettering { animation: none; opacity: 1; clip-path: none; transform: none; }
}

/* --- 12.2 REGUA DE AUTORIDADE: MENOR E MAIS DESTACADA ------------------
   Menos altura, mais presenca. O degrade agora ANDA (dentro da familia da
   marca, nenhuma cor nova entra) e a estamparia quadriculada segue por tras,
   em branco e a 10%. */
.proof--destaque {
  padding: clamp(26px, 2.6vw, 38px) 0;
  background: linear-gradient(46deg, #01536f 0%, #0280aa 38%, #038FBE 62%, #01536f 100%);
  background-size: 300% 300%;
  animation: reguaFlui 16s ease-in-out infinite;
  border-top: 2px solid var(--cream-300);
  border-bottom: 2px solid rgba(3,35,48,0.4);
}
@keyframes reguaFlui {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}
.proof--destaque .proof__item { padding: 4px 10px; }
.proof--destaque .proof__num { font-size: clamp(2rem, 1.3rem + 2.4vw, 3.1rem); }
.proof--destaque .proof__label { font-size: 0.9rem; margin-top: 6px; }
@media (min-width: 720px) { .proof__grid--duo { gap: clamp(24px, 5vw, 64px); } }
@media (prefers-reduced-motion: reduce) { .proof--destaque { animation: none; } }

/* --- 12.3 COMPARATIVO: MARCADOR NA LINHA DO TEXTO, FIO POR BAIXO -------
   O `::before` era absoluto no topo do item. Com o item centralizado (para os
   4 de cada lado baterem na mesma linha) o X ficava ACIMA da palavra, e o
   mesmo com o check. Agora o marcador e item de flex alinhado ao inicio do
   texto: X e palavra na mesma linha, sempre.
   E o fio vermelho passou de RISCADO para SUBLINHADO: nunca corta a palavra. */
.compare__list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding-left: 0;
  min-height: 3.4em;   /* mantem os 4 itens dos dois cartoes na mesma linha */
}
.compare__list li::before {
  position: static;
  top: auto; left: auto;
  flex: 0 0 18px;
  margin-top: 2px;     /* encosta o marcador na altura da primeira linha */
}
@media (max-width: 720px) { .compare__list li { min-height: 0; } }

.compare__col--bad .compare__list li[data-strike] .risco {
  background-position: 0 100%;              /* embaixo da palavra, nao no meio */
  background-size: 0 1.5px;
  padding-bottom: 2px;                      /* respiro entre a letra e o fio */
}
.compare__col--bad .compare__list li[data-strike].is-struck .risco { background-size: 100% 1.5px; }

/* --- 12.4 QUANTO CUSTA CONSTRUIR: TIRAR A TRANSPARENCIA DAS PALAVRAS ---
   Rotulo, itens e disclaimer estavam em branco rebaixado e quase sumiam sobre
   a dobra escura. */
.financing__label { color: var(--cream-300); opacity: 1; }
.financing__specs li { color: rgba(255,255,255,0.92); }
.financing__price { opacity: 1; }
.financing__value { color: #ffffff; }
.financing__type { color: #ffffff; }
.financing__disclaimer { color: rgba(255,255,255,0.78); }
.financing .section-lead { color: rgba(255,255,255,0.9); }

/* --- 12.5 MENOS RESPIRO ENTRE AS DOBRAS -------------------------------
   O padrao era clamp(64px, 7vw, 100px) em cada dobra, ou seja, ate 200px de
   vao entre uma e outra. A pagina ficou comprida a toa depois que a dobra de
   obras saiu. */
.process, .gallery, .compare, .financing, .experts, .faq, .viability {
  padding-top: clamp(46px, 4.4vw, 68px);
  padding-bottom: clamp(46px, 4.4vw, 68px);
}
.section-lead { margin-bottom: 1.25rem; }
.timeline { margin-top: 1.6rem; }
.compare__grid, .financing__grid { margin-top: 1.7rem; }

/* --- 12.6 QUEM SOMOS: SUBIR O TEXTO ------------------------------------
   O bloco de texto comecava bem abaixo da regua do titulo: o `row-gap` do
   grid somava com o `margin-top` do proprio paragrafo. */
.experts__inner { row-gap: 8px; }
.experts__lead { margin-top: 0.5rem; }
.experts__head { margin-bottom: 0; }
.experts__team { margin-top: 1.2rem; }
.experts__cta { margin-top: 1.4rem; }

/* --- 12.7 O FIO VERMELHO SEGUE A PALAVRA, LINHA A LINHA ----------------
   Com background no span, o `box-decoration-break` nao rendeu por linha: o
   fio saia so embaixo da ULTIMA linha e ia ate a largura do bloco, passando
   longe da palavra. `text-decoration: underline` acompanha o texto de verdade,
   uma linha por linha, e nunca cruza a letra. A entrada anima pela COR, que e
   o que da para animar aqui. */
.compare__col--bad .compare__list li[data-strike] .risco {
  background-image: none;
  padding-bottom: 0;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 4px;
  transition: text-decoration-color 0.6s var(--ease);
}
.compare__col--bad .compare__list li[data-strike].is-struck .risco {
  text-decoration-color: rgba(193,74,63,0.75);
  background-size: 0 0;
}
/* 3,05em cabe as duas linhas (2 x 1,5 = 2,85em) e fecha o vao que sobrava
   nos itens de uma linha so */
.compare__list li { min-height: 3.05em; }
@media (max-width: 720px) { .compare__list li { min-height: 0; } }

/* --- 12.8 O ACENTO FORTE E BRANCO -------------------------------------
   Duas rodadas dizendo "ainda falta contraste": o cream no meio da rampa
   fazia a palavra voltar ao azul claro em parte do ciclo. A rampa agora vai
   de branco a quase-branco: o brilho continua andando, mas a palavra le
   BRANCA em qualquer quadro. */
.accent--forte,
.viability .accent--forte {
  background-image: linear-gradient(100deg,
    #ffffff 0%, #ffffff 30%, #dff2ff 46%, #ffffff 62%, #ffffff 100%);
}

/* =================================================================
   13. REVISAO 4 (25/08/2026): HERO ESTATICO
   ================================================================= */

/* A animacao dirigida pelo scroll saiu. O primeiro quadro dela era a planta
   tecnica, e quem abria a pagina via traco azul em vez de foto: lia como
   pagina quebrada, nao como recurso. Sem trilha de 260vh, sem sticky, sem
   video: a primeira dobra e uma dobra normal de altura de tela. */
.hero__sticky {
  position: static;
  height: auto;
  min-height: 100vh;
  min-height: 100svh;      /* depois do vh de proposito: quem nao entende, ignora */
  display: grid;
  place-items: end center;
  overflow: hidden;
  isolation: isolate;
}
.hero__bg {
  position: absolute; inset: 0; z-index: 0;
  display: block; pointer-events: none;
}
.hero__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* --- 13.1 ESPACAMENTO DO ITEM DE DUAS LINHAS NO CARTAO BOM -------------
   "Material comprado pela nossa carteira de fornecedores, o que segura de
   15 a 20% do custo" quebra em duas linhas e, com o item centralizado
   verticalmente na caixa de altura minima, ela descia demais e abria um vao
   acima. Ancorar no topo resolve sem desalinhar os quatro itens, porque a
   altura minima continua a mesma nos dois cartoes. */
.compare__list li { align-items: flex-start; }
.compare__list li::before { margin-top: 3px; }

/* --- 13.2 A MONTAGEM DO Z PRECISA SER LIDA COMO TRES TEMPOS ------------
   Com 0,52s de duracao e 0,27s entre as partidas, os tres pedacos ficavam no
   ar ao mesmo tempo e o Z parecia so "aparecer". Duracao mais curta e partidas
   mais espacadas: cada pedaco POUSA antes do proximo sair. */
.zbuild i { animation-duration: 0.34s; }
.zbuild__p1 { animation-delay: 0.20s; }
.zbuild__p2 { animation-delay: 0.62s; }
.zbuild__p3 { animation-delay: 1.04s; }
.site-header__lettering { animation-delay: 1.44s; }

/* --- 13.3 O VEU DE UMA DOBRA COM FOTO ---------------------------------
   O veu herdado escurecia a imagem inteira por igual e a casa sumia: a
   reclamacao foi literalmente "nao da pra ver a foto". Aqui o escuro vira um
   PAINEL atras da coluna de texto (esquerda) e a fachada respira na direita,
   que e onde a luz quente da casa mora. O gradiente e o mesmo ink da marca. */
.hero--foto .hero__overlay {
  background:
    linear-gradient(96deg,
      rgba(3,35,48,0.92) 0%,
      rgba(3,35,48,0.86) 30%,
      rgba(6,58,75,0.62) 48%,
      rgba(6,58,75,0.26) 66%,
      rgba(6,58,75,0.06) 82%,
      rgba(6,58,75,0.00) 100%),
    linear-gradient(180deg,
      rgba(3,35,48,0.62) 0%,
      rgba(3,35,48,0.10) 26%,
      rgba(3,35,48,0.10) 62%,
      rgba(3,35,48,0.58) 100%);
}
/* a foto entra so um pouco rebaixada, para o texto ficar por cima sem briga */
.hero--foto .hero__bg img { filter: saturate(0.96) brightness(0.94); }
/* enquadramento: a casa fica do centro para a direita, o texto na esquerda */
.hero--foto .hero__bg img { object-position: 62% 50%; }
@media (max-width: 767px) {
  /* no retrato o veu vertical manda, porque a copy ocupa a largura toda */
  .hero--foto .hero__overlay {
    background: linear-gradient(180deg,
      rgba(3,35,48,0.72) 0%, rgba(3,35,48,0.30) 24%,
      rgba(3,35,48,0.55) 52%, rgba(3,35,48,0.92) 100%);
  }
  .hero--foto .hero__bg img { object-position: 50% 26%; }
}

/* --- 13.4 O VEU NAO PODE TER COSTURA ----------------------------------
   Com poucas paradas o gradiente de 96deg desenhava uma diagonal visivel
   atravessando a foto, e a emenda lia como defeito de imagem. Mais paradas,
   e nenhuma com salto grande de opacidade, dissolvem a passagem. */
.hero--foto .hero__overlay {
  background:
    linear-gradient(100deg,
      rgba(3,35,48,0.90) 0%,
      rgba(3,35,48,0.87) 18%,
      rgba(4,44,58,0.80) 32%,
      rgba(5,52,68,0.66) 43%,
      rgba(6,58,75,0.50) 53%,
      rgba(6,58,75,0.34) 63%,
      rgba(6,58,75,0.20) 73%,
      rgba(6,58,75,0.10) 84%,
      rgba(6,58,75,0.04) 100%),
    linear-gradient(180deg,
      rgba(3,35,48,0.50) 0%,
      rgba(3,35,48,0.16) 22%,
      rgba(3,35,48,0.12) 58%,
      rgba(3,35,48,0.54) 100%);
}
/* a imagem ja e 16:10: em tela de notebook ela entra inteira, sem ampliar */
.hero--foto .hero__bg img { object-position: 50% 46%; }

/* --- 13.5 NO CELULAR A FOTO VIRA FAIXA, NAO FUNDO ----------------------
   Um retrato de 393x852 tem razao 0,46. Qualquer foto de fachada, que e
   horizontal por natureza, perde 40% ou mais da largura no `cover`: a casa
   deixa de ser casa e vira textura atras do texto. Foi o que o Thalisson viu.
   Aqui a foto ocupa uma FAIXA no topo, na largura inteira, e a copy desce
   para a superficie da marca. A casa aparece; o texto ganha fundo proprio. */
@media (max-width: 767px) {
  .hero {
    /* A chamada de descida tem de sobrar ACIMA da barra fixa de CTA, que come
       ~72px do rodape. Com 33svh ela ficava atras da barra: existia no DOM, mas
       o dedo nao alcancava e o olho nao via. */
    /* Uma casa de dois pavimentos so cabe numa faixa com altura: abaixo de
       ~240px sobra garagem e some o volume de cima, que e o que faz a foto
       parecer alto padrao. A faixa fica alta e quem sai e a chamada de
       descida, que no celular e redundante (a barra fixa de CTA ja conduz). */
    --faixa-foto: 31svh;
    --faixa-min: 235px;
    --faixa-max: 320px;
  }
  .hero__sticky {
    display: block;
    min-height: 0;
    background: linear-gradient(170deg, #063a4b 0%, #032330 100%);
  }
  .hero__bg {
    position: relative; inset: auto;
    display: block; width: 100%;
    height: var(--faixa-foto);
    min-height: var(--faixa-min); max-height: var(--faixa-max);
  }
  /* a faixa e HORIZONTAL, entao a imagem larga entra melhor que um recorte
     de retrato: a fachada aparece quase inteira em vez de virar detalhe */
  /* faixa baixa: enquadrar o ALTO da casa (volume superior, beiral, luz) em
     vez do meio, senao sobra garagem e calcamento e some a casa */
  .hero--foto .hero__bg img { object-position: 50% 30%; }
  /* redundante no celular: a barra fixa de CTA ocupa o rodape e ja conduz */
  .hero__cue { display: none; }
  /* O veu cobre EXATAMENTE a faixa da foto. As duas alturas saem da mesma
     variavel de proposito: quando eu mexi em uma so, sobrou um pedaco de foto
     sem veu e apareceu uma borda dura no meio da dobra. */
  .hero__overlay {
    top: 0; bottom: auto;
    height: var(--faixa-foto);
    min-height: var(--faixa-min); max-height: var(--faixa-max);
  }
  .hero--foto .hero__overlay {
    background: linear-gradient(180deg,
      rgba(3,35,48,0.80) 0%, rgba(3,35,48,0.30) 28%,
      rgba(3,35,48,0.22) 62%, rgba(6,58,75,0.86) 100%);
  }
  .hero__content {
    padding-top: clamp(18px, 2.4vh, 28px);
    padding-bottom: clamp(18px, 3vh, 30px);
  }
}
