/* =========================================================
   REHABME — BOOKING PÚBLICO
========================================================= */

.booking-page {
    background:
        radial-gradient(
            circle at 90% 0%,
            rgba(92, 169, 154, .12),
            transparent 30%
        ),
        var(--paper);
}

.booking-intro {
    padding:
        78px
        clamp(24px, 8vw, 115px)
        42px;

    background: var(--cream);
}

.booking-intro h1 {
    max-width: 820px;

    margin: 0;

    font-size: clamp(44px, 6vw, 76px);
    line-height: .98;
    letter-spacing: -3.5px;
    font-weight: 500;
}

.booking-intro .lead {
    margin-bottom: 0;
}


/* =========================================================
   PANEL
========================================================= */

.booking-panel {
    width: min(980px, calc(100% - 48px));

    margin: 0 auto;
    padding: 52px 0 90px;
}

.booking-progress {
    display: grid;
    grid-template-columns: repeat(4, 1fr);

    margin-bottom: 24px;

    border-bottom: 1px solid var(--line);
}

.booking-progress span {
    padding: 12px 8px;

    text-align: center;

    font-size: 11px;
    font-weight: 700;

    color: #8b9c9d;

    border-bottom: 2px solid transparent;
}

.booking-progress span.is-active {
    color: #4f9488;
    border-color: #5ca99a;
}


/* =========================================================
   STEP
========================================================= */

.booking-step {
    display: none;

    padding: 42px;

    border: 1px solid var(--line);

    background: #fff;
}

.booking-step.is-active {
    display: block;
}

.booking-step h2 {
    margin: 0 0 28px;

    font-size: clamp(30px, 4vw, 48px);
    line-height: 1;

    letter-spacing: -2px;
    font-weight: 500;
}

.booking-back {
    margin-bottom: 30px;
    padding: 0;

    border: 0;
    background: transparent;

    color: #5b817b;

    font: 700 12px 'DM Sans', Arial, sans-serif;

    cursor: pointer;
}


/* =========================================================
   SERVICES
========================================================= */

.booking-services {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 12px;
}

.booking-service {
    min-height: 116px;

    padding: 18px;

    text-align: left;

    border: 1px solid var(--line);
    background: var(--paper);

    cursor: pointer;

    transition: .18s ease;
}

.booking-service:hover {
    transform: translateY(-2px);
    border-color: #90bdb4;
}

.booking-service strong {
    display: block;

    margin-bottom: 6px;

    font-size: 15px;

    color: var(--ink);
}

.booking-service span {
    font-size: 11px;
    color: var(--muted);
}

.booking-service.is-selected {
    border-color: #5ca99a;
    background: #edf6f3;
}


/* =========================================================
   FORMS
========================================================= */

.booking-field {
    display: grid;
    gap: 7px;
}

.booking-field > span {
    font-size: 11px;
    font-weight: 700;

    color: #4d686c;
}

.booking-field input {
    width: 100%;
    min-height: 48px;

    padding: 0 13px;

    border: 1px solid var(--line);

    background: var(--paper);

    font: inherit;
    color: var(--ink);

    outline: none;
}

.booking-field input:focus {
    border-color: #6faf9f;

    box-shadow:
        0 0 0 3px rgba(92, 169, 154, .08);
}

.booking-form-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 16px;

    margin-bottom: 22px;
}


/* =========================================================
   SLOTS
========================================================= */

.booking-slots {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 10px;
}

.booking-slot {
    min-height: 48px;

    border: 1px solid var(--line);

    background: var(--paper);

    color: var(--ink);

    font: 700 13px 'DM Sans', Arial, sans-serif;

    cursor: pointer;
}

.booking-slot:hover,
.booking-slot.is-selected {
    border-color: #5ca99a;
    background: #eaf4f1;

    color: #397d70;
}


/* =========================================================
   SUMMARY / MESSAGE
========================================================= */

.booking-summary {
    margin: 22px 0;

    padding: 16px;

    border-left: 3px solid #5ca99a;

    background: #edf5f2;

    font-size: 13px;

    color: #42625f;
}

.booking-summary strong {
    color: var(--ink);
}

.booking-message {
    display: none;

    margin: 16px 0;
    padding: 12px 14px;

    font-size: 12px;
}

.booking-message.is-visible {
    display: block;
}

.booking-message.is-error {
    background: #fff0ec;
    color: #9a523e;
}

.booking-message.is-success {
    background: #edf6f1;
    color: #39755e;
}

.booking-loading {
    grid-column: 1 / -1;

    padding: 30px;

    text-align: center;

    color: var(--muted);
}

.booking-submit {
    border-radius: 0;
}


/* =========================================================
   SUCCESS
========================================================= */

.booking-success {
    text-align: center;
}

.booking-success h2 {
    max-width: 620px;

    margin-left: auto;
    margin-right: auto;
}

.booking-success > p {
    max-width: 520px;

    margin: 0 auto 24px;

    color: var(--muted);
}

.booking-confirmation {
    max-width: 600px;

    margin: 0 auto 28px;

    padding: 20px;

    background: #edf5f2;

    color: #42625f;

    font-size: 14px;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 760px) {

    .booking-intro {
        padding:
            68px
            24px
            34px;
    }

    .booking-intro h1 {
        letter-spacing: -2px;
    }

    .booking-panel {
        width: calc(100% - 32px);

        padding:
            28px
            0
            70px;
    }

    .booking-progress {
        grid-template-columns: repeat(2, 1fr);
    }

    .booking-step {
        padding: 26px 20px;
    }

    .booking-services,
    .booking-form-grid {
        grid-template-columns: 1fr;
    }

    .booking-slots {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}
