/* Horizontal galleries remain scrollable when JavaScript is unavailable. */
.carousel-shell { position: relative; }
.carousel-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2rem) / 3); gap: 1rem; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; padding: .35rem .2rem 1.2rem; }
.carousel-track > * { min-width: 0; scroll-snap-align: start; scroll-margin-inline: .2rem; }
.carousel-controls { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .7rem; margin-top: 1.3rem; }
.carousel-controls button { display: inline-flex; justify-content: center; align-items: center; min-width: 44px; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--navy); font-weight: 750; }
.carousel-controls button:hover { background: #eaf3ff; }
.carousel-controls button:disabled { opacity: .45; cursor: default; }
.carousel-status { min-width: 7rem; text-align: center; font-size: .88rem; font-variant-numeric: tabular-nums; }
.carousel-hint { margin: 1rem 0 0; text-align: center; font-size: .85rem; color: var(--muted); }
.results-section { background: #f4f8fd; }
.result-card { margin: 0; padding: .55rem; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); }
.result-card img { display: block; width: 100%; height: 330px; object-fit: contain; background: #f6f6f6; border-radius: 12px; }
.result-card figcaption { padding: 1rem .65rem .6rem; color: #425570; font-size: .85rem; line-height: 1.5; }
.result-card figcaption strong { display: block; color: var(--ink); font-size: 1rem; margin-bottom: .25rem; }
.results-source { max-width: 760px; margin: 1.5rem auto 0; color: #52647b; text-align: center; font-size: .88rem; }
.results-source a { color: var(--blue-dark); text-decoration: underline; }
.reviews-section { background: #111821; color: #fff; }
.reviews-section .section-title h2 { color: #fff; }
.reviews-section .section-title p, .reviews-section .carousel-hint { color: #bfccdc; }
.reviews-section .eyebrow { color: #8ac6ff; }
.review-track .google-review-card { height: 100%; border: 1px solid #303b49; border-radius: 18px; background: #1a2430; padding: clamp(1.3rem, 2.4vw, 2rem); text-align: center; box-shadow: none; }
.review-track .google-review-header { flex-direction: column; gap: .9rem; }
.review-track .google-review-avatar { width: 68px; height: 68px; font-size: 1.3rem; background: #345cb5; color: #fff; }
.review-track .google-review-card:nth-child(2n) .google-review-avatar { background: #7155a8; }
.review-track .google-review-card:nth-child(3n) .google-review-avatar { background: #177b74; }
.review-track .google-review-header h3 { color: #fff; font-size: 1.18rem; }
.review-track .google-review-source { color: #b7c6d9; }
.review-track .google-review-card blockquote p { color: #eef3fa; font-size: .96rem; }
.review-track .google-review-stars { color: #ffce3a; }
.review-track .google-review-link { color: #9cd1ff; align-self: center; }
.reviews-section .carousel-controls button { border-color: #465465; background: #223043; color: #fff; }
.reviews-section .carousel-controls button:hover { background: #314761; }
.clinic-map { position: relative; isolation: isolate; min-height: 480px; background: #e4ebee; }
.clinic-map iframe { display: block; width: 100%; height: 100%; min-height: 480px; border: 0; }
.map-place-card { position: absolute; z-index: 1; top: 18px; left: 18px; width: min(330px, calc(100% - 36px)); padding: 1.2rem 2.7rem 1.1rem 1.2rem; border-radius: 12px; background: #141414; color: #fff; box-shadow: 0 8px 26px #0005; }
.map-place-card h3 { margin: 0 0 .55rem; font-size: 1rem; line-height: 1.4; color: #fff; }
.map-place-card address { margin: 0 0 .8rem; color: #d6d6d6; font-size: .82rem; line-height: 1.5; }
.map-place-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.map-place-actions a { color: #99caff; text-decoration: underline; font-size: .85rem; font-weight: 700; }
.map-place-close { position: absolute; top: .25rem; right: .25rem; width: 36px; height: 36px; border: 0; border-radius: 50%; color: #fff; background: transparent; font-size: 1.5rem; }
.map-place-open { position: absolute; top: 18px; left: 18px; border: 0; border-radius: 10px; padding: .65rem 1rem; background: #141414; color: #fff; font-weight: 700; }
.map-place-card [hidden], .map-place-open[hidden], .map-place-card[hidden] { display: none; }
@media (max-width: 991px) { .carousel-track { grid-auto-columns: calc((100% - 1rem) / 2); } }
@media (max-width: 575px) { .carousel-track { grid-auto-columns: 91%; } .result-card img { height: 310px; } .clinic-map, .clinic-map iframe { min-height: 440px; } .map-place-card { top: 12px; left: 12px; width: min(305px, calc(100% - 24px)); } }
@media (prefers-reduced-motion: reduce) { .carousel-track { scroll-behavior: auto; } }

/* Automatic slider state contract: original design with a scrollable fallback. */
.auto-slider-shell { --auto-slider-gap: 18px; position: relative; width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.auto-slider-track { display: flex; flex-wrap: nowrap; align-items: stretch; gap: var(--auto-slider-gap); width: 100%; max-width: none; margin: 0; padding: 0; }
.auto-slider-track > * { flex: 0 0 calc((100% - 2 * var(--auto-slider-gap)) / 3); min-width: 0; margin: 0; scroll-snap-align: start; }
.auto-slider-shell.is-auto-running { overflow: hidden; touch-action: pan-y; scroll-snap-type: none; }
.is-auto-running .auto-slider-track { width: max-content; overflow: visible; will-change: transform; }
.is-auto-running .auto-slider-track > * { flex-basis: auto; }
.is-auto-dragging .auto-slider-track { cursor: grabbing; user-select: none; }
.auto-slider-shell.is-auto-static { overflow-x: auto; touch-action: pan-x pan-y; scroll-snap-type: x mandatory; }
.is-auto-static .auto-slider-track { width: 100%; transform: none !important; transition: none !important; }
.auto-slider-shell:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; border-radius: 16px; }
#before-after .result-card { overflow: hidden; border-radius: 16px; }
#before-after .result-card img { display: block; width: 100%; height: auto; aspect-ratio: 828 / 734; object-fit: cover; }
#testimonials .google-review-card { height: auto; align-self: stretch; }
#testimonials .section-title .primary-btn { margin-top: 1.25rem; }
@media (max-width: 1199.98px) { .auto-slider-track > * { flex-basis: calc((100% - var(--auto-slider-gap)) / 2); } }
@media (max-width: 767.98px) { .auto-slider-shell { --auto-slider-gap: 14px; } .auto-slider-track > * { flex-basis: 100%; } }
@media (prefers-reduced-motion: reduce) { .auto-slider-track { transition: none !important; } }
