/* CARPA · Afinação mobile das páginas atuais (P4k).
 * Carregada em último lugar e limitada a body.site-current: as versões em
 * /arquivo/ mantêm o comportamento original.
 * Regra de base até 700 px: os painéis (navegação, hero, cartões) assentam na
 * margem exterior da grelha (--carpa-page-gutter) e o texto fica recuado pelo
 * token de painel (--carpa-space-panel). Nunca 8 px entre texto e limite.
 */
.carpa-hero__mobile-actions { display: none; }

/* ── Navegação recolhida (menu) ─────────────────────────────────────────── */
@media (max-width: 1100px) {
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__menu-toggle { padding: 12px 0 12px 12px; min-height: 48px; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__menu-icon { position: relative; box-sizing: border-box; }
  body.site-current.site-current.site-current .carpa-hero[data-palette].is-menu-open .carpa-hero__menu-icon { border-color: transparent; }
  body.site-current.site-current.site-current .carpa-hero[data-palette].is-menu-open .carpa-hero__menu-icon::before,
  body.site-current.site-current.site-current .carpa-hero[data-palette].is-menu-open .carpa-hero__menu-icon::after { content: ''; position: absolute; left: 0; top: 50%; width: 100%; height: 2px; margin-top: -1px; background: currentColor; transform: rotate(45deg); }
  body.site-current.site-current.site-current .carpa-hero[data-palette].is-menu-open .carpa-hero__menu-icon::after { transform: rotate(-45deg); }

  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; padding: 0 0 var(--carpa-space-panel); font-size: 17px; }
  body.site-current.site-current.site-current .carpa-hero[data-palette].is-enhanced:not(.is-menu-open) .carpa-hero__nav { display: none; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__nav > :not(.carpa-hero__nav-cta) { grid-column: 1 / -1; border-top: 1px solid var(--carpa-border); }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__nav > a:not(.carpa-hero__nav-cta),
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__dropdown > summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 8px 0; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__nav [aria-current] { font-weight: var(--carpa-font-weight-bold); }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__dropdown > summary { cursor: pointer; text-decoration: none; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__dropdown > summary::after { float: none; font-size: 22px; line-height: 1; font-weight: var(--carpa-font-weight-regular); }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__dropdown ul { margin: 0 0 12px; padding: 4px 0 4px 16px; border: 0; border-left: 2px solid var(--carpa-border); border-radius: 0; background: transparent; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__dropdown li a { display: flex; align-items: center; min-height: 44px; padding: 6px 0; font-size: 16px; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__nav .carpa-hero__nav-cta { display: flex; align-items: center; justify-content: center; min-height: var(--carpa-button-height); margin-top: 20px; padding: 0 12px; font-size: 16px; white-space: nowrap; }
  /* O primeiro botão recebe a linha que fecha a lista. */
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__nav::before { content: none; }
}

@media (max-width: 700px) {
  /* Barra na grelha; logótipo e botão recuados pelo token de painel. */
  body.site-current.site-current.site-current .carpa-hero[data-palette] { padding-top: 12px; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__header-band { width: calc(100% - 2 * var(--carpa-page-gutter)); margin: 0 auto var(--carpa-space-below-nav); border-radius: var(--carpa-radius-panel); }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__header { width: 100%; min-height: 72px; padding: 0 var(--carpa-space-panel); }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__logo { flex: 0 0 132px; }

  /* Áreas de cuidado: rótulos numa só linha. */
  body.site-current .carpa-care--four .carpa-care__areas { gap: 12px; }
  body.site-current .carpa-care--four .carpa-care__areas a { gap: 10px; min-height: 56px; padding: 12px 16px; font-size: 16px; line-height: 1.2; white-space: nowrap; }

  /* ── Hero das páginas interiores: painel na grelha, texto a 24 px ─────── */
  body.site-current .carpa-page-hero { width: calc(100% - 2 * var(--carpa-page-gutter)); margin-top: 0; }
  body.site-current .carpa-page-hero .carpa-page-hero__grid { width: calc(100% - 2 * var(--carpa-space-panel)); }
}
@media (max-width: 700px) {
  /* Títulos e introduções do hero: sem quebras forçadas pela largura do painel. */
  body.site-current .carpa-page-hero h1,
  body.site-current.site-current .site-heading h1 { font-size: 30px; line-height: 1.14; letter-spacing: -.02em; }
  body.site-current .carpa-page-hero .carpa-page-hero__copy > p:not(.clinic-eyebrow),
  body.site-current .carpa-page-hero .site-lead,
  body.site-current.site-current .site-heading .site-lead { font-size: 17px; line-height: 1.55; }

  body.site-current .site-unit address { text-wrap: balance; }
  body.site-current .site-unit__parking h3 { margin-bottom: 8px; }
  body.site-current.site-current .carpa-home__heading,
  body.site-current.site-current .carpa-care__heading { padding-inline: 0; }

  /* Unidades: nome, morada e telefones antes da fotografia. */
  body.site-current .site-unit { display: flex; flex-direction: column; align-items: flex-start; }
  body.site-current .site-unit > * { max-width: 100%; }
  body.site-current .site-unit > :is(figure, details, div, address, p) { align-self: stretch; }
  body.site-current .site-unit .site-unit__photo { order: 1; margin: var(--carpa-space-panel) 0 0; }

  /* Páginas simples e marcação: o formulário começa mais cedo. */
  body.site-current.site-current .site-heading { padding-top: 20px; }
  body.site-current .site-heading .site-breadcrumb { margin-bottom: 20px; }
  body.site-current .site-heading .clinic-eyebrow { margin-bottom: 12px; }
  body.site-current .site-heading + .site-booking-layout { padding-top: var(--carpa-space-panel); }
  body.site-current .booking-progress { margin-bottom: 16px; }
  body.site-current .booking-progress .clinic-eyebrow { margin-bottom: 12px; }
}
/* Homepage: marcação visível sem deslocar, enquanto a navegação está recolhida. */
@media (max-width: 1100px) {
  body.site-current .carpa-hero__mobile-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
  body.site-current .carpa-hero__mobile-actions a { display: flex; align-items: center; justify-content: center; min-height: var(--carpa-button-height); padding: 0 12px; border-radius: var(--carpa-radius-button); background: var(--carpa-button); color: var(--carpa-button-text); font-size: 16px; font-weight: var(--carpa-font-weight-medium); line-height: 1.2; text-align: center; white-space: nowrap; }
  body.site-current .carpa-hero__mobile-actions a:active { background: var(--carpa-button-hover); }
  body.site-current .carpa-hero__mobile-actions a.carpa-hero__mobile-action--exam { background: var(--carpa-accent); }
  body.site-current .carpa-hero__mobile-actions a.carpa-hero__mobile-action--exam:active { background: color-mix(in srgb, var(--carpa-accent) 86%, #000); }
  body.site-current .carpa-hero__mobile-actions a:focus-visible { outline: 2px solid var(--carpa-heading); outline-offset: 3px; }
}
/* O hero da homepage empilha aos 600 px. */
@media (max-width: 600px) {
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__stage { width: calc(100% - 2 * var(--carpa-page-gutter)); }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__heading { min-height: 0; padding: 12px 0 20px; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__eyebrow { margin-bottom: 12px; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] h1 { font-size: 32px; line-height: 1.12; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__visual,
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__intro { height: 340px; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__intro { padding: var(--carpa-space-panel); }
}
@media (max-width: 359px) {
  body.site-current .carpa-care--four .carpa-care__areas { grid-template-columns: 1fr; }
  body.site-current .carpa-hero__mobile-actions a,
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__nav .carpa-hero__nav-cta { font-size: 15px; padding-inline: 8px; }
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__header { padding-inline: 16px; }
}
@media (min-width: 601px) and (max-width: 1100px) {
  /* Em tablet o título fica alinhado à direita, sobre a fotografia. */
  body.site-current .carpa-hero__mobile-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; }
  body.site-current .carpa-hero__mobile-actions a { padding-inline: 24px; }
}
@media (max-width: 700px) {
  /* Perguntas frequentes: o texto de apoio separa-se do título. */
  body.site-current .site-editorial > div > h2 + p { margin-top: 16px; }
  body.site-current .site-editorial > div > p + .clinic-text-link { margin-top: 16px; }
}
@media (max-width: 359px) {
  body.site-current .site-text-hero .carpa-page-hero__note,
  body.site-current .site-text-hero__links { gap: 0 16px; }
}
/* Menu aberto: a linha do logótipo mantém a altura da barra fechada, para a
   primeira linha separadora não colar ao logótipo. */
@media (max-width: 1100px) {
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__menu-toggle { min-height: 70px; }
}
@media (max-width: 700px) {
  body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__menu-toggle { min-height: 72px; }
}

/* ── Botões de ação: uma só altura em todas as larguras ─────────────────────
   Antes variavam entre 48 e 59 px. O padding vertical é calculado a partir da
   altura do token, para o rótulo ficar centrado seja qual for o display. */
body.site-current.site-current.site-current :is(.clinic-button, .exams-button, .carpa-home__button, .carpa-care__cta, .carpa-hero__nav .carpa-hero__nav-cta) {
  box-sizing: border-box;
  min-height: var(--carpa-button-height);
  padding-block: calc((var(--carpa-button-height) - 1lh) / 2);
}
/* Em /clinica/ e /caar/ o botão tem contorno de 1 px, que conta para a altura. */
body.site-current.site-current.site-current.clinic-refresh a.clinic-button,
body.site-current.site-current.site-current .clinic-refresh a.clinic-button { padding-block: calc((var(--carpa-button-height) - 1lh) / 2 - 1px); }
@media (max-width: 700px) {
  /* Mesma distância (12 px) entre a barra de navegação e o primeiro bloco. */
  body.site-current.site-current.site-current .clinic-immersive { width: calc(100% - 2 * var(--carpa-page-gutter)); margin-top: 0; }
  body.site-current.site-current.site-current .clinic-immersive__grid { width: 100%; }
  body.site-current.site-current .site-status-preview { margin-block: 0 var(--carpa-space-below-nav); }
  body.site-current.site-current.site-current .clinic-immersive h1 { font-size: 32px; line-height: 1.14; }
  /* Centro de Asma: frases do hero sem palavras isoladas numa linha. */
  body.site-current.site-current.caar-page .caar-hero .carpa-page-hero__copy > p:not(.clinic-eyebrow) { font-size: 16px; text-wrap: balance; }
  body.site-current.site-current.caar-page .caar-hero .carpa-page-hero__note h2 { font-size: 22px; line-height: 1.25; }
}
@media (max-width: 700px) {
  /* A quebra fixa entre as duas frases só serve o desktop; em mobile o texto
     corre e é equilibrado, para não deixar "clínica." sozinha. */
  body.site-current.site-current.caar-page .caar-hero .carpa-page-hero__copy > p:not(.clinic-eyebrow) br { display: none; }
}

/* Lista de exames: "Marcar exame" como botão cobre, ao lado (desktop) ou por
   baixo (mobile) de "Preparação e informações". */
body.site-current.site-current .exam-card__book,
body.site-current.site-current .exam-card__book:is(:hover, :focus-visible) {
  box-sizing: border-box; min-height: var(--carpa-button-height); padding: 0 24px;
  justify-content: center; border-radius: var(--carpa-radius-button);
  background-color: color-mix(in srgb, var(--carpa-accent) 12%, var(--carpa-surface));
  color: color-mix(in srgb, var(--carpa-accent) 82%, #000);
  font-weight: var(--carpa-font-weight-medium); text-decoration: none;
  transition: background-color .3s ease, color .3s ease;
}
/* Versão suave no cartão (já há um botão azul cheio); cobre cheio ao interagir. */
body.site-current.site-current .exam-card__book:is(:hover, :focus-visible) { background-color: var(--carpa-accent); color: var(--carpa-button-text); }
@media (prefers-reduced-motion: reduce) { body.site-current.site-current .exam-card__book { transition: none; } }
@media (max-width: 1100px) {
  /* Empilhados: os dois botões com a mesma largura. */
  body.site-current.site-current .exam-card__book { justify-self: stretch; }
}
@media (max-width: 700px) {
  /* Nota do hero com ligação: a ligação já reserva 44 px de área de toque
     (10 px livres acima e abaixo do texto), por isso a margem do parágrafo e
     o padding inferior descontam essa folga em vez de a somar. */
  body.site-current.site-current .carpa-page-hero__note > p:has(+ .clinic-text-link) { margin-bottom: 2px; }
  body.site-current.site-current .carpa-page-hero__note > .clinic-text-link { margin-top: 0; }
  body.site-current.site-current .carpa-page-hero__note:has(> .clinic-text-link:last-child) { padding-bottom: calc(var(--carpa-space-compact) - 10px); }
}

/* ── Distância única entre a navegação e o primeiro bloco (todas as larguras) ──
   A barra dá a margem; o primeiro bloco não acrescenta a sua. */
body.site-current.site-current.site-current .carpa-hero[data-palette] .carpa-hero__header-band { margin-bottom: var(--carpa-space-below-nav); }
body.site-current.site-current.site-current :is(.carpa-page-hero, .clinic-immersive) { margin-top: 0; }
body.site-current.site-current .site-status-preview { margin-block: 0 var(--carpa-space-below-nav); }
