/* Layout-only request form layer. Validation, disabled/hidden states and
   availability remain under the existing request controller's ownership. */
.guest-edition83 .reservations-page83 { padding-top:clamp(18px,3vw,38px); }
.guest-edition83 .reservations-page83 .page-intro.container {
  padding:0 0 24px;
  margin-bottom:24px;
  border-bottom:1px solid var(--line);
}
.guest-edition83 .reservations-page83 .page-intro h1 {
  margin:0 0 12px;
  font-size:clamp(2.35rem,4.6vw,3.75rem);
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.035em;
}
.guest-edition83 .reservations-page83 .page-intro .lead {
  max-width:42rem;
  font-size:1rem;
  line-height:1.5;
  color:var(--muted);
}
.guest-edition83 .reservations-page83 .reservation-layout {
  grid-template-columns:minmax(0,1fr) minmax(245px,310px);
  align-items:start;
  gap:clamp(32px,6vw,88px);
  padding-top:0;
  padding-bottom:52px;
}
.guest-edition83 .reservations-page83 .request-main83 { min-width:0; max-width:760px; }
.guest-edition83 .reservations-page83 .reservation-form {
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.guest-edition83 .reservations-page83 .reservation-form fieldset { min-width:0; }
.guest-edition83 .reservations-page83 .reservation-form>[data-request-fields] { margin:0; }
.guest-edition83 .reservations-page83 .reservation-form .request-section83 {
  padding:0;
  margin:0 0 30px;
  border:0;
}
.guest-edition83 .reservations-page83 .reservation-form legend {
  width:100%;
  padding:0 0 12px;
  margin:0 0 18px;
  border-bottom:0;
  color:var(--ink);
  font:400 1.6rem/1.3 Georgia,serif;
  letter-spacing:-.02em;
}
.guest-edition83 .reservations-page83 .request-step83 {
  display:inline-block;
  min-width:30px;
  margin-right:10px;
  color:var(--accent83);
  font:650 .6875rem/1.4 Arial,sans-serif;
  letter-spacing:.1em;
  vertical-align:middle;
}
.guest-edition83 .reservations-page83 .reservation-form .form-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:17px 20px;
}
.guest-edition83 .reservations-page83 .reservation-form label {
  font-size:.875rem;
  line-height:1.45;
  font-weight:600;
  color:var(--ink);
}
.guest-edition83 .reservations-page83 .reservation-form :is(input:not([type=checkbox]),select,textarea) {
  min-width:0;
  min-height:48px;
  max-width:100%;
  margin-top:6px;
  padding:10px 12px;
  border:1px solid var(--control-line);
  border-radius:12px;
  background:var(--field-bg);
  color:var(--field-ink);
  color-scheme:light;
  font:inherit;
  font-size:1rem;
  font-weight:400;
  line-height:1.4;
}
.guest-edition83 .reservations-page83 .reservation-form textarea { min-height:108px; resize:vertical; }
/* iOS native date controls can add padding outside a percentage width
   (WebKit 301648). Normalize only this control, retaining type=date and its
   native picker. The inner height also protects an empty value (198959). */
