﻿:root {
    --darkest-grey: #343E46;
    --massage-green: #B8D149;
    --dark-grey: #586A77;
    --dark-grey-30: rgba(88, 106, 119, 0.3);
    --darkest-grey-85: rgba(52, 62, 70, 0.85);
    --light-grey: #E6E5E5;
    --light-grey-50: rgba(230,229,229,0.5);
    --dark-grey-20: rgba(88,106,119,0.2);
    --mid-tone-grey: #798893;
    --massage-green-20: rgba(184, 209, 73, 0.2);
}

/******************************/
/* Initial Styles */
/******************************/

.apply-now-container {
    background-color: #3b4a56;
    color: white;
    text-align: center;
    padding: 20px 0;
}

.apply-now-container h1 {
    font-weight: bold;
    margin: 0;
}

.apply-now-container h1 span {
    color: #bbd346;
}

.application-form {
    padding: 80px 0;
}

.application-form h2 {
    margin-bottom: 30px;
    font-size: 28px;
}

.application-form .form-group {
    margin-bottom: 35px;
}

.position-options {
    margin-bottom: 30px;
}

.position-col {
    margin-bottom: 15px;
}

.position-checkbox-container {
    position: relative;
    display: block;
    background-color: #f5f8e3;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 10px;
    text-align: center;
    height: 100%;
    transition: all 0.3s ease;
}

.position-checkbox-container:hover {
    border-color: #bbd346;
}

.position-checkbox {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.position-label {
    display: block;
    cursor: pointer;
    padding: 5px;
    width: 100%;
}

.position-icon {
    height: 40px;
    margin-bottom: 10px;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.position-label span {
    display: block;
    font-size: 14px;
}

.position-checkbox:checked + .position-label .position-checkbox-container {
    background-color: #bbd346;
}

.position-checkbox:checked + .position-label {
    color: #333;
    font-weight: bold;
}

/* Custom styling when checkbox is checked */
input[type="checkbox"]:checked + .position-label {
    background-color: #bbd346;
    color: #fff;
}

.file-upload-area {
    position: absolute;
    overflow: hidden;
    height: 0;
    width: 0;
    opacity: 0;
}

.file-upload-container {
    border: 2px dashed #ddd;
    padding: 20px;
    text-align: center;
    margin-bottom: 20px;
    background-color: #f9f9f9;
    transition: all 0.3s ease;
}

.file-upload-container:hover {
    border-color: #bbd346;
}

.file-upload-container.drag-over {
    background-color: #f5f8e3;
    border-color: #bbd346;
}

.clinic-search-input {
    margin-bottom: 20px;
}

.clinic-list {
    overflow-y: auto;
    padding: 10px;
    background-color: white;
}

.clinic-list .clinic-item {
    padding: 10px;
    border-bottom: 1px solid #eee;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.clinic-list .clinic-item button {
    background-color: #bbd346;
    border: none;
    color: white;
    padding: 5px 10px;
    border-radius: 3px;
}

.selected-locations-container {
    margin-top: 100px;
}

.selected-locations {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.selected-location-item {
    background-color: #f5f8e3;
    padding: 10px;
    border-radius: 3px;
    display: flex;
    align-items: center;
}

.selected-location-item .number {
    background-color: #bbd346;
    color: white;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
}

.submit-application {
    text-align: right;
    margin-top: 40px;
}

.submit-btn {
    background-color: #bbd346;
    color: white;
    border: none;
    padding: 10px 30px;
    font-size: 18px;
    text-transform: uppercase;
    font-weight: bold;
}

.application-form .form-group input#submit-application-btn {
    font-size: 26px;
    padding: 10px 40px !important;
}

#map {
    height: 400px;
    width: 100%;
}

.mapMarkerLabel {
    font-size: 12px;
    font-weight: 500;
    color: white;
    text-align: center;
    width: 30px;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
}

/******************************/
/* Banner */
/******************************/

.apply-now-container {
    padding: 50px 0px;
}

.apply-now-container h1 {
    color: white;
    font-size: 42px;
    line-height: 43px;
    font-weight: 700;
}

/******************************/
/* Grey Callout Instructions */
/******************************/

.application-steps {
    padding: 90px 0;
}

.application-steps {
    background-color: #f9f9f9;
}

.application-steps .step {
    display: flex;
    align-items: flex-start;
    margin-bottom: 35px;
}

.application-steps .step:nth-last-of-type(1) {
    margin-bottom: 0px;
}

.step-number {
    display: inline-flex;
    width: 45px;
    height: 45px;
    background-color: #ffffff;
    color: var(--darkest-grey);
    border-radius: 50%;
    text-align: center;
    line-height: 22px;
    margin-right: 22px;
    font-size: 22px;
    flex-shrink: 0;
    border: 2px solid var(--massage-green);
    align-items: center;
    justify-content: center;
    font-weight: 600;
}

.step-content p {
    color: var(--darkest-grey);
    margin-bottom: 0;
    font-size: 18px;
    line-height: 23px;
    font-weight: 400;
}

/******************************/
/* Form */
/******************************/

.application-form .cms-group-checkbox label.control-label.cms-form-label,
.checkbox-error {
    width: 100%;
}

.checkbox {
    display: inline-flex;
    text-align: center;
    flex:1;
}

.checkbox input[type="checkbox"] { 
    opacity:0; 
}

/*#cms-form-field-1e4808b7-30a6-4b4c-b590-5e1cdbcddc37 {
    opacity: 0;
    display: block !important;
    height: 0px !important;
    max-height: 0px !important;
    min-height: 0px;
    padding: 1px;
}*/

#cms-form-field-1e4808b7-30a6-4b4c-b590-5e1cdbcddc37 {
    position: absolute;
    left: -9999px;
    opacity: 1;
    pointer-events: auto;
    z-index: -1;
}

