.reservation-header{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1000px;margin:auto;padding:16px 24px}.reservation-header img{display:block;width:230px;height:110px;object-fit:contain}.reservation-header a{color:#0f1f3d}.reservation-main{max-width:900px;margin:20px auto;padding:0 24px 40px;font-size:18px;line-height:1.6}.reservation-main h1{font-size:44px;line-height:1.15;margin:14px 0}.reservation-main h2{font-size:30px;line-height:1.2;margin:0 0 20px}.test-explanation{background:#fff0bf;padding:18px;border-radius:12px;color:#302713}.reservation-panel{background:#ffffff;border:1px solid #cfd7e6;border-radius:16px;padding:28px;margin:24px 0}.reservation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}.reservation-main label{display:block;font-weight:600}.reservation-main input:not([type=checkbox]):not([type=radio]),.reservation-main textarea{display:block;width:100%;max-width:100%;border:1px solid #8493b0;border-radius:8px;padding:12px;font:inherit;background:#fff;color:#0f1f3d;min-height:50px}.reservation-main fieldset{border:0;padding:0;margin:22px 0}.reservation-main legend{font-weight:700;padding:0;margin-bottom:12px}.reservation-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.reservation-slot{position:relative;display:flex!important;align-items:center;gap:8px;border:1px solid #8493b0;padding:10px;border-radius:9px;cursor:pointer}.reservation-slot:has(input:checked){background:#e3ebfa;border:2px solid #0f1f3d;padding:9px}.reservation-slot input{width:20px;height:20px;flex:none}.reservation-slot small{display:block;font-size:14px;font-weight:400}.reservation-main button,.reservation-button{display:inline-block;border:2px solid #0f1f3d;border-radius:9px;padding:13px 22px;font-family:inherit;font-size:18px;line-height:1.5;font-weight:600;background:#0f1f3d;color:#fff;cursor:pointer;text-decoration:none;margin:8px 0;min-height:52px}.reservation-main button{font-family:inherit;font-size:18px;line-height:1.5;font-weight:600}.reservation-main .secondary{background:#ffffff;color:#0f1f3d}.reservation-check{display:flex!important;gap:12px;align-items:flex-start;margin:22px 0;font-weight:400!important}.reservation-check input{width:24px;height:24px;flex:none;margin-top:3px}.reservation-summary{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px}.reservation-summary dt{font-weight:700}.reservation-summary dd{margin:0;overflow-wrap:anywhere}.reservation-progress{list-style:none;display:flex;flex-wrap:wrap;gap:10px 20px;padding:0;font-size:15px}.reservation-progress li[aria-current]{font-weight:700;text-decoration:underline;text-underline-offset:5px}.reservation-error{background:#ffe5de;color:#772816;padding:18px;border:1px solid #b84f32;border-radius:9px}.reservation-empty{padding:18px;background:#eef2fa;border-radius:9px}.reservation-hint,.reservation-footer{font-size:16px}.receipt-state{padding:16px;background:#e3ebfa;border-radius:9px}.reservation-main :focus-visible{outline:3px solid #b97026;outline-offset:3px}@media(max-width:650px){.reservation-header{padding:12px 16px;flex-wrap:wrap}.reservation-header img{width:190px;height:90px}.reservation-main{padding:0 16px 28px;font-size:18px}.reservation-main h1{font-size:36px}.reservation-main h2{font-size:27px}.reservation-panel{padding:20px}.reservation-grid{grid-template-columns:1fr}.reservation-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-summary{grid-template-columns:1fr;gap:4px}.reservation-summary dd{margin-bottom:12px}.reservation-main button,.reservation-button{width:100%;text-align:center}.reservation-progress{font-size:14px;gap:8px 14px}}@media(max-width:350px){.reservation-slots{gap:8px}.reservation-slot{padding:8px;font-size:16px}.reservation-slot:has(input:checked){padding:7px}}
.reservation-main .eyebrow{color:#8b4229}.reservation-main a:not(.reservation-button){color:#0f1f3d;text-underline-offset:3px}

/* Opening hours: stable weekday/time columns, including narrow screens. */
.reservation-empty{margin:20px 0 0;padding:20px 22px;line-height:1.55}
.reservation-empty>strong{display:block}.reservation-empty p{margin:10px 0 0}
.reservation-hours,.reservation-closures{margin-top:28px;padding-top:24px;border-top:1px solid #cfd7e6}
.reservation-hours h3,.reservation-closures h3{margin:0 0 16px;font-size:24px;line-height:1.3}
.reservation-hours-list{display:block;margin:0;padding:0}
.reservation-hours-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:20px;padding:11px 0;border-bottom:1px solid #d8dee9;align-items:baseline}
.reservation-hours-row:first-child{padding-top:0}.reservation-hours-row:last-child{border-bottom:0;padding-bottom:0}
.reservation-hours-row dt{font-weight:700}.reservation-hours-row dd{margin:0;min-width:0}
.reservation-hours-row dd span{display:block}.reservation-hours-row.is-closed dd{color:#5b6881}
.reservation-closures ul{list-style:none;margin:0;padding:0}.reservation-closures li{padding:10px 14px;margin:8px 0;background:#eef2fa;border-radius:7px}
.reservation-hours+.reservation-button,.reservation-closures+.reservation-button{margin-top:24px}
@media(max-width:650px){.reservation-empty{padding:16px}.reservation-hours,.reservation-closures{margin-top:24px;padding-top:20px}.reservation-hours h3,.reservation-closures h3{font-size:22px}.reservation-hours-row{grid-template-columns:112px minmax(0,1fr);gap:12px;padding:10px 0}}
@media(max-width:350px){.reservation-hours-row{grid-template-columns:100px minmax(0,1fr);gap:8px}}

.reservation-hours,.reservation-closures{font-family:var(--sans)}.reservation-hours h3,.reservation-closures h3{font-family:inherit;font-size:20px;font-weight:700;line-height:1.5}.reservation-closures li{font-family:inherit;font-size:18px;font-weight:400}
