.booking-notice { background:#ffce32; color:#17120d; padding:1.1rem 1.25rem; border:3px solid #17120d; border-radius:16px; font-weight:650; line-height:1.5; margin:1.5rem 0; }
.reservation-card { width:100%; max-width:760px; margin:2rem auto; padding:clamp(1rem,4vw,2rem); background:#fff9e8; color:#17120d; border:3px solid #17120d; border-radius:22px; text-align:left; scroll-margin-top:110px; }
.reservation-card h2 { font-size:clamp(1.5rem,5vw,2.6rem); margin:0; overflow-wrap:anywhere; }
.reservation-card p { line-height:1.6; overflow-wrap:anywhere; }
.reservation-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.reservation-fields label { display:flex; flex-direction:column; gap:.4rem; font-weight:650; }
.reservation-fields input { min-width:0; width:100%; box-sizing:border-box; font:inherit; color:#17120d; background:white; padding:.8rem; border:2px solid #17120d; border-radius:10px; }
.reservation-fields input:focus-visible,.reservation-consent input:focus-visible { outline:3px solid #ed2c30; outline-offset:3px; }
.reservation-consent { display:flex; align-items:flex-start; gap:.65rem; margin:1.2rem 0; font-size:.9rem; line-height:1.5; }
.reservation-consent input { flex-shrink:0; margin-top:.2rem; width:18px; height:18px; }
.reservation-consent a { color:inherit; text-decoration:underline; }
.reservation-form button { max-width:100%; white-space:normal; overflow-wrap:anywhere; font:inherit; font-weight:800; }
.reservation-form button:disabled { opacity:.6; cursor:wait; }
.reservation-trap { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.reservation-error { background:#ffe2df; border:2px solid #c82020; padding:1rem; border-radius:10px; }
.reservation-success { background:#e8f6d6; border:2px solid #38621f; padding:1rem; border-radius:12px; }
.reservation-status { font-weight:800; }
@media(max-width:520px) { .reservation-fields { grid-template-columns:1fr; } .reservation-form button { width:100%; } }
