/* An image-led, horizontally browsable treatment lineup. Homepage only. */
.treatment-lineup{--lineup-gutter:max(24px,calc((100% - 1180px)/2 + 24px));overflow:hidden}
.treatment-lineup .lineup-heading{max-width:1180px;text-align:left;display:grid;grid-template-columns:1.35fr 1fr;gap:0 48px}
.lineup-heading .eyebrow{grid-column:1/-1}
.treatment-lineup .lineup-heading h2{font-size:clamp(34px,3.8vw,52px);line-height:1.1}
.treatment-lineup .lineup-heading .lead{font-size:18px;line-height:1.6;align-self:end;margin:0;max-width:400px}
.lineup-rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(280px,28vw,380px);align-items:stretch;gap:24px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--lineup-gutter);padding:8px var(--lineup-gutter) 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.lineup-rail::-webkit-scrollbar{display:none}
.lineup-card{min-width:0;scroll-snap-align:start;display:flex;flex-direction:column}
.lineup-image{display:block;aspect-ratio:4/5;border-radius:28px;overflow:hidden;background:var(--white);flex-shrink:0}
.lineup-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.lineup-image-implants img{object-position:90% center}
.lineup-copy{text-align:center;padding:28px 12px 0;flex:1;display:flex;flex-direction:column;align-items:center;color:var(--ink)}
.lineup-label{font-size:14px;line-height:1.5;color:var(--grey);margin:0 0 10px}
.lineup-copy h3{font-size:clamp(24px,2vw,28px);font-weight:650;letter-spacing:-.03em;line-height:1.15;min-height:2.3em;margin:0 0 16px}
.lineup-copy h3 sup{font-size:.48em;vertical-align:super;line-height:0}
.lineup-description{font-size:16px;line-height:1.55;color:var(--ink-2);max-width:330px;margin:0 0 26px}
.lineup-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 22px;border-radius:100px;background:#0071e3;color:#fff;text-decoration:none;font-size:16px;font-weight:500;margin-top:auto;transition:background .2s}
.lineup-link:hover{background:#0064ca}
.lineup-footer{max-width:1180px;margin:24px auto 0;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.lineup-footer>p{font-size:14px;color:var(--grey)}
.lineup-controls{display:flex;gap:12px}
.lineup-controls[hidden]{display:none}
.lineup-controls button{display:grid;place-items:center;border:0;border-radius:50%;width:44px;height:44px;background:rgba(120,120,128,.13);color:var(--ink);cursor:pointer;transition:background .2s,opacity .2s}
.lineup-controls button:hover:not(:disabled){background:rgba(120,120,128,.23)}
.lineup-controls button:disabled{opacity:.3;cursor:default}
.lineup-controls svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lineup-rail:focus-visible{outline:2px solid var(--accent-text);outline-offset:-3px}
.lineup-image:focus-visible,.lineup-link:focus-visible,.lineup-controls button:focus-visible{outline:3px solid var(--accent-text);outline-offset:4px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.lineup-image:hover img{transform:scale(1.035)}}
/* Fit the complete desktop lineup beneath the floating navigation. Height, not
   only width, matters on laptops. Keep natural page scrolling at high zoom. */
@media(min-width:801px){
 html:root #treatments.treatment-lineup{padding-top:96px;padding-bottom:32px}
 .treatment-lineup .lineup-heading{margin-bottom:24px;grid-template-columns:1.5fr 1fr;gap:0 36px}
 .treatment-lineup .lineup-heading h2{font-size:clamp(34px,3.2vw,44px)}
 .treatment-lineup .lineup-heading .eyebrow{margin-bottom:10px}
 .treatment-lineup .lineup-heading .lead{font-size:16px;line-height:1.5}
 .lineup-rail{grid-auto-columns:clamp(280px,25vw,340px);gap:22px;padding-top:8px;padding-bottom:8px}
 .lineup-image{height:clamp(144px,calc(100svh - 584px),390px);aspect-ratio:auto;border-radius:24px}
 .lineup-copy{padding:18px 10px 0}
 .lineup-label{font-size:13px;line-height:1.4;margin-bottom:7px}
 .lineup-copy h3{font-size:24px;min-height:2.3em;margin-bottom:10px}
 .lineup-description{font-size:15px;line-height:1.5;margin-bottom:18px}
 .lineup-footer{margin-top:14px}
}
@media(max-width:800px){
 .treatment-lineup .lineup-heading{display:block}
 .treatment-lineup .lineup-heading .lead{max-width:560px;margin:22px 0 0;font-size:17px}
 .lineup-rail{grid-auto-columns:min(76vw,340px);gap:20px}
 .lineup-image{border-radius:24px}
}
@media(max-width:450px){
 .lineup-rail{grid-auto-columns:80vw;gap:16px}
 .lineup-copy{padding:24px 8px 0}
 .lineup-image{aspect-ratio:4/4.6}
 .lineup-footer{flex-direction:column;gap:12px}
}
@media(prefers-reduced-motion:reduce){.lineup-image img,.lineup-link,.lineup-controls button{transition:none}}