.drag-area.upload-error-visible {
    border: 2px dashed red;
}

.upload-error {
    font-size: 16px;
}


.application-form .form-group.cms-group-checkbox {
    display: flex;
    flex-wrap: wrap;
    column-gap: 30px;
}

.checkbox + .checkbox {
    margin-top: unset;
}

.checkbox {
    margin-top: 0px !important;
}

.checkbox label {
    display: block;
    cursor: pointer;
    padding: 20px 35px; 
    border-radius: 8px; 
    background: var(--light-grey-50);
    position: relative;
    transition: background-color 0.3s ease, border-color 0.3s ease; 
    width: 100%;
}

.checkbox-error {
    margin: 0px;
    font-size: 16px;
    margin-bottom: 10px;
}

.checkbox-error-visible label {
    outline: 2px solid red;
}



@media (min-width: 768px) {
    .checkbox label .cms-form-multifield-label {
        display: block;
        margin-top: 8px;
        line-height: 18px;
    }
    
    .checkbox label:before {
        content: "";
        display: block;
        background-size: cover;
        width: unset;
        height: 54px;
        margin: 0 auto;
        margin-bottom: 15px;
    }

    .checkbox:nth-of-type(1) label:before,
    .checkbox.checkbox-error-visible:nth-of-type(2) label:before {
        /* RMT */
        background-image: url('https://immediac.blob.core.windows.net/massageaddict2021/images/2025/careers/Layer%201.png');
        aspect-ratio: 91/54;
    }

    .checkbox:nth-of-type(2) label:before,
    .checkbox.checkbox-error-visible:nth-of-type(3) label:before {
        /* Chrio */
        background-image: url('https://immediac.blob.core.windows.net/massageaddict2021/images/2025/careers/Layer%204.png');
        aspect-ratio: 18/54;
    }

    .checkbox:nth-of-type(3) label:before,
    .checkbox.checkbox-error-visible:nth-of-type(4) label:before {
        /* Acup */
        background-image: url('https://immediac.blob.core.windows.net/massageaddict2021/images/2025/careers/Layer%202.png');
        aspect-ratio: 38/52;
    }

    .checkbox:nth-of-type(4) label:before,
    .checkbox.checkbox-error-visible:nth-of-type(5) label:before {
        /* Reflex */
        background-image: url('https://immediac.blob.core.windows.net/massageaddict2021/images/2025/careers/Layer%203.png');
        aspect-ratio: 50/57;
    }

    .checkbox:nth-of-type(5) label:before,
    .checkbox.checkbox-error-visible:nth-of-type(6) label:before {
        /* Guest Services */
        background-image: url('https://immediac.blob.core.windows.net/massageaddict2021/images/2025/careers/Group%2054.png');
        aspect-ratio: 61/57;
    }

    .checkbox:nth-of-type(6) label:before,
    .checkbox.checkbox-error-visible:nth-of-type(7) label:before {
        /* Clinic Director */
        background-image: url('https://immediac.blob.core.windows.net/massageaddict2021/images/2025/careers/clinic-director.png');
        aspect-ratio: 41/52;
    }
}

