/* Montgo Booking — Public Form Styles
   Palette mirrors the main website design.
   ─────────────────────────────────────── */

:root {
  --mb-cream:        #F5EFE4;
  --mb-cream-dark:   #EDE3D2;
  --mb-gold:         #A8863A;
  --mb-gold-light:   #C4A050;
  --mb-sand:         #C4A882;
  --mb-brown:        #5C3D1E;
  --mb-brown-dark:   #3A2410;
  --mb-text-muted:   #9A7D5A;
  --mb-border:       rgba(168, 134, 58, 0.25);
  --mb-border-focus: #A8863A;
  --mb-error:        #c0392b;
  --mb-success:      #A8863A;
  --mb-radius:       0;
  --mb-font-serif:   'Cormorant Garamond', Georgia, serif;
  --mb-font-sans:    'Jost', 'Helvetica Neue', sans-serif;
}

/* ── Wrapper ────────────────────────────────────────────────── */

.montgo-booking-wrap {
  background: var(--mb-brown-dark);
  padding: 2.5rem 2rem;
  font-family: var(--mb-font-sans);
  max-width: 600px;
}

/* ── Headings ──────────────────────────────────────────────── */

.montgo-booking-title {
  font-family: var(--mb-font-serif);
  font-size: 2rem;
  font-weight: 300;
  color: var(--mb-cream);
  margin: 0 0 0.3rem;
  line-height: 1.2;
}

.montgo-booking-subtitle {
  font-size: 0.8rem;
  color: var(--mb-sand);
  margin: 0 0 2rem;
  font-weight: 300;
  letter-spacing: 0.04em;
}

/* ── Form layout ───────────────────────────────────────────── */

.montgo-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.montgo-form-group {
  display: flex;
  flex-direction: column;
  margin-bottom: 0.75rem;
}

.montgo-form-group label {
  font-size: 0.62rem;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--mb-sand);
  margin-bottom: 0.4rem;
}

.montgo-form-group label span[aria-hidden] {
  color: var(--mb-gold);
  margin-left: 2px;
}

.montgo-optional {
  text-transform: none;
  letter-spacing: 0;
  font-style: italic;
  opacity: 0.6;
}

/* ── Inputs ─────────────────────────────────────────────────── */

.montgo-booking-wrap input[type="text"],
.montgo-booking-wrap input[type="email"],
.montgo-booking-wrap input[type="tel"],
.montgo-booking-wrap input[type="date"],
.montgo-booking-wrap select,
.montgo-booking-wrap textarea {
  background: rgba(245, 239, 228, 0.07);
  border: 1px solid var(--mb-border);
  border-radius: var(--mb-radius);
  color: var(--mb-cream);
  font-family: var(--mb-font-sans);
  font-size: 0.88rem;
  font-weight: 300;
  padding: 0.72rem 0.9rem;
  width: 100%;
  box-sizing: border-box;
  transition: border-color 0.15s ease;
  -webkit-appearance: none;
  appearance: none;
}

.montgo-booking-wrap input::placeholder,
.montgo-booking-wrap textarea::placeholder {
  color: rgba(196, 168, 130, 0.4);
}

.montgo-booking-wrap input:focus,
.montgo-booking-wrap select:focus,
.montgo-booking-wrap textarea:focus {
  border-color: var(--mb-border-focus);
  outline: none;
  box-shadow: 0 0 0 2px rgba(168, 134, 58, 0.15);
}

.montgo-booking-wrap input.montgo-invalid,
.montgo-booking-wrap select.montgo-invalid,
.montgo-booking-wrap textarea.montgo-invalid {
  border-color: var(--mb-error);
}

.montgo-booking-wrap select option {
  background: var(--mb-brown-dark);
  color: var(--mb-cream);
}

.montgo-booking-wrap textarea {
  resize: vertical;
  min-height: 80px;
}

/* ── Field errors ───────────────────────────────────────────── */

.montgo-field-error {
  font-size: 0.72rem;
  color: var(--mb-error);
  margin-top: 0.25rem;
  min-height: 1rem;
  display: block;
}

/* ── Time slots ─────────────────────────────────────────────── */

