/* Homepage only. Native horizontal scrolling and details work without JavaScript. */
.homepage-hero > .relative > div:first-child { min-width: 0; }
.homepage-reviews { margin-top: 2rem; min-width: 0; color: #0f172a; }
.reviews-heading-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; margin-bottom: .75rem; }
.reviews-heading-row h2 { font-size: .875rem; font-weight: 800; }
.reviews-controls { display: flex; gap: .375rem; }
.reviews-controls[hidden] { display: none; }
.reviews-controls button { min-height: 44px; min-width: 44px; padding: .5rem; background: #fff; border: 1px solid #bad5e2; border-radius: .5rem; font-size: .75rem; font-weight: 700; color: #164e63; }
.reviews-controls button:hover { background: #edf9ff; border-color: #1681a4; }
.homepage-reviews :focus-visible { outline: 3px solid #126487; outline-offset: 3px; }
.reviews-track { display: flex; gap: 1rem; list-style: none; margin: 0; padding: .25rem .25rem .75rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scroll-padding-inline: .25rem; scrollbar-width: thin; scrollbar-color: #6a9fb6 #e3eef4; border-radius: .5rem; }
.reviews-track.is-scrolling { scroll-snap-type: none; }
.review-card { flex: 0 0 calc(100% - 1.75rem); min-width: 0; align-self: flex-start; padding: 1rem 1.125rem; border: 1px solid #c8dce7; border-top: 3px solid #30c0f0; border-radius: .5rem; background: #fff; box-shadow: 0 4px 12px rgb(15 23 42 / .035); scroll-snap-align: start; }
.review-card-top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: #475569; font-size: .6875rem; font-weight: 700; }
.review-stars { color: #8b6010; font-size: .875rem; letter-spacing: .08em; white-space: nowrap; }
.review-text, .review-excerpt { margin: .75rem 0 0; font-size: .9375rem; line-height: 1.6; color: #334155; white-space: pre-wrap; overflow-wrap: anywhere; }
.review-details summary { list-style: none; cursor: pointer; }
.review-details summary::-webkit-details-marker { display: none; }
.review-excerpt { display: block; white-space: normal; }
.review-expand, .review-collapse { display: block; padding: .65rem 0; min-height: 44px; font-size: .75rem; font-weight: 700; color: #145777; text-decoration: underline; text-underline-offset: 3px; }
.review-collapse, .review-details[open] .review-expand, .review-details[open] .review-excerpt { display: none; }
.review-details[open] .review-collapse { display: block; }
.review-details[open] .review-text { margin-top: 0; }
.review-author { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid #e2e8f0; font-size: .8125rem; font-weight: 800; overflow-wrap: anywhere; }
.review-author a { color: #0f172a; text-underline-offset: 3px; }
.review-author a:hover { text-decoration: underline; }
.reviews-footer { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem 1rem; flex-wrap: wrap; margin-top: .5rem; font-size: .6875rem; line-height: 1.6; color: #475569; }
.reviews-footer a { color: #145777; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; padding: .25rem 0; }
@media (min-width: 640px) and (max-width: 1023px) { .review-card { flex-basis: calc(50% - .5rem); } }
@media (prefers-reduced-motion: reduce) { .homepage-reviews *, .reviews-track { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }
