/*
 * 06-hotel-booking — booking.css
 * Booking form, availability indicator, price summary box, lookup widget.
 * Inherits CSS custom properties from prasanthi-hotel-theme.
 * Flatpickr CSS is loaded separately from CDN.
 */

:root {
    --hr-maroon   : var(--clr-maroon,   #6B1A1A);
    --hr-brown    : var(--clr-brown,    #5C3317);
    --hr-gold     : var(--clr-gold,     #C9A96E);
    --hr-cream    : var(--clr-cream,    #FAF7F2);
    --hr-stone    : var(--clr-stone,    #E8E0D5);
    --hr-ink      : var(--clr-ink,      #1A1208);
    --hr-muted    : var(--clr-muted,    #7A6E62);
    --hr-white    : #FFFFFF;
    --hr-font-d   : var(--font-display, 'Georgia', serif);
    --hr-font-b   : var(--font-body,    system-ui, sans-serif);
    --hr-radius   : var(--radius-md,    4px);
    --hr-ease     : var(--ease-out,     cubic-bezier(0.16,1,0.3,1));
}

/* ── Form wrap ───────────────────────────────────────────────── */
.hotel-bkg-form-wrap { max-width:720px; }

/* ── Feedback boxes ──────────────────────────────────────────── */
.hotel-cafe-form-success,
.hotel-cafe-form-error {
    padding:.9rem 1.2rem;border-radius:var(--hr-radius);
    margin-bottom:1.25rem;font-size:.9rem;font-weight:500;
    white-space:pre-line;
}
.hotel-cafe-form-success { background:#e8f5e9;color:#1B5E20;border:1px solid #A5D6A7; }
.hotel-cafe-form-error   { background:#fdecea;color:#B71C1C;border:1px solid #EF9A9A; }

/* ── Form grid ───────────────────────────────────────────────── */
.hotel-cafe-form-grid {
    display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.25rem;
}
.hotel-cafe-form-group { display:flex;flex-direction:column;gap:.3rem; }
.hotel-cafe-form-group--full { grid-column:1 / -1; }

.hotel-cafe-form-label {
    font-family:var(--hr-font-b);font-size:.72rem;font-weight:600;
    letter-spacing:.07em;text-transform:uppercase;color:var(--hr-ink);
}

.hotel-cafe-form-input {
    width:100%;padding:.65rem .85rem;
    font-family:var(--hr-font-b);font-size:.95rem;color:var(--hr-ink);
    background:var(--hr-white);border:1px solid #D4C8B8;
    border-radius:var(--hr-radius);
    transition:border-color 250ms,box-shadow 250ms;
    appearance:none;-webkit-appearance:none;
}
.hotel-cafe-form-input:focus {
    outline:none;border-color:var(--hr-maroon);
    box-shadow:0 0 0 3px rgba(107,26,26,.12);
}
.hotel-cafe-form-input::placeholder { color:#B0A090; }
.hotel-cafe-form-input[readonly] { background:var(--hr-cream);cursor:pointer; }

.hotel-cafe-form-textarea { resize:vertical;min-height:90px; }

/* ── Availability indicator ──────────────────────────────────── */
.hotel-bkg-avail-indicator {
    padding:.65rem 1rem;border-radius:var(--hr-radius);
    font-family:var(--hr-font-b);font-size:.88rem;font-weight:600;
    margin-bottom:1rem;
}

/* ── Price summary box ───────────────────────────────────────── */
.hotel-bkg-price-box {
    background:var(--hr-cream);border:1px solid var(--hr-stone);
    border-left:3px solid var(--hr-maroon);border-radius:var(--hr-radius);
    padding:.75rem 1rem;display:flex;flex-direction:column;gap:.2rem;
}
.hotel-bkg-price-box__label {
    font-size:.7rem;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:var(--hr-muted);
}
.hotel-bkg-price-box__value {
    font-family:var(--hr-font-d);font-size:1.35rem;font-weight:500;color:var(--hr-maroon);
}
.hotel-bkg-price-box__note { font-size:.72rem;color:var(--hr-muted);font-style:italic; }

/* ── Actions ─────────────────────────────────────────────────── */
.hotel-cafe-form-actions { display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1rem; }

.hotel-cafe-form-submit {
    min-width:200px;padding:.75rem 1.5rem;
    background:var(--hr-maroon);color:var(--hr-white);
    border:none;border-radius:var(--hr-radius);
    font-family:var(--hr-font-b);font-size:.78rem;font-weight:500;
    letter-spacing:.1em;text-transform:uppercase;
    cursor:pointer;transition:background 250ms,transform 250ms;
    display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
}
.hotel-cafe-form-submit:hover { background:#4A1010;transform:translateY(-1px); }
.hotel-cafe-form-submit:disabled { opacity:.6;cursor:not-allowed;transform:none; }

/* ── Booking lookup wrap ─────────────────────────────────────── */
.hotel-bkg-lookup-wrap { max-width:680px; }
.hotel-bkg-lookup-result { font-size:.9rem; }

/* ── Flatpickr theme override — maroon brand colours ─────────── */
.flatpickr-calendar {
    border-radius:var(--hr-radius);
    box-shadow:0 8px 32px rgba(26,18,8,.18);
    font-family:var(--hr-font-b);
    border:1px solid var(--hr-stone);
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
    background:var(--hr-maroon) !important;
    border-color:var(--hr-maroon) !important;
}
.flatpickr-day.inRange {
    background:rgba(107,26,26,.12) !important;
    border-color:transparent !important;
    box-shadow:none !important;
}
.flatpickr-day:hover { background:rgba(107,26,26,.08);border-color:transparent; }
.flatpickr-months .flatpickr-month,
.flatpickr-weekdays { background:var(--hr-cream); }
.flatpickr-current-month .flatpickr-monthDropdown-months { background:var(--hr-cream); }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width:640px) {
    .hotel-cafe-form-grid { grid-template-columns:1fr; }
    .hotel-cafe-form-group--full { grid-column:1; }
    .hotel-cafe-form-submit { width:100%; }
}
