/* Reviews - horizontal card rail with detail modal. Mirrors the `accommodation-units` rail pattern (see element/accommodation-units.css). */
.reviews__rating-table{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:1.5rem;overflow:hidden}
.reviews__rating-header{align-items:center;background-color:var(--color-surface-alt);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:0.75rem 1rem}
.reviews__rating-label{color:var(--color-text-main);font-size:0.875rem;font-weight:700}
.reviews__rating-total{align-items:center;display:flex;gap:0.5rem}
.reviews__rating-stars{color:var(--color-star);display:flex}
.reviews__rating-stars .material-symbols-outlined{font-size:18px}
.reviews__rating-score{color:var(--color-text-main);font-size:1.25rem;font-weight:800}
.reviews__rating-table table{border-collapse:collapse;font-size:0.875rem;width:100%}
.reviews__rating-table tbody tr{border-bottom:1px solid var(--color-surface-alt)}
.reviews__rating-table tbody tr:last-child{border-bottom:none}
.reviews__rating-table th{color:var(--color-text-main);font-weight:500;padding:0.625rem 1rem;text-align:left}
.reviews__rating-table td{color:var(--color-text-main);padding:0.625rem 1rem}
.reviews__rating-table td:last-child{text-align:right}
.reviews__rating-bar-cell{align-items:center;display:flex;gap:0.5rem;justify-content:flex-end}
.reviews__rating-bar{background-color:var(--color-border);border-radius:var(--radius-full);height:6px;overflow:hidden;width:4rem}
.reviews__rating-bar-fill{border-radius:var(--radius-full);height:100%;width:var(--rating-width, 0)}
.reviews__rating-bar-fill--green{background-color:var(--color-success-light)}
.reviews__rating-bar-fill--amber{background-color:var(--color-star)}
.reviews__rating-bar-fill--orange{background-color:var(--color-warning)}
.reviews__rating-value{font-weight:700;text-align:right;width:2rem}
.reviews__rating-value--green{color:var(--color-success)}
.reviews__rating-value--amber{color:var(--color-star-text)}
.reviews__rating-value--orange{color:var(--color-warning)}
.reviews__rail-wrap{position:relative}
.reviews__rail{display:flex;gap:0.75rem;margin:0 0 0.75rem;-webkit-overflow-scrolling:touch;overflow-x:auto;overflow-y:hidden;padding:0.5rem 1rem 1rem;scroll-padding-inline:1rem;scroll-snap-type:x mandatory;scrollbar-width:thin}
.reviews__rail::-webkit-scrollbar{height:6px}
.reviews__rail::-webkit-scrollbar-thumb{background:rgba(0, 0, 0, 0.18);border-radius:3px}
.reviews__card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);cursor:pointer;display:flex;flex:0 0 auto;flex-direction:column;padding:1rem;position:relative;scroll-snap-align:start;transition:border-color 0.15s ease, box-shadow 0.18s ease, transform 0.18s ease;width:16rem}
.reviews__card:hover{border-color:var(--color-primary-border-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}
.reviews__card-trigger{appearance:none;background:transparent;border:0;border-radius:inherit;cursor:pointer;inset:0;padding:0;position:absolute;z-index:2}
.reviews__card-trigger:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.reviews__stars{color:var(--color-star);display:flex;font-size:0.875rem;margin-bottom:0.5rem}
.reviews__stars .material-symbols-outlined{font-size:16px}
.reviews__title{color:var(--color-text-main);display:block;font-size:0.875rem;font-weight:700;line-height:1.35;margin-bottom:0.375rem}
.reviews__text{color:var(--color-text-muted);font-size:0.75rem;line-height:1.6;margin-bottom:0.75rem}
.reviews__author{color:var(--color-text-light);display:block;font-size:0.75rem;font-weight:500;margin-bottom:0.625rem}
.reviews__card-cta{align-items:center;color:var(--color-link);display:inline-flex;font-size:0.75rem;font-weight:700;margin-top:auto}
.reviews__rail-next{align-items:center;appearance:none;background:#ffffff;border:0;border-radius:999px;box-shadow:0 4px 14px rgba(0, 0, 0, 0.18);color:var(--color-text-main, #1f2937);cursor:pointer;display:inline-flex;height:2.75rem;justify-content:center;position:absolute;right:0.75rem;top:50%;transform:translateY(-50%);transition:transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;width:2.75rem;z-index:2}
.reviews__rail-next .material-symbols-outlined{font-size:1.5rem;line-height:1}
.reviews__rail-next:hover,.reviews__rail-next:focus-visible{background:#f8fafc;box-shadow:0 6px 18px rgba(0, 0, 0, 0.22);outline:none;transform:translateY(-50%) scale(1.05)}
.reviews__rail-next:focus-visible{box-shadow:0 0 0 3px rgba(37, 99, 235, 0.35), 0 6px 18px rgba(0, 0, 0, 0.22)}
.reviews__rail-next:active{transform:translateY(-50%) scale(0.97)}
@media (max-width: 640px){
.reviews__rail-next{height:2.25rem;right:0.5rem;width:2.25rem}
.reviews__rail-next .material-symbols-outlined{font-size:1.25rem}
}
.reviews__view-all{appearance:none;background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:999px;color:var(--color-text-main, #1f2937);cursor:pointer;font:inherit;font-size:0.875rem;font-weight:600;padding:0.625rem 1.25rem;transition:background 0.15s ease, border-color 0.15s ease, transform 0.15s ease}
.reviews__view-all:hover,.reviews__view-all:focus-visible{background:rgba(0, 0, 0, 0.04);border-color:var(--color-text-muted, #6b7280);outline:none}
.reviews__view-all:focus-visible{box-shadow:0 0 0 3px rgba(37, 99, 235, 0.35)}
.reviews__view-all:active{transform:translateY(1px)}
.reviews__actions{align-items:center;display:flex;flex-wrap:wrap;gap:0.75rem;justify-content:space-between}
/* Modal */
.reviews-modal[hidden]{display:none !important}
.reviews-modal{animation:reviews-modal-fade-in 0.18s ease-out;background:rgba(15, 23, 42, 0.55);display:flex;inset:0;overscroll-behavior:contain;position:fixed;z-index:1000}
.reviews-modal__panel{background:#ffffff;border-radius:12px;box-shadow:0 18px 50px rgba(0, 0, 0, 0.25);display:flex;flex-direction:column;margin:auto;max-height:92vh;overflow:hidden;position:relative;width:min(720px, 100%)}
@media (max-width: 640px){
.reviews-modal__panel{border-radius:0;height:100%;margin:0;max-height:100%;width:100%}
}
.reviews-modal__header{align-items:center;background:#ffffff;border-bottom:1px solid var(--color-border, #e5e7eb);display:flex;gap:1rem;justify-content:space-between;padding:0.875rem 1rem}
.reviews-modal__title{color:var(--color-text-main, #1f2937);font-size:1rem;font-weight:600;margin:0}
.reviews-modal__close{align-items:center;appearance:none;background:transparent;border:0;border-radius:999px;color:#1f2937;cursor:pointer;display:inline-flex;font-size:1.5rem;height:2.25rem;justify-content:center;line-height:1;width:2.25rem}
.reviews-modal__close:hover,.reviews-modal__close:focus-visible{background:rgba(0, 0, 0, 0.06);outline:none}
.reviews-modal__body{-webkit-overflow-scrolling:touch;overflow-y:auto;padding:1rem 1.25rem 2rem}
.reviews-modal__list{display:flex;flex-direction:column;gap:1.5rem;list-style:none;margin:0;padding:0}
body.reviews-no-scroll{overflow:hidden}
@keyframes reviews-modal-fade-in{
from{opacity:0}
to{opacity:1}
}
@media (min-width: 768px){
.reviews__rating-table{margin-bottom:1.25rem}
}
