/*
 * Camada responsiva final.
 * Carregada depois dos estilos de cada página para manter celular e notebook
 * previsíveis enquanto o CSS legado é consolidado gradualmente.
 */

html,
body {
  max-width: 100%;
  overflow-x: clip;
}

.about-shell.about-hero__layout {
  width: 100%;
  max-width: none;
}

:where(main, section, article, aside, header, footer, nav, div) {
  min-width: 0;
}

:where(h1, h2, h3, p, li, a, span, strong, small) {
  overflow-wrap: break-word;
}

:where(img, video, iframe, embed, object) {
  max-width: 100%;
}

:where(input, select, textarea, button) {
  max-width: 100%;
}

/* Formulários: medidas, leitura e toque consistentes em todo o site. */
:is(.contact-form, .calculator-form, .ebook-modal__form) :is(input:not([type="checkbox"]), select, textarea) {
  min-height: 3.25rem;
  font-size: 1rem;
}

:is(.contact-form, .calculator-form, .ebook-modal__form) textarea {
  min-height: 7.5rem;
}

:is(.contact-form, .calculator-form, .ebook-modal__form) button[type="submit"] {
  min-height: 3.25rem;
}

@media (max-width: 47.9375rem) {
  :root {
    --mobile-gutter: 1rem;
    --mobile-section-space: 3.75rem;
  }

  /* Cabeçalho móvel: painel compacto, rolável e fechado por padrão. */
  .site-header__container {
    position: relative;
    width: calc(100% - 1rem);
    min-height: 4.8rem;
    gap: 0.45rem;
  }

  .brand img {
    width: 7.15rem;
  }

  .header-actions {
    gap: 0.35rem;
  }

  .header-contact-link,
  .client-area-link {
    padding: 0.68rem 0.58rem;
    font-size: 0.68rem;
  }

  .menu-toggle {
    width: 2.55rem;
    height: 2.55rem;
  }

  .primary-navigation {
    position: absolute;
    top: 100%;
    right: -0.5rem;
    left: -0.5rem;
    z-index: 120;
    width: auto;
    max-height: 0;
    padding: 0 1rem;
    border-bottom: 0;
    background: rgba(255, 253, 251, 0.995);
    box-shadow: 0 1.2rem 2.4rem rgba(50, 12, 16, 0.16);
  }

  .site-header.is-menu-open .primary-navigation {
    max-height: calc(100svh - 4.8rem);
    padding-bottom: 1rem;
    border-bottom: 1px solid #d9b9b7;
  }

  .primary-navigation > a,
  .primary-navigation .nav-dropdown__trigger {
    min-height: 3rem;
    padding-block: 0.88rem;
  }

  .site-breadcrumbs ol {
    width: calc(100% - 1.5rem);
    padding-block: 0.58rem;
  }

  /* Componentes de formulário. */
  .contact-form-card,
  .calculator-form-card {
    width: 100%;
    border-radius: 0.9rem;
    padding: 1rem;
  }

  .calculator-form-card {
    padding: 0;
  }

  .contact-page .contact-stage__form {
    border-radius: 0;
    padding: 1.4rem;
  }

  .contact-form__grid,
  .calculator-form__fields,
  .calculator-form__contact-grid {
    grid-template-columns: 1fr !important;
    gap: 0.9rem;
  }

  .contact-form {
    gap: 0.9rem;
  }

  .contact-form label,
  .calculator-form__field {
    font-size: 0.76rem;
  }

  .contact-form button[type="submit"],
  .calculator-form__submit,
  .ebook-modal__submit {
    width: 100%;
    justify-self: stretch;
  }

  .contact-form__privacy,
  .calculator-form__privacy {
    align-items: start;
    line-height: 1.5;
  }

  .contact-form__success {
    padding: 0.9rem;
    border-radius: 0.65rem;
  }

  /* Home: hierarquia curta e cartões sem alturas rígidas. */
  .hero__inner {
    min-height: 0;
  }

  .hero__content {
    padding: 3.15rem var(--mobile-gutter) 2.65rem;
  }

  .hero h1 {
    max-width: 12ch;
    font-size: clamp(2.65rem, 12vw, 3.55rem);
    line-height: 0.98;
  }

  .hero__description {
    max-width: 31rem;
    font-size: 0.95rem;
    line-height: 1.58;
  }

  .hero__actions {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .hero__actions .button {
    min-height: 3.4rem;
  }

  .hero__visual,
  .hero__visual--brand {
    height: 14.5rem;
    min-height: 14.5rem;
  }

  .hero__visual--brand .hero__brand-symbol {
    height: min(78%, 11.5rem);
  }

  .hero-trust {
    position: relative;
    inset: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    margin: 0;
    padding: 0.45rem 0.75rem 0.75rem;
    border: 0;
    border-top: 1px solid #eadbd7;
    border-radius: 0;
    background: #fffdfa;
    box-shadow: 0 0.8rem 2rem rgba(67, 19, 23, 0.07);
    transform: none;
    order: 2;
  }

  .hero-trust__item {
    grid-template-columns: 2rem minmax(0, 1fr);
    min-height: 4rem;
    gap: 0.45rem;
    padding: 0.55rem 0.45rem;
    border-right: 0;
    border-bottom: 1px solid rgba(138, 31, 35, 0.09);
  }

  .hero-trust__item:nth-child(odd) {
    border-right: 1px solid rgba(138, 31, 35, 0.09);
  }

  .hero-trust__item::after {
    display: none;
  }

  .hero-trust__item--google {
    grid-column: 1 / -1;
    border-right: 0 !important;
  }

  .hero-trust__icon,
  .hero-trust__google {
    width: 2rem;
    height: 2rem;
  }

  .hero-trust__icon svg {
    width: 1.4rem;
    height: 1.4rem;
  }

  .hero-trust__copy strong {
    font-size: 0.72rem;
  }

  .hero-trust__copy small {
    font-size: 0.6rem;
  }

  .master-path,
  .home-services,
  .about,
  .testimonials,
  .specialties,
  .process,
  .plans,
  .partners,
  .contents,
  .faq,
  .contact-section {
    padding-block: var(--mobile-section-space);
  }

  .master-path__inner,
  .home-services__inner,
  .about__inner,
  .testimonials__inner,
  .specialties__inner,
  .process__inner,
  .plans__inner,
  .partners__inner,
  .contents__inner,
  .faq__inner,
  .contact-section__inner {
    width: calc(100% - 2rem);
  }

  .master-path__intro h2,
  .home-services__header h2,
  .specialties__heading h2,
  .testimonials__intro h2,
  .about__content h2,
  .process__intro h2,
  .plans__content h2,
  .contents__content :is(h1, h2),
  .faq__intro h2,
  .contact-section__content h2 {
    font-size: clamp(2.25rem, 10vw, 3rem);
    line-height: 1.02;
  }

  .master-path__journey,
  .home-services__grid,
  .about__inner,
  .specialties__bento,
  .process__inner,
  .plans__inner--showcase,
  .contents__inner,
  .faq__inner,
  .contact-section__inner {
    grid-template-columns: 1fr;
  }

  .master-path__step,
  .home-services__card,
  .testimonial-card,
  .specialties__feature,
  .plans__option,
  .content-channel {
    min-height: 0;
  }

  .home-services {
    padding-inline: 0;
  }

  .home-services__card {
    padding: 1.7rem 1.15rem 1.15rem;
  }

  .home-services__icon {
    width: 4.5rem;
    height: 4.5rem;
  }

  .home-services__cta {
    min-height: 3.25rem;
  }

  .specialties__grid {
    grid-template-columns: 1fr;
  }

  .specialty-card {
    min-height: 4.4rem;
  }

  .testimonials__viewport,
  .testimonials__track {
    min-width: 0;
  }

  .testimonial-card {
    padding: 1.2rem;
  }

  .plans__showcase,
  .plans__panel {
    width: 100%;
  }

  .plans__panel {
    grid-template-columns: 1fr;
  }

  .home-flow .plans__portrait-stage {
    max-height: none;
  }

  .partners__marquee,
  .calculator-switcher .calculators-shell {
    scrollbar-width: thin;
  }

  /* Páginas internas. */
  .contact-shell,
  .opening-shell,
  .medical-shell,
  .calculators-shell,
  .planos-shell,
  .about-shell,
  .blog-shell {
    width: calc(100% - 2rem);
  }

  .calculators-hero,
  .calculator-workspace,
  .planos-options {
    padding-block: var(--mobile-section-space);
  }

  .calculator-workspace__layout,
  .calculator-detail__hero-layout {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .calculator-detail__hero h1,
  .calculators-hero h1 {
    font-size: clamp(2.55rem, 11vw, 3.5rem);
  }

  .calculator-form-card > header,
  .calculator-form {
    padding: 1.15rem;
  }

  .calculator-form-card > header h2,
  .calculator-explainer h2 {
    font-size: clamp(2rem, 9vw, 2.65rem);
  }

  .calculator-card {
    min-height: 0;
  }

  .calculator-switcher .calculators-shell {
    width: 100%;
    padding-inline: 0.75rem;
  }

  .planos-cards {
    grid-template-columns: 1fr;
  }

  .plano-card {
    min-height: 0;
    padding: 1.2rem;
  }

  .medical-hero__inner,
  .opening-hero__shell,
  .medical-video__inner,
  .opening-video__layout,
  .specialty-contact__inner {
    grid-template-columns: 1fr;
  }

  .medical-hero,
  .opening-hero {
    min-height: 0;
  }

  .medical-hero__content,
  .opening-hero__copy {
    padding-block: 3rem;
  }

  .medical-hero h1,
  .opening-hero h1 {
    font-size: clamp(2.55rem, 11vw, 3.55rem);
    line-height: 1;
  }

  .medical-hero__visual,
  .opening-hero__visual {
    min-height: 18rem;
    height: 18rem;
    overflow: hidden;
  }

  .medical-hero__visual img,
  .opening-hero__visual img {
    max-width: none;
  }

  .specialty-overview__layout,
  .specialty-benefits__inner {
    width: calc(100% - 2rem);
  }

  .specialty-overview__chapter,
  .specialty-benefit-card {
    min-height: 0;
  }

  .about-hero__wine {
    height: 100%;
  }

  .about-hero__media {
    height: auto;
    aspect-ratio: 8 / 5;
  }

  .about-hero__credentials {
    width: 100%;
  }

  .about-workplace__photo,
  .about-workplace__photo--main {
    min-height: 0;
  }

  .blog-library,
  .blog-article__header,
  .blog-related {
    padding-block: var(--mobile-section-space);
  }

  .blog-library__layout,
  .blog-article__body,
  .blog-authority {
    grid-template-columns: 1fr;
  }

  .blog-library__search > div {
    display: grid;
    grid-template-columns: 1fr;
  }

  .blog-library__search button {
    width: 100%;
  }

  .status-page {
    min-height: 60vh;
    padding: 3rem 1rem;
  }

  .status-page__card {
    padding: 1.5rem;
    border-radius: 0.85rem;
  }

  .status-page h1 {
    font-size: clamp(2.3rem, 12vw, 3.3rem);
  }

  .floating-btn {
    right: 0.75rem;
    bottom: 0.75rem;
    width: 3.25rem;
    height: 3.25rem;
  }
}

@media (max-width: 28rem) {
  .site-header__container {
    grid-template-columns: minmax(0, 1fr) auto;
    padding-block: 0.55rem;
  }

  .header-actions {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    gap: 0.5rem;
  }

  .header-actions > a {
    flex: 1 1 0;
    min-height: 2.5rem;
  }

  .menu-toggle {
    grid-column: 2;
  }
}

/* Notebook: preserva composições, reduz alturas e respiros excessivos. */
@media (min-width: 48rem) and (max-width: 71.9375rem) {
  :root {
    --notebook-gutter: 1.5rem;
    --notebook-section-space: 4.25rem;
  }

  .site-header__container {
    width: calc(100% - 2rem);
  }

  .hero__inner {
    min-height: 0;
  }

  .hero__content {
    min-height: 25rem;
    padding: 3rem clamp(2rem, 5vw, 3.5rem);
  }

  .hero__visual,
  .hero__visual--brand {
    height: 18rem;
    min-height: 18rem;
  }

  .hero-trust {
    position: relative;
    inset: auto;
    width: 100%;
    margin: 0;
    transform: none;
    order: 2;
  }

  .master-path,
  .home-services,
  .about,
  .testimonials,
  .specialties,
  .process,
  .plans,
  .partners,
  .contents,
  .faq,
  .contact-section {
    padding-block: var(--notebook-section-space);
  }

  .master-path__inner,
  .home-services__inner,
  .about__inner,
  .testimonials__inner,
  .specialties__inner,
  .process__inner,
  .plans__inner,
  .partners__inner,
  .contents__inner,
  .faq__inner,
  .contact-section__inner,
  .contact-shell,
  .opening-shell,
  .medical-shell,
  .calculators-shell,
  .planos-shell,
  .about-shell,
  .blog-shell {
    width: calc(100% - 3rem);
  }

  .home-services__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .home-services__card,
  .home-services__card:last-child {
    grid-column: auto;
    width: auto;
    min-height: 24rem;
    padding: 1.5rem 1.1rem 1rem;
  }

  .home-services__icon {
    width: 4.5rem;
    height: 4.5rem;
  }

  .home-services__card h3 {
    font-size: 1.45rem;
  }

  .home-services__card > p {
    font-size: 0.8rem;
  }

  .specialties__bento,
  .about__inner,
  .contents__inner,
  .faq__inner,
  .contact-section__inner {
    gap: 2rem;
  }

  .medical-hero__inner,
  .opening-hero__shell {
    min-height: 27rem;
  }

  .medical-hero__content,
  .opening-hero__copy {
    padding-block: 2.75rem;
  }

  .medical-hero h1,
  .opening-hero h1 {
    font-size: clamp(2.8rem, 5.5vw, 4rem);
  }

  .calculator-workspace,
  .planos-options {
    padding-block: 4.25rem;
  }

  .calculator-workspace__layout {
    gap: 2rem;
  }

  .contact-form__grid,
  .calculator-form__fields,
  .calculator-form__contact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .plano-card,
  .calculator-card {
    min-height: 0;
  }
}

/* Notebooks de 1152 a 1600 px, faixa usada pela maioria das telas 1366 px. */
@media (min-width: 72rem) and (max-width: 99.9375rem) {
  :root {
    --notebook-wide-section-space: 4.75rem;
  }

  .master-path,
  .about,
  .testimonials,
  .specialties,
  .process,
  .plans,
  .partners,
  .contents,
  .faq,
  .contact-section {
    padding-block: var(--notebook-wide-section-space);
  }

  .master-path__inner,
  .home-services__inner,
  .about__inner,
  .testimonials__inner,
  .specialties__inner,
  .process__inner,
  .plans__inner,
  .partners__inner,
  .contents__inner,
  .faq__inner,
  .contact-section__inner,
  .contact-shell,
  .opening-shell,
  .medical-shell,
  .calculators-shell,
  .planos-shell,
  .about-shell,
  .blog-shell {
    width: min(calc(100% - 3rem), 76rem);
  }

  .contact-section__inner,
  .contact-conversion__grid,
  .calculator-workspace__layout {
    gap: clamp(2rem, 4vw, 3.5rem);
  }

  .contact-form-card,
  .contact-page .contact-stage__form {
    padding: clamp(1.25rem, 2vw, 1.8rem);
  }

  .contact-page .contact-stage__form {
    border-radius: 0;
    padding: clamp(2rem, 3vw, 3rem);
  }

  .contact-form :is(input, select, textarea),
  .calculator-form :is(input:not([type="checkbox"]), select) {
    min-height: 3rem;
  }

  .opening-section,
  .opening-journey,
  .service-explainer,
  .opening-video,
  .management-scope,
  .specialty-benefits,
  .specialty-contact,
  .calculator-workspace,
  .planos-options,
  .contact-stage {
    padding-block: 4.5rem;
  }

  .opening-hero__shell,
  .medical-hero__inner {
    min-height: clamp(27rem, 39vw, 33rem);
  }

  .specialty-overview__heading,
  .specialty-overview__dossier {
    min-width: 0;
  }

  .plano-card,
  .calculator-card,
  .testimonial-card {
    min-width: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .form-submit-spinner {
    animation: none;
  }
}

/* Home desktop: mantém os blocos deslocados dentro do mesmo eixo de conteúdo. */
@media (min-width: 48rem) {
  .testimonials__intro {
    transform: translateX(clamp(0rem, calc(50% - 36rem), 7rem));
  }
}

@media (min-width: 72rem) {
  .hero-trust {
    right: max(1rem, calc((100vw - 76rem) / 2));
  }

  .hero-trust__item {
    grid-template-columns: 2rem minmax(0, 1fr);
    min-height: 4.5rem;
    gap: 0.5rem;
    padding: 0.5rem 0.6rem;
  }

  .hero-trust__icon,
  .hero-trust__google {
    width: 2rem;
    height: 2rem;
  }

  .hero-trust__icon svg {
    width: 1.4rem;
    height: 1.4rem;
  }

  .hero-trust__google {
    font-size: 1.45rem;
  }

  .hero-trust__copy strong {
    font-size: 0.7rem;
  }

  .hero-trust__item:nth-child(3) .hero-trust__copy strong {
    white-space: nowrap;
  }

  .hero-trust__copy small {
    font-size: 0.58rem;
  }

  .hero-trust__stars {
    font-size: 0.56rem;
  }
}

@media (min-width: 72rem) and (max-width: 99.99rem) {
  .hero-trust {
    bottom: max(1rem, calc(100vh - 40rem));
  }
}

@media (min-width: 72rem) and (max-width: 79.99rem) {
  .hero-trust__item:nth-child(2) .hero-trust__copy strong {
    white-space: nowrap;
    font-size: 0.66rem;
  }
}

@media (min-width: 100rem) {
  .hero-trust {
    bottom: 12rem;
  }
}

/* Home mobile: hero, jornada e depoimentos com leitura mais confortável. */
@media (max-width: 47.9375rem) {
  .hero__visual,
  .hero__visual--brand {
    display: grid;
    height: 17rem;
    min-height: 17rem;
    padding: 1rem 1rem 1.35rem;
    grid-template-rows: minmax(0, 1fr);
    place-content: center;
    place-items: center;
  }

  .hero__visual--brand .hero__brand-symbol {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: 0.4rem;
    width: min(68vw, 13.6rem);
    height: auto;
    max-width: none;
    margin: 0;
    place-self: center;
    object-fit: contain;
    object-position: center;
  }

  .hero-trust {
    position: relative;
    z-index: 2;
    margin-top: 0;
    padding: 0.55rem 0.8rem 0.9rem;
  }

  .hero-trust__item {
    grid-template-columns: 2.25rem minmax(0, 1fr);
    min-height: 4.4rem;
    gap: 0.55rem;
    padding: 0.65rem 0.5rem;
  }

  .hero-trust__icon,
  .hero-trust__google {
    width: 2.25rem;
    height: 2.25rem;
  }

  .hero-trust__icon svg {
    width: 1.55rem;
    height: 1.55rem;
  }

  .hero-trust__copy strong {
    font-size: clamp(0.76rem, 3.2vw, 0.82rem);
  }

  .hero-trust__copy small {
    font-size: clamp(0.64rem, 2.65vw, 0.69rem);
  }

  .hero-trust__stars {
    font-size: 0.64rem;
  }

  .master-path__journey {
    --mobile-path-dot-size: 1.55rem;
    --mobile-path-row-gap: 2.65rem;
    display: grid;
    grid-template-columns: 1.25rem minmax(0, 1fr);
    column-gap: 1rem;
    row-gap: var(--mobile-path-row-gap);
    margin-top: 2.75rem;
    padding-left: 0;
  }

  .master-path__journey::before {
    display: none;
  }

  .master-path__step,
  .master-path__step--understand,
  .master-path__step--organize,
  .master-path__step--guide {
    grid-column: 2;
    width: 100%;
    margin: 0;
    padding: 1.45rem 1.15rem 1.35rem;
    padding-inline: clamp(1rem, 4.5vw, 1.15rem);
    border-radius: 1rem;
    box-shadow: 0 0.85rem 1.8rem rgba(70, 31, 34, 0.1);
  }

  .master-path__step--understand { grid-row: 1; }
  .master-path__step--organize { grid-row: 2; }
  .master-path__step--guide {
    grid-row: 3;
  }

  .master-path__facts:not(:has(li)) {
    display: none;
  }

  .master-path__step::after,
  .master-path__step--organize::after {
    display: none;
  }

  .master-path__marker {
    position: relative;
    z-index: 3;
    display: block;
    grid-column: 1;
    align-self: stretch;
    justify-self: center;
    width: 0.14rem;
    height: auto;
    margin: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    box-shadow: none;
    transform: none;
  }

  .master-path__marker::before {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    box-sizing: border-box;
    width: var(--mobile-path-dot-size);
    height: var(--mobile-path-dot-size);
    border-width: 0.22rem;
    border-style: solid;
    border-color: #faf7f4;
    border-radius: 50%;
    background: #aa2e35;
    box-shadow:
      0 0 0 1px rgba(142, 35, 42, 0.42),
      0 0.35rem 0.8rem rgba(104, 25, 31, 0.2);
    content: "";
    transform: translate(-50%, -50%);
  }

  .master-path__marker::after {
    position: absolute;
    left: 50%;
    z-index: 1;
    width: 0.14rem;
    border-radius: 999px;
    background: linear-gradient(180deg, #d35b60 0%, #a92d34 50%, #741d25 100%);
    box-shadow: 0 0 0 0.32rem rgba(170, 44, 51, 0.05);
    content: "";
    transform: translateX(-50%);
  }

  .master-path__marker--1 {
    grid-row: 1;
  }

  .master-path__marker--1::after {
    top: 50%;
    bottom: calc(var(--mobile-path-row-gap) * -1);
  }

  .master-path__marker--2 {
    grid-row: 2;
  }

  .master-path__marker--2::after {
    top: 0;
    bottom: calc(var(--mobile-path-row-gap) * -1);
  }

  .master-path__marker--3 {
    grid-row: 3;
  }

  .master-path__marker--3::after {
    top: 0;
    bottom: 50%;
  }

  .master-path__step:hover + .master-path__marker {
    background: transparent;
    box-shadow: none;
    transform: none;
  }

  .master-path__number {
    top: 1.1rem;
    left: 1.15rem;
    width: 2.85rem;
    height: 2.85rem;
    border-radius: 0.8rem 0.3rem 0.8rem 0.3rem;
    font-size: 1.55rem;
  }

  .master-path__icon {
    top: 1.2rem;
    right: 1.15rem;
    width: 2.55rem;
    height: 2.55rem;
  }

  .master-path__step > div {
    padding: 3.35rem 0 0;
  }

  .master-path__step h3 {
    font-size: clamp(1.42rem, 7vw, 1.7rem);
    line-height: 1.08;
  }

  .master-path__step p {
    margin-top: 0.7rem;
    font-size: 0.92rem;
    line-height: 1.58;
  }

  .testimonials__viewport {
    cursor: grab;
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
  }

  .testimonials__viewport.is-dragging {
    cursor: grabbing;
  }

  .testimonials__navigation {
    display: none;
  }
}

@media (max-width: 47.9375rem) and (hover: none) and (pointer: coarse) {
  .master-path__step:hover {
    border-color: rgba(141, 48, 53, 0.2);
    background: linear-gradient(145deg, rgba(255, 255, 254, 0.98), rgba(252, 247, 244, 0.96));
    box-shadow: 0 0.85rem 1.8rem rgba(70, 31, 34, 0.1);
    transform: none;
  }

  .master-path__step:hover::before {
    background: linear-gradient(90deg, #9c2228, #db5356);
    transform: scaleX(0.14);
  }

  .master-path__step:hover::after {
    background: #aa2e35;
    box-shadow: 0 0 0 1px rgba(142, 35, 42, 0.38), 0 0.35rem 0.8rem rgba(104, 25, 31, 0.2);
    transform: none;
  }

  .master-path__step:hover h3 {
    color: #5c171d;
  }

  .master-path__step:hover p {
    color: #62494c;
  }

  .master-path__step:hover .master-path__number {
    border-color: rgba(160, 39, 46, 0.24);
    background: linear-gradient(145deg, #fbefeb, #f3dad7);
    box-shadow: 0 0.55rem 1.2rem rgba(103, 27, 32, 0.1);
    color: #991f27;
    transform: none;
  }

  .master-path__step:hover .master-path__icon {
    border-color: rgba(157, 38, 45, 0.35);
    background: #fffdfa;
    box-shadow: none;
    transform: none;
  }

  .master-path__step:hover .master-path__icon svg {
    stroke: #9e1e22;
  }
}

/* Especialidades: no celular, a ilustração ocupa uma faixa própria depois do
   conteúdo. A arte mantém a opacidade definida por cada hero e deixa de ficar
   posicionada sobre o título, a descrição e o botão. */
@media (max-width: 47.9375rem) {
  .medical-page .medical-hero {
    height: auto;
    min-height: 0;
    max-height: none;
  }

  .medical-page .medical-hero__inner {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 20rem;
    align-items: stretch;
    height: auto;
    min-height: 0;
    padding-block: 0;
  }

  .medical-page .medical-hero__content {
    max-width: none;
    padding-block: 3rem 1rem;
  }

  .medical-page .medical-hero__visual {
    position: relative;
    inset: auto;
    width: 100%;
    height: 20rem;
    min-height: 20rem;
    overflow: hidden;
  }

  html.js .medical-page .medical-hero__visual {
    transform-origin: center bottom;
  }

  .medical-page .medical-hero__visual img {
    position: absolute;
    top: auto;
    right: 50%;
    bottom: -0.75rem;
    left: auto;
    width: min(88vw, 23rem);
    height: auto;
    max-height: none;
    transform: translateX(50%);
    object-fit: contain;
    object-position: center bottom;
  }

  .medical-page .creator-hero__visual img {
    width: min(112vw, 30rem);
  }
}

/* Home: mantém os nomes das especialidades inteiros nos cards móveis. */
@media (max-width: 43.74rem) {
  .home-flow .specialties__grid {
    gap: 0.65rem;
  }

  .home-flow .specialty-card {
    grid-template-columns: 2rem minmax(0, 1fr) 0.75rem;
    column-gap: 0.35rem;
    min-height: 5.25rem;
    padding: 0.72rem 0.6rem;
  }

  .home-flow .specialty-card__icon {
    width: 2rem;
    height: 2rem;
  }

  .home-flow .specialty-card__icon svg {
    width: 1.3rem;
    height: 1.3rem;
  }

  .home-flow .specialty-card__title {
    min-width: 0;
    font-size: clamp(0.765rem, 3.45vw, 0.875rem);
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  .home-flow .specialty-card__arrow,
  .home-flow .specialty-card__arrow svg {
    width: 0.75rem;
    height: 0.75rem;
  }
}

@media (min-width: 22.5rem) and (max-width: 43.74rem) {
  .home-flow [data-specialty-slug="fisioterapeutas"] .specialty-card__title,
  .home-flow [data-specialty-slug="infoprodutores-e-afiliados"] .specialty-card__title {
    font-size: clamp(0.72rem, 3.2vw, 0.8rem);
  }
}

@media (max-width: 22.4375rem) {
  .home-flow .specialties__grid {
    grid-template-columns: 1fr;
  }

  .home-flow .specialty-card {
    grid-template-columns: 2rem minmax(0, 1fr) 1.125rem;
    min-height: 4.75rem;
    padding-inline: 0.8rem;
  }

  .home-flow .specialty-card__title {
    font-size: 0.9rem;
  }
}

/* Cards de artigos: preserva no mobile a proporção visual usada no desktop. */
@media (max-width: 47.9375rem) {
  .blog-card__image-link,
  .specialty-article-card__image {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 8.4;
  }

  .blog-card__image-link img,
  .specialty-article-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center;
  }
}

/* Home em notebooks: aproxima o encerramento da hero do último CTA e mantém
   a faixa de confiança com o mesmo respiro em diferentes larguras. */
@media (min-width: 72rem) and (max-width: 99.9375rem) {
  .home-flow .hero__inner {
    height: clamp(32rem, 38.6vw, 34rem);
    min-height: 0;
  }

  .home-flow .hero__content {
    padding-bottom: 2rem;
  }

  .home-flow .hero-trust {
    bottom: max(
      1rem,
      calc(100vh - clamp(37.4rem, calc(38.6vw + 5.4rem), 39.4rem))
    );
  }
}
/* ==========================================================
   SOBRE — CARD MAIOR NO DESKTOP
========================================================== */

@media (min-width: 64rem) {

  .about__inner {
    width: min(100% - 3rem, 82rem) !important;

    grid-template-columns:
      minmax(34rem, 1.15fr)
      minmax(28rem, 0.85fr) !important;

    gap: clamp(4rem, 6vw, 7rem) !important;
    align-items: center !important;
  }

  .about__media {
    width: 100% !important;
    max-width: 38rem !important;
    margin: 0 !important;

    justify-self: start !important;
  }

  .about__media img {
    display: block !important;

    width: 100% !important;
    height: auto !important;

    aspect-ratio: 1.06 / 1 !important;

    object-fit: cover !important;
    object-position: 38% center !important;
  }

  .about__content {
    max-width: 36rem !important;
  }
}
/* ==========================================================
   SOBRE — AJUSTE MOBILE
========================================================== */

@media (max-width: 63.99rem) {

  .about {
    padding: 4.5rem 0 !important;
  }

  .about__inner {
    width: min(100% - 2rem, 34rem) !important;

    grid-template-columns: 1fr !important;

    gap: 3rem !important;

    margin-inline: auto !important;
  }

  .about__media {
    width: 100% !important;
    max-width: 30rem !important;

    margin-inline: auto !important;

    justify-self: center !important;
  }

  .about__media img {
    display: block !important;

    width: 100% !important;
    height: auto !important;

    aspect-ratio: 1.06 / 1 !important;

    object-fit: cover !important;
    object-position: 38% center !important;
  }

  .about__content {
    width: 100% !important;
    max-width: 30rem !important;

    margin-inline: auto !important;
  }
}