/* Basesul v99 — sistema tipográfico e ritmo editorial único.
   OpenAI é referência de escala e pausa; a identidade permanece Basesul. */
:root {
  --type-display: clamp(44px, 4vw, 60px);
  --type-display-immersive: clamp(44px, 4vw, 60px);
  --type-section: clamp(36px, 3.2vw, 52px);
  --type-section-compact: clamp(30px, 2.55vw, 42px);
  --type-subtitle: clamp(16px, 1.08vw, 18px);
  --type-body: 15px;
  --type-small: 13px;
  --type-meta: 11px;
  --copy-measure: 720px;
  --section-pause: clamp(96px, 10.5vh, 136px);
  --section-pause-compact: clamp(76px, 8.5vh, 108px);
  --surface-white: #fff;
  --surface-soft: #f7f7f8;
  --ink: #111113;
  --muted: #646168;
  --line: #dedde0;
  --basesul-purple: #554270;

  /* Compatibilidade com os componentes das versões anteriores. */
  --v93-page-title: var(--type-display);
  --v93-section-title: var(--type-section);
  --v93-section-title-compact: var(--type-section-compact);
  --v93-body-large: var(--type-subtitle);
  --v93-body: var(--type-body);
  --v93-copy-width: var(--copy-measure);
  --v93-section-space: var(--section-pause);
}

body {
  background: var(--surface-white);
  color: var(--ink);
  font-family: "Onest", sans-serif;
  font-size: var(--type-body);
}

/* Um título não muda de escala só porque mudou de página. */
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(--type-display) !important;
  font-weight: 570 !important;
  letter-spacing: -.05em !important;
  line-height: .99 !important;
}

/* Banners fotográficos não precisam gritar para encantar. */
main :is(.immersive, .mv-hero, .ol-hero, .oh7-hero, .pr84-hero) h1 {
  font-size: var(--type-display-immersive) !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,
  .pr84-next-copy h2, .pr84-closing h2,
  .invest-closing h2, .sim-closing h2
) {
  font-size: var(--type-section) !important;
  font-weight: 550 !important;
  letter-spacing: -.045em !important;
  line-height: 1.03 !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,
  .sim-controls-head h2, .sim-results-head h2
) {
  font-size: var(--type-section-compact) !important;
  font-weight: 550 !important;
  letter-spacing: -.04em !important;
  line-height: 1.05 !important;
}

main :is(
  .lead, .plus-lead, .sim-hero p:last-child, .invest-deck,
  .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-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(--muted);
  font-size: var(--type-subtitle) !important;
  font-weight: 400 !important;
  line-height: 1.58 !important;
}

main :is(.contact-hero-compact-content, .contact-hero-banner-content, .help-hero-copy) > p:last-child {
  font-size: var(--type-subtitle) !important;
  line-height: 1.58 !important;
}

/* Cabeçalhos autônomos: um único eixo central. Splits com imagem permanecem à esquerda. */
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%, 800px) !important;
  max-width: 800px !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 {
  max-width: 680px !important;
  margin-top: 18px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

/* Pausa consistente: generosa, sem fabricar um vazio de uma tela. */
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(--section-pause);
  padding-bottom: var(--section-pause);
}

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

/* Portfólio: banner mais curto e três empreendimentos em uma única linha. */
.portfolio-v84-page .pr84-hero {
  align-items: center;
  height: clamp(360px, 46svh, 460px);
  min-height: 360px;
}

.portfolio-v84-page .pr84-hero-shade {
  background: linear-gradient(90deg, rgba(7,10,15,.63), rgba(7,10,15,.18) 62%, rgba(7,10,15,.08));
}

.portfolio-v84-page .pr84-hero-content {
  padding-top: 54px;
  padding-bottom: 0;
  text-align: center;
}

.portfolio-v84-page .pr84-hero h1 {
  max-width: 820px;
  margin-right: auto;
  margin-left: auto;
}

.portfolio-v84-page .pr84-current {
  padding-top: clamp(78px, 8vh, 102px) !important;
  padding-bottom: clamp(88px, 9vh, 116px) !important;
}

.portfolio-v84-page .pr84-project-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(16px, 1.5vw, 24px);
}

.portfolio-v84-page .pr84-project-card {
  border-radius: 8px;
}

.portfolio-v84-page .pr84-project-image {
  height: clamp(250px, 24vw, 340px);
}

.portfolio-v84-page .pr84-project-copy {
  min-height: 205px;
  padding: 22px 22px 21px;
}

.portfolio-v84-page .pr84-project-title strong {
  font-size: clamp(27px, 2.15vw, 35px);
}

.portfolio-v84-page .pr84-project-moov {
  grid-column: auto !important;
}

.portfolio-v84-page .pr84-project-moov .pr84-project-image {
  height: clamp(250px, 24vw, 340px) !important;
}

