/* Only the explicitly selected photographs and their existing sections. */
.vv-photo { display: block; width: 100%; }
.vv-photo img { display: block; width: 100%; max-width: 100%; height: auto; }

/* Reformer: photograph visible in the opening composition, not below the introduction. */
.vv-reformer .reformer-hero { padding-block: clamp(2rem, 4vw, 3.75rem); }
.vv-reformer .reformer-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; width: var(--vv-shell, min(calc(100% - 2rem), 75rem)); max-width: 75rem; min-height: 0; margin-inline: auto; }
.vv-reformer .reformer-hero__heading,
.vv-reformer .reformer-hero__intro { min-width: 0; }
.vv-reformer .reformer-hero h1 { max-width: 20ch; margin: 0; font-size: clamp(2.35rem, 3.8vw, 3.65rem); }
.vv-reformer .reformer-hero__heading .eyebrow { margin-bottom: .85rem; }
.vv-reformer .reformer-hero__lead { margin-bottom: 1rem; }
.vv-reformer .reformer-hero__actions { margin-top: 1.2rem; }
.vv-reformer .reformer-hero__media { min-width: 0; min-height: 0; margin: 0; align-self: center; background: transparent; }
.vv-reformer .reformer-hero__media img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.vv-reformer .reformer-first__grid { align-items: center; }
.vv-reformer .reformer-first__media { min-height: 0; width: 100%; max-width: 31rem; justify-self: center; background: transparent; }
.vv-reformer .reformer-first__media img { height: auto; aspect-ratio: 3 / 4; object-fit: cover; }

/* Full silhouette, rather than filling a tall column by cropping the sides. */
.reformer-journey .reformer-journey__grid { align-items: center; }
.reformer-journey .reformer-journey__media { align-self: center; min-height: 0; height: auto; aspect-ratio: 3 / 2; background: transparent; }
.reformer-journey .reformer-journey__media .vv-photo,
.reformer-journey .reformer-journey__media img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.reformer-journey .reformer-journey__copy { padding-right: 0; }
.reformer-journey .reformer-journey__pathway { width: 100%; }

/* About: local left gradient, with clear wall logo on the right. */
.vv-team-page .about-hero::after { background: linear-gradient(90deg, rgb(20 27 25 / .96) 0%, rgb(20 27 25 / .88) 33%, rgb(20 27 25 / .36) 52%, transparent 69%); }
.vv-team-page .about-hero__media .vv-photo,
.vv-team-page .about-hero__media img { height: 100%; }
.vv-team-page .about-hero__content { padding-block: clamp(3rem, 5vw, 5rem); }
.vv-team-page .about-hero h1 { max-width: 15ch; font-size: clamp(2.55rem, 4.4vw, 4.6rem); }
.vv-team-page .about-hero__lead { max-width: 33rem; }
.vv-team-page .facility-gallery { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.vv-team-page .facility-gallery figure { grid-column: auto; min-width: 0; }
.vv-team-page .facility-gallery img,
.vv-team-page .facility-gallery__wide img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.vv-team-page .facility-gallery__reformer img { aspect-ratio: 4 / 3; }

/* The consultation explanation image remains adjacent to the visit discussion. */
.vv-service--physiotherapy .service-process__media figure,
.vv-service--physiotherapy .service-process__media img { height: auto; min-height: 0; aspect-ratio: 3 / 2; }
.vv-service--physiotherapy .service-process__media { align-self: center; }
.physio-continue .physio-continue__inner { grid-template-columns: minmax(0, 1fr); align-items: center; gap: 1.75rem; }
.physio-continue__media { min-width: 0; margin: 0; }
.physio-continue__media img { aspect-ratio: 3 / 2; object-fit: cover; }
.physio-continue__links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 1.2rem; }
.group-youth .group-youth__media,
.group-related .group-related__media { min-height: 0; height: auto; aspect-ratio: 3 / 2; }
.group-youth .group-youth__media img,
.group-related .group-related__media img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.services-photo-card--activity .vv-photo { height: 100%; }
.services-photo-card--activity .vv-photo img { height: 100%; object-fit: cover; }