/* File Upload */

.drag-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px 20px 32px;
    border: 2px dashed var(--light-grey-50);
    border-radius: 10px;
    cursor: pointer;
    text-align: center;
    max-width: 100%;
    margin: 0 auto;
    transition: border-color 0.3s;
}

.drag-area.dragging {
    border-color: #007bff;
}

.drag-area .icon {
    font-size: 40px;
    color: #007bff;
    margin-bottom: 10px;
}

.drag-area header {
    font-size: 18px;
    font-weight: bold;
    color: var(--darkest-grey);
    margin-bottom: 10px;
}

.drag-area span {
    font-size: 14px;
    color: #555;
    margin: 10px 0;
}

.drag-area .or-wrapper {
    font-size: 18px;
    line-height: 21px;
    color: var(--dark-grey);
    font-weight: 600;
}

.drag-area .button {
    padding: 10px 20px;
    font-size: 14px;
    background-color: var(--massage-green);
    border: none;
    border-radius: 5px;
    cursor: pointer;
    margin-bottom: 0px;
    color: var(--darkest-grey);
    font-size: 18px;
    font-weight: bold;
    transition: all .5s ease;
}

.drag-area .button:hover {
    background: var(--darkest-grey) !important;
    color: white !important;
}

.drag-area button:hover {
    background-color: #0056b3;
}

.drag-area input[type="file"] {
    display: none;
}

.file-list-wrapper {
    margin-top: 20px;
    max-width: 100%;
}

ul.file-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0px 15px;
}

.file-list {
    list-style-type: none;
    padding: 0;
}

.file-list li {
    display: flex;
    justify-content: space-between;
    padding: 8px;
    margin-bottom: 5px;
    background-color: var(--light-grey-50);
    border-radius: 5px;
    padding-left: 20px!important;
    flex: 0 0 calc(33.33333333% - 10px);
    margin-bottom: 15px!important;
}

.file-list li:nth-last-of-type(1) {
    margin-bottom: 15px!important;
}

.file-list li::before {
    display: none;
}

.file-list .remove-file {
    background: none;
    border: none;
    color: var(--massage-green);
    cursor: pointer;
    font-weight: bold;
    transition: all .5s ease;
}

.file-list .remove-file:hover {
    color: var(--darkest-grey);
}

.clinic-location-section .subTitle {
    color: var(--massage-green);
    font-size: 17px;
    font-weight: 500;
}

.clinic-location-section .searchTitle {
    font-size: 24px;
    color: var(--darkest-grey);
    margin-bottom: 15px;
}

.padding-right {
    padding-right: 40px;
}

.drag-area .mobile-only {
    display: none;
}

/******************************/
/* Map and Location List */
/******************************/

.clinic-location-section .row {
    display: flex;
}

.clinic-location-section .row.top-row > div:nth-child(1) {
    padding-right: 0px;
}

.clinic-location-section .row.top-row > div:nth-child(2) {
    padding-left: 0px;
}

.map-container {
    height: 100%;
    width: 100%;
}

.clinic-list {
    height: 600px;
    padding-right: 25px;
    padding-left: 0px;
}

.map-container #map{
    border-radius: 0px 15px 15px 0px;
    width: -webkit-fill-available;
    object-fit: cover;
    height: -webkit-fill-available;
    object-position: center;
}

.clinic-list-item-number {
    font-size: 16px;
    line-height: 16px;
    font-weight: 600;
    outline: 3px solid grey;
    outline-offset: 2.5px;
}

.clinic-list-item-distance {
    font-size: 14px;
    font-weight: 600;
    margin-top: 15px;
}

.clinic-list-item-title {
    font-size: 18px;
    line-height: 27px;
    font-weight: 800;
    border-bottom: 2px solid var(--massage-green);
    margin-bottom: 20px;
}

.clinic-list-item-address,
.clinic-list-item-phone {
    display: flex;
    gap: 13px;
    margin-bottom: 11px;
}

.clinic-list-item {
    display: flex;
    justify-content: space-between;
}

.clinic-list-item-address .icon i {
    font-size: 24px;
}

.clinic-list-item-phone .icon i {
    font-size: 18px;
    margin-right: 5px;
}

.clinic-list .text-wrapper {
    font-size: 16px;
    line-height: 20px;
}

