/* Page-local form composition using the existing design system. */
.reservation-page .reservation-hero{padding-block:var(--space-12) var(--space-8)}
.reservation-page .reservation-hero h1{font-size:clamp(2.75rem,5.1vw,5rem);max-width:20ch}
.reservation-page .reservation-hero>p:not(.eyebrow){margin-top:var(--space-6)}
.reservation-page .reservation-note{font-size:var(--text-small);color:var(--muted)}
.reservation-page .reservation-layout{display:grid;gap:var(--space-12);padding-bottom:var(--section)}
.reservation-page .reservation-form-column,.reservation-page .reservation-field{min-width:0}
.reservation-page #form-title{font-size:clamp(2.2rem,4vw,3.3rem);overflow-wrap:anywhere;margin-bottom:var(--space-6)}
.reservation-page .reservation-notice{background:var(--linen);padding:var(--space-6);border-left:3px solid var(--olive);margin-bottom:var(--space-6)}
.reservation-page .reservation-notice p{font-size:var(--text-small);margin-top:var(--space-3,.75rem)}
.reservation-page fieldset{border:0;padding:0;margin:var(--space-8) 0;min-width:0}
.reservation-page legend{font-weight:700;margin-bottom:var(--space-6);padding:0}
.reservation-page .reservation-fields-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6)}
/* Let enlarged text reflow without intrinsic grid or flex minimum widths. */
.reservation-page .reservation-form-column{overflow-wrap:anywhere}
.reservation-page .reservation-fields-grid>*,.reservation-page .reservation-check span{min-width:0}
.reservation-page .reservation-field label{display:block;margin-bottom:var(--space-2,.5rem);font-size:var(--text-small);font-weight:600}
.reservation-page .reservation-field input,.reservation-page select,.reservation-page textarea{display:block;width:100%;min-width:0;max-width:100%;min-height:3.3rem;padding:.75rem;background:var(--ivory);border:1px solid var(--muted);border-radius:0;color:var(--ink);font:inherit;font-size:1rem}
.reservation-page input[type="date"],.reservation-page input[type="time"]{appearance:none;min-inline-size:0}
.reservation-page textarea{resize:vertical}
.reservation-page [aria-invalid="true"]{border:2px solid var(--terracotta-ink)}
.reservation-page .field-error{color:var(--terracotta-ink);font-size:var(--text-small);margin-top:.5rem}
.reservation-page .reservation-feedback{border-left:3px solid var(--terracotta-ink);background:var(--linen);padding:var(--space-6);margin-top:var(--space-6)}
.reservation-page .reservation-feedback a{display:flex;align-items:center;min-height:44px;text-decoration:underline;overflow-wrap:anywhere}
.reservation-page .reservation-check{display:flex;align-items:flex-start;gap:var(--space-4);padding-block:var(--space-4);min-height:44px;cursor:pointer}
.reservation-page .reservation-check input{flex-shrink:0;width:24px;height:24px;margin:2px 0 0;accent-color:var(--olive)}
.reservation-page .reservation-check span{font-size:var(--text-small)}
.reservation-page .reservation-privacy .text-link{border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;text-align:left;margin-top:var(--space-4)}
.reservation-page #send-request{margin-top:var(--space-4)}
.reservation-page .reservation-phone{border-top:1px solid var(--line);padding-top:var(--space-8);align-self:start}
.reservation-page .reservation-phone h2{font-size:clamp(2.2rem,4vw,3.3rem)}
.reservation-page .reservation-phone .reservation-note{margin-top:var(--space-6)}
.reservation-page .navigation a[aria-current="page"]{text-decoration:underline;text-underline-offset:.4em}
@media(min-width:48rem){.reservation-page .reservation-hero{padding-top:var(--space-16)}.reservation-page .reservation-fields-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(14rem,calc((100% - var(--space-6))/2))),1fr))}.reservation-page .reservation-wide{grid-column:1/-1}}
@media(min-width:64rem){.reservation-page .reservation-layout{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:var(--space-16)}.reservation-page .reservation-phone{padding:var(--space-8);background:var(--linen)}}

