
/* Doctor card */
.doctor-card {
    position: relative;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

/* Selected doctor card */
.doctor-card.selected {
    border-color: #28a745;
    background: #fff8dc;
    box-shadow: 0 0 12px rgba(212, 175, 55, 0.35);
}

/* Golden Select Doctor button */
.doctor-card.selected .book-button {
    background: #28a745;
    color: #fff;
}

/* Doctor radio button */
.doctor-radio {
    appearance: none;
    -webkit-appearance: none;

    width: 22px;
    height: 22px;

    border: 2px solid #999;
    border-radius: 50%;

    background: #ffffff;

    cursor: pointer;

    position: relative;

    margin: 0 10px 0 0;

    vertical-align: middle;
}


/* Selected radio */
.doctor-radio:checked {
    background: #28a745;
    border-color: #28a745;
}


/* White check mark */
.doctor-radio:checked::after {
    content: "✓";

    position: absolute;

    top: 50%;
    left: 50%;

    transform: translate(-50%, -52%);

    color: #ffffff;

    font-size: 14px;
    font-weight: bold;
}

.appointment-container {
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
}
/* =========================================================
   APPOINTMENT PAGE
   ========================================================= */

/*.appointment-page {
    width: 100%;
    min-height: 100vh;
    background: #f3f5fa;
    color: #152238;
    padding: 40px 0 60px;
}*/

/* =========================================================
   APPOINTMENT PAGE - CLICK FIX
   ========================================================= */

.appointment-page {
    position: relative;
    z-index: 5;
}

.appointment-page .appointment-container {
    position: relative;
    z-index: 10;
}

.appointment-page input,
.appointment-page select,
.appointment-page button,
.appointment-page label {
    position: relative;
    z-index: 20;
    pointer-events: auto;
}

/* Background overlay must never block the form */
.services-hero .overlay {
    pointer-events: none !important;
}

/* Keep appointment content above the background overlay */
.services-hero .appointment-page {
    position: relative;
    z-index: 10;
}

.appointment-container {
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
}


/* =========================================================
   PAGE TITLE
   ========================================================= */

.appointment-page .top-title {
    text-align: center;
    margin-bottom: 35px;
}

.appointment-page .small-title {
    color: #edf8ff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .3px;
    margin-bottom: 18px;
}

.appointment-page .small-title::before,
.appointment-page .small-title::after {
    content: "";
    display: inline-block;
    width: 22px;
    height: 3px;
    background: #edf8ff;
    vertical-align: middle;
    margin: 0 9px;
    border-radius: 3px;
}

.appointment-page .top-title h1 {
    font-size: 31px;
    font-weight: 800;
    color: #edf8ff;
    margin: 0;
}


/* =========================================================
   SECTIONS
   ========================================================= */

.appointment-page .section {
    margin-bottom: 38px;
}

.appointment-page .section-title {
    color: #f1f4f6;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 22px;
}


/* =========================================================
   FORM GRID
   ========================================================= */

.appointment-page .form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px 18px;
}

.appointment-page .form-group label {
    display: block;
    color: #f7f9fb;
    font-size: 13px;
    margin-bottom: 9px;
    font-weight: 600;
}

.appointment-page .form-control {
    width: 100%;
    height: 40px;
    padding: 0 16px;
    border: 1px solid #d6d9df;
    border-radius: 4px;
    background: #edf8ff;
    color: #374151;
    font-size: 13px;
    outline: none;
    transition: .2s;
}

.appointment-page .form-control:focus {
    border-color: #1596d1;
    box-shadow: 0 0 0 2px rgba(21, 150, 209, .08);
}

.appointment-page select.form-control {
    cursor: pointer;
}


/* =========================================================
   DOCTOR SECTION
   ========================================================= */

.appointment-page .doctor-wrapper {
    margin-top: 26px;
}

.appointment-page .doctor-wrapper > label {
    display: block;
    color: #f8f9fa;
    font-size: 13px;
    margin-bottom: 10px;
    font-weight: 600;
}

.appointment-page .doctor-area {
    background: #f8f9fc;
    border-radius: 7px;
    padding: 18px;
    border: 1px solid #edf0f5;
}

.appointment-page .doctor-heading {
    color: #1596d1;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 14px;
}


