/* Camada fluida inspirada no comportamento do Ballena: proporções contínuas e quebras por conteúdo. */
:root {
  --dr-content-max: 90rem;
  --dr-gutter: clamp(1rem, 4vw, 4.5rem);
  --dr-section-space: clamp(4rem, 9vw, 9rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: hidden; overflow-x: clip; }
body { min-width: 20rem; overflow-x: hidden; overflow-x: clip; }
img, picture, video, canvas, svg { display: block; max-inline-size: 100%; }
iframe { max-inline-size: 100%; }

.ballena-hero__container,
.ballena-filosofia__container,
.ballena-condutas__container,
.ballena-metodo__container,
.ballena-clinica__container,
.ballena-trajetoria__container,
.ballena-footer__container,
.portal-container,
.portal-main-container {
  inline-size: min(100%, var(--dr-content-max));
  margin-inline: auto;
  padding-inline: var(--dr-gutter);
}

.ballena-hero { min-block-size: clamp(42rem, 100svh, 68rem); }
.ballena-hero__bg-wrap { overflow: hidden; }
.ballena-hero__bg-img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.ballena-hero__title,
.ballena-manifesto__quote,
.ballena-filosofia__heading,
.ballena-condutas__header h2,
.ballena-metodo__header h2,
.ballena-clinica__content h2,
.ballena-trajetoria__info h2,
.ballena-faq__header h2 { text-wrap: balance; }

.ballena-filosofia__img-wrap,
.ballena-clinica__gallery,
.ballena-trajetoria__photo { min-width: 0; overflow: hidden; }
.ballena-filosofia__img-wrap img,
.ballena-clinica__gallery img,
.ballena-trajetoria__photo img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.ballena-filosofia__content,
.ballena-clinica__content,
.ballena-trajetoria__info,
.ballena-card,
.ballena-step { min-width: 0; overflow-wrap: anywhere; }

@media (max-width: 63.9375rem) {
  .ballena-header { inline-size: calc(100% - 2 * var(--dr-gutter)); }
  .ballena-filosofia__container,
  .ballena-clinica__container,
  .ballena-trajetoria__container { grid-template-columns: minmax(0, 1fr); }
  .ballena-filosofia__img-wrap,
  .ballena-trajetoria__photo { aspect-ratio: 4 / 3; max-block-size: 42rem; }
  .ballena-condutas__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ballena-metodo__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 47.9375rem) {
  :root { --dr-gutter: clamp(1rem, 5vw, 1.75rem); --dr-section-space: clamp(3.5rem, 14vw, 6rem); }
  .ballena-hero { min-block-size: max(42rem, 100svh); }
  .ballena-hero__content { max-inline-size: 100%; }
  .ballena-hero__actions { align-items: stretch; flex-direction: column; }
  .ballena-hero__actions > * { justify-content: center; inline-size: 100%; }
  .ballena-condutas__grid,
  .ballena-metodo__grid,
  .ballena-filosofia__points,
  .ballena-clinica__gallery { grid-template-columns: minmax(0, 1fr); }
  .ballena-filosofia__img-wrap,
  .ballena-trajetoria__photo { aspect-ratio: 3 / 4; }
  .portal-content-grid,
  .patient-booking-grid,
  .patient-calendar-layout { grid-template-columns: minmax(0, 1fr) !important; }
  input, select, textarea, button { max-inline-size: 100%; }
  .ballena-hero__bg-img { object-position: 82% center !important; }
}

@media (max-width: 24.375rem) {
  :root { --dr-gutter: 1rem; }
  .ballena-header { inline-size: calc(100% - 1rem); }
}
/* V34: fotos e vídeos compartilham a mesma caixa responsiva. */
.dr-visual-media { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; }
.ballena-filosofia__img-wrap > video,
.ballena-tecnica__morph-img-wrap > video,
.ballena-card__thumb > video,
.ballena-clinica__gallery > video,
.ballena-trajetoria__photo > video { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; }
.dr-testimonial-author video { width: 3rem; height: 3rem; flex: 0 0 3rem; border-radius: 50%; object-fit: cover; display: block; }
