/* Real photographs only. Empty photo configuration produces no visible block. */
.practice-portrait { position:relative; margin:36px 0 0; max-width:390px; aspect-ratio:4/5; overflow:hidden; }
.practice-portrait img { display:block; width:100%; height:100%; object-fit:cover; transform:scale(1.6); transform-origin:50% 0%; }
/* The face and the original stethoscope share one SVG coordinate system. */
.hero-composition:has(.practice-hero) { margin-top:clamp(0px,calc(25vw - 200px),160px); }
.practice-hero { pointer-events:none; }
.practice-gallery { margin-top:30px; min-width:0; max-width:100%; }
.practice-gallery-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 20px; margin-bottom:15px; }
.practice-gallery-heading>p { margin:0; font-size:9px; line-height:1.7; letter-spacing:1px; font-weight:500; color:var(--muted); }
.practice-gallery-controls { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.practice-gallery-controls[hidden] { display:none; }
.practice-gallery-controls button { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); font-size:22px; line-height:1; }
.practice-gallery-controls button:hover:not(:disabled) { background:var(--ice); border-color:var(--cyan); }
.practice-gallery-controls button:disabled { opacity:.35; cursor:default; }
.practice-gallery-controls .practice-gallery-toggle { width:auto; min-width:72px; padding:0 10px; font-size:11px; line-height:1.4; }
.practice-gallery-controls .practice-gallery-toggle:disabled { opacity:.7; }
.practice-gallery-count { min-width:48px; text-align:center; font-size:11px; color:var(--muted); }
.practice-gallery-track { display:flex; gap:16px; scroll-behavior:smooth; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--line) transparent; padding-bottom:10px; }
.practice-gallery-slide { flex:0 0 88%; min-width:0; margin:0; overflow:hidden; scroll-snap-align:start; }
.practice-gallery[data-gallery-enhanced] .practice-gallery-slide { opacity:.68; transition:opacity .8s var(--ease); }
.practice-gallery[data-gallery-enhanced] .practice-gallery-slide.is-active { opacity:1; }
.practice-gallery-slide img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; }
.practice-gallery-slide:only-child { flex-basis:100%; }
.practice-gallery[data-gallery-enhanced] .practice-gallery-slide.is-active img { animation:practice-gallery-drift 5s var(--ease) both; animation-play-state:paused; }
.practice-gallery[data-gallery-motion="playing"] .practice-gallery-slide.is-active img { animation-play-state:running; }
@keyframes practice-gallery-drift { from { transform:scale(1); } to { transform:scale(1.035); } }
@media(max-width:800px) {
  .practice-portrait { max-width:340px; margin-top:26px; }
  .hero-composition:has(.practice-hero) { display:block; width:100%; max-width:390px; min-height:0; height:300px; margin:110px auto 0; opacity:1; }
  .practice-gallery { margin-top:26px; }
  .practice-gallery-slide { flex-basis:90%; }
  .practice-gallery-track { gap:12px; }
}
@media(prefers-reduced-motion:reduce) {
  .practice-gallery-track { scroll-behavior:auto; }
  .practice-gallery[data-gallery-enhanced] .practice-gallery-slide { opacity:1; transition:none; }
  .practice-gallery[data-gallery-enhanced] .practice-gallery-slide.is-active img { animation:none; transform:none; }
  .practice-hero { animation:none; }
}
@media print {
  .practice-hero,.practice-gallery-controls { display:none; }
  .practice-gallery-track { display:block; overflow:visible; }
  .practice-gallery-slide { margin-bottom:15px; break-inside:avoid; }
  .practice-gallery[data-gallery-enhanced] .practice-gallery-slide { opacity:1; transition:none; }
  .practice-gallery[data-gallery-enhanced] .practice-gallery-slide.is-active img { animation:none; transform:none; }
}
