/* ════════════════════════════════════════════
   reservation.css
════════════════════════════════════════════ */

/* ── Hero ── */
#rsv-hero { padding-top:140px; background:var(--cream); }
.rsv-hero-inner { padding:0 56px 48px; }
.rsv-hero-label {
  font-family:'DM Sans',sans-serif;
  font-size:9px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); margin-bottom:16px;
  display:flex; align-items:center; gap:12px;
}
.rsv-hero-label::before { content:''; width:24px; height:1px; background:var(--gold); opacity:.5; }
.rsv-hero-title {
  font-family:'Marcellus','Pretendard',sans-serif;
  font-size:clamp(40px,6vw,72px);
  letter-spacing:.04em; line-height:1; color:var(--dark);
}

/* ── 서브네비 ── */
.rsv-subnav {
  display:flex;
  border-top:1px solid var(--gb);
  border-bottom:1px solid var(--gb);
  position:sticky; top:60px; z-index:200;
  background:rgba(245,240,232,.96);
  backdrop-filter:blur(16px);
}
.rsv-subnav-a {
  padding:18px 40px;
  font-family:'DM Sans',sans-serif;
  font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--warm); text-decoration:none;
  border-right:1px solid var(--gb);
  position:relative; transition:color .25s;
}
.rsv-subnav-a:last-child { border-right:none; }
.rsv-subnav-a::after {
  content:''; position:absolute; bottom:-1px; left:0; right:0; height:1px;
  background:var(--gold); transform:scaleX(0);
  transition:transform .35s cubic-bezier(.77,0,.175,1);
}
.rsv-subnav-a:hover, .rsv-subnav-a.active { color:var(--gold); }
.rsv-subnav-a:hover::after, .rsv-subnav-a.active::after { transform:scaleX(1); }

/* ── 섹션 공통 ── */
#appointment, #location { background:var(--cream); }
.rsv-section-wrap {
  max-width:1100px; margin:0 auto;
  padding:72px 80px 100px;
}

/* ── 블록 ── */
.rsv-block { margin-bottom:0; }
.rsv-block-label {
  font-family:'DM Sans',sans-serif;
  font-size:9px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--gold); margin-bottom:24px;
  display:flex; align-items:center; gap:10px;
}
.rsv-block-label::before { content:'■'; font-size:6px; color:var(--gold); }
.rsv-divider { height:1px; background:var(--gb); margin:48px 0; }

/* ── 예약 채널 ── */
.rsv-channel-list { display:flex; flex-direction:column; gap:0; }
.rsv-channel-item {
  display:grid;
  grid-template-columns:28px 1fr auto;
  gap:0 28px;
  align-items:center;
  padding:28px 0;
  border-bottom:1px solid var(--gb);
}
.rsv-channel-item:first-child { border-top:1px solid var(--gb); }
.rsv-channel-icon {
  width:28px; height:28px;
  display:flex; align-items:center; justify-content:center;
  color:var(--gold);
}
.rsv-channel-icon svg { width:18px; height:18px; }
.rsv-channel-name {
  font-size:9px; font-weight:400; letter-spacing:.2em; text-transform:uppercase;
  font-family:'DM Sans',sans-serif;
  color:var(--gold); margin-bottom:4px;
}
.rsv-channel-val {
  font-family:'Pretendard',sans-serif;
  font-size:17px; font-weight:400; color:var(--dark);
  margin-bottom:4px; letter-spacing:.01em;
}
.rsv-channel-desc {
  font-size:13px; font-weight:400; line-height:1.7;
  color:rgba(60,44,28,.5); margin-top:2px;
}
.rsv-channel-btn {
  width:40px; height:40px; flex-shrink:0;
  border:1px solid var(--gb); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--warm); text-decoration:none;
  transition:border-color .2s, color .2s;
  font-size:16px;
}
.rsv-channel-btn svg { display:none; }
.rsv-channel-btn::after { content:'→'; }
.rsv-channel-btn:hover { border-color:var(--gold); color:var(--gold); }

/* ── 사전 설문 ── */


