/* Line artwork occupies its own rail or photo perimeter. Images remain still. */
.treatment-section{position:relative;isolation:isolate}
.treatment-section>.section-heading,.treatment-section>.service-grid{position:relative;z-index:1}
.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.service-tile{aspect-ratio:4/5;min-height:340px}
.service-tile>img,.service-tile:hover>img{transform:none;transition:none}
.service-tile .tile-signature,.visual-artwork--perimeter{position:absolute;inset:0;display:block;pointer-events:none;color:#d7be85;z-index:2}
.tile-signature svg,.visual-artwork--perimeter svg{display:block;width:100%;height:100%;opacity:.66}
.tile-line{vector-effect:non-scaling-stroke;opacity:.6}
.tile-trace{vector-effect:non-scaling-stroke;stroke:#f5deb0;stroke-width:1.25;stroke-dasharray:7 93;stroke-dashoffset:107;opacity:0}
.section-signature{position:absolute;top:0;left:0;width:100%;height:200px;overflow:hidden;pointer-events:none;z-index:0;color:#c9b88f;opacity:.2}
.section-signature svg{width:100%;height:200px;display:block}
.artwork-frame{position:relative;isolation:isolate}
.family-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0 8px}
.family-choices a{display:block;padding:16px;border:1px solid var(--line);background:var(--panel)}
.family-choices strong{display:block;font-size:14px;font-weight:500;color:var(--gold);margin-bottom:8px}
.family-choices span{display:block;color:var(--muted);font-size:12px;line-height:1.6}
.family-choices a:hover{border-color:var(--gold)}
@media(max-width:600px){.treatment-hero-copy .compact-title{font-size:clamp(30px,8vw,40px)}}
.card-image.artwork-frame{aspect-ratio:auto}
.card-image.artwork-frame>img{height:auto;aspect-ratio:4/3;object-fit:cover}
.artwork-frame>.image-label{position:static;display:block}
.visual-artwork{display:block;color:var(--gold,#c9b88f);pointer-events:none;overflow:hidden}
.visual-artwork--rail{height:66px;background:#11110f;border-top:1px solid #c9b88f24}
.visual-artwork--rail svg{display:block;width:min(90%,310px);height:64px;margin-inline:auto;opacity:.72}
.art-line{vector-effect:non-scaling-stroke;opacity:.6}
.art-trace{vector-effect:non-scaling-stroke;stroke:#f5deb0;stroke-width:1.25;stroke-dasharray:10 90;stroke-dashoffset:110;opacity:0}
.art-dot{fill:currentColor;stroke:none;opacity:.55}
.art-glow{transform-origin:center;transform-box:fill-box}
.intro-with-art{position:relative;padding-right:210px}
.visual-artwork--intro{position:absolute;right:0;top:70px;width:180px;height:80px;opacity:.72}
.visual-artwork--intro svg{display:block;width:100%;height:100%}
.result-card.artwork-frame>.visual-artwork--perimeter{bottom:auto;aspect-ratio:1}
.result-card .visual-artwork--perimeter{z-index:1}
/* Perimeter marks remain still; anatomical traces get one quiet pass. */
.tile-trace,.art-trace{animation:none!important;opacity:0!important}
.art-glow{animation:none!important;transform:none!important;opacity:.2}
.tile-line,.art-line{opacity:.2}
.photo-stage{display:block;position:relative;overflow:hidden;width:100%}
.photo-stage>img{display:block;width:100%;object-fit:cover}
.treatment-hero-image>.photo-stage>img{height:480px}
.card-image.artwork-frame>.photo-stage>img{height:auto;aspect-ratio:4/3;object-fit:cover}
.photo-contour-layer{position:absolute;inset:0;overflow:hidden;opacity:0;pointer-events:none;animation:none!important}
.photo-contour-layer.contour-aligned{opacity:1}
.photo-contours{position:absolute;display:block;max-width:none;max-height:none}
.photo-trace{fill:none;stroke:#f3d9ad;stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18 82;stroke-dashoffset:118;opacity:0}
.treatment-hero-image .photo-contour-layer{--contour-opacity:.7}
.treatment-hero-image .photo-trace{stroke-width:1.8}
.photo-contour-layer.is-moving .photo-trace{animation-name:photo-feature-trace;animation-duration:calc(1600ms / var(--trace-count,1));animation-delay:calc(1600ms * var(--trace-index,0) / var(--trace-count,1));animation-timing-function:ease-out;animation-fill-mode:both}
@keyframes photo-feature-trace{0%{stroke-dashoffset:118;opacity:0}18%,64%{opacity:var(--contour-opacity,.35)}100%{stroke-dashoffset:-18;opacity:0}}
.photo-contour-layer.motion-complete .photo-trace{animation:none;opacity:0}
.panel-body .treatment-hero-image>.photo-stage>img{height:300px;max-height:300px}
.treatment-hero-image>.photo-stage--comparison>img,.panel-body .treatment-hero-image>.photo-stage--comparison>img{height:auto;max-height:480px;aspect-ratio:auto;object-fit:contain}
.photo-stage>img[data-media-kind=portrait]{object-fit:contain;background:#11110f}
.panel-body .treatment-hero-image>.photo-stage--comparison>img{max-height:300px}
@media(max-width:600px){.treatment-hero-image>.photo-stage>img{height:280px}.panel-body .treatment-hero-image>.photo-stage>img{height:220px;max-height:220px}.treatment-hero-image>.photo-stage--comparison>img,.panel-body .treatment-hero-image>.photo-stage--comparison>img{height:auto;max-height:280px}.panel-body .treatment-hero-image>.photo-stage--comparison>img{max-height:220px}}
@media(prefers-reduced-motion:reduce){.photo-contour-layer{display:none}}
:root[data-motion=reduced] .photo-contour-layer{display:none}
@media(max-width:899px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.service-tile{min-height:310px}.intro-with-art{padding-right:0}.visual-artwork--intro{position:static;width:140px;height:44px;margin:16px 0 0;opacity:.6}}
@media(max-width:600px){.service-grid{gap:12px}.service-tile{min-height:300px;aspect-ratio:3/5}.tile-overlay{padding:18px 14px;inset:40% 0 0}.tile-overlay h3{font-size:27px}.tile-overlay p{font-size:12px}.visual-artwork--rail{height:58px}.visual-artwork--rail svg{height:56px}.section-signature{display:none}}
@media(max-width:420px){.service-grid{grid-template-columns:1fr}.service-tile{aspect-ratio:4/5;min-height:340px}.tile-overlay{padding:25px}.tile-overlay h3{font-size:34px}.tile-overlay p{font-size:14px}}
@media(max-width:420px){.family-choices{grid-template-columns:1fr}}
.motion-ready:not(.is-moving){animation:none!important}
@media(prefers-reduced-motion:reduce){.motion-entered{animation:none!important;transform:none!important}.tile-trace,.art-trace{animation:none!important;opacity:0!important}.art-glow{animation:none!important;transform:none!important;opacity:.5}.tile-line,.art-line{stroke-dashoffset:0!important}}
