/*
 * Ajustes responsivos para notebooks e viewports com pouca altura.
 * Esta camada fica carregada por ultimo para centralizar correcoes de
 * geometria sem alterar os componentes visuais das paginas.
 */

/* A pagina 404 nao possui cabecalho e, portanto, nao deve reservar sua altura. */
.error-page,
.error-page .error-hero {
  min-height: 100vh;
  min-height: 100svh;
}

.error-page .error-hero {
  display: grid;
  align-items: center;
}

/*
 * Em notebooks, a altura disponivel e menor mesmo quando a largura e ampla.
 * O espacamento continua generoso, mas passa a responder tambem ao eixo Y.
 */
@media (min-width: 1024px) and (max-height: 900px) {
  .section {
    padding-block: clamp(72px, 9vh, 82px);
  }

  .section-tight {
    padding-block: clamp(64px, 8vh, 76px);
  }

  .section-heading {
    margin-bottom: clamp(32px, 4.5vh, 40px);
  }

  /* Inicio: mantem texto, imagem e indicadores dentro da primeira dobra. */
  .hero {
    min-height: 0;
    padding-top: calc(var(--header-height) + clamp(44px, 6vh, 56px));
    padding-bottom: clamp(58px, 8vh, 72px);
  }

  .hero h1 {
    margin-bottom: 18px;
    font-size: clamp(3.35rem, 4.45vw, 4.2rem);
    line-height: 1.02;
  }

  .hero-lead {
    margin-bottom: 24px;
    line-height: 1.58;
  }

  .hero-actions {
    gap: 18px;
  }

  .hero-trust {
    margin-top: 26px;
    padding-top: 17px;
  }

  .hero-clinic-photo {
    height: clamp(320px, 48vh, 410px);
  }

  /* Seguranca do Trabalho: reduz apenas espacos ociosos da apresentacao. */
  .sst-showcase {
    padding-top: calc(var(--header-height) + clamp(44px, 6vh, 54px));
    padding-bottom: clamp(64px, 8vh, 76px);
  }

  .sst-showcase-grid {
    gap: clamp(34px, 4vw, 54px);
  }

  .sst-showcase-copy .eyebrow {
    margin-bottom: 18px;
  }

  .sst-showcase-copy h1 {
    margin-bottom: 20px;
    font-size: clamp(3.45rem, 5.4vw, 4.8rem);
  }

  .sst-showcase-description {
    line-height: 1.55;
  }

  .sst-showcase-actions {
    margin-top: 24px;
  }

  .sst-solutions-card {
    padding: 22px 24px 20px;
    border-radius: 34px;
  }

  .sst-solutions-emblem {
    width: 82px;
    height: 82px;
    margin-bottom: 12px;
  }

  .sst-solutions-emblem svg {
    width: 46px;
    height: 46px;
  }

  .sst-solutions-card > h2 {
    margin-bottom: 18px;
  }

  .sst-feature-list {
    gap: 10px;
  }

  .sst-feature-card {
    grid-template-columns: 60px minmax(0, 1fr);
    gap: 14px;
    min-height: 88px;
    padding: 11px 14px;
  }

  .sst-feature-icon {
    width: 58px;
    height: 58px;
  }

  .sst-feature-icon svg {
    width: 31px;
    height: 31px;
  }

  .sst-benefit-list {
    margin-top: 16px;
    padding-top: 15px;
  }

  .sst-benefit {
    gap: 6px;
  }

  .sst-benefit > span {
    width: 40px;
    height: 40px;
  }

  /* Quem somos: os dois CTAs permanecem lado a lado quando houver espaco. */
  .about-clinimed-page .about-clinimed-grid {
    column-gap: clamp(40px, 4vw, 64px);
    row-gap: 18px;
  }

  .about-clinimed-page {
    padding-top: calc(var(--header-height) + 48px);
    padding-bottom: clamp(60px, 8vh, 72px);
  }

  .about-clinimed-page .about-clinimed-eyebrow {
    margin-bottom: 20px;
  }

  .about-clinimed-page .about-clinimed-copy h1 {
    margin-bottom: 18px;
    font-size: clamp(3rem, 4.4vw, 4.15rem);
  }

  .about-clinimed-page .about-clinimed-actions {
    gap: 12px;
    margin-top: 22px;
  }

  .about-clinimed-page .about-clinimed-button-primary,
  .about-clinimed-page .about-clinimed-button-secondary {
    min-width: 0;
    flex: 1 1 210px;
  }

  /* Ortopedia: remove apenas a sobra que ultrapassava viewports de 720-768px. */
  .orthopedics-premium-hero {
    padding-top: calc(var(--header-height) + clamp(46px, 6vh, 54px));
    padding-bottom: clamp(52px, 7vh, 62px);
  }
}

/* Tablets e celulares preservam o empilhamento ja existente no projeto. */
@media (max-width: 1023px) {
  .error-page .error-hero {
    padding-block: clamp(72px, 12vh, 112px);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
