﻿
:root {
    --bs-primary-light: #DAEAFF;
}

.page-title {
    padding: 30px 0 5px;
    text-align: center;
    width: 100%
}

/* Stepper */
.stepper {
    display: flex;
    margin-bottom: 2rem;
}

.step-item {
    text-align: center;
    flex: 1;
    position: relative;
}

    .step-item:not(:last-child)::after {
        content: '';
        position: absolute;
        top: 13px;
        right: -51%;
        width: 100%;
        height: 5px;
        background-color: #D1CDD8;
        z-index: -1;
    }

    .step-item .circle {
        font-size: 14px;
        font-weight: 700;
        width: 30px;
        height: 30px;
        border-radius: 50%;
        background-color: #fff;
        border: 1px solid #757575;
        color: #757575;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 0.5rem;
    }

    .step-item .step-name {
        font-size: 14px;
        font-weight: 500
    }

        .step-item .circle.active,
        .step-item .step-name.active {
            border-color: var(--bs-primary);
            color: var(--bs-primary);
        }

        .step-item .circle.completed,
        .step-item .step-name.completed {
            border-color: var(--bs-primary);
            color: var(--bs-primary);
        }

/*    .step-item.completed::after {
        background-color: var(--bs-primary);
    }*/


/*==================== */
.summary-steps-wrap {
    max-width: 746px;
    margin-bottom: 50px;
}

.summary-steps {
    margin-bottom: 20px
}

.summary-step-block {
    background-color: #fff;
    border: 1px solid var(--bs-primary);
    border-radius: 20px;
    margin-bottom: 15px
}

    .summary-step-block .summary-step-head {
        padding: 15px 22px;
    }

        .summary-step-block .summary-step-head h6 {
            margin-bottom: 0;
            font-size: 22px;
            font-weight: 700;
            color: var(--bs-primary)
        }

    .summary-step-block .summary-step-body {
        padding: 25px 22px;
    }

    .summary-step-block .summary-step-body,
    .summary-step-block .summary-step-head {
        /*        display: none*/
    }

    .summary-step-block.active .summary-step-body {
        /*        display: block*/
    }

.summary-information-form,
.billing-info-form {
    margin-bottom: 28px;
}

    .admin-user-detail-card .char-limit,
    .summary-information-form .char-limit,
    .helper-text,
    .helper-text a {
        color: #7D7D7D;
    }

.helper-text {
    font-size: 13px;
    letter-spacing: 0.5px;
}

.summary-information-form:last-child {
    border: 0;
    padding: 0;
    margin: 0
}

.release-information-block h3,
.summary-information-form h3,
.billing-payment-container h3 {
    font-weight: 700;
    margin-bottom: 15px;
    font-size: 22px;
}

.summary-information-form h4 {
    font-size: 22px;
    font-weight: 500;
}

.summary-information-form .form-control,
.billing-payment-container .form-control {
    padding: 15px
}

.consent-acceptance-checks,
.release-information-block {
    line-height: 1.5;
    letter-spacing: 0.5px
}

    .release-information-block h5 {
        margin-bottom: 4px
    }

    .consent-acceptance-checks .form-check {
        margin-bottom: 12px
    }

    .consent-acceptance-checks .form-check-label {
        font-size: 14px;
    }

.signature-block {
    font-size: 14px;
    color: #535353
}

    .signature-block input[type="file"] {
        width: 200px;
        margin-bottom: 8px;
        border: 1px solid var(--bs-seprator);
        border-radius: 8px !important
    }

.next-step-btn-wrap .btn {
    min-width: 134px
}

.payment-methods .payment-row {
    /*    margin-bottom: 20px;    */
}

.payment-row .row-label {
    padding: 10px 0;
    cursor: pointer;
    height: 53px
}

.payment-row .payment-label {
    position: relative;
    top: 2px
}

.payment-row .row-label img {
    pointer-events: none
}

.payment-row input[type="radio"] {
    width: 16px;
    height: 16px;
    margin-right: 10px;
}

.payment-row.card-row.card-details-form {
    border-radius: 28px;
}

.mm-yy-input,
.cvv-input {
    max-width: 108px
}

    .cvv-input input {
        padding-right: 50px !important
    }

    .cvv-input .cvv-img {
        position: absolute;
        right: 10px;
        top: 13px
    }

