/* ==========================================================
   REVIEWS
========================================================== */

.reviews-slider{

    display:flex;

    gap:1rem;

    overflow-x:auto;

    scroll-snap-type:x mandatory;

    padding-bottom:.5rem;

}

.review-card{

    min-width:85%;

    background:#fafafa;

    border:1px solid var(--border);

    border-radius:16px;

    padding:1rem;

    scroll-snap-align:start;

}

.review-meta{

    margin-bottom:.6rem;

    color:var(--muted);

    font-size:.85rem;

}

.review-text{

    line-height:1.6;

    white-space:pre-line;

    word-break:break-word;

}

.review-card .photo-gallery{

    margin-top:1rem;

}

.review-card .photo-gallery img{

    width:80px;

    height:80px;

}

/* ==========================================================
   RATING
========================================================== */

.rating-card{

    text-align:center;

}

.rating-select{

    display:flex;

    flex-direction:row-reverse;

    justify-content:center;

    gap:.25rem;

}

.rating-select input{

    display:none;

}

.rating-select label{

    font-size:2.5rem;

    color:#d1d5db;

    cursor:pointer;

    transition:.2s;

}

.rating-select label:hover,

.rating-select label:hover ~ label{

    color:#fbbf24;

}

.rating-select input:checked ~ label{

    color:#fbbf24;

}

.rating-help{

    margin-top:1rem;

    color:var(--muted);

    text-align:center;

}

/* ==========================================================
   REVIEW FORM
========================================================== */

.review-textarea{

    min-height:140px;

    resize:vertical;

}

.photo-input-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:.75rem;

}

.photo-slot{

    aspect-ratio:1;

    display:flex;

    align-items:center;

    justify-content:center;

    border:2px dashed var(--border);

    border-radius:16px;

    background:#fafafa;

    cursor:pointer;

    position:relative;

}

.photo-slot input{

    display:none;

}

.photo-slot span{

    font-size:2rem;

    color:var(--muted);

}

.photo-preview{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

    border-radius:16px;

    display:none;

}

.photo-slot.has-image .photo-preview{

    display:block;

}

.photo-slot.has-image span{

    display:none;

}

/* ==========================================================
   USER
========================================================== */

.stats-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:1rem;

}

.stat-box{

    background:#fafafa;

    border-radius:16px;

    padding:1.5rem;

    text-align:center;

}

.stat-number{

    display:block;

    font-size:2rem;

    font-weight:700;

    margin-bottom:.5rem;

}