.guest-edition83 .reservations-page83 .reservation-form #request-date {
  -webkit-appearance:none;
  appearance:none;
  box-sizing:border-box;
  width:100%;
  min-width:0;
  max-width:100%;
  min-height:48px;
  text-align:start;
}
.guest-edition83 .reservations-page83 .reservation-form #request-date::-webkit-date-and-time-value {
  min-height:1.4em;
  margin:0;
  text-align:inherit;
}
.guest-edition83 .reservations-page83 .reservation-form #request-date::-webkit-datetime-edit { padding:0; }
.guest-edition83 .reservations-page83 .reservation-form :is(input,select,textarea)[aria-invalid=true] { border-color:#f0a38f; }
.guest-edition83 .reservations-page83 .reservation-form :is(input,textarea)::placeholder {color:var(--field-muted);opacity:1;}
.guest-edition83 .reservations-page83 .reservation-form :is(input:not([type=checkbox]),select,textarea):disabled {background:#e6e7da;color:#4b5c4f;opacity:1;cursor:not-allowed;}
.guest-edition83 .reservations-page83 .reservation-form :is(input,select,textarea):focus-visible {border-color:var(--gold);outline-width:2px;outline-offset:3px;}
.guest-edition83 .reservations-page83 .privacy-check input {accent-color:var(--gold);}
.guest-edition83 .reservations-page83 .reservation-form .small-note,
.guest-edition83 .reservations-page83 .request-note {
  margin:8px 0 0;
  font-size:.8125rem;
  line-height:1.5;
  color:var(--muted);
}
.guest-edition83 .reservations-page83 .reservation-form [data-error-for] { color:#f0a38f; font-weight:600; }
.guest-edition83 .reservations-page83 #booking-hours { margin-top:14px; }
.guest-edition83 .reservations-page83 .reservation-form .request-message83 { margin-top:20px; }
.guest-edition83 .reservations-page83 .reservation-form .privacy-check {
  padding:0;
  margin:0 0 22px;
  gap:12px;
  font-size:.875rem;
  line-height:1.55;
  font-weight:400;
}
.guest-edition83 .reservations-page83 #request-submit { min-height:48px; padding:12px 22px; }
.guest-edition83 .reservations-page83 #request-submit:disabled { opacity:.58; }
.guest-edition83 .reservations-page83 #request-availability {
  padding:10px 0 10px 13px;
  margin:0 0 22px;
  border:0;
  border-left:3px solid #8a9489;
  border-radius:0;
  background:transparent;
}
.guest-edition83 .reservations-page83 #request-availability p { margin:0; font-size:.875rem; line-height:1.5; }
.guest-edition83 .reservations-page83 #request-availability[data-state=error] { border-color:#f0a38f; color:#f0bfae; }
.guest-edition83 .reservations-page83 #request-availability[data-state=ready] {display:none;}
.guest-edition83 .reservations-page83 #request-availability[data-state=loading] { border-color:#858982; }
.guest-edition83 .reservations-page83 #request-recovery { gap:8px 16px; margin-bottom:24px; }
.guest-edition83 .reservations-page83 #request-recovery :is(a,button) { min-height:44px; }
.guest-edition83 .reservations-page83 [data-request-event82] {
  padding:14px 16px;
  margin-bottom:22px;
  background:var(--surface);
  border:0;
  border-left:3px solid var(--accent83);
  border-radius:14px;
}
.guest-edition83 .reservations-page83 [data-request-event82][data-state=invalid],
.guest-edition83 .reservations-page83 [data-request-event82][data-state=changed],
.guest-edition83 .reservations-page83 [data-request-event82][data-state=date_mismatch],
.guest-edition83 .reservations-page83 [data-request-event82][data-state=feed_unavailable],
.guest-edition83 .reservations-page83 [data-request-event82][data-state=unavailable] { background:var(--error-surface); border-color:var(--red-accent); }
.guest-edition83 .reservations-page83 [data-request-event82] h2 { margin:0 0 7px; color:var(--gold); font:600 .8125rem/1.4 Arial,sans-serif; text-transform:none; letter-spacing:0; }
.guest-edition83 .reservations-page83 [data-request-event82] p { margin:4px 0; font-size:.8125rem; line-height:1.5; }
.guest-edition83 .reservations-page83 [data-request-event82] .request-event-title841 {display:block;font:400 1.15rem/1.3 Georgia,serif;color:var(--ink);}
.guest-edition83 .reservations-page83 [data-request-event82] .actions {margin-top:8px;}
.guest-edition83 .reservations-page83 [data-request-event82] button {min-width:0;min-height:44px;border-radius:10px;background:var(--cream-accent);color:var(--ink-on-cream);}
.guest-edition83 .reservations-page83 [data-request-event82] [data-event-action82=remove] {padding:6px 10px;background:transparent;color:var(--ink);border-color:var(--line);font-size:.8125rem;}
.guest-edition83 .reservations-page83 [data-request-event82] button:hover:not(:disabled) {background:var(--gold-hover);color:var(--ink-on-cream);}
.guest-edition83 .reservations-page83 .request-event-choice841 {display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;}
.guest-edition83 .reservations-page83 .request-event-choice841>span {min-width:0;}
.guest-edition83 .reservations-page83 .request-event-choice841 strong {display:block;font-size:.9375rem;line-height:1.4;}
.guest-edition83 .reservations-page83 .request-event-choice841 small {display:block;color:var(--muted);font-size:.8125rem;margin-top:3px;}
.guest-edition83 .reservations-page83 .request-event-choice841 button {flex-shrink:0;font-size:.8125rem;}
.guest-edition83 .reservations-page83:has(#reservation-form[data-event-panel841=shown]) [data-next-events77] {display:none;}
.guest-edition83 .reservations-page83 .next-event-timing852 {display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0;}
.guest-edition83 .reservations-page83 .next-event-countdown851 {display:inline-block;max-width:100%;padding:6px 10px;border-radius:8px;background:#ffe3a3;color:#173329;font:700 clamp(.9375rem,2.5vw,1.0625rem)/1.25 Arial,sans-serif;overflow-wrap:anywhere;}
.guest-edition83 .reservations-page83 .next-event-spots852 {max-width:100%;color:#fff3d4;font:600 .875rem/1.4 Arial,sans-serif;overflow-wrap:anywhere;}
.guest-edition83 .reservations-page83 .next-event-actions851 {grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:6px;}
.guest-edition83 .reservations-page83 .next-event-actions851 a {display:inline-flex;align-items:center;min-height:44px;max-width:100%;font-size:.8125rem;white-space:normal;overflow-wrap:anywhere;}
.guest-edition83 .reservations-page83 .next-event-add841 {padding:8px 13px;border-radius:20px;background:var(--cream-accent);color:var(--ink-on-cream);font-weight:600;}
.guest-edition83 .reservations-page83 .request-result { padding:20px; border-radius:16px; background:var(--surface);color:var(--ink); }
.guest-edition83 .reservations-page83 .request-result[data-state=error] { background:var(--error-surface); }
.guest-edition83 .reservations-page83 .request-group831 {margin:16px 0 0;padding:14px 18px;border-left:3px solid var(--gold);border-radius:0 12px 12px 0;background:var(--surface);color:var(--ink);font-size:.9375rem;line-height:1.55;}
.guest-edition83 .reservations-page83 .request-group831[hidden] {display:none;}
.guest-edition83 .reservations-page83 .request-group831 strong {display:block;margin-bottom:3px;color:var(--gold);}
.guest-edition83 .reservations-page83 .request-occasion831 {margin:18px 0 0;padding:16px 18px;background:var(--surface);border-radius:12px;border-left:3px solid var(--red-accent);}
.guest-edition83 .reservations-page83 .request-occasion831 select {width:100%;}
.guest-edition83 .reservations-page83 .request-occasion831 {border-left-color:var(--gold);}
.guest-edition83 .reservations-page83 .country-trigger852 {display:flex;align-items:center;justify-content:flex-start;gap:6px;box-sizing:border-box;width:100%;min-height:48px;margin-top:6px;padding:10px 12px;border:1px solid var(--control-line);border-radius:12px;background:var(--field-bg);color:var(--field-ink);font:400 1rem/1.4 Arial,sans-serif;white-space:nowrap;cursor:pointer;}
.guest-edition83 .reservations-page83 .country-trigger852:hover:not(:disabled) {background:var(--cream-accent);color:var(--field-ink);border-color:var(--gold);}
.guest-edition83 .reservations-page83 .country-trigger852:disabled {background:#e6e7da;color:#4b5c4f;cursor:not-allowed;}
.guest-edition83 .reservations-page83 #request-phone-country851[hidden] {display:none;}
.country-dialog852 {box-sizing:border-box;width:min(440px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:20px;border:1px solid #af985f;border-radius:18px;background:#f5e9cd;color:#173329;box-shadow:0 20px 80px #0006;}
.country-dialog852::backdrop {background:#061b15aa;}
.country-dialog852 .country-head852 {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;}
.country-dialog852 h2 {margin:0;font:400 1.65rem/1.15 Georgia,serif;color:#173329;}
.country-dialog852 label {display:block;font:600 .875rem/1.4 Arial,sans-serif;color:#173329;}
.country-dialog852 input {box-sizing:border-box;width:100%;min-height:48px;margin:6px 0 0;padding:10px 12px;border:1px solid #798a73;border-radius:10px;background:#fff8e8;color:#173329;font:400 1rem/1.4 Arial,sans-serif;}
.country-dialog852 button {min-height:44px;border:1px solid #acac8c;border-radius:9px;background:transparent;color:#173329;font:600 .875rem/1.4 Arial,sans-serif;cursor:pointer;}
.country-dialog852 .country-close852 {padding:8px 12px;flex-shrink:0;}
.country-dialog852 .country-status852 {margin:10px 0;font:400 .8125rem/1.4 Arial,sans-serif;color:#4c5a48;}
.country-dialog852 .country-list852 {max-height:min(360px,45dvh);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;display:flex;flex-direction:column;gap:5px;}
.country-dialog852 .country-option852 {flex-shrink:0;width:100%;padding:11px 12px;text-align:left;border-color:transparent;font-weight:400;overflow-wrap:anywhere;}
.country-dialog852 .country-option852[aria-pressed=true] {background:#173329;color:#fff8e8;}
.country-dialog852 button:hover {background:#ded1af;color:#173329;}
.country-dialog852 :is(button,input):focus-visible {outline:3px solid #806320;outline-offset:2px;}
.guest-edition83 .reservations-page83 .request-occasion831[hidden],.guest-edition83 .reservations-page83 .request-occasion831 select[hidden] {display:none;}
.guest-edition83 .reservations-page83 .request-summary { grid-template-columns:minmax(95px,.8fr) minmax(0,1.4fr); font-size:.9375rem; }
.guest-edition83 .reservations-page83 .reservation-aside {
  position:sticky;
  top:24px;
  min-width:0;
  padding:0;
  background:transparent;
  border:0;
  border-left:0;
  border-radius:0;
}
.guest-edition83 .reservations-page83 .request-help83 h2 { margin:0 0 12px; font-size:1.65rem; font-weight:400; }
.guest-edition83 .reservations-page83 .request-room84 {margin:0 0 24px;border-radius:50% 50% 18px 18px;overflow:hidden;}
.guest-edition83 .reservations-page83 .request-room84 img {width:100%;height:220px;object-fit:cover;}
.guest-edition83 .reservations-page83 .request-help83 p { margin:0 0 12px; font-size:.9375rem; line-height:1.55; }
.guest-edition83 .reservations-page83 .request-contacts83 { margin:0 0 15px; }
.guest-edition83 .reservations-page83 .request-contacts83>div { margin:0 0 9px; }
.guest-edition83 .reservations-page83 .request-contacts83 dt { color:var(--muted); font-size:.75rem; }
.guest-edition83 .reservations-page83 .request-contacts83 dd { margin:0; }
.guest-edition83 .reservations-page83 .request-contacts83 a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  max-width:100%;
  font-size:.9375rem;
  overflow-wrap:anywhere;
}
.guest-edition83 .reservations-page83 .reservation-aside>details { margin:0; border-top:1px solid var(--line); }
.guest-edition83 .reservations-page83 .reservation-aside>details>summary {
  padding:13px 0;
  min-height:48px;
  color:var(--ink);
  font-size:.875rem;
  line-height:1.5;
  font-weight:600;
  cursor:pointer;
}
.guest-edition83 .reservations-page83 .reservation-aside .opening-hours { margin:0 0 16px; }
.guest-edition83 .reservations-page83 .reservation-aside .opening-hours h2 { margin:0 0 10px; font-size:1.1rem; }
.guest-edition83 .reservations-page83 .reservation-aside .hours-list { font-size:.8125rem; }
.guest-edition83 .reservations-page83 .reservation-aside .hours-list>div { padding-block:8px; }
.guest-edition83 .reservations-page83 .access-details77 p { margin:0 0 14px; font-size:.875rem; line-height:1.5; }
@media(max-width:900px) {
  .guest-edition83 .reservations-page83 .reservation-layout { grid-template-columns:minmax(0,1fr); gap:32px; }
  .guest-edition83 .reservations-page83 .request-main83 { max-width:none; }
  .guest-edition83 .reservations-page83 .reservation-aside { position:static; padding:24px 0 0; border-left:0; border-top:1px solid var(--line); }
  .guest-edition83 .reservations-page83 .request-room84 {display:none;}
}
@media(max-width:600px) {
  .guest-edition83 .reservations-page83 { padding-top:18px; }
  .guest-edition83 .reservations-page83 .page-intro.container { padding-bottom:18px; margin-bottom:18px; }
  .guest-edition83 .reservations-page83 .page-intro h1 { font-size:clamp(2rem,8vw,2.4rem); }
  .guest-edition83 .reservations-page83 .page-intro .lead { font-size:.9375rem; }
  .guest-edition83 .reservations-page83 .reservation-form .form-grid { gap:14px 12px; }
  .guest-edition83 .reservations-page83 .request-contact-wide83 { grid-column:1/-1; }
  .guest-edition83 .reservations-page83 .reservation-form legend { font-size:1.45rem; margin-bottom:16px; padding-bottom:10px; }
  .guest-edition83 .reservations-page83 .reservation-form .request-section83 { margin-bottom:26px; }
  .guest-edition83 .reservations-page83 #request-submit { width:100%; }
  .guest-edition83 .reservations-page83 .reservation-form :is(input:not([type=checkbox]),select,textarea) { padding-inline:9px; }
  .guest-edition83 .reservations-page83 .reservation-layout { padding-bottom:34px; }
}
@media(max-width:440px) {
  /* Native date text gets the full row; time and guests stay paired in DOM
     order. Match field meaning, not child position, so extra notices are safe. */
  .guest-edition83 .reservations-page83 .request-visit83 .form-grid>div:has(>#request-date),
  .guest-edition83 .reservations-page83 .request-visit83 .form-grid>label:has(>select[name=occasion]) { grid-column:1/-1; }
}
@media(max-width:360px) {
  .guest-edition83 .reservations-page83 .reservation-form .form-grid { grid-template-columns:minmax(0,1fr); }
  .guest-edition83 .reservations-page83 .request-summary { grid-template-columns:minmax(0,1fr); gap:4px; }
  .guest-edition83 .reservations-page83 .request-summary dd { margin-bottom:8px; }
}
