/* Correções responsivas compartilhadas pelo site e pelo portal de agendamento. */
html { max-width: 100%; overflow-x: clip; }
body { max-width: 100%; overflow-x: clip; }
img, video, iframe { max-width: 100%; }

@media (max-width: 1024px) {
  .ballena-filosofia__container,
  .ballena-clinica__container,
  .ballena-trajetoria__container,
  .ballena-condutas__grid,
  .ballena-metodo__grid {
    min-width: 0;
  }

  .ballena-filosofia__content,
  .ballena-clinica__content,
  .ballena-trajetoria__info,
  .ballena-card,
  .ballena-step {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 640px) {
  :root { --container-pad: 1.125rem; }

  .ballena-header {
    max-width: calc(100vw - 1rem);
    gap: .4rem;
  }

  .ballena-header__right { min-width: 0; }
  .ballena-header__agendar-btn,
  .ballena-header__toggle {
    min-height: 40px;
    flex: 0 0 auto;
  }

  .ballena-hero {
    min-height: 100svh;
    padding-top: 5rem;
    padding-bottom: 2rem;
  }

  .ballena-hero__container { width: 100%; }
  .ballena-hero__content { padding-top: 35svh; }
  .ballena-hero__title { max-width: 100%; overflow-wrap: anywhere; }
  .ballena-hero__description { max-width: 38ch; }
  .ballena-hero__meta { align-items: flex-start; }

  .ballena-card__thumb,
  .ballena-clinica__photo,
  .ballena-trajetoria__photo { min-height: 250px; }

  .ballena-clinica__gallery { grid-template-columns: 1fr !important; }
  .ballena-footer__bottom { align-items: stretch; }
  .ballena-footer__backtop { align-self: center; }

  .dr-cookie-banner {
    width: calc(100% - 1rem);
    max-height: min(44svh, 360px);
    bottom: max(.5rem, env(safe-area-inset-bottom));
    padding: .9rem;
    overflow: auto;
    border-radius: 10px;
  }

  .dr-cookie-banner__title { margin-bottom: .35rem; font-size: .82rem; }
  .dr-cookie-banner__text { margin-bottom: .7rem; font-size: .72rem; line-height: 1.4; }
  .dr-cookie-banner__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
  .dr-cookie-btn { min-height: 42px; display: grid; place-items: center; padding: .5rem .65rem; font-size: .68rem; }
  .dr-cookie-btn--secondary { order: 1; }
  .dr-cookie-btn--primary { order: 2; }
  .dr-cookie-btn--link { order: 3; grid-column: 1 / -1; min-height: 30px; margin: 0; }

  .portal-page .container { width: min(100% - 1.5rem, 100%); }
  .portal-tabs-nav { overflow-x: auto; justify-content: flex-start; scroll-snap-type: x proximity; }
  .portal-tab-btn { min-width: max-content; min-height: 44px; scroll-snap-align: start; }
  .patient-cal-header { align-items: flex-start; gap: .75rem; }
  .patient-cal-header > div:last-child { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
  .patient-cal-header .btn { min-height: 42px; padding-inline: .5rem !important; }
  .patient-cal-grid { min-width: 0; }
  .patient-cal-day { min-width: 0; aspect-ratio: 1; }
  #patientSlotsGrid { grid-template-columns: 1fr !important; }
}

@media (max-width: 390px) {
  .ballena-header__agendar-btn { padding-inline: .65rem; }
  .ballena-header__toggle { padding-inline: .6rem; }
  .ballena-header__toggle-label { display: none; }
  .ballena-hero__content { padding-top: 31svh; }
  .dr-cookie-banner { max-height: 48svh; }
}

/* Ritmo editorial e enquadramento de mídia no mobile. */
@media (max-width: 640px) {
  :root { --container-pad: 1.375rem; }

  .ballena-manifesto__container,
  .ballena-filosofia__container,
  .ballena-condutas__container,
  .ballena-metodo__container,
  .ballena-clinica__container,
  .ballena-trajetoria__container,
  .ballena-faq__container {
    padding-inline: var(--container-pad);
  }

  .ballena-filosofia__container,
  .ballena-clinica__container,
  .ballena-trajetoria__container {
    gap: 2.5rem;
  }

  .ballena-filosofia__img-wrap,
  .ballena-tecnica__morph-img-wrap {
    width: 100%;
    height: clamp(280px, 78vw, 360px) !important;
    min-height: 0 !important;
    overflow: hidden;
  }

  .ballena-filosofia__img-wrap img,
  .ballena-tecnica__morph-img-wrap img,
  .ballena-trajetoria__photo img,
  .ballena-card__thumb img,
  .ballena-clinica__gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 24%;
  }

  .ballena-card__thumb { min-height: 0; height: clamp(230px, 66vw, 310px); }
  .ballena-clinica__gallery img { height: clamp(250px, 72vw, 340px); border-radius: 12px; }
  .ballena-trajetoria__photo { min-height: 0; height: clamp(360px, 112vw, 500px); overflow: hidden; }

  .ballena-filosofia__content,
  .ballena-clinica__content,
  .ballena-trajetoria__info,
  .ballena-condutas__header,
  .ballena-metodo__header,
  .ballena-faq__header {
    width: 100%;
    max-width: 34rem;
  }

  .ballena-filosofia__heading,
  .ballena-condutas__header h2,
  .ballena-metodo__header h2,
  .ballena-clinica__content h2,
  .ballena-trajetoria__info h2,
  .ballena-faq__header h2 {
    margin-bottom: 1rem;
    text-wrap: balance;
  }

  .ballena-filosofia__text,
  .ballena-clinica__content p,
  .ballena-trajetoria__bio,
  .ballena-condutas__header p,
  .ballena-metodo__header p,
  .ballena-faq__header p {
    line-height: 1.72;
  }

  .ballena-filosofia__points { margin-top: 2.25rem; gap: 1.75rem; }
  .ballena-metodo__grid { margin-top: 2.5rem; row-gap: 2.25rem; }
  .ballena-clinica__gallery { gap: 1.25rem !important; }
  .eyebrow { margin-bottom: .75rem; }
}
