/* ── AESI Booking Form Styles ─────────────────────────────────── */
:root {
    --aesi-primary:    #4f46e5;
    --aesi-secondary:  #7c3aed;
    --aesi-btn-text:   #ffffff;
    --aesi-bg:         #ffffff;
    --aesi-radius:     10px;
    --aesi-font-size:  15px;
    --aesi-label:      #374151;
}

.aesi-booking-form-wrap {
    background: var(--aesi-bg);
    border-radius: var(--aesi-radius);
    box-shadow: 0 4px 32px rgba(79,70,229,.12);
    overflow: hidden;
    max-width: 820px;
    margin: 0 auto;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Header */
.aesi-form-header {
    background: linear-gradient(135deg, var(--aesi-primary), var(--aesi-secondary));
    padding: 28px 32px;
    color: #fff;
}
.aesi-form-title    { margin: 0; font-size: 22px; font-weight: 700; }
.aesi-form-subtitle { margin: 6px 0 0; opacity: .85; font-size: 14px; }

/* Form body */
.aesi-form-wrap { padding: 28px 32px; }

.aesi-row {
    display: flex;
    gap: 20px;
    margin-bottom: 18px;
}
.aesi-col { flex: 1; min-width: 0; }

.aesi-form-wrap label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--aesi-label);
    margin-bottom: 6px;
}
.aesi-form-wrap label span { color: #ef4444; }

.aesi-form-wrap input,
.aesi-form-wrap select,
.aesi-form-wrap textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid #d1d5db;
    border-radius: calc(var(--aesi-radius) / 2);
    font-size: var(--aesi-font-size);
    color: #1f2937;
    background: #f9fafb;
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
}
.aesi-form-wrap select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 36px;
    cursor: pointer;
}
.aesi-form-wrap textarea { resize: vertical; min-height: 80px; }

.aesi-form-wrap input:focus,
.aesi-form-wrap select:focus,
.aesi-form-wrap textarea:focus {
    border-color: var(--aesi-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--aesi-primary) 15%, transparent);
    background: #fff;
}

/* Submit button */
.aesi-submit-wrap { text-align: center; margin-top: 6px; }
.aesi-submit-btn {
    background: linear-gradient(135deg, var(--aesi-primary), var(--aesi-secondary));
    color: var(--aesi-btn-text);
    border: none;
    padding: 13px 44px;
    border-radius: var(--aesi-radius);
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: opacity .2s, transform .15s;
    letter-spacing: .4px;
}
.aesi-submit-btn:hover  { opacity: .88; transform: translateY(-1px); }
.aesi-submit-btn:active { transform: translateY(0); }

/* Messages */
.aesi-success-msg,
.aesi-error-msg {
    padding: 14px 18px;
    border-radius: calc(var(--aesi-radius) / 2);
    margin-bottom: 18px;
    font-weight: 600;
    font-size: 14px;
}
.aesi-success-msg { background: #d1fae5; color: #065f46; border: 1px solid #6ee7b7; }
.aesi-error-msg   { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }

/* Responsive */
@media (max-width: 600px) {
    .aesi-row          { flex-direction: column; gap: 0; }
    .aesi-form-wrap    { padding: 18px 16px; }
    .aesi-form-header  { padding: 20px 16px; }
    .aesi-form-title   { font-size: 18px; }
    .aesi-submit-btn   { width: 100%; padding: 14px; }
}