button.clinic-list-item-add-btn {
    padding: 10px 23px !important;
    border-radius: 12px;
    display: inline-block;
    font-size: 18px;
    font-weight: 700;
    text-decoration: none !important;
    background: var(--massage-green);
    color: var(--darkest-grey);
    border: none !important;
    margin-right: 7px;
    height: 45px;
    transition: all .5s ease;
}

a.clinic-list-item-learn-btn {
    padding: 12px 23px !important;
    border-radius: 12px;
    display: inline-block;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none !important;
    background: var(--light-grey);
    color: var(--darkest-grey);
    border: none !important;
    height: 45px;
}

.searchFilterWrapper {
    padding-right: 38px;
    margin-bottom: 25px;
}

.searchFilterWrapper {
    display: flex;
    flex-direction: column;
    align-items: end;
}

.searchFilterWrapper input {
    width: 100%;
    margin-bottom: 10px;
    border: 1px solid var(--light-grey);
    padding: 10px 10px 7px;
    border-radius: 10px;
}

.searchFilterWrapper button {
    padding: 6px 25px 4px !important;
    border-radius: 12px;
    display: inline-flex;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none !important;
    background: var(--light-grey);
    color: var(--darkest-grey);
    border: none !important;
    transition: all .5s ease;
}

.searchFilterWrapper button:hover, 
a.clinic-list-item-learn-btn:hover,
button.clinic-list-item-add-btn:hover {
    background: var(--darkest-grey) !important;
    color: white !important;
}

.clinic-list-item-phone {
    margin-bottom: 20px;
}


/******************************/
/* Selected Locations */
/******************************/

.selected-clinic-item {
    background: var(--light-grey-50);
    padding: 15px 20px;
    border-radius: 8px;
    gap: 15px;
    font-size: 18px;
    display: flex;
    flex: 0 0 calc(25% - 10px);
    line-height: 18px;
    align-items: center;
}

.selected-locations {
    display: flex;
}

.selected-clinic-item .selected-clinic-number {
    background: white;
    border: 2px solid var(--massage-green);
    border-radius: 50%;
    width: 30px;
    height: 30px;
    max-width: 30px;
    max-height: 30px;
    min-width: 30px;
    min-height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 18px;
}



.cms-group-select.mobile-only {
    display: none;
}


@media (min-width: 1366px) and (max-width: 1600px) {
    /******************************/
    /* Map and Location List */
    /******************************/

    button .clinic-list-item-add-btn {
        padding: 10px 15px !important;
        font-size: 16px;
        margin-right: 2px;
    }

    a.clinic-list-item-learn-btn {
        padding: 12px 15px !important;
    }
}

@media (min-width: 1200px) and (max-width: 1366px) {

    /******************************/
    /* Map and Location List */
    /******************************/

    button.clinic-list-item-add-btn {
        padding: 10px 15px !important;
        font-size: 16px;
        margin-right: 2px;
    }

    a.clinic-list-item-learn-btn {
        padding: 12px 15px !important;
    }

}

@media (min-width: 992px) and (max-width: 1199px) {

    /******************************/
    /* Form */
    /******************************/

    .application-form {
        padding: 90px 0;
    }

    .checkbox {
        margin-top: -16px !important;
        flex: 0 0 calc(25% - 8px);
    }

    .application-form .form-group.cms-group-checkbox {
        gap: 10px;
    }

    .checkbox label {
        margin-bottom: 6px;
    }

    .selected-clinic-item {
        flex: 0 0 calc(33.33333333% - 10px);
    }

    /******************************/
    /* Map and Location List */
    /******************************/

    button.clinic-list-item-add-btn {
        padding: 10px 16px !important;
        font-size: 16px;
        margin-right: 2px;
    }

    a.clinic-list-item-learn-btn {
        padding: 12px 16px !important;
    }

}

