/* No telemóvel, as fotografias mantêm o enquadramento integral do ficheiro. */
.service-profile__photo-media,
.studio-gallery-card__media {
  display: contents;
}

/* Na grelha do computador, a altura do ficheiro não determina a do cartão. */
@media (min-width: 761px) {
  .studio-gallery-grid {
    align-items: start;
  }

  .studio-gallery-grid .studio-gallery-card__media {
    display: block;
    position: relative;
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
    background: transparent;
  }

  .studio-gallery-grid .studio-gallery-card__media > img:first-child {
    display: block;
    width: auto;
    height: auto;
    min-height: 0;
    max-width: 100%;
    max-height: min(320px, 42vh);
    aspect-ratio: auto;
    object-fit: contain;
    object-position: center;
  }

  /* A única marca sobreposta conserva as coordenadas da fotografia, sem barras. */
  .studio-gallery-grid .studio-gallery-card__media:has(.studio-gallery-card__brand-mark--feet) {
    width: min(100%, 180.0957px, 23.63756vh);
    margin-inline: auto;
  }

  .studio-gallery-grid .studio-gallery-card__media:has(.studio-gallery-card__brand-mark--feet) > img:first-child {
    height: auto;
  }

  .studio-gallery-grid .studio-gallery-card__media > .studio-gallery-card__brand-mark--feet {
    width: 10% !important;
    height: auto !important;
  }
}

@media (max-width: 760px) {
  .portrait,
  .plans-coaching,
  .angela-profile-service-card__visual,
  .service-profile__visual,
  .service-treatment-card__media,
  .service-treatment-card__image-wrap {
    height: auto;
    min-height: 0;
    max-height: none;
    aspect-ratio: auto;
  }

  .portrait > img,
  .community-photo > img,
  .life-gallery img,
  .results-grid img,
  .service-photo > img,
  .wellbeing-card figure > img,
  .plans-coaching > img,
  img.plan-cover,
  .professional-card > img,
  .studio-gallery-preview__item > img,
  .studio-gallery-card > img:first-child,
  .studio-gallery-card__media > img:first-child,
  .angela-profile-service-card__visual > img:first-child,
  .service-profile__visual > img:first-child,
  .service-profile__photo-media > img:first-child,
  .service-treatment-card__media > img,
  .service-treatment-card__image-wrap > img:first-child,
  .service-price-menu > img {
    display: block;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center !important;
    transform: none !important;
    margin-inline: auto;
  }

  .studio-gallery-preview__item::after {
    display: none;
  }

  /* Os retratos e miniaturas de perfil mantêm as regras do respetivo componente.
     Assim um ajuste de fotografia não é apagado por um reset genérico móvel. */

  /* Há CTAs suficientes no cabeçalho, hero e secção de avaliação. No telemóvel,
     o atalho fixo escondia conteúdo e ações dos cartões. */
  .floating-contact {
    display: none;
  }

  /* Mantém o cartão da Karen aproximado, também no telemóvel. */
  .team-directory-card__photo.team-directory-card__photo--karen {
    overflow: hidden;
  }

  .team-directory-card__photo.team-directory-card__photo--karen > img {
    height: auto !important;
    object-fit: cover !important;
    object-position: center top !important;
    transform: scale(1.45) !important;
    transform-origin: center top !important;
  }

  .portrait-caption {
    position: static;
    inset: auto;
    transform: none;
  }

  /* Pedido específico da Karen: aproxima o retrato sem cortar o rosto. */
  .individual-profile__portrait.individual-profile__portrait--karen {
    height: 500px;
    overflow: hidden;
  }

  .individual-profile__portrait.individual-profile__portrait--karen > img {
    height: 500px !important;
    object-fit: cover !important;
    object-position: center top !important;
    transform: scale(1.32) !important;
    transform-origin: center top !important;
  }

  .team-directory-card {
    display: flex;
    flex-direction: column;
  }

  .individual-profile__portrait,
  .portrait {
    margin-inline: auto;
  }

  .studio-gallery-preview__grid,
  .service-profile__gallery,
  .angela-profile-service-gallery,
  .service-treatment-card__media--pair,
  .life-gallery {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
    grid-auto-rows: auto;
    align-items: start;
  }

  .studio-gallery-preview__item,
  .service-profile__visual--feature {
    grid-column: auto;
    grid-row: auto;
  }

  .studio-gallery-preview__item figcaption,
  .service-profile__visual figcaption,
  .plans-coaching figcaption {
    position: static;
    inset: auto;
    margin: 0;
    padding: 14px 16px 16px;
    background: var(--panel);
  }

  /* As marcas acompanham a imagem, sem incluir a altura da legenda. */
  .service-profile__photo-media,
  .studio-gallery-card__media {
    display: block;
    position: relative;
    min-width: 0;
  }

  .service-profile__visual--feet .service-profile__brand-mark,
  .studio-gallery-card__brand-mark--feet {
    top: 41.5% !important;
    left: 64% !important;
  }

  .service-treatment-card__brand-mark--karen-shoulder {
    top: 49%;
    left: 57%;
  }

  .service-treatment-card__brand-mark--karen-calf {
    top: 44%;
    left: 52%;
  }

  .service-treatment-card__brand-mark--angela-thai {
    top: 34%;
    left: 66%;
  }

  .service-treatment-card__image-wrap:has(.service-treatment-card__brand-mark--angela-sport)::after {
    top: 42%;
    left: 63%;
  }

  .service-treatment-card__image-wrap:has(.service-treatment-card__brand-mark--angela-recovery)::after {
    top: 42%;
    left: 48%;
  }
}
