.inner-section { padding:70px 0; }

.rv-filter { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
.rv-fbtn { padding:7px 16px; border-radius:var(--r-pill); background:#fff; border:1px solid var(--border); color:var(--gray); font-size:.86rem; font-weight:600; transition:all .2s; }
.rv-fbtn:hover { border-color:var(--pink); color:var(--pink); }
.rv-fbtn.active { background:var(--pink); border-color:var(--pink); color:#fff; }

.rv-board { border-top:2px solid var(--title); margin-bottom:32px; }
.rv-row { display:grid; grid-template-columns:132px 1fr 96px 90px 96px 62px; align-items:center; gap:12px;
  padding:14px 12px; border-bottom:1px solid var(--border); color:var(--gray); font-size:.9rem; transition:background .18s; }
.rv-row:not(.rv-head):hover { background:var(--wash); }
.rv-head { font-size:.84rem; font-weight:700; color:var(--ink-3); background:var(--wash); padding:12px; }
.rv-c-star, .rv-c-name, .rv-c-date, .rv-c-views { text-align:center; }
.rv-c-views { font-variant-numeric:tabular-nums; }
.rv-branch { display:inline-block; max-width:100%; padding:3px 10px; border-radius:var(--r-pill); background:var(--pink-pale); color:var(--pink-dark);
  font-size:.78rem; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rv-branch-none { background:var(--wash); color:var(--ink-3); }
.rv-c-title { display:flex; align-items:center; gap:7px; min-width:0; }
.rv-t { color:var(--dark); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rv-row:hover .rv-t { color:var(--pink); }
.rv-photo-mark { flex-shrink:0; display:inline-flex; align-items:center; gap:3px; font-size:.72rem; color:var(--pink-light); }
.rv-photo-mark b { font-size:.74rem; font-weight:700; color:var(--pink); font-variant-numeric:tabular-nums; }
.rv-reply-mark { flex-shrink:0; display:inline-flex; align-items:center; gap:3px; font-size:.72rem; color:var(--ink-3); }
.rv-reply-mark b { font-size:.74rem; font-weight:700; color:var(--gray); font-variant-numeric:tabular-nums; }
.rv-c-star .fas, .rv-c-star .far { color:#f0a830; font-size:.78rem; }
.rv-dash { color:var(--border); font-style:normal; }

.rv-view { background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); padding:34px 36px; margin-bottom:32px; box-shadow:var(--shadow); }
.rv-view-head { padding-bottom:18px; border-bottom:1px solid var(--border); margin-bottom:24px; }
.rv-view-title { font-size:1.35rem; font-weight:800; color:var(--title); letter-spacing:-.03em; margin:10px 0 12px; }
.rv-view-meta { display:flex; flex-wrap:wrap; gap:16px; font-size:.86rem; color:var(--ink-3); }
.rv-view-meta .rv-stars .fas, .rv-view-meta .rv-stars .far { color:#f0a830; }
.rv-view-photo { margin-bottom:24px; border-radius:var(--r-lg); overflow:hidden; background:var(--wash); }
.rv-view-photo img { width:auto; max-width:100%; max-height:min(80vh, 860px); height:auto; display:block; margin:0 auto; }

.rv-gallery { display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; margin-bottom:8px; }
.rv-gallery[data-cols="2"] { grid-template-columns:repeat(2, 1fr); }
.rv-gallery[data-cols="3"] { grid-template-columns:repeat(3, 1fr); }
.rv-g-item { display:block; width:100%; aspect-ratio:1; padding:0; border:0; border-radius:var(--r-sm); overflow:hidden;
  background:var(--wash); cursor:zoom-in; }
.rv-g-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.rv-g-item:hover img { transform:scale(1.04); }
.rv-g-item:focus-visible { outline:3px solid var(--pink); outline-offset:2px; }
.rv-g-caption { font-size:.8rem; color:var(--ink-3); margin:0 0 24px; }

.rv-lb { position:fixed; inset:0; z-index:9999; background:rgba(20,14,18,.94); display:flex; align-items:center; justify-content:center; }
.rv-lb[hidden] { display:none; }
.rv-lb-img { max-width:92vw; max-height:84vh; object-fit:contain; border-radius:4px; user-select:none; }
.rv-lb-btn { position:absolute; display:flex; align-items:center; justify-content:center; width:48px; height:48px; border:0; border-radius:50%;
  background:rgba(255,255,255,.12); color:#fff; font-size:1.15rem; cursor:pointer; transition:background .2s; }
.rv-lb-btn:hover { background:rgba(255,255,255,.24); }
.rv-lb-btn:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.rv-lb-close { top:16px; right:16px; }
.rv-lb-prev { left:16px; top:50%; transform:translateY(-50%); }
.rv-lb-next { right:16px; top:50%; transform:translateY(-50%); }
.rv-lb-count { position:absolute; bottom:18px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.85);
  font-size:.88rem; font-variant-numeric:tabular-nums; }
.rv-view-body { font-size:.97rem; color:var(--gray); line-height:1.95; min-height:80px; }
.rv-replies { margin-top:30px; }
.rv-replies-title { display:flex; align-items:center; gap:7px; font-size:.95rem; font-weight:800; color:var(--title); margin:0 0 12px; }
.rv-replies-title i { color:var(--pink); }
.rv-replies-title b { color:var(--pink); font-variant-numeric:tabular-nums; }
.rv-reply { background:var(--wash); border-left:3px solid var(--pink-light); border-radius:0 var(--r-sm) var(--r-sm) 0; padding:16px 20px; }
.rv-reply + .rv-reply { margin-top:10px; }
.rv-reply-head { display:flex; align-items:center; gap:10px; margin-bottom:8px; font-size:.84rem; }
.rv-reply-author { font-weight:700; color:var(--pink-dark); }
.rv-reply-date { color:var(--ink-3); font-variant-numeric:tabular-nums; }
.rv-reply-body { font-size:.93rem; color:var(--gray); line-height:1.85; }
.rv-view-foot { margin-top:28px; padding-top:20px; border-top:1px solid var(--border); text-align:center; }
.rv-list-btn { display:inline-flex; align-items:center; gap:8px; padding:11px 26px; border-radius:var(--r-pill);
  background:var(--pink); color:#fff; font-size:.9rem; font-weight:700; }
.rv-list-btn:hover { background:var(--pink-dark); }
.rv-manage-btn { display:inline-flex; align-items:center; padding:11px 22px; margin-left:8px; border-radius:var(--r-pill);
  border:1px solid var(--border); background:#fff; color:var(--gray); font-size:.9rem; font-weight:600; }
.rv-manage-btn:hover { border-color:var(--pink); color:var(--pink); }
.rv-posted { background:#effaf3; border:1px solid #bfe5cc; color:#1e7a44; border-radius:var(--r-sm); padding:13px 18px; margin-bottom:18px; font-size:.92rem; font-weight:600; }

/* 별점: 오른쪽부터 채워지도록 역순 배치 */
.star-pick { display:inline-flex; flex-direction:row-reverse; gap:4px; }
.star-pick input { position:absolute; opacity:0; width:0; height:0; }
.star-pick label { font-size:1.5rem; color:var(--border); cursor:pointer; transition:color .15s; }
.star-pick label:hover, .star-pick label:hover ~ label,
.star-pick input:checked ~ label { color:#f0a830; }
.star-pick input:focus-visible + label { outline:2px solid var(--pink); outline-offset:2px; border-radius:4px; }
.empty-state { text-align:center; padding:60px 0; color:var(--ink-3); }
.empty-state i { font-size:3rem; margin-bottom:16px; display:block; }

.write-review-section { background:#fff; border-radius:20px; border:1px solid var(--border-pink); padding:44px; margin-top:20px; box-shadow:0 2px 10px rgba(176,53,121,.06); }
.write-review-header { margin-bottom:32px; }
.write-review-header h2 { font-size:1.4rem; font-weight:700; color:var(--dark); margin-bottom:8px; }
.write-review-header h2 i { color:var(--pink); margin-right:8px; }
.write-review-header p { color:var(--gray); font-size:.93rem; }
.review-alert { background:var(--wash); color:var(--pink); border:1px solid var(--pink-light); border-radius:8px; padding:12px 16px; font-size:.9rem; margin-bottom:20px; display:flex; gap:8px; align-items:center; }
.review-form-group { margin-bottom:20px; }
.review-form-group label { display:block; font-size:.88rem; font-weight:600; color:var(--gray); margin-bottom:6px; }
.req { color:var(--pink); }
.review-form-group input[type=text], .review-form-group input[type=password], .review-form-group select, .review-form-group textarea {
  width:100%; padding:10px 14px; border:1px solid var(--border); border-radius:8px; font-size:.93rem; box-sizing:border-box; font-family:inherit; transition:border .2s; }
.review-form-group input:focus, .review-form-group select:focus, .review-form-group textarea:focus { outline:none; border-color:var(--pink); }
.review-form-group input[readonly] { background:var(--wash); color:var(--ink-3); }

.photo-upload-area { display:flex; align-items:center; gap:12px; }
.photo-upload-btn { padding:8px 18px; background:#f7f0f4; border:1.5px dashed var(--pink); border-radius:8px; color:var(--pink); font-size:.88rem; cursor:pointer; transition:all .2s; }
.photo-upload-btn:hover { background:var(--pink-pale); }
.photo-upload-btn:disabled { opacity:.5; cursor:default; }
.photo-count { font-size:.85rem; color:var(--ink-3); }
.photo-previews { display:grid; grid-template-columns:repeat(auto-fill, minmax(88px, 1fr)); gap:8px; margin-top:12px; }
.photo-previews:empty { display:none; }
.pp-item { position:relative; aspect-ratio:1; border-radius:8px; overflow:hidden; background:var(--wash); border:1px solid var(--border); }
.pp-item img { width:100%; height:100%; object-fit:cover; display:block; }
.pp-del { position:absolute; top:4px; right:4px; width:26px; height:26px; border:0; border-radius:50%;
  background:rgba(34,28,32,.72); color:#fff; font-size:.8rem; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.pp-del:hover { background:#dc3545; }
.pp-del:focus-visible { outline:2px solid var(--pink); outline-offset:1px; }

.review-agree { background:var(--wash); padding:14px 16px; border-radius:8px; }
.review-agree label { display:flex; align-items:center; gap:10px; font-size:.88rem; color:var(--gray); cursor:pointer; }
.review-agree a { color:var(--pink); }
.btn-review-submit { width:100%; padding:14px; background:var(--pink); color:#fff; border:none; border-radius:8px; font-size:1rem; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px; transition:background .2s; text-decoration:none; }
.btn-review-submit:hover { background:var(--pink-dark); }

.reviews-pagination { display:flex; justify-content:center; align-items:center; gap:6px; margin-bottom:60px; flex-wrap:wrap; }
.page-btn { min-width:38px; height:38px; padding:0 6px; display:flex; align-items:center; justify-content:center; border-radius:8px; background:#fff; border:1px solid var(--border-pink); color:var(--gray); text-decoration:none; font-size:.9rem; transition:all .2s; }
.page-ellipsis { display:inline-flex; align-items:center; color:var(--ink-3); padding:0 2px; }
@media(max-width:768px){
  .reviews-pagination { gap:3px; }
  .page-btn { min-width:30px; height:30px; padding:0 4px; font-size:.8rem; border-radius:7px; }
  .page-ellipsis { padding:0 1px; }
}
.page-btn:hover { border-color:var(--pink); color:var(--pink); }
.page-btn.active { background:var(--pink); border-color:var(--pink); color:#fff; font-weight:700; }
.page-btn.disabled { opacity:.4; pointer-events:none; }

@media(max-width:900px){
  .rv-row { grid-template-columns:104px 1fr 78px 60px; gap:8px; font-size:.85rem; }
  .rv-c-date, .rv-c-views { display:none; }
  .rv-head .rv-c-name { text-align:right; }
}
@media(max-width:640px){
  .rv-row { grid-template-columns:1fr auto; padding:13px 6px; row-gap:6px; }
  .rv-head { display:none; }
  .rv-c-branch { grid-row:1; grid-column:1; }
  .rv-c-star { grid-row:1; grid-column:2; text-align:right; }
  .rv-c-title { grid-row:2; grid-column:1 / -1; }
  .rv-t { white-space:normal; }
  .rv-c-name { grid-row:3; grid-column:1; text-align:left; font-size:.8rem; color:var(--ink-3); }
  .rv-c-date { display:block; grid-row:3; grid-column:2; text-align:right; font-size:.8rem; color:var(--ink-3); }
  .rv-view { padding:24px 20px; }
  .rv-gallery, .rv-gallery[data-cols="3"] { grid-template-columns:repeat(2, 1fr); gap:6px; }
  .rv-lb-prev, .rv-lb-next { top:auto; bottom:8px; transform:none; }
  .rv-lb-count { bottom:22px; }
  .write-review-section { padding:28px 20px; }
}