.card-holder-name {
    max-width: 270px;
}
/* Summary */
.summary-plan-wrap {
    width: 100%;
    overflow: hidden;
}

    .summary-plan-wrap .sp-heading h2 {
        font-size: 22px;
        margin-bottom: 15px;
        font-weight: 700
    }

.summary-plan-content-col .head {
    font-size: 13px;
    margin-bottom: 40px;
}

    .summary-plan-content-col .head h3 {
        font-size: 12px
    }

.summary-camps-table,
.availed-camps-detail .admin-camps-table {
    background: #fff;
    border: 1px solid #A9A9A9;
    border-radius: 15px;
    font-size: 14px;
    overflow-x: auto
}

    .summary-camps-table table,
    .admin-camps-table table {
        margin-bottom: 0
    }

.summary-camps-container {
    margin-bottom: 45px
}

    .summary-camps-container h4 {
        font-size: 18px;
        font-weight: 500;
        margin-bottom: 14px;
    }

.summary-camps-table .table > :not(:last-child) > :last-child > *,
.summary-camps-table td,
.admin-camps-table .table > :not(:last-child) > :last-child > *,
.admin-camps-table td {
    padding: 10px 15px;
    border-color: #A9A9A9
}

.summary-camps-table .table tr:last-child td,
.admin-camps-table .table tr:last-child td {
    border-bottom: 0
}

.summary-camps-table th,
.admin-camps-table th {
    font-weight: 500;
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
    border-left: 1px solid #a9a9a9
}

.admin-camps-table th {
    white-space: normal
}

.summary-camps-table td,
.admin-camps-table td {
    text-align: center;
    vertical-align: middle;
    min-width: 80px;
    border-left: 1px solid #a9a9a9
}

.summary-camps-table tr > td:first-child,
.admin-camps-table tr > td:first-child,
.summary-camps-table tr > th:first-child,
.admin-camps-table tr > th:first-child {
    border-left: 0
}


.summary-camps-table td p,
.admin-camps-table td p {
    margin-bottom: 0
}

.summary-camps-table .price,
.admin-camps-table .price {
    font-size: 10px;
    padding-left: 4px;
    text-decoration: line-through;
    color: #828282
}

.price-summary-container,
.summary-camps-table .final-price,
.admin-camps-table .final-price {
    color: var(--bs-primary)
}

.price-summary-container {
    font-size: 18px
}

    .price-summary-container p {
        margin-bottom: 0
    }

    .price-summary-container .final-price {
        font-size: 16px;
        min-width: 55px;
        display: inline-block;
    }

    .price-summary-container .price {
        font-size: 12px;
        padding-left: 5px;
        text-decoration: line-through
    }

.final-price-summary {
    border-top: 1px solid var(--bs-seprator);
    font-size: 18px;
    padding-top: 18px;
    margin-top: 18px;
}

/* Admin Pages */

.admin-section {
    padding-top: 25px
}

.admin-sidebar {
    border-radius: 20px;
    background: #fff;
    min-width: 276px;
    max-width: 276px;
    padding: 30px 18px;
}

.admin-sidebar {
    top: 60px;
}

    .admin-sidebar .nav-item {
        margin-bottom: 16px
    }

        .admin-sidebar .nav-item:last-child {
            margin-bottom: 0
        }

    .admin-sidebar .nav-link {
        color: var(--bs-primary);
        font-size: 16px;
        text-decoration: none !important;
        display: flex;
        align-items: center;
        padding: 8px 38px;
        border-radius: 50rem
    }

        .admin-sidebar .nav-link .nav-text {
            position: relative;
            top: 2px;
        }

        .admin-sidebar .nav-link .icon {
            min-width: 25px;
            display: inline-flex;
            margin-right: 6px
        }

        .admin-sidebar .nav-link:hover,
        .admin-sidebar .nav-link.active {
            color: #fff;
            background: var(--bs-primary);
        }

/* admin sidebar ends */