@media (min-width: 48rem) {
 .vv-team-page .facility-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
 .vv-team-page .facility-gallery__wide { grid-column: 1 / -1; }
 .vv-team-page .facility-gallery__wide img { aspect-ratio: 3 / 2; }
 .physio-continue .physio-continue__inner { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(1.5rem, 4vw, 4rem); }
 .group-related .group-related__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
}
@media (min-width: 64rem) {
 .vv-reformer .reformer-hero__grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); grid-template-areas: "heading photo" "intro photo"; grid-template-rows: auto 1fr; gap: 1.25rem clamp(2rem, 3.5vw, 3rem); align-items: start; }
 .vv-reformer .reformer-hero__heading { grid-area: heading; }
 .vv-reformer .reformer-hero__intro { grid-area: intro; }
 .vv-reformer .reformer-hero__media { grid-area: photo; }
 .vv-reformer .reformer-hero h1 { font-size: clamp(2.35rem, 3.4vw, 3.05rem); }
 .vv-reformer .reformer-hero__actions { gap: .75rem; }
 .reformer-journey .reformer-journey__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr); gap: clamp(2rem, 4vw, 4rem); }
 .reformer-journey .reformer-journey__copy { padding-block: 2.5rem; }
 .reformer-journey h2 { font-size: clamp(2.15rem, 3.5vw, 3.6rem); }
 .vv-team-page .facility-gallery { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr); }
 .vv-team-page .facility-gallery__wide { grid-column: 1; grid-row: 1 / 3; align-self: center; }
 .vv-team-page .facility-gallery__wide img { aspect-ratio: 1 / 1; }
}
@media (max-width: 63.999rem) {
 .vv-team-page .about-hero { display: flex; min-height: 0; flex-direction: column; background: var(--vv-green); }
 .vv-team-page .about-hero::after { display: none; }
 .vv-team-page .about-hero__content { order: -1; padding-block: 2.5rem; }
 .vv-team-page .about-hero__media { position: relative; height: auto; }
 .vv-team-page .about-hero__media img { height: auto; aspect-ratio: 3 / 2; }
 .vv-team-page .about-hero h1 { max-width: 16ch; }
}

/* Owner-selected replacements retain the action rather than stretching to old frames. */
.journey-card__media .vv-photo,
.journey-card__media .vv-photo img,
.group-class-card__media .vv-photo,
.group-class-card__media .vv-photo img { height: 100%; object-fit: cover; }
.vv-group-classes .group-hero__media { min-height: 0; height: auto; aspect-ratio: 3 / 2; align-self: center; }
.vv-group-classes .group-hero__media img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.vv-physiotherapy .physio-process__media { min-height: 0; aspect-ratio: 3 / 2; align-self: center; }
.vv-physiotherapy .physio-process__media img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.vv-functional-assessment .functional-hero__media { min-height: 0; height: auto; aspect-ratio: 3 / 2; }
.vv-functional-assessment .functional-hero__media img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.vv-pregnancy .pregnancy-hero figure { width: 100%; max-width: 26rem; justify-self: center; }
.vv-pregnancy .pregnancy-hero img { height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
.physical-procedure--taping { margin-top: 1.5rem; }
.physical-procedure--taping .physical-procedure__media { aspect-ratio: 3 / 2; }
.physical-procedure--taping .physical-procedure__media img { height: 100%; object-fit: cover; }
.physical-procedure--taping .text-link { margin-top: 1rem; width: fit-content; }
.physical-procedure--taping + .physical-procedures__duration-note { margin-top: 1.4rem; }
#teiposana { scroll-margin-top: 7rem; }
@media (min-width: 48rem) {
 .physical-procedure--taping { grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); align-items: center; }
 .physical-procedure--taping .physical-procedure__content { padding: clamp(1.5rem, 3vw, 2.5rem); }
}