.reservation-page .reservation-rules{padding-bottom:var(--space-12);overflow-wrap:anywhere}
.reservation-page .reservation-rules ul{padding-left:1.25em;max-width:65ch}
.reservation-page .reservation-rules li{margin-top:1rem}
.reservation-page .reservation-phone a{overflow-wrap:anywhere;max-width:100%}
/* Technical field: outside visual flow, keyboard order and accessibility tree. */
.reservation-page .reservation-extra{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:none}
.reservation-page .reservation-feedback[data-state="success"]{border-color:var(--olive)}
.reservation-page #send-request{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.reservation-page #send-request:disabled{cursor:default;opacity:.75}

/* Phase 6E: calmer, clearer public reservation form only. */
.reservation-page .reservation-rules{padding:clamp(1.5rem,4vw,2.5rem);border:1px solid rgb(112 82 46 / .24);border-radius:var(--radius-medium);background:var(--linen)}
.reservation-page .reservation-notice,.reservation-page .reservation-feedback{border-left-color:var(--brass-ink);border-radius:0 var(--radius-small) var(--radius-small) 0}
.reservation-page .reservation-field input,.reservation-page select,.reservation-page textarea{border-color:var(--line);border-radius:var(--radius-small);background:#fffdfa;box-shadow:inset 0 1px 0 rgb(30 29 26 / .035)}
.reservation-page .reservation-field input:hover,.reservation-page select:hover,.reservation-page textarea:hover{border-color:var(--brass-ink)}
.reservation-page .reservation-phone{border-color:rgb(112 82 46 / .26);border-radius:var(--radius-medium)}
@media(min-width:64rem){.reservation-page .reservation-form-column{padding:clamp(1.75rem,3vw,3rem);border:1px solid rgb(112 82 46 / .24);border-radius:var(--radius-large);background:var(--ivory)}.reservation-page .reservation-phone{border:1px solid rgb(112 82 46 / .24);box-shadow:var(--shadow-soft)}}
@media(forced-colors:active){.reservation-page .reservation-rules,.reservation-page .reservation-form-column,.reservation-page .reservation-phone,.reservation-page .reservation-field input,.reservation-page select,.reservation-page textarea{border-color:CanvasText;box-shadow:none}}
/* Phase 6E.2: unified public form hierarchy. */
.reservation-page .reservation-hero{position:relative;margin-top:var(--space-6);padding:clamp(2rem,5vw,4rem);border:1px solid rgb(112 82 46 / .24);border-radius:var(--radius-large);background:linear-gradient(135deg,var(--surface-garden),#eef0e8)}
.reservation-page .reservation-hero::after{content:"";position:absolute;left:clamp(2rem,5vw,4rem);bottom:0;width:min(8rem,25vw);height:2px;background:var(--brass)}
.reservation-page .reservation-rules{margin-top:var(--space-8);box-shadow:inset .25rem 0 0 var(--brass)}
.reservation-page .reservation-form-column{background:linear-gradient(145deg,#fffdfa,var(--ivory));box-shadow:var(--shadow-lift)}
.reservation-page legend{display:flex;align-items:center;gap:var(--space-3);font-family:var(--serif);font-size:clamp(1.45rem,2.4vw,1.85rem);color:var(--olive)}
.reservation-page legend::after{content:"";flex:1 1 auto;height:1px;background:rgb(184 152 104 / .55)}
.reservation-page .reservation-phone{background:linear-gradient(145deg,var(--linen),#f7f3ec)}
.reservation-page .reservation-notice,.reservation-page .reservation-feedback{border:1px solid rgb(112 82 46 / .24);border-left:3px solid var(--brass-ink)}
@media(max-width:63.999rem){.reservation-page .reservation-form-column{padding:var(--space-6);border:1px solid rgb(112 82 46 / .24);border-radius:var(--radius-large)}}
@media(max-width:47.999rem){.reservation-page .reservation-hero{margin-top:var(--space-3);padding:var(--space-8) var(--space-6)}.reservation-page .reservation-hero::after{left:var(--space-6)}.reservation-page .reservation-form-column{padding:var(--space-5);box-shadow:none}.reservation-page legend{display:block}.reservation-page legend::after{display:none}.reservation-page .reservation-rules{box-shadow:inset .2rem 0 0 var(--brass)}}
@media(forced-colors:active){.reservation-page .reservation-hero{border-color:CanvasText}.reservation-page .reservation-hero::after,.reservation-page legend::after{background:CanvasText}.reservation-page .reservation-rules{box-shadow:none}}