/* ── 주소 ── */
.rsv-address { margin-bottom:32px; }
.rsv-address-main {
  font-size:16px; font-weight:400; line-height:1.7;
  color:var(--dark); margin-bottom:8px;
}
.rsv-address-sub {
  font-size:13px; font-weight:400; line-height:1.8;
  color:rgba(60,44,28,.5); margin-bottom:16px;
}
.rsv-map-links { display:flex; flex-direction:column; gap:10px; margin-top:20px; }
.rsv-map-links--row { flex-direction:row; gap:10px; }
.rsv-map-links--row .rsv-map-btn { flex:1; }
.rsv-map-btn {
  display:flex; align-items:center; gap:16px;
  padding:16px 20px;
  border:1px solid var(--gb); text-decoration:none;
  transition:border-color .2s, background .2s;
  background:rgba(255,255,255,.03);
}
.rsv-map-btn:hover { border-color:var(--gold); background:rgba(196,154,104,.04); }
.rsv-map-btn-icon {
  flex-shrink:0; width:40px; height:40px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
}
.rsv-map-btn--naver .rsv-map-btn-icon { background:#03C75A; color:#fff; }
.rsv-map-btn--kakao  .rsv-map-btn-icon { background:#FEE500; color:#3C1E1E; }
.rsv-map-btn-icon svg { width:22px; height:22px; }
.rsv-map-btn-text { flex:1; display:flex; flex-direction:column; gap:3px; }
.rsv-map-btn-label {
  font-family:'Pretendard',sans-serif;
  font-size:15px; font-weight:500; color:var(--dark); letter-spacing:.01em;
}
.rsv-map-btn-sub {
  font-family:'DM Sans',sans-serif;
  font-size:11px; color:rgba(60,44,28,.45); letter-spacing:.04em;
}
.rsv-map-btn-arrow {
  font-size:16px; color:var(--gold);
  opacity:.5; transition:opacity .2s, transform .2s;
}
.rsv-map-btn:hover .rsv-map-btn-arrow { opacity:1; transform:translateX(3px); }

/* ── 지도 ── */
.rsv-map-wrap {
  width:100%;
  border:1px solid var(--gb);
  overflow:hidden; margin-bottom:0;
  background:var(--cream);
}
.rsv-map-wrap iframe { width:100%; height:420px; display:block; }
.rsv-svg-map { display:block; width:100%; height:auto; padding:40px 48px; box-sizing:border-box; }
@media(max-width:900px) {
  .rsv-svg-map { padding:12px 8px; font-size:80%; }
  .rsv-map-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
}

/* ── 정보 그리드 ── */
.rsv-info-grid {
  display:grid; grid-template-columns:1fr 1fr 1fr;
  gap:0; border-top:1px solid var(--gb);
  border-bottom:1px solid var(--gb);
  margin-top:0;
}
.rsv-info-block {
  display:flex; gap:14px; align-items:flex-start;
  padding:28px 0;
  border-right:1px solid var(--gb);
  padding-right:28px;
}
.rsv-info-block:first-child { padding-left:0; }
.rsv-info-block:last-child { border-right:none; padding-right:0; padding-left:28px; }
.rsv-info-block:nth-child(2) { padding-left:28px; }
.rsv-info-icon {
  width:24px; height:24px; flex-shrink:0; margin-top:2px;
  display:flex; align-items:center; justify-content:center;
  color:var(--gold);
}
.rsv-info-icon svg { width:18px; height:18px; }
.rsv-info-label {
  font-size:9px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); font-family:'DM Sans',sans-serif;
  margin-bottom:10px;
}
.rsv-info-val { font-size:14px; font-weight:400; color:var(--dark); margin-bottom:6px; }
.rsv-info-sub { font-size:12.5px; font-weight:400; color:rgba(60,44,28,.5); line-height:1.8; }
.rsv-hours {
  display:grid; grid-template-columns:auto 1fr;
  gap:4px 14px; font-size:13px; font-weight:400; line-height:1.9;
  color:rgba(60,44,32,.7);
}
.rsv-hours dt { color:rgba(60,44,28,.55); font-weight:400; }
.rsv-closed { color:rgba(140,90,58,.4) !important; }

/* ── Responsive ── */
@media(max-width:900px) {
  #rsv-hero .rsv-hero-inner { padding:0 24px 40px; }
  .rsv-subnav-a { padding:14px 24px; font-size:9px; }
  .rsv-section-wrap { padding:56px 24px 72px; }
  .rsv-map-links--row { flex-direction:column; }
  .rsv-map-links--row .rsv-map-btn { flex:none; width:100%; }
  .rsv-channel-item { grid-template-columns:24px 1fr auto; gap:0 16px; padding:22px 0; }
  .rsv-map-wrap { height:240px; }
  .rsv-info-grid { grid-template-columns:1fr; }
  .rsv-info-block { border-right:none; border-bottom:1px solid var(--gb); padding:20px 0; }
  .rsv-info-block:first-child,
  .rsv-info-block:nth-child(2),
  .rsv-info-block:last-child { padding-left:0; padding-right:0; }
  .rsv-info-block:last-child { border-bottom:none; }
  .rsv-survey { flex-direction:column; gap:20px; }
}