.admin-head {
    margin-top: 18px
}

    .admin-head .btn-explore {
        background: linear-gradient(96.44deg, #1C54A1 -7.2%, #AD4294 108.92%);
        border-radius: 20px;
        color: #fff;
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: relative;
        font-size: 18px;
        height: 65px;
        flex: 1 1 0;
        width: 100%;
        max-width: 326px;
        border: 0
    }

        .admin-head .btn-explore:before {
            content: "";
            background: url(../resources/images/btn-bg-vector.svg) no-repeat;
            position: absolute;
            width: 100%;
            height: 100%;
            left: 0
        }

        .admin-head .btn-explore .btn-text {
            position: relative;
            top: 2px;
            padding-right: 10px;
            white-space: nowrap
        }

        .admin-head .btn-explore:hover {
            background: linear-gradient(96.44deg, #AD4294 -7.2%, #1C54A1 108.92%);
        }

.availed-camps-detail {
    margin-bottom: 35px
}

.admin-camps-table {
    margin-bottom: 20px;
}

.admin-camp-cards-mobile .child-name,
.availed-camps-detail .child-name {
    margin-bottom: 22px;
    display: flex;
    align-items: center
}

    .admin-camp-cards-mobile .child-name .icon,
    .availed-camps-detail .child-name .icon {
        width: 45px;
        height: 45px;
        padding: 7px 9px;
        display: inline-block;
        border: 1px solid #000;
        border-radius: 50%;
        margin-right: 10px
    }

.admin-camp-logo {
    max-width: 127px
}

.admin-user-detail-card {
    background-color: #fff;
    border: 1px solid var(--bs-primary);
    border-radius: 20px;
    margin-bottom: 22px;
    padding: 25px
}

.user-actions-top .btn {
    display: flex;
    align-items: center;
    padding-left: 20px;
    padding-right: 20px;
}

    .user-actions-top .btn .btn-text {
        position: relative;
        top: 2px
    }

    .user-actions-top .btn .icon {
        height: 18px;
        width: 18px;
        display: inline-flex;
    }


/* recommended camps slider */
.recommended-camps {
    width: 100%;
    margin-bottom: 50px
}

    .recommended-camps a {
        text-decoration: none !important
    }

.recommendedCampsSlider {
    width: 100%;
    max-width: 100vw;
    display: block
}

.recommended-camp-col {
    background: linear-gradient(153.24deg, #FFE8D2 8.96%, #B87DFF 94.19%);
    border-radius: 20px;
    overflow: hidden;
}

    .recommended-camp-col:hover {
        opacity: 0.9
    }

.recommended-camps .recommended-camp-img img {
    width: 100%
}

.recommended-camps .recommended-camp-info {
    padding: 15px;
    min-height: 85px;
}

.btn-del-child {
    position: relative;
    cursor: pointer;
    top: -10px;
    color: #000
}

    .btn-del-child:hover {
        color: var(--bs-primary)
    }

.location-map-container loc-map {
    border-radius: 20px
}

.location-map-container {
    position: relative;
    overflow: hidden; /* Prevent overflow from causing layout shifts */
}

.location-map-container > div {
    /* Ensure the map container maintains its size */
    min-height: 600px;
}

.map-loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.location-additional-info .additional-info {
    padding: 20px 35px;
    border-radius: 30px;
    background: #fff;
    border: 1px solid #BDBDBD;
    min-height: 160px;
    line-height: 1.8;
}



@media (min-width:768px) {
    .summary-steps-wrap {
        min-width: 400px
    }

    .summary-plan-wrap {
        max-width: 474px;
    }

    .admin-sidebar {
        min-height: 550px
    }

    .admin-content-col {
        width: calc(100% - 238px);
    }

    .admin-user-detail-card {
        max-width: 747px;
        border-radius: 33px;
    }

    .next-step-btn-wrap .btn {
        min-width: 200px
    }

    .payment-methods .payment-row {
        border: 1px solid var(--bs-primary);
        margin-bottom: 20px;
        border-radius: 50rem;
        min-height: 55px;
    }

    .payment-row .row-label {
        padding: 10px 15px;
        cursor: pointer;
    }
}

.toaster-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 400px;
    min-width: 300px;
}

.toast {
    padding: 16px 20px;
    border-radius: 8px;
    color: white;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 500;
    animation: slideIn 0.3s ease-out;
    border-left: 4px solid rgba(255,255,255,0.3);
}

@keyframes slideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.toast-success {
    background-color: #28a745;
}

.toast-error {
    background-color: #dc3545;
}

.toast-info {
    background-color: #17a2b8;
}

.toast-warning {
    background-color: #ffc107;
    color: #000;
}

.btn-close {
    background: transparent;
    border: none;
    color: inherit;
    font-size: 20px;
    cursor: pointer;
    padding: 0;
    margin-left: 12px;
    opacity: 0.7;
    transition: opacity 0.2s;
}

.btn-close:hover {
    opacity: 1;
}
    background: transparent;
    border: none;
    color: inherit;
    font-size: 1.2rem;
    cursor: pointer;
    margin-left: 1rem;
    line-height: 1;
}





@media (min-width:992px) {
    .next-step-btn-wrap .btn {
        min-width: 246px;
    }

    .admin-sidebar {
        min-height: 749px
    }

    .admin-content-col {
        width: calc(100% - 284px);
    }

    .recommended-camps .swiper-button-prev {
        left: -35px
    }

    .recommended-camps .swiper-button-next {
        right: -35px
    }
}


@media (max-width:1440px) {
    .recommended-camps {
        padding-right: 35px
    }

        .recommended-camps .swiper-button-next {
            right: 0
        }
}

@media (max-width:991px) {
    .admin-sidebar {
        min-width: 230px;
    }

        .admin-sidebar .nav-item {
            margin-bottom: 10px
        }

        .admin-sidebar .nav-link {
            padding: 8px 20px
        }

    .admin-camps-table .table > :not(:last-child) > :last-child > *,
    .admin-camps-table td {
        padding: 10px;
    }

    .recommended-camps {
        padding-left: 35px
    }

        .recommended-camps .swiper-button-prev {
            left: 0
        }
}

@media (max-width:767px) {
    .toggle-on-mobile {
        /*            display: none*/
    }

    .summary-plan-content-col .head {
        margin-bottom: 25px
    }

    .summary-camp-card-mobile {
        background: #fff;
        border: 1px solid #A9A9A9;
        border-radius: 15px;
        padding: 20px;
        margin-bottom: 23px;
        position: relative;
    }

        .summary-camp-card-mobile:after {
            content: "";
            width: 80%;
            height: 1px;
            background: #BBBBBB;
            position: absolute;
            margin: 0 auto;
            left: 0;
            right: 0;
            bottom: -13px;
        }

        .summary-camp-card-mobile:last-child:after {
            display: none
        }

    .next-step-btn-wrap .btn {
        justify-content: center;
        height: 50px
    }

    .admin-section {
        padding-top: 12px
    }

    .admin-title-mobile {
        display: flex;
        justify-content: center;
        margin-bottom: 28px;
    }

        .admin-title-mobile h2 {
            display: flex;
            align-items: center;
            font-weight: 500;
            font-size: 24px;
            margin-bottom: 0;
            color: #000
        }

            .admin-title-mobile h2 .icon {
                position: relative;
                top: -1px
            }

    .admin-head,
    .admin-sidebar-wrap,
    .recommended-camps .swiper-button-prev,
    .recommended-camps .swiper-button-next {
        display: none
    }

    .admin-camp-cards-mobile .child-name,
    .availed-camps-detail .child-name {
        margin-bottom: 5px
    }

    .admin-camp-cards-mobile .admin-camp-card-mobile {
        display: flex;
        justify-content: space-between;
        align-items: top;
        padding: 18px;
        background: #fff;
        border-radius: 20px;
        margin-bottom: 15px;
        font-size: 14px;
        border: 1px solid #a9a9a9
    }

    .admin-head .btn-explore {
        margin: 0 auto
    }

    .recommended-camps {
        padding: 0
    }

        .recommended-camps .swiper-slide {
            min-width: 211px;
            max-width: 211px;
        }
}

.child-button-highlighted {
    background-color: #f0f8ff; /* Example: Light blue background */
    border: 2px solid #007bff; /* Example: Blue border */
    color: #007bff; /* Example: Blue text */
    font-weight: bold;
}


/*IncrCamps site-wide custom stlyes*/
/*.main-color,
.main-text {
    color: #486284;
}

.secondary-color,
.secondary-text {
    color: #536c8b;
}

.light-background-1 {*/
/*Aqua haze*/
/*background-color: #eff2f6;
}

.light-background-2 {*/
/*soft peach*/
/*background-color: #f6efef;
}

.link-color {
    color: #536c8b !important;
}*/
/* mouse over link */
/*.link-color:hover {
        color: #486284 !important;
    }

.general-logo {
    max-width: 20%;
    height: auto;
}


.default-logo {
    height: 2.418125em !important;
    width: 13.25em;
}

h1 {
    font-size: 2.5em;*/ /* 40px/16=2.5em */
/*}

h2 {
    font-size: 1.5em;*/ /* 30px/16=1.875em */
/*}

p {
    font-size: 0.875em;*/ /* 14px/16=0.875em */
/*}

.default-font {
    font-family: 'DM Sans', sans-serif;
}*/
