/* 진료예약 안내 전용: 공통 메뉴와 다른 안내 페이지에 영향을 주지 않는다. */
#cont_wrap.reservation-guide { min-height:750px; padding-bottom:64px; color:#26364a; font-size:16px; line-height:1.7; letter-spacing:-.025em; }
.reservation-guide > .heading { margin-bottom:18px; }
.reservation-guide-intro { display:flex; align-items:center; gap:20px; justify-content:space-between; margin-bottom:36px; }
.reservation-guide-intro p { flex:1; margin:0; color:#536176; font-size:16px; line-height:1.7; text-align:justify; word-break:normal; overflow-wrap:break-word; }
.reservation-guide .reservation-guide-link { display:inline-flex; flex:none; align-items:center; justify-content:center; gap:18px; min-height:44px; padding:9px 16px; border:1px solid #bdccdf; border-radius:4px; background:#f2f6fc; color:#1f4bb4; font-size:15px; font-weight:600; line-height:1.5; text-decoration:none; box-sizing:border-box; transition:none; }
.reservation-guide .reservation-guide-link span { font-size:20px; transition:none; }
.reservation-guide .reservation-guide-link:hover, .reservation-guide .reservation-guide-link:focus-visible { color:#8b2948; background:#f2f6fc; text-decoration:none; transform:none; box-shadow:none; }
.reservation-guide .reservation-guide-link:focus-visible { outline:2px solid #1f4bb4; outline-offset:3px; }
.reservation-guide .reservation-section-title { display:flex; align-items:center; gap:20px; margin:0 0 20px; padding:0; color:#263c58; font-size:23px; font-weight:700; line-height:1.4; }
.reservation-section-title::after { content:""; flex:1; height:1px; background:#dce3ec; }
.reservation-process + .reservation-process { margin-top:36px; }
.reservation-guide .reservation-steps { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:14px; margin:0; padding:0; list-style:none; }
.reservation-steps > li { --step-accent:#30496d; --step-surface:#f5f7fa; --step-border:#d5dde5; position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:16px; margin:0; padding:24px 20px; border:1px solid var(--step-border); border-radius:6px; background:var(--step-surface); min-width:0; box-sizing:border-box; }
.reservation-steps > li:not(:last-child)::after { content:""; position:absolute; top:48px; right:-12px; z-index:1; width:9px; height:9px; border-top:2px solid #8299b3; border-right:2px solid #8299b3; transform:rotate(45deg); }
.reservation-step-icon { color:var(--step-accent); }
.reservation-step-icon svg { display:block; width:48px; height:48px; }
.reservation-step-number { display:block; margin-bottom:6px; color:var(--step-accent); font-size:14px; line-height:1.4; font-weight:700; letter-spacing:.04em; }
.reservation-steps h4 { margin:0; color:#203854; font-size:19px; font-weight:700; line-height:1.45; word-break:normal; overflow-wrap:break-word; }
.reservation-steps p { margin:8px 0 0; color:#4e6076; font-size:15px; line-height:1.6; word-break:normal; overflow-wrap:break-word; }
.reservation-guide .reservation-info-title { margin-top:40px; }
.reservation-guide .table1 { width:100%; border-collapse:collapse; border-top:2px solid #30496d; table-layout:fixed; }
.reservation-guide .table1 th, .reservation-guide .table1 td { padding:18px 20px; border-bottom:1px solid #dce3ec; vertical-align:top; font-size:15px; line-height:1.8; color:#35485f; }
.reservation-guide .table1 th { background:#f4f7fb; text-align:left; font-weight:600; }
.reservation-guide .table1 td { background:#fff; font-weight:400; }
.reservation-guide ul.list { margin:0; padding:0; list-style:none; }
.reservation-guide ul.list li { position:relative; margin:0 0 8px; padding-left:12px; background:none; color:#35485f; font-size:15px; font-weight:400; line-height:1.8; text-align:justify; word-break:normal; overflow-wrap:break-word; }
.reservation-guide ul.list li:last-child { margin-bottom:0; }
.reservation-guide ul.list li::before { content:""; position:absolute; left:0; top:12px; width:3px; height:3px; background:#8295ad; border-radius:50%; }
.reservation-saturday { color:#8b2948; }
.reservation-guide .rsv_inter_wrap > .reservation-guide-link { margin-top:20px; }
@media (max-width:1024px) {
  #cont_wrap.reservation-guide { min-height:480px; padding:30px 15px 50px; }
  .reservation-guide-intro { margin-bottom:28px; }
}
@media (max-width:600px) {
  .reservation-guide-intro { flex-direction:column; align-items:stretch; gap:16px; }
  .reservation-guide-intro p { font-size:15px; }
  .reservation-guide .reservation-section-title { margin-bottom:16px; font-size:21px; gap:16px; }
  .reservation-guide .reservation-steps { grid-auto-flow:row; grid-template-columns:minmax(0,1fr); gap:12px; }
  .reservation-steps > li { flex-direction:row; align-items:center; gap:18px; padding:20px; }
  .reservation-step-icon { flex:0 0 44px; }
  .reservation-step-icon svg { width:44px; height:44px; }
  .reservation-step-copy { flex:1; min-width:0; }
  .reservation-step-number { margin-bottom:4px; font-size:13px; }
  .reservation-steps h4 { font-size:18px; }
  .reservation-steps p { margin-top:5px; font-size:15px; }
  .reservation-steps > li:not(:last-child)::after { top:auto; right:auto; left:38px; bottom:-10px; width:8px; height:8px; transform:rotate(135deg); }
  .reservation-process + .reservation-process { margin-top:30px; }
  .reservation-guide .reservation-info-title { margin-top:32px; }
  .reservation-guide .table1, .reservation-guide .table1 tbody, .reservation-guide .table1 tr, .reservation-guide .table1 th, .reservation-guide .table1 td { display:block; width:auto; }
  .reservation-guide .table1 colgroup { display:none; }
  .reservation-guide .table1 th { padding:12px 16px; border-bottom:0; }
  .reservation-guide .table1 td { padding:14px 16px 18px; }
}

@media (max-width:1024px) {
  body:has(.reservation-guide) .container > .row { margin-left:0; margin-right:0; }
  .reservation-guide-layout > .row > .col-sm-9 { padding-left:0; padding-right:0; }
}
