/* Booking dialog additions for the booking system. Loaded after style.css; reuses its colours and type. */

/* Name, email, phone, date, times, note, consent: two columns on wide screens, one on phones. */
#booking-form .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#booking-form .slot-choice,
#booking-form .booking-note,
#booking-form .consent-row { grid-column: 1 / -1; }
#booking-form .form-grid input[type="checkbox"] { width: 20px; min-height: 20px; height: 20px; padding: 0; flex: none; accent-color: var(--gold); }
@media (max-width: 560px) { #booking-form .form-grid { grid-template-columns: minmax(0, 1fr); } }

/* Honeypot: invisible to people. */
#booking-form .trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Consent row */
#booking-form .consent-row { display: flex; align-items: flex-start; gap: 10px; }
#booking-form .consent-row label { display: block; font-size: 12px; line-height: 1.5; flex-direction: initial; }
#booking-form .consent-row .text-link { display: inline; margin: 0; padding: 0; border: 0; background: none; border-bottom: 1px solid #baa582; cursor: pointer; font-size: inherit; }
#booking-form [aria-invalid="true"] { border-color: #8c3326; outline: 1px solid #8c3326; }

/* Available times */
#booking-form .slot-choice legend { font-size: 11px; padding: 0; margin-bottom: 6px; }
#slot-list .slot-hint { margin: 0 0 10px; font-size: 12px; color: var(--muted); }
#slot-list .slot-hint.is-problem { color: #8c3326; }
#slot-list .slot-next { margin: 0 0 0 6px; padding: 0 0 2px; background: none; cursor: pointer; font-size: 12px; color: var(--ink); border-top: 0; border-left: 0; border-right: 0; }
.slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px; max-height: 232px; overflow-y: auto; overscroll-behavior: contain; padding: 2px; }
.slot-option {
  min-height: 44px; padding: 8px 6px; font-size: 14px; font-weight: 500; cursor: pointer;
  color: var(--ink); background: white; border: 1px solid var(--border); border-radius: 7px;
  transition: background .2s, border-color .2s;
}
.slot-option:hover { background: #f0e4d1; border-color: #b99964; }
.slot-option[aria-pressed="true"] { background: #95713f; border-color: #95713f; color: #fffaf1; }
.slot-option:focus-visible, #booking-form .consent-row input:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

/* Confirmation */
.booking-done { text-align: center; padding: 6px 0 4px; }
.booking-done .done-title { margin: 6px 0 8px; font: 500 34px/1.1 var(--serif); letter-spacing: -.5px; }
.booking-done .done-title:focus { outline: none; }
.booking-done .done-lead { margin: 0 0 18px; color: var(--muted); }
.booking-done .done-summary { margin: 0 auto 16px; max-width: 460px; text-align: left; border: 1px solid var(--border); background: #fffaf1; }
.booking-done .done-summary > div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 14px; border-top: 1px solid var(--border); font-size: 13px; }
.booking-done .done-summary > div:first-child { border-top: 0; }
.booking-done .done-summary dt { color: var(--muted); flex: none; }
.booking-done .done-summary dd { margin: 0; text-align: right; font-weight: 500; overflow-wrap: anywhere; }
.booking-done .done-small { font-size: 12px; color: var(--muted); margin: 0 0 14px; }
.booking-done .done-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; align-items: center; }
.booking-done .text-link { background: none; cursor: pointer; padding: 0 0 4px; border-top: 0; border-left: 0; border-right: 0; font-size: 12px; color: var(--ink); }
@media (max-width: 560px) { .booking-done .done-title { font-size: 28px; } .booking-done .done-actions .button { width: 100%; justify-content: center; } }
@media (prefers-reduced-motion: reduce) { .slot-option { transition: none; } }

/* Wordmark: "BODY STUDIO" / "BY ROEXY" is wider than the old "ROEXY", so it is set a little smaller. */
.wordmark > span { font-size: 29px; letter-spacing: 4px; }
.wordmark small { letter-spacing: 6px; }
footer .wordmark > span { font-size: 23px; letter-spacing: 3.5px; }
footer .wordmark small { letter-spacing: 5px; }
@media (max-width: 800px) { .wordmark > span { font-size: 25px; letter-spacing: 3px; } .wordmark small { letter-spacing: 5px; } }
@media (max-width: 560px) { .wordmark > span { font-size: 21px; letter-spacing: 2.4px; } .wordmark small { font-size: 7px; letter-spacing: 4.4px; margin-top: 6px; } footer .wordmark > span { font-size: 21px; } }
/* Discreet staff sign-in: a small padlock in the footer that opens /calendar/. Barely visible to visitors. */
.owner-link { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-left: 2px; color: var(--muted); opacity: .28; transition: opacity .2s; }
.owner-link:hover, .owner-link:focus-visible { opacity: .9; }
.owner-link:focus-visible { outline: 2px solid var(--gold); outline-offset: -4px; }
@media (prefers-reduced-motion: reduce) { .owner-link { transition: none; } }