.reservation-body{background:#f8f6f0}
.reservation-page{padding:46px 4vw 110px;max-width:1440px;margin:0 auto}
.reservation-back{display:inline-block;margin-bottom:48px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid}
.reservation-layout{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(500px,1.22fr);gap:clamp(50px,8vw,130px);align-items:start}
.reservation-event{position:sticky;top:35px;padding:48px;background:#e8e2d6}
.reservation-event h1{font-size:clamp(54px,6.3vw,90px);font-weight:300;line-height:.88;letter-spacing:-.055em;margin:26px 0 44px}
.reservation-event dl{margin:0;border-top:1px solid #292a2530}
.reservation-event dl div{display:grid;grid-template-columns:90px 1fr;gap:18px;padding:17px 0;border-bottom:1px solid #292a2530}
.reservation-event dt{font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.65}.reservation-event dd{margin:0}
.availability{display:flex;align-items:center;gap:10px;margin:28px 0 20px}.availability span{width:8px;height:8px;border-radius:50%;background:#687660}.availability strong{font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.event-note{font-size:14px;line-height:1.7;margin:0;max-width:390px}
.reservation-form-wrap{padding-top:14px}.reservation-progress{display:flex;align-items:center;gap:14px;margin-bottom:42px;color:#777}.reservation-progress b{font-size:11px;font-weight:500}.reservation-progress b:first-child{color:#282923}.reservation-progress span{height:1px;width:54px;background:#292a2530}
.reservation-form-wrap>h2,.reservation-ready h2{font-size:clamp(42px,5vw,68px);line-height:.95;letter-spacing:-.045em;font-weight:300;margin:0 0 20px}.form-lead{font-size:17px;max-width:560px;line-height:1.65;margin:0 0 42px}
.quantity-row{display:flex;align-items:center;justify-content:space-between;padding:24px 0;border-top:1px solid #292a2530;border-bottom:1px solid #292a2530}.quantity-row label{display:block;font-size:17px}.quantity-row small{display:block;margin-top:4px;opacity:.6;letter-spacing:.04em}
.quantity-control{display:flex;align-items:center;gap:22px}.quantity-control button{width:42px;height:42px;border:1px solid #282923;border-radius:50%;background:transparent;font-size:21px;line-height:1}.quantity-control output{min-width:20px;text-align:center;font-size:21px}
.reservation-fields{display:grid;grid-template-columns:1fr 1fr;gap:24px 20px;margin:34px 0}.reservation-fields label{font-size:11px;letter-spacing:.08em;text-transform:uppercase}.reservation-fields label span{opacity:.55;text-transform:none;letter-spacing:0}.reservation-fields .full{grid-column:1/-1}.reservation-fields input,.reservation-fields textarea{display:block;width:100%;border:0;border-bottom:1px solid #282923;background:transparent;padding:12px 0 10px;font:400 16px/1.4 'DM Sans',sans-serif;border-radius:0;outline:none}.reservation-fields textarea{border:1px solid #292a2545;padding:12px;margin-top:10px;resize:vertical}.reservation-fields input:focus,.reservation-fields textarea:focus{border-color:#000;box-shadow:0 1px 0 #000}
.reservation-summary{margin:38px 0 25px;border-top:1px solid #292a2530}.reservation-summary>div{display:flex;justify-content:space-between;gap:25px;padding:17px 0;border-bottom:1px solid #292a2530}.reservation-summary strong{font-weight:500}.reservation-summary .summary-total{font-size:19px;padding-top:22px}.reservation-summary .summary-total strong{font-size:24px}
.consent{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.55}.consent input{margin-top:3px;accent-color:#282923}.consent a{border-bottom:1px solid}
.payment-test-note{margin:25px 0 14px;padding:13px 16px;background:#e8e2d6;font-size:12px;line-height:1.5}.payment-test-note b{font-size:10px;letter-spacing:.12em;margin-right:7px}
.payment-button{width:100%;border:0;background:#282923;color:#f8f6f0;padding:18px 24px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.payment-button span{opacity:.5;margin:0 5px}.payment-security{text-align:center;font-size:12px;opacity:.58;margin:12px 0 0}
.reservation-ready{padding:45px;background:#e8e2d6}.reservation-ready small{display:block;margin-bottom:26px}.reservation-ready p{font-size:17px;line-height:1.7;max-width:590px}.reservation-ready button{border:1px solid #282923;background:transparent;padding:12px 20px;margin-top:15px}
.cancellation{margin-top:58px;padding-top:28px;border-top:1px solid #292a2530}.cancellation h3{font-size:22px;font-weight:400;margin:0 0 14px}.cancellation p{font-size:14px;line-height:1.7;max-width:670px;margin:0}
.cancellation .cancellation-organizer{font-size:12px;color:#69665f;margin:0 0 11px}
.datecards footer .reservation-link{border:0;background:none;padding:0;border-bottom:1px solid;font-size:12px;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:800px){.reservation-page{padding:25px 18px 75px}.reservation-back{margin-bottom:28px}.reservation-layout{grid-template-columns:1fr;gap:42px}.reservation-event{position:relative;top:0;padding:32px 24px}.reservation-event h1{font-size:52px;margin:22px 0 32px}.reservation-event dl div{grid-template-columns:76px 1fr}.reservation-form-wrap{padding:0}.reservation-form-wrap>h2,.reservation-ready h2{font-size:43px}.form-lead{font-size:17px;margin-bottom:30px}.reservation-fields{grid-template-columns:1fr;gap:22px}.reservation-fields .full{grid-column:auto}.quantity-control{gap:16px}.payment-button{font-size:12px}.cancellation{margin-top:42px}}
.event-select-label{display:grid;gap:9px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 30px}.event-select-label select{width:100%;padding:14px 12px;border:1px solid #292a2545;background:#fff;font:400 15px/1.4 'DM Sans',sans-serif}.booking-message{max-width:720px;padding:35px;background:#e8e2d6;font-size:18px}.booking-error{margin:18px 0;padding:13px 15px;background:#f4ded8;color:#78281f}.reservation-result{max-width:760px;margin:10vh auto;padding:7vw}.reservation-result h1{font-size:clamp(50px,8vw,90px);line-height:.95;font-weight:300;letter-spacing:-.05em;margin:25px 0}.reservation-result p{font-size:18px;line-height:1.7;margin-bottom:35px}.reservation-result .payment-button{display:inline-block;width:auto;text-decoration:none}
@media(max-width:800px){.event-select-label select{font-size:16px;line-height:1.45;white-space:normal}.event-select-label{margin-bottom:26px}}@media(min-width:801px) and (max-width:1100px){.event-select-label select{font-size:15px}.reservation-layout{grid-template-columns:minmax(280px,.85fr) minmax(410px,1.15fr);gap:45px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.cancellation p{margin-bottom:12px}
.cancellation a{text-decoration:underline;text-underline-offset:3px}
