/* Shared horizontal carousels for story and parent reviews. */
.story-carousel, .reviews-carousel { position:relative; }
.story-carousel .story-list, .reviews-track { display:flex; gap:16px; margin:0; padding:0 0 4px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; }
.story-carousel .story-list::-webkit-scrollbar, .reviews-track::-webkit-scrollbar { display:none; }
.story-carousel .story-list > li { flex:0 0 calc((100% - 32px)/3); min-width:0; padding:0; border:0; border-radius:0; background:transparent; scroll-snap-align:start; }
.carousel-arrow { position:absolute; z-index:2; top:42%; display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); box-shadow:0 6px 18px rgba(74,53,34,.14); font:inherit; font-size:20px; cursor:pointer; }
.carousel-prev { left:-14px; } .carousel-next { right:-14px; }
.carousel-arrow:disabled { opacity:0; pointer-events:none; }
.carousel-dots { display:flex; justify-content:center; gap:6px; margin-top:18px; }
.carousel-dots i { width:7px; height:7px; border-radius:4px; background:var(--line); transition:width .2s,background .2s; }
.carousel-dots i.on { width:22px; background:var(--red); }
.reviews-section { margin:var(--section-gap) 0 0; text-align:left; }
.reviews-section > .block-title { margin-top:0; }
.reviews-carousel[hidden], .reviews-fallback[hidden] { display:none; }
.reviews-track { align-items:flex-start; }
.review-photo { display:block; align-self:flex-start; flex:0 0 calc((100% - 32px)/3); min-width:0; height:auto; padding:16px; scroll-snap-align:start; border:1px solid var(--line); border-radius:20px; background:var(--surface); }
.review-viewport { position:relative; width:100%; overflow:hidden; border-radius:16px; background:var(--surface); aspect-ratio:1; }
.review-viewport img { position:absolute; display:block; max-width:none; height:auto; border-radius:0; }
.reviews-fallback { margin:18px 0 12px; padding:22px; border:1px solid var(--line); border-radius:18px; background:var(--surface); color:var(--muted); font-size:15px; }
 .carousel-hint { display:none; }
@keyframes carousel-nudge { 0%,100% {transform:translateX(0);} 50% {transform:translateX(4px);} }
@media(max-width:860px) {
 .story-carousel .story-list, .reviews-track { margin-inline:-20px; padding-inline:20px; scroll-padding-inline:20px; gap:12px; }
 .story-carousel .story-list > li, .review-photo { flex-basis:82%; }
 .review-photo { height:auto; padding:16px; }
 .carousel-arrow { display:none; }
 .carousel-hint { display:flex; align-items:center; justify-content:center; gap:6px; margin:6px 0 0; color:var(--muted); font-size:13px; transition:opacity .3s; }
 .carousel-hint span { display:inline-block; animation:carousel-nudge 1.4s ease-in-out infinite; }
 .carousel-hint.gone { opacity:0; }
}
@media(prefers-reduced-motion:reduce) { .carousel-dots i { transition:none; } }

@media(prefers-reduced-motion:reduce) { .carousel-hint span {animation:none;} }

.reviews-section .block-lead { margin:10px 0 24px; color:var(--muted); line-height:1.55; }
.landing-reviews .block-lead { text-align:center; }
