.p-reserve .mbar { display: none; }
.p-reserve .rsv-top { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px 48px; flex-wrap: wrap; }
.p-reserve .rsv-top .lead { margin-top: 18px; }

.p-reserve .rail { display: flex; gap: 0; border-bottom: 1px solid var(--line); }
.p-reserve .rail li { display: flex; align-items: baseline; gap: 10px; padding: 12px 22px 14px 0; margin-right: 22px; font-size: 13px; letter-spacing: .08em; opacity: .4; position: relative; cursor: default; transition: opacity .3s; }
.p-reserve .rail li b { font-family: var(--en); font-weight: 300; font-size: 20px; letter-spacing: .04em; }
.p-reserve .rail li::after { content: ''; position: absolute; left: 0; right: 22px; bottom: -1px; height: 1px; background: var(--ink); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease); }
.p-reserve .rail li.on { opacity: 1; }
.p-reserve .rail li.on::after { transform: scaleX(1); }
.p-reserve .rail li.done { opacity: .8; color: var(--acc); cursor: pointer; }
.p-reserve .rail li.done b::after { content: ''; display: inline-block; width: 5px; height: 9px; margin-left: 6px; border-right: 1px solid var(--acc); border-bottom: 1px solid var(--acc); transform: rotate(45deg) translateY(-3px); }

.p-reserve .rsv { display: grid; grid-template-columns: minmax(0, 7.4fr) minmax(300px, 4.2fr); gap: clamp(32px, 5vw, 88px); align-items: start; padding-top: clamp(40px, 5vw, 64px); padding-bottom: var(--sec); }

.p-reserve .step { padding: 32px 0 44px; border-top: 1px solid var(--line); transition: opacity .4s; }
.p-reserve .step:not(.on) { opacity: .42; }
.p-reserve .step:not(.on) .step-bd { display: none; }
.p-reserve .step.cur { border-top-color: var(--ink); }
.p-reserve .step-hd { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 18px; margin-bottom: 28px; }
.p-reserve .step-hd .num { font-family: var(--en); font-weight: 300; font-size: 22px; color: var(--acc); letter-spacing: .04em; }
.p-reserve .step-hd h2 { font-family: var(--ko); font-weight: 300; font-size: 24px; margin: 0; }
.p-reserve .step-hd .pick { margin-left: auto; font-size: 14px; color: var(--acc); }
.p-reserve .step .err { margin-top: 18px; }
.p-reserve .step .err::before { content: ''; display: inline-block; width: 14px; height: 1px; background: var(--acc); vertical-align: middle; margin-right: 10px; }

