/* Basesul v93 — sistema editorial: títulos diretos, um único eixo de leitura e formulários claros. */
:root {
  --v93-page-title: clamp(48px, 5vw, 72px);
  --v93-section-title: clamp(38px, 3.8vw, 56px);
  --v93-section-title-compact: clamp(32px, 3vw, 46px);
  --v93-body-large: clamp(16px, 1.15vw, 18px);
  --v93-body: 15px;
  --v93-copy-width: 760px;
  --v93-section-space: clamp(92px, 10vh, 132px);
  --v93-gray: #f7f7f8;
  --v93-line: #dedde0;
  --v93-ink: #111113;
  --v93-muted: #646168;
  --v93-purple: #554270;
}

/* Sobrancelhas de abertura deixam de competir com o título. Metadados funcionais
   (bairro, fase, números e legendas) usam classes próprias e continuam visíveis. */
main .eyebrow,
main .mv-eyebrow,
main .oh7-eyebrow,
main .pr84-eyebrow,
main .sim-eyebrow {
  display: none !important;
}

/* Escala única: páginas e seções compartilham a mesma hierarquia. */
main :is(.page-hero, .article-hero, .sim-hero, .invest-hero, .help-hero, .about53-hero, .contact-hero, .land-hero) h1,
main :is(.mv-hero, .ol-hero, .oh7-hero, .pr84-hero) h1 {
  font-size: var(--v93-page-title) !important;
  font-weight: 560 !important;
  letter-spacing: -.052em !important;
  line-height: .98 !important;
}

main :is(
  .section-title, .plus-title,
  .method-intro h2, .calculator-head h2, .projects-head h2,
  .compare-head h2, .faq-head h2,
  .mv-section-head h2, .ol-section-head h2, .oh7-section-head h2,
  .mv-location-intro h2, .oh7-intro-head h2, .oh7-coverage-head h2,
  .ol-progress-summary h2,
  .invest-section-head h2, .sim-method-head h2,
  .about53-section h2, .about53-method-head h2,
  .contact-section-head h2, .contact-section-head-left h2,
  .help-content-head h2, .land-process-head h2,
  .pr84-section-head h2, .pr84-trajectory-head h2
) {
  font-size: var(--v93-section-title) !important;
  font-weight: 550 !important;
  letter-spacing: -.048em !important;
  line-height: 1.02 !important;
}

main :is(
  .section-intro, .calculator-head, .projects-head, .compare-head,
  .mv-section-head, .ol-section-head, .oh7-section-head,
  .mv-location-intro, .oh7-intro-head, .oh7-coverage-head, .oh7-gallery-intro,
  .ol-progress-summary,
  .help-hero-grid, .help-content-head, .contact-help-invite-grid,
  .about53-current-head, .pr84-section-head, .pr84-trajectory-head
) > div:first-child {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  text-align: inherit !important;
}

main :is(.contact-service-copy h2, .contact-service-copy h3, .contact-form-copy h2, .land-form-copy h2, .mv-inquiry-copy h2, .ol-inquiry-copy h2, .oh7-inquiry h2) {
  font-size: var(--v93-section-title-compact) !important;
  font-weight: 550 !important;
  letter-spacing: -.042em !important;
  line-height: 1.04 !important;
}

main :is(.lead, .plus-lead, .sim-hero p, .invest-section-head > p, .sim-method-head > p,
  .mv-section-head > p, .ol-section-head > p, .oh7-section-head > p,
  .mv-location-intro > p, .oh7-intro-head > div:last-child > p,
  .oh7-coverage-head > p, .ol-progress-summary > p,
  .contact-section-head > p, .contact-section-head-left > p, .land-process-head > p,
  .help-content-head > p, .pr84-section-head > p) {
  color: var(--v93-muted);
  font-size: var(--v93-body-large) !important;
  line-height: 1.58 !important;
}

/* Texto secundário sobre fotografia pertence ao sistema escuro, não ao cinza
   das seções editoriais claras. O overlay preserva a imagem; o branco suave
   devolve contraste sem competir com o título. */
main .immersive .lead,
main .land-hero .lead {
  color: rgba(255, 255, 255, .86) !important;
}

/* Regra mais importante desta versão: título e explicação permanecem no mesmo
   eixo. Cabeçalhos editoriais sem uma imagem lateral serão centralizados mais
   abaixo; composições com imagem, formulário ou conteúdo lateral ficam à esquerda. */
main :is(
  .section-intro, .calculator-head, .projects-head, .compare-head,
  .mv-section-head, .ol-section-head, .oh7-section-head,
  .mv-location-intro, .oh7-intro-head, .oh7-coverage-head, .oh7-gallery-intro,
  .ol-progress-summary,
  .invest-section-head, .sim-method-head,
  .help-hero-grid, .help-content-head,
  .land-process-head, .contact-help-invite-grid,
  .about53-current-head,
  .pr84-section-head, .pr84-trajectory-head
) {
  display: block !important;
  width: min(100%, var(--v93-copy-width)) !important;
  max-width: var(--v93-copy-width) !important;
  margin-right: auto !important;
  margin-left: 0 !important;
  text-align: left !important;
}

