/* Seção de parceria médica com grande card em gradiente e CTA claro. */
.partner-section {
  padding: 120px 0 112px;
}

/* Container central seguindo a largura máxima usada nas demais faixas largas. */
.partner-shell {
  width: min(1279px, calc(100% - 48px));
  margin: 0 auto;
}

/* Card principal com gradiente e cantos arredondados do frame desktop. */
.partner-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 30px;
  min-height: 539px;
  padding: 45px 90px;
  border-radius: 45px;
  overflow: visible;
}

/* Fundo arredondado isolado para que a imagem possa ultrapassar o topo sem cortar. */
.partner-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 45px;
  background: linear-gradient(325.38deg, #57d4ff 15.978%, #845cff 70.594%);
  z-index: 0;
}

/* Coluna de texto do desktop, ancorada à esquerda do bloco. */
.partner-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 30px;
  width: 399px;
}

/* Título branco com quebra em duas linhas no desktop. */
.partner-title {
  width: 360px;
  margin: 0;
  color: #fff;
  font-family: "Muring Text", system-ui, sans-serif;
  font-size: 38px;
  font-weight: 500;
  line-height: 1.356;
  letter-spacing: 0.76px;
}

/* Texto corrido do convite, também em branco. */
.partner-description {
  width: 399px;
  margin: 0;
  color: #fff;
  font-family: "Muring Text", system-ui, sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.47;
}

/* CTA claro reaproveitando o componente global. */
.partner-cta__label {
  width: 111px;
}

/* Visual do grupo de médicos posicionado para invadir a direita do card no desktop. */
.partner-visual--desktop {
  position: absolute;
  top: -100px;
  right: 0;
  width: 812px;
  height: 639px;
  overflow: visible;
  z-index: 1;
}

/* No desktop o visual é livre e a variante mobile fica desligada. */
.partner-visual--mobile {
  display: none;
}

/* A imagem do time ocupa todo o bloco visual. */
.partner-visual__image {
  width: 103%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: left top;
}

/* No desktop a equipe é tratada como arte posicionada, ancorada no fundo do card. */
.partner-visual--desktop .partner-visual__image {
  position: absolute;
  bottom: 0;
  left: 0;
  height: auto;
  max-width: none;
}

/* Tablet: reduz a escala mas já empilha o conteúdo para não esmagar o texto. */
@media (max-width: 1024px) {
  .partner-section {
    padding: 96px 0;
  }

  .partner-shell {
    width: min(100%, calc(100% - 40px));
  }

  .partner-card {
    flex-direction: column;
    align-items: flex-start;
    min-height: 0;
    padding: 60px 44px;
  }

  .partner-copy {
    width: min(100%, 560px);
  }

  .partner-title,
  .partner-description {
    width: 100%;
  }

  .partner-title {
    font-size: 34px;
    letter-spacing: 0.68px;
  }

  .partner-description {
    font-size: 18px;
  }

  .partner-visual--desktop {
    position: relative;
    top: 0;
    right: 0;
    width: min(812px, 100%);
    height: auto;
  }

  .partner-visual--desktop .partner-visual__image {
    height: auto;
  }
}

/* Mobile: segue o frame com título, bloco dos médicos, texto e CTA nessa ordem. */
@media (max-width: 480px) {
  .partner-section {
    padding: 84px 0;
  }

  .partner-shell {
    width: min(332px, calc(100% - 32px));
  }

  .partner-card {
    width: 332px;
    min-height: 0;
    padding: 31px 17px 42px;
    border-radius: 30px;
  }

  .partner-card::before {
    border-radius: 30px;
    background: linear-gradient(259.54deg, #57d4ff 29.061%, #845cff 80.955%);
  }

  .partner-copy {
    width: 298px;
    gap: 0;
  }

  .partner-title {
    width: 276px;
    font-size: 28px;
    font-weight: 500;
    line-height: 1.356;
    letter-spacing: 0.56px;
  }

  .partner-description {
    width: 298px;
    margin-top: 28px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.47;
  }

  .partner-visual--desktop {
    display: none;
  }

  .partner-visual--mobile {
    position: relative;
    display: grid;
    width: 296px;
    height: 232.178px;
    margin-top: 0;
  }

  .partner-visual__backdrop {
    position: absolute;
    top: 52.92px;
    left: 0;
    width: 296px;
    height: 167.257px;
    border-radius: 30px;
    background: #57d4ff;
  }

  .partner-visual--mobile .partner-visual__image {
    position: relative;
    z-index: 1;
    width: 295.037px;
    height: 232.178px;
    border-radius: 30px;
  }

  .partner-cta {
    margin: 31px auto 0;
  }

  .partner-cta__label {
    margin: 0;
  }

  .partner-cta__icon {
    position: static;
    transform: none;
  }
}
