/* ==========================================================================
   Croire — chaves.css
   ==========================================================================
   Estilos EXCLUSIVOS de /vistoria-entrega-de-chaves/. Carregado DEPOIS de
   base.css; todo seletor prefixado `.ch-`, então nada aqui alcança as outras
   páginas. Nenhum hex solto: tudo via var(--…).

   Esta é a única página B2C do projeto (comprador de imóvel, não construtora),
   e a única sem faixa de logos e sem "Para quem é". A composição acompanha:
   mais direta, com o passo a passo logo depois do hero.
   ========================================================================== */

/* ==========================================================================
   1. HERO — full-bleed fullscreen, foto real de vício construtivo interno.
   Coluna única com o subtítulo direto sob o H1: não repete nem os apoios em
   lista das páginas do site nem as duas colunas das LPs de teste.
   ========================================================================== */
.ch-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: calc(100dvh - var(--header-h));
  overflow: hidden;
  background-color: var(--surface-inverse);
  color: var(--ink-inverse);
}
.ch-hero .hero-media img { object-position: 50% 55%; }

.ch-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(100deg, rgba(18, 20, 46, .95) 0%, rgba(18, 20, 46, .88) 42%, rgba(18, 20, 46, .52) 78%, rgba(18, 20, 46, .4) 100%),
    linear-gradient(180deg, rgba(18, 20, 46, .6) 0%, rgba(18, 20, 46, .1) 38%, rgba(18, 20, 46, .62) 100%);
}

.ch-hero > .container {
  position: relative;
  z-index: 2;
  /* Mesma mecânica das outras páginas: a reserva grande só existe enquanto o
     banner de cookies está na tela (classe cookie-pendente, posta por script
     inline no <head>). Sem isso, quem já respondeu veria espaço morto. */
  padding-block: clamp(40px, 5vh, 64px) var(--hero-respiro);
  --hero-respiro: clamp(64px, 9vh, 112px);
  --hero-reserva: clamp(216px, 27vh, 264px);
}
.cookie-pendente .ch-hero > .container { padding-block-end: var(--hero-reserva); }

.ch-hero-eyebrow { color: var(--accent); }

.ch-hero-title {
  margin-top: var(--space-5);
  font-family: var(--font-display);
  /* mesma escala do hero das outras páginas, para a marca ler igual */
  font-size: clamp(1.75rem, 0.55rem + 5.6vw, 5.25rem);
  font-weight: var(--weight-bold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tightest);
  text-wrap: balance;
  max-width: 26ch;
}
.ch-hero-sub {
  margin-top: var(--space-6);
  max-width: 58ch;
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  color: var(--ink-inverse);
  text-shadow: 0 1px 2px rgba(18, 20, 46, .9), 0 0 14px rgba(18, 20, 46, .72);
}
.ch-hero-cta {
  margin-top: clamp(var(--space-6), 3vw, var(--space-10));
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-5);
}
.ch-hero-note { font-size: var(--text-sm); letter-spacing: var(--tracking-wide); color: var(--ink-inverse-muted); }

@media (min-width: 561px) and (max-height: 950px) {
  .ch-hero > .container { padding-block: var(--space-6) var(--hero-respiro); --hero-respiro: var(--space-16); --hero-reserva: clamp(196px, 24vh, 232px); }
  .ch-hero-title { margin-top: var(--space-4); font-size: clamp(1.875rem, 0.7rem + 5vw, 5.25rem); max-width: 24ch; }
  .ch-hero-sub { margin-top: var(--space-5); font-size: var(--text-base); }
}
@media (min-width: 561px) and (max-height: 820px) {
  .ch-hero > .container { padding-block: var(--space-5) var(--hero-respiro); --hero-respiro: var(--space-12); --hero-reserva: clamp(172px, 23vh, 206px); }
  .ch-hero-title { margin-top: var(--space-3); font-size: clamp(1.625rem, 0.6rem + 3.9vw, 4rem); max-width: 30ch; }
}
@media (max-width: 560px) {
  .ch-hero > .container { padding-block: var(--space-6) var(--hero-respiro); --hero-respiro: var(--space-16); --hero-reserva: var(--space-32); }
  .ch-hero-eyebrow { display: none; }
  .ch-hero-title { margin-top: 0; font-size: 1.9375rem; max-width: none; }
  .ch-hero-sub { margin-top: var(--space-5); font-size: 0.9375rem; }
  .ch-hero-cta { margin-top: var(--space-6); gap: var(--space-3); }
  .ch-hero-cta .btn { width: 100%; }
  .ch-hero-note { width: 100%; text-align: center; }
}
/* 320x568 e o pior caso do acervo: aqui o CTA encostava no banner de cookies
   (folga medida = 0). O H1 e longo e o subtitulo tem 3 linhas nessa largura. */
