.supper-page{background:var(--paper) url('assets/backgrounds/bg-paper-light.webp') center top/cover fixed}
.supper-header{position:sticky;top:0;z-index:20;min-height:82px;padding:0 5.2vw;display:flex;align-items:center;justify-content:space-between;background:var(--paper) url('assets/backgrounds/bg-paper-warm.webp') center/cover;border-bottom:1px solid var(--line)}
.supper-brand{height:82px;display:flex;align-items:center}
.supper-brand img{height:72px;width:auto}
.supper-nav-flag{position:absolute;top:50%;left:50%;width:116px;height:8px;object-fit:fill;opacity:.78;transform:translate(-50%,-50%)}
.back-home{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.supper-page main{display:grid;grid-template-columns:minmax(340px,.86fr) minmax(520px,1.14fr);min-height:calc(100vh - 82px)}
.supper-intro{padding:82px 6vw 74px 7vw;color:#fff3df;background:var(--red) url('assets/backgrounds/bg-red.webp') center/cover}
.supper-eyebrow,.step-label{margin:0 0 18px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.supper-intro h1{color:#fff3df;font-size:clamp(76px,8vw,126px);line-height:.84}
.supper-lede{margin:28px 0 32px;font-size:27px;font-style:italic;line-height:1.16}
.clue-card{padding:24px 26px;border:1px solid rgba(255,243,223,.42);background:rgba(56,12,5,.12)}
.clue-card span{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#f5dfbd}
.clue-card p{margin:8px 0 0;font-size:22px;font-style:italic;line-height:1.2}
.supper-note{max-width:520px;margin:30px 0 0;font-family:var(--sans);font-size:12px;line-height:1.55;letter-spacing:.04em}
.reservation-panel{padding:74px 7vw 80px;background:rgba(253,244,226,.76)}
.reservation-heading h2,.confirmation h2{color:var(--accent-red);font-size:clamp(54px,5vw,78px);margin-bottom:12px}
.reservation-heading>p:last-child{margin:0 0 34px;font-size:21px}
.reservation-form fieldset{border:0;padding:0;margin:0 0 34px}
.reservation-form legend,.field label{display:block;margin:0 0 10px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brown)}
.field label span{float:right;font-size:9px;font-weight:500;color:var(--muted)}
.date-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.date-option{position:relative;cursor:pointer}
.date-option input{position:absolute;opacity:0;pointer-events:none}
.date-option span{display:flex;align-items:center;min-height:54px;padding:12px 16px;border:1px solid var(--line);background:rgba(255,249,238,.45);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;transition:.18s ease}
.date-option input:checked+span{background:var(--red);border-color:var(--red);color:#fff3df}
.date-option input:focus-visible+span{outline:3px solid rgba(92,13,7,.28);outline-offset:2px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 18px}
.full-width{grid-column:1/-1}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:0;background:rgba(255,249,238,.58);color:var(--ink);font:500 16px/1.3 var(--sans);padding:15px 16px;appearance:none}
.field textarea{resize:vertical;min-height:100px}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(92,13,7,.18);border-color:var(--red)}
.privacy-note{margin:22px 0 18px;font-family:var(--sans);font-size:11px;color:var(--muted)}
.submit-reservation{border:0;cursor:pointer;min-width:220px}
.submit-reservation:disabled{opacity:.65;cursor:wait}
.form-status{min-height:24px;margin:14px 0 0;color:var(--red);font-weight:600}
.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.confirmation{padding-top:64px;outline:0}
.confirmation>p:not(.step-label){font-size:23px;margin:0 0 16px}
.confirmation .btn{margin-top:18px}
.manage-panel{max-width:760px;margin:70px auto}
.manage-panel h1{font-family:var(--serif);font-size:clamp(2.6rem,7vw,4.8rem);line-height:.95;color:var(--red)}
.cancel-reservation{display:block;margin:22px auto 0;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--red);cursor:pointer;font:600 .76rem/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase}
.supper-footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:28px 5.2vw;color:#f5dfbd;background:var(--brown) url('assets/backgrounds/bg-brown.webp') center/cover;font-family:var(--sans);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.supper-footer a{display:inline-flex}
.supper-footer img{width:130px}
.supper-footer p{margin:0}
@media (max-width:900px){
  .supper-nav-flag{top:50%;bottom:auto;width:108px;height:7px;opacity:.78;transform:translate(-50%,-50%)}
  .supper-page main{grid-template-columns:1fr}
  .supper-intro,.reservation-panel{padding:54px 26px}
  .supper-intro h1{font-size:clamp(76px,22vw,108px)}
  .date-options,.form-grid{grid-template-columns:1fr}
  .full-width{grid-column:auto}
  .supper-footer{flex-direction:column;text-align:center}
}
@media (max-width:480px){
  .supper-header{padding:0 20px}.supper-brand img{height:62px}.back-home{font-size:10px}
  .supper-nav-flag{left:50%;width:clamp(64px,18vw,78px);height:6px}
  .supper-intro,.reservation-panel{padding:44px 22px}
  .supper-lede{font-size:24px}
}