@media (min-width: 768px) and (max-width: 991px) {

    /******************************/
    /* Grey Callout Instructions */
    /******************************/

    .application-steps {
        padding: 50px 0;
    }

    /******************************/
    /* Form */
    /******************************/

    .application-form {
        padding: 60px 0;
    }

    .application-form .form-group {
        margin-bottom: 25px;
    }

    .application-form .checkbox {
        margin-bottom: 15px;
    }

    .file-list li {
        flex: 0 0 calc(50% - 10px);
    }

    /******************************/
    /* Map and Location List */
    /******************************/

    .clinic-location-section .row {
        display: block;
    }

    .searchFilterWrapper {
        flex-direction: row;
        padding-right: 25px;
        gap: 15px;
    }

    .searchFilterWrapper input {
        width: 80%;
        margin-bottom: 0px;
    }

    .searchFilterWrapper button {
        width: 20%;
        padding: 10px 15px 8px !important;
        align-items: center;
        justify-content: center;
    }

    .clinic-list-item-address {
        float: left;
        margin-right: 25px;
    }

    .clinic-list-item-address, 
    .clinic-list-item-phone {
        margin-bottom: 25px;
    }

    .clinic-list-item-phone {
        gap: 5px;
    }

    .map-container {
        height: 400px;
    }

    .map-container #map {
        border-radius: 15px;
    }

    .selected-locations-container {
        margin-top: 50px;
    }

    .clinic-location-section .row.top-row > div:nth-child(2) {
        padding-left: 15px;
        margin-top: 25px;
    }

    .application-form .form-group input#submit-application-btn {
        font-size: 20px;
        padding: 10px 40px !important;
    }

    .selected-clinic-item {
        flex: 0 0 calc(50% - 10px);
    }
}

@media (max-width: 767px) {

    /******************************/
    /* Grey Callout Instructions */
    /******************************/

    .application-steps {
        padding: 45px 0;
    }

    .step-number {
        width: 35px;
        height: 35px;
        line-height: 18px;
        font-size: 18px;
        margin-right: 11px;
    }

    .step-content p {
        font-size: 16px;
        line-height: 21px;
    }

    /******************************/
    /* Form */
    /******************************/

    .application-form {
        padding: 60px 0;
    }

    .application-form h2 {
        margin-bottom: 20px;
        font-size: 22px;
        line-height: 30px;
    }

    p.paddingLeft {
        padding-left: 15px;
    }

    .application-form .form-group {
        margin-bottom: 15px;
    }

    .application-form .form-group.cms-group-checkbox {
        gap: 15px;
    }

    .checkbox {
        margin-top: -16px !important;
        flex: 0 0 calc(50% - 8px);
    }

    .checkbox label {
        padding: 20px 15px;
    }

    .file-list li {
        flex: 0 0 calc(100%);
    }

    .drag-area .desktop-only {
        display: none;
    }

    .drag-area .button.mobile-only {
        margin-top: 0px;
        display: block;
    }

    /******************************/
    /* Map and Location List */
    /******************************/

    .clinic-location-section .row {
        display: block;
    }

    .clinic-list {
        height: auto;
        overflow-y: visible;
        padding-right: 20px;
        padding-left: 15px;
        border-bottom: none;
        border-top: 1px solid #ddd;
    }

    .load-more-mobile-btn {
        display: block;
        width: calc(100% - 35px);
        margin: 15px 15px 0;
        padding: 12px;
        border-radius: 12px;
        font-size: 16px;
        font-weight: 600;
        cursor: pointer;
        text-align: center;
    }

    .searchFilterWrapper {
        padding-right: 23px;
        padding-left: 15px;
        margin-bottom: 10px;
    }

    .clinic-location-section .row.top-row > div:nth-child(1) {
        padding-left: 0px;
    }

    .clinic-location-section .subTitle {
        padding-right: 20px;
        padding-left: 15px;
    }

    h2.searchTitle {
        padding-right: 20px;
        padding-left: 15px;
        font-size: 22px;
        line-height: 30px;
    }

    .selected-locations-container {
        margin-top: 40px;
    }

    .selected-locations-container h3 {
        font-size: 22px;
        line-height: 30px;
        margin-bottom: 10px;
    }

    button.clinic-list-item-add-btn {
        padding: 10px 12px !important;
        font-size: 16px;
        margin-right: 2px;
    }

    a.clinic-list-item-learn-btn {
        padding: 12px 12px !important;
    }

    .selected-clinic-item {
        flex: 0 0 calc(100%);
    }

    .submit-application {
        padding: 0px;
    }

    .submit-application input#submit-application-btn {
        width: 100%;
    }

    .map-container {
        height: 400px;
    }

    .clinic-location-section .row.top-row > div:nth-child(2) {
        padding-right: 0px;
    }

    .map-container #map {
        border-radius: 0px;
    }

    .padding-right {
        padding-right: 15px;
    }

    .map-container {
        display: none;
    }

    .cms-group-select.mobile-only {
        display: block;
    }

    .cms-group-checkbox.desktop-only {
        display: none!important;
    }
}

/*Mobile list height scaling*/

@media (min-width: 10px) and (max-width: 767px) and (max-height: 730px) {
    .clinic-list {
        height: auto;
    }
}
