/* Availability module – intentionally scoped to this component. */
.le-availability {
    max-width: 1180px;
    margin: 0 auto 76px;
    padding: clamp(24px, 4vw, 52px);
    border: 1px solid #dce8ed;
    border-radius: 18px;
    background: linear-gradient(130deg, #f3f8fa 0%, #ffffff 70%);
    box-shadow: 0 18px 50px rgba(16, 50, 65, .07);
}
.le-availability__intro { max-width: 100%; margin-bottom: 28px; }
.le-availability__eyebrow { color: #e96c25; font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .09em; }
.le-availability__intro h2 { margin: 10px 0 14px; color: #163b4e; font-size: clamp(26px, 3vw, 38px); line-height: 1.18; }
.le-availability__intro p { margin: 0; color: #516775; line-height: 1.65; }
.le-availability__fields { display: grid; grid-template-columns: minmax(0, 2fr) minmax(160px, 1fr); gap: 20px; }
.le-availability__field { display: flex; flex-direction: column; gap: 8px; }
.le-availability__field label { color: #193b4b; font-size: 14px; font-weight: 650; }
.le-availability__field input { box-sizing: border-box; width: 100%; min-height: 50px; padding: 12px 15px; border: 1px solid #bfcfd7; border-radius: 8px; background: #fff; color: #193b4b; font: inherit; }
.le-availability__field input:focus-visible { outline: 3px solid #9ad3e4; outline-offset: 2px; border-color: #176783; }
.le-availability__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 24px; }
.le-availability__button { padding: 14px 24px; border: 0; border-radius: 8px; background: #17617b; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.le-availability__button:hover { background: #10485e; }
.le-availability__button:focus-visible { outline: 3px solid #e96c25; outline-offset: 3px; }
.le-availability__button:disabled { opacity: .65; cursor: wait; }
.le-availability__hint, .le-availability__disclaimer { color: #647781; font-size: 13px; }
.le-availability__disclaimer { margin: 22px 0 0; line-height: 1.6; }
.le-availability__result { margin-top: 24px; padding: 16px 18px; border: 1px solid; border-radius: 9px; line-height: 1.6; }
.le-availability__result--success { background: #edf8f1; border-color: #9ac9a9; color: #1a5c32; }
.le-availability__result--info { background: #edf5fa; border-color: #a5cbdc; color: #1c506a; }
.le-availability__result--error { background: #fff2ef; border-color: #e9b4a6; color: #8c3522; }
.le-availability__result[hidden] { display: none; }
@media (max-width: 640px) {
    .le-availability { margin-bottom: 46px; padding: 24px 18px; }
    .le-availability__fields { grid-template-columns: 1fr; gap: 16px; }
    .le-availability__button { width: 100%; }
}