.p-reserve .cal-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; margin-bottom: 4px; }
.p-reserve .cal-room { display: inline-flex; align-items: center; gap: 14px; font-size: 13px; letter-spacing: .04em; color: var(--acc); border: 1px solid var(--line); padding: 6px 6px 6px 14px; }
.p-reserve .cal-room button { font-size: 12px; letter-spacing: .08em; padding: 4px 10px; border: 1px solid var(--line); color: var(--ink); }
.p-reserve .cal-room button:hover { border-color: var(--acc); }
.p-reserve .cal-nav { display: flex; gap: 8px; margin-left: auto; }
.p-reserve .cal-nav button { width: 40px; height: 40px; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; transition: border-color .3s; }
.p-reserve .cal-nav button:hover:not(:disabled) { border-color: var(--acc); }
.p-reserve .cal-nav button:disabled { opacity: .3; cursor: default; }
.p-reserve .months { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.p-reserve .month { transition: opacity .3s; }
.p-reserve .month.wait { opacity: .5; }
.p-reserve .m-title { font-family: var(--en); font-weight: 300; font-size: 24px; letter-spacing: .06em; margin: 0 0 14px; }
.p-reserve .m-title span { color: var(--acc); padding: 0 4px; }
.p-reserve .grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px 2px; }
.p-reserve .grid .w { font-size: 12px; letter-spacing: .08em; color: var(--acc); text-align: center; padding: 0 0 10px; }
.p-reserve .grid .w:first-child { color: var(--ink); opacity: .45; }
.p-reserve .grid button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; aspect-ratio: 1; max-height: 64px; width: 100%; position: relative; transition: background .2s, color .2s; }
.p-reserve .grid button b { font-weight: 400; font-size: 16px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.p-reserve .grid button small { font-size: 11px; line-height: 1.1; letter-spacing: .02em; color: var(--acc); }
.p-reserve .grid button.sun b { color: var(--acc); }
.p-reserve .grid button.today b { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--acc); }
.p-reserve .grid button:hover:not(:disabled) { outline: 1px solid var(--acc); outline-offset: -1px; }
.p-reserve .grid button:disabled { cursor: default; }
.p-reserve .grid button:disabled b, .p-reserve .grid button:disabled small { opacity: .28; }
.p-reserve .grid button.soldout { background: var(--line); }
.p-reserve .grid button.soldout b { opacity: .4; text-decoration: line-through; }
.p-reserve .grid button.soldout small { opacity: .55; color: var(--ink); }
.p-reserve .grid button.soldout:not(:disabled) b { opacity: .7; text-decoration: none; }
.p-reserve .grid button.in { background: rgba(138, 117, 88, .14); }
.p-reserve .grid button.a, .p-reserve .grid button.b { background: var(--acc); }
.p-reserve .grid button.a b, .p-reserve .grid button.b b, .p-reserve .grid button.a small, .p-reserve .grid button.b small { color: var(--bg); opacity: 1; }
.p-reserve .grid button.a::after, .p-reserve .grid button.b::after { content: 'IN'; position: absolute; top: 4px; right: 6px; font-size: 8px; letter-spacing: .1em; color: var(--bg); opacity: .8; }
.p-reserve .grid button.b::after { content: 'OUT'; }
.p-reserve .legend { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 22px; font-size: 13px; opacity: .8; }
.p-reserve .legend span { display: inline-flex; align-items: center; gap: 8px; }
.p-reserve .legend i { width: 12px; height: 12px; display: inline-block; border: 1px solid var(--line); }
.p-reserve .legend .lg-full { background: var(--line); }
.p-reserve .legend .lg-pick { background: var(--acc); border-color: var(--acc); }