/* Como investir: imagem exclusiva, inteira e em proporção mais horizontal. */
.invest-page .invest-hero {
  min-height: 0 !important;
  padding-top: clamp(112px, 13vh, 150px) !important;
  padding-bottom: clamp(82px, 9vh, 112px) !important;
  background: var(--surface-white) !important;
}

.invest-page .invest-hero-grid {
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr) !important;
  gap: clamp(48px, 6vw, 86px) !important;
  align-items: center !important;
}

.invest-page .invest-hero-copy h1 {
  max-width: 650px;
  font-size: var(--type-display) !important;
}

.invest-page .invest-hero-media {
  aspect-ratio: 1.32 / 1 !important;
  max-height: 440px;
  overflow: hidden;
}

.invest-page .invest-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center !important;
}

/* Simulador: introdução e ferramenta pertencem ao mesmo campo branco. */
.sim-page,
.sim-page main,
.sim-page .sim-hero,
.sim-page .sim-section {
  background: var(--surface-white) !important;
}

.sim-page .sim-hero {
  min-height: 0 !important;
  padding-top: clamp(112px, 13vh, 150px) !important;
  padding-bottom: clamp(34px, 4vh, 48px) !important;
  border-bottom: 0 !important;
}

.sim-page .sim-hero-inner {
  max-width: 820px;
}

.sim-page .sim-hero h1 {
  font-size: var(--type-display) !important;
}

.sim-page .sim-hero p:last-child {
  max-width: 680px;
  margin-top: 20px;
}

.sim-page .sim-section {
  padding-top: 8px !important;
  padding-bottom: var(--section-pause) !important;
  border-top: 0 !important;
}

.sim-page .sim-shell {
  box-shadow: 0 24px 70px rgba(17,17,19,.055);
}

/* A Basesul herda a mesma escala sem destruir os splits fotográficos. */
.about53-page main :is(.about53-heading, .about53-current-head, .about53-method-head) h2 {
  font-size: var(--type-section) !important;
}

.about53-page main :is(.about53-heading, .about53-current-head, .about53-method-head) p {
  font-size: var(--type-subtitle) !important;
  line-height: 1.58 !important;
}

@media (max-width: 980px) {
  .portfolio-v84-page .pr84-project-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px;
  }

  .portfolio-v84-page .pr84-project-image,
  .portfolio-v84-page .pr84-project-moov .pr84-project-image {
    height: 260px !important;
  }

  .portfolio-v84-page .pr84-project-copy {
    min-height: 215px;
    padding: 19px 17px;
  }

  .portfolio-v84-page .pr84-project-title {
    display: block;
  }

  .portfolio-v84-page .pr84-project-title em {
    display: block;
    margin-top: 8px;
  }

  .invest-page .invest-hero-grid {
    grid-template-columns: 1fr !important;
    gap: 44px !important;
  }

  .invest-page .invest-hero-copy {
    max-width: 720px;
  }

  .invest-page .invest-hero-media {
    width: min(100%, 780px);
    max-height: none;
  }
}

@media (max-width: 760px) {
  :root {
    --type-display: clamp(36px, 9.7vw, 42px);
    --type-display-immersive: clamp(34px, 9vw, 40px);
    --type-section: clamp(32px, 9.5vw, 40px);
    --type-section-compact: clamp(28px, 8vw, 36px);
    --type-subtitle: 16px;
    --section-pause: clamp(72px, 10vh, 92px);
  }

  .portfolio-v84-page .pr84-hero {
    height: 390px;
    min-height: 390px;
  }

  .portfolio-v84-page .pr84-hero-content {
    padding-top: 46px;
  }

  .portfolio-v84-page .pr84-project-grid {
    grid-template-columns: 1fr !important;
    gap: 22px;
  }

  .portfolio-v84-page .pr84-project-image,
  .portfolio-v84-page .pr84-project-moov .pr84-project-image {
    height: min(102vw, 390px) !important;
  }

  .portfolio-v84-page .pr84-project-copy {
    min-height: 190px;
    padding: 22px;
  }

  .portfolio-v84-page .pr84-project-title {
    display: flex;
  }

  .portfolio-v84-page .pr84-project-title em {
    display: inline;
    margin-top: 0;
  }

  .invest-page .invest-hero,
  .sim-page .sim-hero {
    padding-top: 96px !important;
  }

  .invest-page .invest-hero-media {
    aspect-ratio: 1.08 / 1 !important;
  }

  .sim-page .sim-hero-inner {
    text-align: center !important;
  }

  .sim-page .sim-hero p:last-child {
    margin-right: auto;
    margin-left: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portfolio-v84-page .pr84-project-card,
  .portfolio-v84-page .pr84-project-image img {
    transition: none;
  }
}