@media (max-width: 560px) and (max-height: 700px) {
  .ch-hero > .container { padding-block: var(--space-3) var(--hero-respiro); --hero-respiro: var(--space-8); --hero-reserva: var(--space-24); }
  .ch-hero-title { font-size: 1.3125rem; line-height: 1.1; }
  .ch-hero-sub { margin-top: var(--space-3); font-size: 0.78125rem; line-height: 1.38; }
  .ch-hero-cta { margin-top: var(--space-3); gap: var(--space-2); }
  .ch-hero-cta .btn { padding-block: var(--space-3); }
}

/* ==========================================================================
   2. COMO FUNCIONA — timeline de 3 passos. Conteúdo sequencial pede linha, não
   grade de caixinhas: a régua liga os passos e o número é o marcador.
   ========================================================================== */
.ch-steps { padding-block: var(--space-section); background-color: var(--surface-raised); }

.ch-steps-list {
  margin-top: clamp(var(--space-10), 5vw, var(--space-16));
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(var(--space-8), 4vw, var(--space-16));
}
.ch-step { position: relative; padding-top: var(--space-8); }
/* a régua horizontal que atravessa os três passos */
.ch-step::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: calc(-1 * clamp(var(--space-8), 4vw, var(--space-16)));
  height: var(--border-width-thick);
  background-color: var(--border-strong);
}
.ch-step:last-child::before { right: 0; }
/* o losango da marca marca o início de cada passo */
.ch-step::after {
  content: '';
  position: absolute;
  top: -5px; left: 0;
  width: 11px; height: 11px;
  transform: rotate(45deg);
  background-color: var(--accent);
}
.ch-step-num {
  display: block;
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  font-variant-numeric: var(--numeral-variant);
  letter-spacing: var(--tracking-wide);
  color: var(--accent-technical-strong);
}
.ch-step-title {
  margin-top: var(--space-3);
  font-family: var(--font-display);
  font-size: var(--text-h4);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-snug);
  color: var(--brand);
}
.ch-step-text { margin-top: var(--space-3); max-width: 42ch; color: var(--ink-muted); }

@media (max-width: 900px) {
  /* 3 passos em 1 coluna: nunca deixa órfão, e a régua vira vertical */
  .ch-steps-list { grid-template-columns: minmax(0, 1fr); gap: var(--space-10); }
  .ch-step { padding-top: 0; padding-left: var(--space-8); }
  .ch-step::before { top: 0; bottom: calc(-1 * var(--space-10)); left: 0; right: auto; width: var(--border-width-thick); height: auto; }
  .ch-step:last-child::before { bottom: 0; }
  .ch-step::after { top: 4px; left: -5px; }
  .ch-step-text { max-width: none; }
}

/* ==========================================================================
   3. PROBLEMA — faixa navy. O fecho ("você tem prova técnica") é o argumento
   que vende a página, então ele ganha corpo de citação, não de parágrafo.
   ========================================================================== */
.ch-problem { padding-block: var(--space-section); background-color: var(--surface-inverse); }
.ch-problem-title {
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 1.35rem + 3.5vw, 4rem);
  font-weight: var(--weight-bold);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
  max-width: 24ch;
}
.ch-problem-head { display: grid; gap: var(--space-5); }
.ch-problem-body {
  margin-top: clamp(var(--space-10), 5vw, var(--space-16));
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(var(--space-8), 4vw, var(--space-16));
  align-items: start;
}
.ch-problem-lede { font-size: var(--text-lg); line-height: var(--leading-relaxed); }
.ch-problem-text { color: var(--ink-inverse-muted); line-height: var(--leading-relaxed); }
.ch-problem-pull {
  grid-column: 1 / -1;
  margin-top: var(--space-4);
  padding-left: clamp(var(--space-5), 2vw, var(--space-8));
  border-left: 3px solid var(--accent);
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-medium);
  line-height: var(--leading-snug);
  max-width: 62ch;
}
@media (max-width: 900px) {
  .ch-problem-body { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .ch-problem-pull { margin-top: var(--space-2); }
}

/* ==========================================================================
   4. O QUE VERIFICAMOS — a única seção de cards com marcador desta página.
   6 itens: 3 colunas, 2 em ≤900px, 1 em ≤560px. 6%3, 6%2 e 6%1 = 0, então
   nenhum breakpoint deixa item órfão.
   ========================================================================== */
.ch-check { padding-block: var(--space-section); background-color: var(--surface); }
.ch-check-grid {
  margin-top: clamp(var(--space-10), 5vw, var(--space-16));
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--border-width-hairline);
  background-color: var(--border);
  border: var(--border-width-hairline) solid var(--border);
}
/* células coladas por filete: a grade lê como um documento de verificação, não
   como seis cartões soltos */