.p-reserve .rlist { display: grid; gap: 10px; }
.p-reserve .room { width: 100%; display: grid; grid-template-columns: 112px 1fr auto; grid-template-rows: auto auto; column-gap: 20px; row-gap: 2px; align-items: center; text-align: left; padding: 10px 18px 10px 10px; border: 1px solid var(--line); transition: border-color .2s, background .2s; }
.p-reserve .room .r-ph { grid-row: 1 / 3; width: 112px; aspect-ratio: 3 / 2; background: var(--line); overflow: hidden; }
.p-reserve .room .r-ph img { width: 100%; height: 100%; object-fit: cover; display: block; transition: scale .8s var(--ease); }
.p-reserve .room:hover:not(:disabled) .r-ph img { scale: 1.05; }
.p-reserve .room .r-name { font-family: var(--ko); font-weight: 300; font-size: 19px; align-self: end; line-height: 1.3; }
.p-reserve .room .r-name small { font-family: var(--sans); font-size: 13px; color: var(--acc); margin-left: 10px; letter-spacing: .02em; }
.p-reserve .room .r-spec { grid-column: 2; font-size: 14px; opacity: .7; align-self: start; }
.p-reserve .room .r-right { grid-row: 1 / 3; grid-column: 3; text-align: right; display: grid; gap: 2px; }
.p-reserve .room .r-right b { font-weight: 400; font-size: 17px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.p-reserve .room .r-right small { font-size: 12px; opacity: .6; letter-spacing: .02em; }
.p-reserve .room:hover:not(:disabled) { border-color: var(--acc); }
.p-reserve .room.on { border-color: var(--acc); box-shadow: inset 0 0 0 1px var(--acc); }
.p-reserve .room.on .r-right b::before { content: ''; display: inline-block; width: 5px; height: 9px; margin-right: 10px; border-right: 1px solid var(--acc); border-bottom: 1px solid var(--acc); transform: rotate(45deg) translateY(-2px); }
.p-reserve .room:disabled { cursor: default; }
.p-reserve .room.sold { background: rgba(217, 210, 199, .35); border-color: transparent; }
.p-reserve .room.sold .r-ph img { filter: grayscale(1); opacity: .45; }
.p-reserve .room.sold .r-name, .p-reserve .room.sold .r-spec { opacity: .45; }
.p-reserve .room.sold .r-right b { color: var(--acc); font-size: 14px; letter-spacing: .1em; }
.p-reserve .room.sold .r-right small { opacity: .5; max-width: 180px; }

.p-reserve .pax { border-top: 1px solid var(--ink); }
.p-reserve .pax .row { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.p-reserve .pax .row > span { font-size: 16px; }
.p-reserve .pax .row small { display: block; font-size: 13px; opacity: .6; }
.p-reserve .stepper output { font-variant-numeric: tabular-nums; }
.p-reserve .sub { font-family: var(--ko); font-weight: 300; font-size: 19px; margin: 40px 0 14px; }
.p-reserve .opts { display: grid; gap: 10px; }
.p-reserve .opt { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 18px; border: 1px solid var(--line); transition: border-color .2s; }
.p-reserve .opt.on { border-color: var(--acc); }
.p-reserve .opt-tx { display: grid; gap: 2px; min-width: 0; }
.p-reserve .opt-tx b { font-weight: 400; font-size: 16px; }
.p-reserve .opt-tx b em { font-style: normal; font-size: 12px; letter-spacing: .06em; color: var(--acc); border: 1px solid var(--line); padding: 1px 8px; margin-left: 10px; vertical-align: 2px; }
.p-reserve .opt-price { font-size: 15px; }
.p-reserve .opt-price small { font-size: 13px; opacity: .7; }
.p-reserve .opt-tx p { margin: 6px 0 0; font-size: 13.5px; opacity: .7; line-height: 1.6; }
.p-reserve .opt-add { flex: none; height: 40px; padding: 0 18px; border: 1px solid var(--line); font-size: 13px; letter-spacing: .1em; transition: background .2s, color .2s, border-color .2s; }
.p-reserve .opt-add:hover { border-color: var(--acc); }
.p-reserve .opt-add.on { background: var(--acc); border-color: var(--acc); color: var(--bg); }
.p-reserve .opt .stepper { flex: none; }

.p-reserve .paym { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.p-reserve .paym legend { padding: 0; margin-bottom: 10px; font-size: 13px; letter-spacing: .06em; opacity: .7; }
.p-reserve .paym label { position: relative; }
.p-reserve .paym input { position: absolute; opacity: 0; }
.p-reserve .paym span { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px; border: 1px solid var(--line); font-size: 14.5px; text-align: center; cursor: pointer; transition: border-color .2s, color .2s; }
.p-reserve .paym input:checked + span { border-color: var(--acc); color: var(--acc); }
.p-reserve .paym input:focus-visible + span { outline: 2px solid var(--acc); outline-offset: 2px; }
@media (max-width: 560px) { .p-reserve .paym { grid-template-columns: repeat(2, 1fr); } }

.p-reserve .form.guest .notice { margin: 0; font-size: 13.5px; opacity: .7; }
.p-reserve .agree { border-top: 1px solid var(--ink); margin-top: 6px; }
.p-reserve .form .check { display: flex; gap: 12px; align-items: flex-start; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 15px; color: var(--ink); letter-spacing: 0; }
.p-reserve .agree .check.all { font-weight: 500; }
.p-reserve .agree .check a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--line); }
.p-reserve .agree .check a:hover { text-decoration-color: var(--acc); }
.p-reserve .agree .check em { font-style: normal; font-size: 12px; color: var(--acc); margin-left: 6px; letter-spacing: .06em; }
.p-reserve .rf { margin-top: 8px; }
.p-reserve .rf .label { margin-bottom: 10px; }
.p-reserve .rf table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--line); font-size: 14px; }
.p-reserve .rf th, .p-reserve .rf td { padding: 9px 0; border-bottom: 1px solid var(--line); font-weight: 400; text-align: left; }
.p-reserve .rf th small { font-size: 12px; color: var(--acc); margin-left: 8px; }
.p-reserve .rf td { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.p-reserve .rf td:first-of-type { color: var(--acc); padding-right: 18px; }
.p-reserve .rf .hint { margin-top: 10px; }

.p-reserve .sum { position: sticky; top: calc(96px + var(--envh)); background: var(--ink); color: var(--bg); }
.p-reserve .sum-bar { display: none; }
.p-reserve .sum-body { padding: 30px 28px 28px; }
.p-reserve .sum .label { opacity: .9; }
.p-reserve .sum-main { margin: 16px 0 0; border-top: 1px solid rgba(244, 241, 236, .35); }
.p-reserve .sum dl div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid rgba(244, 241, 236, .14); font-size: 15px; }
.p-reserve .sum dt { color: var(--acc); font-size: 13px; letter-spacing: .04em; flex: none; padding-top: 2px; }
.p-reserve .sum dt small { display: block; font-size: 12px; opacity: .75; letter-spacing: 0; }
.p-reserve .sum dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.p-reserve .sum-q { margin-top: 22px; }
.p-reserve .sum-q dl { margin: 0; }
.p-reserve .sum-q dl div { font-size: 14px; padding: 9px 0; }
.p-reserve .sum-q dl dt { color: var(--bg); opacity: .85; font-size: 14px; }
.p-reserve .sum-q dl dt small { color: var(--acc); opacity: 1; }
.p-reserve .sum-empty { margin: 0; font-size: 14px; opacity: .6; line-height: 1.7; }
.p-reserve .sum-tbd { margin: 10px 0 0; font-size: 13px; opacity: .8; }
.p-reserve .sum .tbd { color: var(--acc); }
.p-reserve .sum-total { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(244, 241, 236, .35); font-size: 14px; letter-spacing: .04em; }
.p-reserve .sum-total b { font-family: var(--ko); font-weight: 300; font-size: 26px; font-variant-numeric: tabular-nums; }
.p-reserve .sum-onsite { display: flex; justify-content: space-between; gap: 16px; margin-top: 10px; font-size: 13px; opacity: .85; }
.p-reserve .sum-onsite b { font-weight: 400; text-align: right; }
.p-reserve .sum-onsite small { display: block; font-size: 12px; opacity: .7; }
.p-reserve .sum .btn.pay { width: 100%; margin-top: 24px; border-color: var(--bg); color: var(--bg); min-height: 56px; }
.p-reserve .sum .btn.pay:hover { background: var(--bg); color: var(--ink); }
.p-reserve .sum .btn.pay[disabled] { opacity: .35; }
.p-reserve .sum .err { color: var(--bg); opacity: .9; }
.p-reserve .sum-note { margin: 16px 0 0; font-size: 13px; line-height: 1.7; opacity: .55; }

