/* Booking form — reusable two-step event inquiry form.
   Behaviour: assets/js/booking.js
   Source markup: page-contact.php. */

.booking-form-section{background:#faf9f6;padding:2rem 1.5rem 6rem}
.booking-dots{display:flex;gap:.6rem;justify-content:center;margin-bottom:.9rem}
.booking-dot{width:9px;height:9px;border-radius:50%;background:rgba(0,0,0,.16);transition:background .3s,transform .3s}
.booking-dot--active{background:var(--gold);transform:scale(1.3)}
.booking-dot--done{background:var(--gold-dark)}
.booking-step-label{text-align:center;font-family:var(--display);font-size:.75rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:#6b6b6b;margin-bottom:2.6rem}
.booking-form-wrap{max-width:720px;margin:0 auto}
.booking-section-head{font-family:var(--display);font-size:clamp(1.1rem,2vw,1.4rem);font-weight:500;letter-spacing:.02em;color:var(--charcoal);margin-bottom:1.5rem}
.booking-section-head--spaced{margin-top:2.6rem;border-top:1px solid rgba(0,0,0,.08);padding-top:2.4rem}
.booking-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-bottom:1.2rem}
.booking-row--full{grid-template-columns:1fr}
.booking-field{display:flex;flex-direction:column;min-width:0}
.booking-field label{font-family:var(--display);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#6b6b6b;margin-bottom:.5rem}
.booking-req{color:var(--gold-dark)}
.booking-field input,.booking-field select,.booking-field textarea{font-family:var(--body);font-size:.95rem;color:var(--charcoal);background:#fff;border:1px solid rgba(0,0,0,.14);border-radius:8px;padding:.85rem .95rem;transition:border-color .2s,box-shadow .2s;width:100%}
.booking-field input:hover,.booking-field select:hover,.booking-field textarea:hover{border-color:rgba(0,0,0,.26)}
.booking-field select{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;padding-right:2.4rem;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23E6AD1F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right .95rem center}
.booking-field input:focus,.booking-field select:focus,.booking-field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(254,192,39,.15)}
.booking-field textarea{min-height:120px;resize:vertical}
.booking-step{display:none}
.booking-step--active{display:block;animation:bookingFade .4s ease}
@keyframes bookingFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.booking-nav{margin-top:2rem;display:flex;justify-content:flex-end}
.booking-nav--split{justify-content:space-between;align-items:center}
.booking-btn-next{position:relative;overflow:hidden;font-family:var(--display);font-size:.75rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#000;background:var(--gold);border:none;cursor:pointer;padding:1rem 2.8rem;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);transition:filter .2s,transform .2s,box-shadow .3s}
.booking-btn-next::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);transition:left .5s ease}
.booking-btn-next:hover::before{left:100%}
.booking-btn-next:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 22px rgba(254,192,39,.35)}
.booking-btn-next:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}
.booking-btn-back{font-family:var(--display);font-size:.75rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#6b6b6b;background:none;border:none;cursor:pointer;padding:1rem 1.5rem;transition:color .2s}
.booking-btn-back:hover{color:var(--charcoal)}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.error-message,.success-message{display:none;padding:1rem 1.2rem;border-radius:8px;font-family:var(--body);font-size:.92rem;line-height:1.5;margin-bottom:1.5rem}
.error-message{background:#fdecea;border-left:3px solid #d64545;color:#a12a2a}
.success-message{background:#eef7ee;border-left:3px solid #4a9a4a;color:#2e6b2e}
.booking-loading{display:none;text-align:center;padding:1.5rem}
.booking-spinner{width:32px;height:32px;border:3px solid rgba(0,0,0,.1);border-top-color:var(--gold);border-radius:50%;margin:0 auto 1rem;animation:bookingSpin .8s linear infinite}
@keyframes bookingSpin{to{transform:rotate(360deg)}}
.booking-loading p{font-family:var(--body);font-size:.85rem;color:#6b6b6b}
.booking-footer{text-align:center;margin-top:2rem;font-family:var(--body);font-size:.95rem;color:#6b6b6b}
.booking-footer a{color:#2A2A2A;font-weight:600;text-decoration:none;border-bottom:1px solid var(--gold-dark);padding-bottom:1px}
.booking-footer a:hover{color:var(--charcoal)}
@media(prefers-reduced-motion:reduce){.booking-btn-next::before{display:none}.booking-step--active{animation:none}}

/* ── reCAPTCHA badge ── Requires .booking-legal to be rendered. */
.grecaptcha-badge{visibility:hidden}

.booking-legal{
  margin-top:1.8rem;padding-top:1.4rem;
  border-top:1px solid rgba(0,0,0,.08);
  font-family:var(--body);font-size:.8rem;line-height:1.6;
  color:#6b6b6b;text-align:center;
}
.booking-legal a{color:var(--gold-dark);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.booking-legal a:hover{color:var(--charcoal)}
@media(max-width:600px){.booking-form-section{padding:2.75rem 1.1rem 3.5rem}.booking-row{grid-template-columns:1fr}}
/* ── Focus rings ── */
.booking-field input:focus-visible,
.booking-field select:focus-visible,
.booking-field textarea:focus-visible{
  outline:3px solid #0a0a0a;
  outline-offset:2px;
}
/* Inset ring: the clipped button shape crops a normal outline. */
.booking-btn-back:focus-visible,
.booking-footer a:focus-visible,
.booking-legal a:focus-visible{outline:3px solid #0a0a0a;outline-offset:2px}
.booking-btn-next:focus-visible{outline:none;box-shadow:inset 0 0 0 3px #0a0a0a}