.ch-check-item {
  padding: clamp(var(--space-6), 2.4vw, var(--space-8));
  background-color: var(--surface-raised);
  transition: background-color var(--duration-base) var(--ease-standard);
}
.ch-check-item:hover { background-color: var(--concrete-100); }
.ch-check-mark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px; height: 30px;
  color: var(--brand);
  border: var(--border-width-thick) solid var(--accent);
  border-radius: var(--radius-xs);
}
.ch-check-mark svg { width: 17px; height: 17px; }
.ch-check-title {
  margin-top: var(--space-5);
  font-family: var(--font-display);
  font-size: var(--text-h4);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-snug);
  color: var(--brand);
}
.ch-check-text { margin-top: var(--space-3); color: var(--ink-muted); }

.ch-check-cta {
  margin-top: clamp(var(--space-10), 4vw, var(--space-16));
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-5);
}
.ch-check-note { font-size: var(--text-sm); color: var(--ink-muted); }

@media (max-width: 900px) { .ch-check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .ch-check-grid { grid-template-columns: minmax(0, 1fr); }
  .ch-check-cta .btn { width: 100%; }
  .ch-check-note { width: 100%; }
}

/* ==========================================================================
   5. SOBRE — split texto + foto. O parágrafo do CREA é destacado: é ele que
   separa laudo técnico de checklist de corretor.
   ========================================================================== */
.ch-about { padding-block: var(--space-section); background-color: var(--surface-alt); }
.ch-about-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
  gap: clamp(var(--space-10), 5vw, var(--space-20));
  align-items: center;
}
.ch-about-text { margin-top: var(--space-6); max-width: 56ch; color: var(--ink-muted); line-height: var(--leading-relaxed); }
.ch-about-col > .section-head + .ch-about-text { margin-top: var(--space-8); }
.ch-about-crea {
  margin-top: var(--space-8);
  padding: var(--space-6);
  background-color: var(--surface-inverse);
  color: var(--ink-inverse);
  border-left: 3px solid var(--accent);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  line-height: var(--leading-snug);
  max-width: 56ch;
}
.ch-about-media {
  display: block;
  overflow: hidden;
  border-radius: var(--radius-lg);
  border: var(--border-width-hairline) solid var(--border);
}
.ch-about-media img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }

@media (max-width: 900px) {
  .ch-about-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-10); }
  .ch-about-media img { aspect-ratio: 3 / 2; }
}

/* ==========================================================================
   6. FAQ — componente do base.css; aqui só o fundo e a largura da chamada.
   ========================================================================== */
.ch-faq { padding-block: var(--space-section); background-color: var(--surface); }
.ch-faq-list { margin-top: clamp(var(--space-8), 4vw, var(--space-12)); }

/* ==========================================================================
   7. CTA FINAL
   ========================================================================== */
.ch-cta { padding-block: var(--space-section); background-color: var(--surface-inverse); }
.ch-cta-title {
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 1.35rem + 3.5vw, 4rem);
  font-weight: var(--weight-bold);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
  max-width: 26ch;
}
.ch-cta-lede { margin-top: var(--space-6); max-width: 54ch; font-size: var(--text-lg); color: var(--ink-inverse-muted); }
.ch-cta-actions {
  margin-top: clamp(var(--space-8), 3vw, var(--space-12));
  display: grid;
  justify-items: start;
  gap: var(--space-4);
}
.ch-cta-note { font-size: var(--text-sm); letter-spacing: var(--tracking-wide); color: var(--ink-inverse-muted); }
@media (max-width: 560px) {
  .ch-cta-actions { justify-items: stretch; }
  .ch-cta-actions .btn { width: 100%; }
  .ch-cta-note { text-align: center; }
}