/* =========================================================
   DOCTOR GRID
   ========================================================= */

.appointment-page .doctor-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 19px;
}

.appointment-page .doctor-card {
    background: #edf8ff;
    border-radius: 6px;
    padding: 14px 13px 12px;
    border: 1px solid #e3e7ed;
    min-height: 150px;
    transition: .2s;
}

.appointment-page .doctor-card:hover {
    border-color: #1596d1;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .06);
}

.appointment-page .doctor-card.selected {
    border: 1px solid #168ff0;
    background: #edf8ff;
}


/* =========================================================
   DOCTOR INFORMATION
   ========================================================= */

.appointment-page .doctor-name {
    font-size: 13px;
    font-weight: 700;
    color: #12213a;
    margin-bottom: 10px;
}

.appointment-page .doctor-name > span:first-child {
    color: #1596d1;
    margin-right: 6px;
}

.appointment-page .verified {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 13px;
    height: 13px;
    background: #169b68;
    color: #edf8ff;
    border-radius: 50%;
    font-size: 8px;
    text-align: center;
    line-height: 13px;
    margin-left: 3px;
}

.appointment-page .specialization {
    color: #374151;
    font-size: 11px;
    margin-bottom: 10px;
}

.appointment-page .specialization span {
    color: #1596d1;
    margin-right: 5px;
}

.appointment-page .availability {
    color: #00a5e6;
    font-size: 10px;
    margin-bottom: 12px;
}

.appointment-page .availability span {
    margin-right: 5px;
}


/* =========================================================
   DOCTOR BUTTON
   ========================================================= */

.appointment-page .book-button {
    width: 100%;
    height: 37px;
    border: 0;
    border-radius: 4px;
    background: #075486;
    color: #edf8ff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: .2s;
}

.appointment-page .book-button:hover {
    background: #063e63;
}

/*.appointment-page .doctor-radio {
    display: none;
}*/


/* =========================================================
   SUBMIT BUTTON
   ========================================================= */

.appointment-page .submit-area {
    margin-top: 30px;
    text-align: right;
}

.appointment-page .submit-button {
    background: #1596d1;
    color: #edf8ff;
    border: 0;
    padding: 13px 30px;
    border-radius: 4px;
    font-weight: 700;
    cursor: pointer;
    transition: .2s;
}

.appointment-page .submit-button:hover {
    background: #087db5;
}

.appointment-page .submit-button:disabled {
    opacity: .6;
    cursor: not-allowed;
}


/* =========================================================
   ALERTS
   ========================================================= */

.appointment-page .alert {
    padding: 13px 16px;
    margin-bottom: 25px;
    border-radius: 4px;
    font-size: 13px;
}

.appointment-page .alert-success {
    background: #e7f8ef;
    color: #137347;
    border: 1px solid #bdebd0;
}

.appointment-page .alert-danger {
    background: #fff0f0;
    color: #b91c1c;
    border: 1px solid #f2caca;
}


/* =========================================================
   VALIDATION
   ========================================================= */

.appointment-page .error {
    color: #dc2626;
    font-size: 11px;
    margin-top: 5px;
}

.appointment-page .alert-danger ul {
    margin: 8px 0 0 18px;
}

.appointment-page .alert-danger li {
    margin-bottom: 3px;
}


/* =========================================================
   LOADING / EMPTY STATE
   ========================================================= */

.appointment-page .loading {
    text-align: center;
    color: #1596d1;
    padding: 20px;
    font-size: 13px;
}

.appointment-page .no-doctors {
    text-align: center;
    color: #777;
    padding: 25px;
    font-size: 13px;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 900px) {

    .appointment-page .doctor-grid {
        grid-template-columns: repeat(2, 1fr);
    }

}


@media (max-width: 768px) {

    .appointment-page {
        padding: 30px 0 50px;
    }

    .appointment-container {
        width: 94%;
    }

    .appointment-page .form-grid {
        grid-template-columns: 1fr;
    }

    .appointment-page .doctor-grid {
        grid-template-columns: 1fr;
    }

    .appointment-page .top-title h1 {
        font-size: 25px;
    }

    .appointment-page .submit-area {
        text-align: center;
    }

    .appointment-page .submit-button {
        width: 100%;
    }

}