.p-reserve .paybox { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(43, 39, 36, .62); }
.p-reserve .paybox-in { width: min(100%, 540px); max-height: 90vh; overflow: auto; background: var(--bg); padding: 32px 32px 24px; }
.p-reserve .paybox-in h2 { font-family: var(--ko); font-weight: 300; font-size: 24px; margin: 10px 0 14px; }
.p-reserve .paybox-time { display: flex; align-items: baseline; gap: 14px; margin: 0; font-size: 14px; opacity: .85; }
.p-reserve .paybox-time b { font-family: var(--en); font-weight: 300; font-size: 30px; color: var(--acc); letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.p-reserve .paybox-msg { margin: 18px 0 0; font-size: 15px; }
.p-reserve .paybox-sdk { margin: 16px 0 0; }
.p-reserve .paybox-acts { display: grid; gap: 14px; margin-top: 24px; justify-items: center; }
.p-reserve .paybox-acts .btn { width: 100%; }
.p-reserve .paybox-cancel { font-size: 13px; letter-spacing: .06em; color: var(--acc); padding: 6px 0; border-bottom: 1px solid var(--line); }
body.pay-open { overflow: hidden; }

.p-reserve .done { padding: calc(156px + var(--envh)) 0 var(--sec); }
.p-reserve .done-in { max-width: 720px; }
.p-reserve .done h1 { font-family: var(--ko); font-weight: 300; font-size: clamp(32px, 4.2vw, 56px); line-height: 1.25; margin: 18px 0 20px; }
.p-reserve .done-in > p { max-width: 560px; opacity: .85; }
.p-reserve .done-acts { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 32px; margin-top: 30px; }
.p-reserve .ticket { margin-top: clamp(40px, 5vw, 64px); border: 1px solid var(--ink); display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.p-reserve .ticket-hd { grid-column: 1 / -1; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 28px 32px 24px; border-bottom: 1px solid var(--ink); }
.p-reserve .ticket-hd .code { font-family: var(--en); font-weight: 300; font-size: clamp(30px, 3.6vw, 46px); letter-spacing: .06em; line-height: 1; margin: 10px 0 0; }
.p-reserve .ticket-status { margin: 0; font-size: 13px; letter-spacing: .1em; color: var(--acc); border: 1px solid var(--acc); padding: 6px 14px; }
.p-reserve .ticket-main { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 20px; padding: 28px 32px; margin: 0; border-right: 1px dashed var(--line); }
.p-reserve .ticket-main dt { font-size: 12px; letter-spacing: .2em; color: var(--acc); }
.p-reserve .ticket-main dd { margin: 6px 0 0; font-family: var(--ko); font-weight: 300; font-size: 21px; line-height: 1.3; }
.p-reserve .ticket-main dd small { display: block; font-family: var(--sans); font-size: 13px; opacity: .7; margin-top: 3px; }
.p-reserve .ticket-pay { margin: 0; padding: 22px 32px 24px; font-size: 15px; }
.p-reserve .ticket-pay div { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.p-reserve .ticket-pay dt small, .p-reserve .ticket-pay dd { font-variant-numeric: tabular-nums; }
.p-reserve .ticket-pay dt small { display: block; font-size: 12px; opacity: .65; }
.p-reserve .ticket-pay dd { margin: 0; text-align: right; }
.p-reserve .ticket-pay .tot { border-top: 1px solid var(--ink); border-bottom: 0; margin-top: 6px; padding-top: 14px; }
.p-reserve .ticket-pay .tot dd { font-family: var(--ko); font-weight: 300; font-size: 24px; }
.p-reserve .ticket-pay .onsite-hd { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 12px; color: var(--acc); font-size: 13px; letter-spacing: .06em; border-bottom: 0; }
.p-reserve .ticket-pay .onsite { font-size: 14px; opacity: .8; }
.p-reserve .ticket-req { grid-column: 1 / -1; margin: 0; padding: 18px 32px 22px; border-top: 1px solid var(--line); font-size: 15px; }
.p-reserve .ticket-req .label { display: block; margin-bottom: 6px; }
.p-reserve .done-guide { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: clamp(48px, 6vw, 80px); }
.p-reserve .done-guide h2 { font-family: var(--ko); font-weight: 300; font-size: 24px; margin: 10px 0 16px; }
.p-reserve .done-guide ul { font-size: 15px; opacity: .85; display: grid; gap: 8px; }
.p-reserve .done-guide li { padding-left: 14px; position: relative; }
.p-reserve .done-guide li::before { content: ''; position: absolute; left: 0; top: .85em; width: 5px; height: 1px; background: var(--acc); }
.p-reserve .done-guide a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--line); }
.p-reserve .done-guide p { font-size: 15px; opacity: .85; }
.p-reserve .done-guide .done-acts { margin-top: 22px; }
.p-reserve .done.fail .done-in { max-width: 640px; }

@media (max-width: 1080px) {
  .p-reserve .rsv { grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; }
  .p-reserve .months { gap: 20px; }
  .p-reserve .sum-body { padding: 24px 20px; }
}

@media (max-width: 900px) {
  body.p-reserve { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
  .p-reserve .rsv-top { align-items: flex-start; }
  .p-reserve .rail { width: 100%; }
  .p-reserve .rail li { flex: 1; padding: 10px 0 12px; margin-right: 12px; font-size: 12px; gap: 6px; }
  .p-reserve .rail li:last-child { margin-right: 0; }
  .p-reserve .rail li b { font-size: 17px; }
  .p-reserve .rail li::after { right: 0; }
  .p-reserve .rsv { grid-template-columns: 1fr; padding-top: 32px; }
  .p-reserve .step { padding: 26px 0 36px; }
  .p-reserve .step-hd { margin-bottom: 22px; }
  .p-reserve .step-hd .pick { margin-left: 0; width: 100%; }
  .p-reserve .months { grid-template-columns: 1fr; }
  .p-reserve .month + .month { display: none; }
  .p-reserve .grid button { max-height: 72px; }
  .p-reserve .grid button b { font-size: 15px; }
  .p-reserve .cal-room { padding-left: 10px; gap: 8px; }
  .p-reserve .room { grid-template-columns: 84px 1fr; grid-template-rows: auto auto auto; column-gap: 14px; padding: 10px 12px 12px 10px; }
  .p-reserve .room .r-ph { width: 84px; grid-row: 1 / 3; }
  .p-reserve .room .r-name { font-size: 17px; }
  .p-reserve .room .r-name small { display: block; margin: 2px 0 0; }
  .p-reserve .room .r-right { grid-row: 3; grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); text-align: left; }
  .p-reserve .room .r-right b { font-size: 17px; }
  .p-reserve .room.sold .r-right small { max-width: none; text-align: right; }
  .p-reserve .opt { flex-wrap: wrap; }
  .p-reserve .opt-tx { flex: 1 1 200px; }
  .p-reserve .rf th small { display: block; margin: 0; }

  .p-reserve .sum { position: fixed; inset: auto 0 0; top: auto; z-index: 45; display: flex; flex-direction: column-reverse; max-height: 86vh; max-height: 86svh; border-top: 1px solid rgba(244, 241, 236, .2); padding-bottom: env(safe-area-inset-bottom); }
  .p-reserve .sum-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 0 12px 0 16px; min-height: 68px; }
  .p-reserve .sum-tgl { display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; min-width: 0; height: 68px; }
  .p-reserve .sum-tgl span { display: grid; gap: 1px; min-width: 0; }
  .p-reserve .sum-tgl small { font-size: 12px; opacity: .65; letter-spacing: .02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .p-reserve .sum-tgl b { font-family: var(--ko); font-weight: 300; font-size: 19px; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .p-reserve .sum-tgl svg { flex: none; transition: transform .4s var(--ease); }
  .p-reserve .sum.open .sum-tgl svg { transform: rotate(180deg); }
  .p-reserve .sum-bar .btn.pay { min-height: 46px; padding: 0 20px; border-color: var(--bg); background: var(--bg); color: var(--ink); white-space: nowrap; }
  .p-reserve .sum-bar .btn.pay[disabled] { opacity: .35; }
  .p-reserve .sum-body { display: none; overflow: auto; padding: 22px 20px 20px; border-bottom: 1px solid rgba(244, 241, 236, .14); }
  .p-reserve .sum.open .sum-body { display: block; }
  .p-reserve .sum-body .btn.pay { display: none; }
  .p-reserve .sum-note { margin-top: 12px; }

  .p-reserve .paybox { padding: 0; align-items: flex-end; }
  .p-reserve .paybox-in { padding: 28px 22px 22px; max-height: 92vh; }
  .p-reserve .done { padding-top: calc(110px + var(--envh)); }
  .p-reserve .ticket { grid-template-columns: 1fr; }
  .p-reserve .ticket-hd { padding: 22px 20px 20px; }
  .p-reserve .ticket-main { padding: 22px 20px; border-right: 0; border-bottom: 1px dashed var(--line); gap: 18px 16px; }
  .p-reserve .ticket-main dd { font-size: 19px; }
  .p-reserve .ticket-pay { padding: 18px 20px 20px; }
  .p-reserve .ticket-req { padding: 16px 20px 20px; }
  .p-reserve .done-guide { grid-template-columns: 1fr; gap: 36px; }
}

@media (max-width: 360px) {
  .p-reserve .grid button small { font-size: 10px; }
  .p-reserve .sum-bar .btn.pay { padding: 0 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .p-reserve .rail li::after, .p-reserve .room .r-ph img, .p-reserve .sum-tgl svg { transition: none; }
}
