.hero-picture--practice-room {
    aspect-ratio: 4 / 3;
    border-radius: 6rem 6rem var(--radius-lg) var(--radius-lg);
}
.hero-picture--practice-room img {
    object-position: 35% bottom;
    transform: scale(1.7);
    transform-origin: 35% bottom;
}
.practice-tour { background: var(--ivory); }
.practice-tour-heading { display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: 3rem; margin-bottom: 2.5rem; }
.practice-tour-heading h2 { margin-bottom: 0; max-width: 13ch; }
.practice-tour-heading .lead { max-width: 34rem; margin: 0; }
.practice-gallery { --gallery-duration: 6500ms; overflow: hidden; border: 1px solid var(--line); border-radius: 1.8rem; background: var(--cream); box-shadow: 0 1.5rem 4rem rgba(70,18,17,.09); }
.practice-gallery-stage { position: relative; isolation: isolate; background: #e8e1d8; }
.practice-gallery-slide { margin: 0; }
.practice-gallery-slide picture, .practice-gallery-slide img { display: block; width: 100%; height: auto; }
.practice-gallery-slide figcaption { padding: 1rem 1.5rem; }
.practice-gallery.is-ready .practice-gallery-stage { aspect-ratio: 16 / 9; }
.practice-gallery.is-ready .practice-gallery-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 850ms ease, visibility 850ms; }
.practice-gallery.is-ready .practice-gallery-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.practice-gallery.is-ready .practice-gallery-slide picture, .practice-gallery.is-ready .practice-gallery-slide img { height: 100%; }
.practice-gallery.is-ready .practice-gallery-slide img { object-fit: cover; }
.practice-gallery.is-ready .practice-gallery-slide figcaption { display: none; }
.practice-gallery-progress { display: none; position: absolute; bottom: 0; left: 0; right: 0; height: 3px; z-index: 2; background: rgba(255,250,246,.38); }
.practice-gallery.is-ready .practice-gallery-progress { display: block; }
.practice-gallery-progress span { display: block; width: 0; height: 100%; background: var(--burgundy); }
.practice-gallery.is-playing .practice-gallery-progress span { animation: practice-gallery-progress var(--gallery-duration) linear forwards; }
@keyframes practice-gallery-progress { to { width: 100%; } }
.practice-gallery-toolbar { display: none; align-items: center; gap: 1.75rem; padding: 1.7rem 2rem; }
.practice-gallery.is-ready .practice-gallery-toolbar { display: flex; }
.practice-gallery-count { display: flex; align-items: baseline; gap: .45rem; color: var(--burgundy); white-space: nowrap; }
.practice-gallery-count strong { font: 500 2.8rem/1 Georgia, serif; }
.practice-gallery-count span { color: var(--muted); font-size: .8rem; letter-spacing: .08em; }
.practice-gallery-description { flex: 1; min-width: 0; border-left: 1px solid var(--line); padding-left: 1.75rem; }
.practice-gallery-description .eyebrow { margin: 0 0 .25rem; font-size: .66rem; }
.practice-gallery-description p:last-child { margin: 0; color: var(--burgundy-deep); font: 500 clamp(1.15rem,1.8vw,1.5rem)/1.3 Georgia, serif; }
.practice-gallery-buttons { display: flex; gap: .6rem; }
.practice-gallery-arrow { display: grid; place-items: center; width: 3.3rem; height: 3.3rem; padding: 0; cursor: pointer; background: transparent; color: var(--burgundy); border: 1px solid var(--taupe); border-radius: 50%; transition: color 180ms, background 180ms; }
.practice-gallery-arrow:hover { color: var(--cream); background: var(--burgundy); border-color: var(--burgundy); }
.practice-gallery-arrow:first-child svg { transform: rotate(180deg); }
.practice-gallery-thumbs { position: relative; display: none; gap: .8rem; padding: .35rem 2rem 1.2rem; overflow-x: auto; scrollbar-width: thin; scrollbar-color: var(--rose) transparent; }
.practice-gallery.is-ready .practice-gallery-thumbs { display: flex; }
.practice-gallery-thumb { flex: 1 0 6.5rem; max-width: 11rem; border: 2px solid transparent; border-radius: .6rem; padding: .22rem; background: transparent; cursor: pointer; opacity: .6; transition: opacity 180ms, border-color 180ms; }
.practice-gallery-thumb[aria-pressed="true"], .practice-gallery-thumb:hover { opacity: 1; }
.practice-gallery-thumb[aria-pressed="true"] { border-color: var(--burgundy); }
.practice-gallery-thumb img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: .3rem; }
.practice-gallery-footer { display: none; justify-content: space-between; align-items: center; gap: 1rem; padding: .1rem 2rem 1.3rem; }
.practice-gallery.is-ready .practice-gallery-footer { display: flex; }
.practice-gallery-footer p { margin: 0; font-size: .78rem; color: var(--muted); }
.practice-gallery-toggle { color: var(--burgundy-dark); background: transparent; border: 0; padding: .7rem 0; text-underline-offset: .25em; text-decoration: underline; cursor: pointer; font-size: .8rem; }
.practice-all-photos { margin-top: 2.5rem; }
.practice-all-photos summary { width: fit-content; cursor: pointer; color: var(--burgundy-dark); font-weight: 650; padding-block: .7rem; }
.practice-photo-grid { display: grid; gap: 1rem; margin-top: 1.4rem; }
.practice-photo-row { display: grid; align-items: start; gap: 1rem; min-width: 0; }
/* Column shares follow each photograph's width / height, without cropping. */
.practice-photo-row:nth-child(1) { grid-template-columns: 1.5fr 1.00911fr 1.5fr 1.06273fr; }
.practice-photo-row:nth-child(2) { grid-template-columns: 1.5fr 1.5fr 1.5fr .666667fr 1.5fr; }
.practice-photo-row:nth-child(3) { grid-template-columns: .666667fr 1.5fr 1.251086fr .666667fr; }
.practice-photo-row:nth-child(4) { grid-template-columns: .666667fr .666667fr 1.5fr .666667fr 1.5fr .666667fr; }
.practice-photo-row:nth-child(5) { grid-template-columns: repeat(3, 1fr); }
.practice-photo { display: block; min-width: 0; width: 100%; padding: 0; margin: 0; break-inside: avoid; background: transparent; border: 0; border-radius: var(--radius-sm); overflow: hidden; cursor: zoom-in; }
.practice-photo picture { display: block; width: 100%; height: auto; }
.practice-photo img { display: block; width: 100%; height: auto; max-height: none; aspect-ratio: auto; object-fit: contain; transform: none; }
.practice-photo:hover { box-shadow: var(--shadow-sm); }
.practice-photo:focus-visible { outline-offset: 3px; }
.practice-gallery :focus-visible { outline-offset: 3px; }
@media (max-width: 52rem) {
    .hero-picture--practice-room { aspect-ratio: 5 / 4; }
    .hero-picture--practice-room img { object-position: 25% bottom; transform-origin: 25% bottom; }
    .practice-photo-grid { display: block; columns: 2; column-gap: 1rem; }
    .practice-photo-row { display: contents; }
    .practice-photo { margin-bottom: 1rem; }
    .practice-tour-heading { grid-template-columns: 1fr; gap: 1.4rem; }
    .practice-tour-heading h2 { max-width: none; }
    .practice-gallery-toolbar { gap: 1rem; padding: 1.3rem; }
    .practice-gallery-description { padding-left: 1rem; }
    .practice-gallery-thumbs { padding-inline: 1.3rem; }
    .practice-gallery-footer { padding-inline: 1.3rem; }
}
@media (max-width: 38rem) {
    .practice-photo-grid { columns: 1; }
}
@media (max-width: 36rem) {
    .practice-gallery { border-radius: 1rem; }
    .practice-gallery.is-ready .practice-gallery-stage { aspect-ratio: 4 / 3; }
    .practice-gallery-toolbar { flex-wrap: wrap; gap: .8rem; padding: 1.1rem; }
    .practice-gallery-count strong { font-size: 2rem; }
    .practice-gallery-count span { font-size: .7rem; }
    .practice-gallery-description { flex-basis: calc(100% - 5.5rem); padding-left: .8rem; }
    .practice-gallery-buttons { margin-left: auto; }
    .practice-gallery-arrow { width: 2.8rem; height: 2.8rem; }
    .practice-gallery-thumbs { gap: .5rem; padding: 0 1.1rem 1rem; }
    .practice-gallery-thumb { flex-basis: 5.8rem; }
    .practice-gallery-footer { align-items: flex-start; padding: 0 1.1rem 1rem; }
    .practice-gallery-footer p { max-width: 16ch; padding-top: .6rem; }
}
@media (prefers-reduced-motion: reduce) {
    .practice-gallery.is-ready .practice-gallery-slide { transition: none; }
    .practice-gallery.is-playing .practice-gallery-progress span { animation: none; }
}