.montgo-slots-group {
  margin-bottom: 0.75rem;
}

.montgo-slots-container {
  background: rgba(245, 239, 228, 0.04);
  border: 1px solid var(--mb-border);
  padding: 0.9rem;
  min-height: 80px;
}

.montgo-slots-prompt,
.montgo-slots-loading,
.montgo-slots-closed,
.montgo-slots-none {
  font-size: 0.78rem;
  color: var(--mb-text-muted);
  font-style: italic;
  margin: 0;
  padding: 0.5rem 0;
}

.montgo-slots-section-label {
  font-size: 0.6rem;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--mb-sand);
  margin: 0 0 0.4rem;
}

.montgo-slots-section + .montgo-slots-section {
  margin-top: 0.75rem;
}

.montgo-slots-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.montgo-slot {
  background: rgba(245, 239, 228, 0.06);
  border: 1px solid rgba(168, 134, 58, 0.2);
  color: var(--mb-sand);
  font-family: var(--mb-font-sans);
  font-size: 0.78rem;
  font-weight: 300;
  padding: 0.45rem 0.7rem;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
  border-radius: var(--mb-radius);
  line-height: 1;
}

.montgo-slot:hover {
  border-color: var(--mb-gold);
  color: var(--mb-gold-light);
}

.montgo-slot.montgo-slot--selected {
  background: var(--mb-gold);
  border-color: var(--mb-gold);
  color: var(--mb-cream);
  font-weight: 400;
}

/* ── Submit button ──────────────────────────────────────────── */

.montgo-submit-group {
  margin-top: 0.5rem;
}

.montgo-btn-submit {
  width: 100%;
  background: var(--mb-gold);
  color: var(--mb-brown-dark);
  border: none;
  font-family: var(--mb-font-sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 1rem;
  cursor: pointer;
  transition: background 0.2s ease;
  border-radius: var(--mb-radius);
}

.montgo-btn-submit:hover:not(:disabled) {
  background: var(--mb-gold-light);
}

.montgo-btn-submit:disabled {
  opacity: 0.6;
  cursor: wait;
}

.montgo-btn-outline {
  background: transparent;
  color: var(--mb-cream);
  border: 1px solid rgba(245, 239, 228, 0.3);
  font-family: var(--mb-font-sans);
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.8rem 1.8rem;
  cursor: pointer;
  margin-top: 1.2rem;
  transition: border-color 0.2s, color 0.2s;
  border-radius: var(--mb-radius);
}

.montgo-btn-outline:hover {
  border-color: var(--mb-gold);
  color: var(--mb-gold-light);
}

/* ── Form-level message ─────────────────────────────────────── */

.montgo-form-message {
  margin-top: 0.8rem;
  font-size: 0.82rem;
  padding: 0.6rem 0.9rem;
  border-radius: var(--mb-radius);
  display: none;
}

.montgo-form-message.montgo-msg--error {
  display: block;
  background: rgba(192, 57, 43, 0.15);
  border: 1px solid rgba(192, 57, 43, 0.4);
  color: #e07060;
}

/* ── Success state ──────────────────────────────────────────── */

.montgo-booking-success {
  text-align: center;
  padding: 2rem 1rem;
  color: var(--mb-cream);
}

.montgo-booking-success[hidden] {
  display: none;
}

.montgo-success-icon {
  margin: 0 auto 1.2rem;
  color: var(--mb-gold);
  display: block;
  width: fit-content;
}

.montgo-booking-success h3 {
  font-family: var(--mb-font-serif);
  font-size: 1.9rem;
  font-weight: 300;
  color: var(--mb-cream);
  margin: 0 0 0.6rem;
}

.montgo-booking-success p {
  font-size: 0.85rem;
  color: var(--mb-sand);
  line-height: 1.8;
  margin: 0 0 0.5rem;
}

/* ── Responsive ─────────────────────────────────────────────── */

@media ( max-width: 520px ) {
  .montgo-booking-wrap {
    padding: 1.5rem 1rem;
  }

  .montgo-form-row {
    grid-template-columns: 1fr;
  }
}