main .about53-closing > .container {
  display: block !important;
  width: min(100%, var(--v93-copy-width)) !important;
  max-width: var(--v93-copy-width) !important;
  margin-right: auto !important;
  margin-left: 0 !important;
  text-align: left !important;
}

/* Alguns componentes antigos centralizavam apenas o h2 internamente. O
   cabeçalho inteiro agora obedece ao mesmo eixo editorial. */
main .method-tabs-section .method-intro .section-title {
  max-width: var(--v93-copy-width) !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  text-align: left !important;
}

/* Nesta seção o próprio cabeçalho também é o container da página. Mantemos o
   alinhamento do grid geral e limitamos apenas a coluna de leitura. */
main .mv-location-intro.container {
  width: min(calc(100% - var(--gutter, 32px) - var(--gutter, 32px)), 1200px) !important;
  max-width: 1200px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

main .mv-location-intro > :is(div, p) {
  max-width: var(--v93-copy-width) !important;
}

main :is(
  .section-intro, .calculator-head, .projects-head, .compare-head,
  .mv-section-head, .ol-section-head, .oh7-section-head,
  .mv-location-intro, .oh7-intro-head, .oh7-coverage-head, .oh7-gallery-intro,
  .ol-progress-summary,
  .invest-section-head, .sim-method-head,
  .help-hero-grid, .help-content-head,
  .land-process-head, .contact-help-invite-grid,
  .about53-current-head, .pr84-section-head, .pr84-trajectory-head
) > :is(p, div > p):last-child {
  max-width: 690px !important;
  margin-top: 20px !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.oh7-intro-head > div:last-child {
  max-width: 690px !important;
  margin-top: 20px !important;
}

main :is(.centered-intro, .invest-section-head-centered, .contact-section-head) {
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center !important;
}

main :is(.centered-intro, .invest-section-head-centered, .contact-section-head) > p:last-child {
  margin-right: auto !important;
  margin-left: auto !important;
}

/* Cabeçalho editorial autônomo: quando o título e o subtítulo apresentam o
   conteúdo que vem abaixo — e não dividem a cena com uma imagem — o eixo é o
   centro. É a pausa editorial; não é aplicado a hero, formulário ou split. */
main :is(
  .section-intro,
  .calculator-head,
  .projects-head,
  .compare-head,
  .faq-head,
  .mv-section-head,
  .mv-location-intro,
  .ol-section-head,
  .ol-progress-summary,
  .oh7-intro-head,
  .oh7-coverage-head,
  .oh7-gallery-intro,
  .oh7-section-head,
  .oh7-map-directory-head,
  .oh7-reference-intro,
  .invest-section-head,
  .sim-method-head,
  .help-content-head,
  .land-process-head,
  .about53-heading,
  .about53-current-head,
  .about53-method-head,
  .pr84-trajectory-head
) {
  width: min(100%, 820px) !important;
  max-width: 820px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center !important;
}

main :is(
  .section-intro,
  .calculator-head,
  .projects-head,
  .compare-head,
  .faq-head,
  .mv-section-head,
  .mv-location-intro,
  .ol-section-head,
  .ol-progress-summary,
  .oh7-intro-head,
  .oh7-coverage-head,
  .oh7-gallery-intro,
  .oh7-section-head,
  .oh7-map-directory-head,
  .oh7-reference-intro,
  .invest-section-head,
  .sim-method-head,
  .help-content-head,
  .land-process-head,
  .about53-heading,
  .about53-current-head,
  .about53-method-head,
  .pr84-trajectory-head
) > :is(p, div > p):last-child,
main .oh7-intro-head > div:last-child {
  margin-right: auto !important;
  margin-left: auto !important;
}

main :is(
  .section-intro,
  .calculator-head,
  .projects-head,
  .compare-head,
  .faq-head,
  .mv-section-head,
  .mv-location-intro,
  .ol-section-head,
  .ol-progress-summary,
  .oh7-intro-head,
  .oh7-coverage-head,
  .oh7-gallery-intro,
  .oh7-section-head,
  .oh7-map-directory-head,
  .oh7-reference-intro,
  .invest-section-head,
  .sim-method-head,
  .help-content-head,
  .land-process-head,
  .about53-heading,
  .about53-current-head,
  .about53-method-head,
  .pr84-trajectory-head
) :is(h2, h3) {
  margin-right: auto !important;
  margin-left: auto !important;
}

main .method-tabs-section .method-intro .section-title {
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center !important;
}

main .mv-location-intro.container {
  width: min(calc(100% - var(--gutter, 32px) - var(--gutter, 32px)), 1200px) !important;
  max-width: 1200px !important;
}

main .mv-location-intro > :is(div, p) {
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center !important;
}

/* Galerias e listagens que têm somente um título também seguem a mesma pausa. */
main :is(.ol-gallery-heading, .pr84-current > .container > h2),
.news-page main .section.soft > .container > .title {
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center !important;
}

/* Na FAQ, o cabeçalho deixa de ocupar uma coluna lateral e passa a apresentar
   a lista. Isso mantém o princípio de centralização sem estreitar as respostas. */
.home-page .faq-layout {
  display: block !important;
}

.home-page .faq-head {
  position: static !important;
  top: auto !important;
}

.home-page .faq-list {
  width: min(100%, 960px);
  margin: clamp(44px, 5vw, 64px) auto 0;
}

/* CTAs escuros também passam a ser lidos em sequência, não em duas ilhas. */
.invest-closing .invest-closing-grid,
.sim-closing > .container {
  display: block !important;
  width: min(calc(100% - (var(--gutter, 32px) * 2)), 760px) !important;
  max-width: 760px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: left !important;
}

.invest-closing .invest-closing-grid > div + div,
.sim-closing > .container > div + div {
  max-width: 650px !important;
  margin-top: 22px !important;
}

/* A página não ganha um piso vazio só para completar o viewport. */
@media (min-width: 981px) and (min-height: 760px) {
  .invest-page .invest-hero,
  .invest-page .invest-section,
  .sim-page .sim-section,
  .sim-page .sim-method {
    min-height: 0 !important;
  }
}

main > section:not(.immersive):not(.page-hero):not(.article-hero):not(.pr84-hero):not(.sim-hero):not(.invest-hero):not(.help-hero):not(.about53-hero):not(.contact-hero):not(.contact-hero-banner):not(.contact-hero-compact):not(.land-hero):not(.mv-hero):not(.ol-hero):not(.oh7-hero) {
  padding-top: var(--v93-section-space);
  padding-bottom: var(--v93-section-space);
}

main > section + section:not(.immersive) {
  border-top-color: rgba(17, 17, 19, .08);
}

/* Formulários: informação de apoio curta, ícones discretos e campos legíveis. */
.form-guidance {
  display: grid;
  gap: 18px;
  max-width: 540px;
  margin: 34px 0 0;
  padding: 0;
  list-style: none;
}

.form-guidance li {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.form-guidance li > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  color: var(--v93-purple);
  border: 1px solid #d7d1df;
  border-radius: 50%;
}

.form-guidance svg {
  width: 16px;
  height: 16px;
}

.form-guidance strong {
  display: block;
  color: var(--v93-ink);
  font-size: 14px;
  font-weight: 560;
  line-height: 1.3;
}

.form-guidance p {
  margin: 4px 0 0 !important;
  color: var(--v93-muted) !important;
  font-size: 13px !important;
  line-height: 1.48 !important;
}

main :is(.lead-form, .contact-form-refined, .mv-form, .ol-inquiry-form, .oh7-form) {
  padding: clamp(28px, 3.6vw, 48px) !important;
  border: 1px solid var(--v93-line) !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
}

main :is(.lead-form, .contact-form-refined, .mv-form, .ol-inquiry-form, .oh7-form) label {
  color: #4f4c53 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

main :is(.lead-form, .contact-form-refined, .mv-form, .ol-inquiry-form, .oh7-form) :is(input, select, textarea) {
  min-height: 46px;
  color: var(--v93-ink) !important;
  border-color: #bdbac1 !important;
  border-radius: 0 !important;
  background: transparent !important;
  font-size: 15px !important;
}

main :is(.lead-form, .contact-form-refined, .mv-form, .ol-inquiry-form, .oh7-form) :is(button[type='submit'], .form-submit, .submit) {
  min-height: 44px;
  padding: 11px 22px !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--v93-ink) !important;
  font-size: 13px !important;
  font-weight: 550 !important;
}

/* Formulário e contexto mantêm duas colunas; o que deixa de existir é o
   título em uma coluna e o seu próprio subtítulo isolado na outra. */
main :is(.contact-layout, .contact-form-layout, .land-form-layout, .mv-inquiry-grid, .ol-inquiry-grid, .oh7-inquiry-grid) {
  align-items: start !important;
}

@media (max-width: 980px) {
  :root {
    --v93-page-title: clamp(44px, 8vw, 64px);
    --v93-section-title: clamp(36px, 6vw, 50px);
    --v93-section-space: clamp(80px, 9vh, 108px);
  }
}

@media (max-width: 680px) {
  :root {
    --v93-page-title: clamp(40px, 12vw, 54px);
    --v93-section-title: clamp(32px, 9.6vw, 42px);
    --v93-section-title-compact: clamp(29px, 8.5vw, 38px);
    --v93-section-space: 76px;
  }

  main :is(
    .section-intro, .calculator-head, .projects-head, .compare-head,
    .mv-section-head, .ol-section-head, .oh7-section-head,
    .mv-location-intro, .oh7-intro-head, .oh7-coverage-head, .oh7-gallery-intro,
    .ol-progress-summary,
    .invest-section-head, .sim-method-head,
    .help-hero-grid, .help-content-head,
    .land-process-head, .contact-help-invite-grid,
    .about53-current-head, .pr84-section-head, .pr84-trajectory-head
  ) {
    width: 100% !important;
  }

  main :is(.centered-intro, .invest-section-head-centered, .contact-section-head) {
    text-align: center !important;
  }

  main :is(.centered-intro, .invest-section-head-centered, .contact-section-head) > p:last-child {
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .form-guidance {
    gap: 16px;
    margin-top: 28px;
  }
}
