/* Style real plugin markup; data, validation, payment and reservation rules stay in plugins. */
.ha-booking-content { width: min(calc(100% - var(--ha-gutter) * 2), 1180px); margin: 40px auto 72px; }
.besa-single-room__inner { max-width: 1280px; margin-inline: auto; padding: 40px var(--ha-gutter); }
.ha-booking-page .besa-booking, .ha-booking-content .besa-booking { font-family: var(--ha-sans); }
.ha-booking-content h2, .ha-booking-content h3, .besa-single-room h1, .besa-single-room h2, .besa-single-room h3 { font-family: var(--ha-serif); font-weight: 400; }
/* An open plugin calendar must remain above following sections. */
section:has(.besa-datepicker--open), .besa-room-detail:has(.besa-datepicker--open) { position: relative; z-index: 40; }
.ha-form-panel .cfl-wrap { max-width: none; }
.ha-form-panel .cfl-form { display: grid; gap: 20px; }
.ha-form-panel .cfl-field { display: grid; gap: 8px; }
.ha-form-panel .cfl-field label { font: 600 14px/1.5 var(--ha-sans); }
.ha-form-panel .cfl-field input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), .ha-form-panel .cfl-field select, .ha-form-panel .cfl-field textarea { width: 100%; min-height: 52px; background: var(--ha-paper); color: var(--ha-ink); border: 1px solid var(--ha-field-edge); border-radius: var(--ha-radius); padding: 12px; font: 400 16px/1.5 var(--ha-sans); }
.ha-form-panel .cfl-field textarea { min-height: 160px; resize: vertical; }
.ha-form-panel .cfl-actions button { min-height: 52px; border: 1px solid var(--ha-green); border-radius: var(--ha-radius); padding: 14px 24px; background: var(--ha-green); color: var(--ha-paper); font-weight: 600; }
.ha-form-panel .cfl-actions button:hover { background: var(--ha-deep); }
.ha-form-panel .cfl-error, .ha-form-panel [role="alert"] { color: var(--ha-error); }
.ha-form-panel .cfl-success { color: var(--ha-green); padding: 16px; border: 1px solid var(--ha-green); }
.ha-form-panel [aria-invalid="true"] { border-color: var(--ha-error) !important; }
.ha-form-panel button:disabled { opacity: .65; cursor: wait; }
.ha-form-panel input[type="checkbox"], .ha-form-panel input[type="radio"] { accent-color: var(--ha-green); min-width: 20px; min-height: 20px; }
@media (max-width: 540px) {
  .besa-single-room__inner { padding-inline: 20px; }
}
