/* --- 기본 스타일 (PC) --- */
.review-display-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; color: #212529; margin: 2rem 0; }
.review-summary { display: grid; grid-template-columns: 1fr 1.5fr 1.5fr; gap: 2rem; align-items: center; padding: 2rem; border: 1px solid #e9ecef; border-radius: 8px; }
.summary-total-score { text-align: center; }
.summary-total-score .score-value { font-size: 3.8rem; font-weight: 700; color: #000; line-height: 1; }
.summary-total-score .score-text { font-size: 1rem; font-weight: 600; margin: 0.5rem 0; }
.rating-circles { display: flex; gap: 4px; align-items: center; justify-content: center; }
.rating-circles .circle { width: 14px; height: 14px; border-radius: 50%; }
.rating-circles .circle.filled { background-color: #28a745; }
.rating-circles .circle.empty { background-color: #e9ecef; }
.summary-total-score .review-count { font-size: 0.9rem; color: #6c757d; margin-top: 0.75rem; }
.summary-distribution .dist-row, .summary-sub-ratings .sub-rating-item { margin-bottom: 1.2rem; }
.summary-distribution .dist-row .slider-label-container, .summary-sub-ratings .sub-rating-item .slider-label-container { margin-bottom: 0.3rem; font-size: 0.9rem; display: flex; justify-content: space-between; }
.summary-distribution .dist-row .custom-range-slider, .summary-sub-ratings .sub-rating-item .custom-range-slider { height: 8px; }
.review-summary-bottom { display: contents; }
.slider-label-container { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.slider-label-container label { margin-bottom: 0; font-weight: normal; }
.slider-label-container .slider-value { font-weight: bold; }
.custom-range-slider { position: relative; height: 20px; display: flex; align-items: center; }
.custom-range-slider .slider-track { position: absolute; top: 50%; transform: translateY(-50%); width: 100%; height: 8px; background-color: #e9ecef; border-radius: 4px; pointer-events: none; }
.custom-range-slider .slider-track-fill { height: 100%; background-color: #28a745; border-radius: 4px; }
.custom-range-slider input[type="range"] { -webkit-appearance: none; appearance: none; position: absolute; width: 100%; height: 100%; top: 0; left: 0; background: transparent; cursor: pointer; margin: 0; padding: 0; z-index: 2; border: unset; }
.custom-range-slider input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; background: #fff; border-radius: 50%; border: 2px solid #28a745; }
.custom-range-slider input[type="range"]::-moz-range-thumb { width: 20px; height: 20px; background: #fff; border-radius: 50%; border: 2px solid #28a745; }
.review-list-container { margin-top: 2.5rem; }
.review-list-container h3 { border-bottom: 2px solid #333; padding-bottom: 0.5rem; margin-bottom: 1.5rem; }
.review-card { border-bottom: 1px solid #e9ecef; padding: 1.5rem 0; }
.review-card:last-child { border-bottom: none; }
.review-card-inner { display: grid; grid-template-columns: 1fr 4fr; gap: 1.5rem; position: relative; }
.review-actions { position: absolute; top: 0; right: 0; display: flex; gap: 1rem; z-index: 5; }
.review-actions a { font-size: 0.85rem; color: #6c757d; text-decoration: none; }
.review-author-info { flex-direction: column; }
.review-author-info .author-avatar { width: 64px; height: 64px; border-radius: 50%; margin-bottom: 1rem; }
.review-author-info .author-name { font-weight: bold; font-size: 1.1rem; }
.review-main-content .review-rating-line { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.5rem; }
.review-main-content .review-title { font-size: 1.1rem; font-weight: 600; margin: 0; }

/* 갤러리 스타일 */
.review-photos-container {
    position: relative;
    width: 100%;
    max-width: 470px; /* PC: (80px 너비 + 10px 갭) * 5개 - 마지막 갭 10px */
}
.review-photos {
    display: flex;
    gap: 10px;
    overflow: hidden;
    flex-wrap: nowrap;
    scroll-behavior: smooth;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.review-photos::-webkit-scrollbar {
    display: none;
}
.review-photo-item {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
}
.review-photos img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px;
    cursor: pointer;
    display: block;
}
.photo-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(255, 255, 255, 0.8);
    border: 1px solid #ccc;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: opacity 0.2s, background-color 0.2s;
    backdrop-filter: blur(2px);
}
.photo-nav:hover {
    background-color: rgba(255, 255, 255, 1);
}
/* [수정] 내비게이션 버튼 숨김/표시 로직 변경 */
.photo-nav.hidden {
    display: none; /* JS로 제어하기 위해 display none으로 변경 */
}
.photo-nav.prev {
    left: -16px;
}
.photo-nav.next {
    right: -16px;
}
.photo-nav::before {
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    border-top: 2px solid #333;
    border-right: 2px solid #333;
}
.photo-nav.prev::before {
    transform: translateX(2px) rotate(-135deg);
}
.photo-nav.next::before {
    transform: translateX(-2px) rotate(45deg);
}

.review-call-to-action { background-color: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; padding: 2rem; text-align: center; margin: 2rem 0; }
.review-call-to-action a.button, .review-call-to-action .button { display: inline-block; background-color: #0073aa; color: #fff; padding: 10px 20px; text-decoration: none; border-radius: 4px; border: none; font-size: 1em; cursor: pointer; }
.review-form-container .review-form-group, .review-form-container .form-group { margin-bottom: 1rem; }
.review-form-container label { display: block; margin-bottom: 0.5rem; }
.review-form-container input[type="text"], .review-form-container textarea { width: 100%; padding: 8px; border: 1px solid #ced4da; border-radius: 4px; }
.review-form-container .current-photos { display: flex; flex-wrap: wrap; gap: 10px; }
.review-form-container .photo-item { position: relative; }
.review-form-container .photo-item img { width: 60px; height: 60px; object-fit: cover; border-radius: 4px; }
.review-form-container .photo-item input[type="checkbox"] { position: absolute; top: -5px; right: -5px; }
.review-pagination { text-align: center; margin-top: 2.5rem; }
.review-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin: 0 4px; border-radius: 50%; text-decoration: none; color: #495057; }
.review-lightbox { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.85); justify-content: center; align-items: center; }
.review-lightbox.show { display: flex; }
.review-lightbox-img { max-width: 90vw; max-height: 80vh; }
.review-lightbox-close { position: absolute; top: 20px; right: 35px; color: #fff; font-size: 40px; font-weight: bold; cursor: pointer; }
.lightbox-nav { cursor: pointer; position: absolute; top: 50%; transform: translateY(-50%); font-size: 3rem; color: white; background-color: rgba(0,0,0,0.3); padding: 0 1rem; user-select: none; }
.lightbox-nav.prev { left: 10px; } .lightbox-nav.next { right: 10px; }

/* --- 모바일 화면을 위한 미디어 쿼리 --- */
@media (max-width: 768px) {
    .review-summary { grid-template-columns: 1fr; gap: 1.5rem; }
    .review-summary .summary-total-score { padding-bottom: 1.5rem; border-bottom: 1px solid #e9ecef; }
    .review-summary-bottom { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
    .review-card-inner { grid-template-columns: 1fr; gap: 1rem; }
    .review-author-info { flex-direction: row; align-items: center; gap: 1rem; }
    .review-author-info .author-avatar { width: 48px; height: 48px; margin-bottom: 0; }
    
    /* [수정] 모바일 갤러리 스타일 */
    .review-photos-container {
        max-width: 350px; /* (80px 너비 + 10px 갭) * 4개 - 마지막 갭 10px */
    }
}