/*********** WEBFORM CSS ONLY ***********/
/* do not duplicate style from global-style.css */

/***** MOBILE FIRST *****/
/* mixin for Mobiles/Tablet Portrait up : max-width 600px; */


/*********** QUIZZ no reload ***********/

.form-structure {
    background-color: var(--bg-color);
    display: flex;
    min-height: 73vh;
    align-items: center;
    justify-content: center;
}

.webform-row {
    margin: 0 0 20px 0;
    width: 450px;
    position: relative;
    margin-left: auto;
    margin-right: auto;
}

/** Google reCAPTCHA V3 badge **/ 
.grecaptcha-badge{ 
    z-index: 999999;
} 
 
.webform-error{ 
    font-size: 1.5em; 
    line-height: 1.5em; 
    text-align: center; 
    color: #a94442; 
    width: 100%; 
    margin-bottom: 0rem; 
    padding: 20px 0; 
    margin-bottom: 20px; 
    clear: both; 
    background-color: #f2dede; 
    border: 1px solid #ebccd1; 
    display: none; 
} 

.webform-row.error label {
    border: 2px solid var(--webform-red);
    background-color: var(--webform-red-bg) !important;
}

.webform-row.error .webform-cta-next button::before {
    content: "";
    display: block;
    background: url("../images/ico-exclamation.svg");
    width: 40px;
    height: 40px;
    position: absolute;
    left: 100px;
    top: 23px;
}
html[lang='fr-CA'] .webform-row.error .webform-cta-next button::before{    
    left: 40px;
    top: 16px;
}

.webform-row.error.navigation .webform-cta-next button::before {
    left: 55px;
}
html[lang='fr-CA'] .webform-row.error.navigation .webform-cta-next button::before {
    left: 5px;
}

/*** Forms style: labels inputs select ***/
label {
    font-size: 1.5em;
    line-height: 1.15em;
    color: var(--paragraph-font-color);
    font-family: var(--secondary-font-family);
    text-align: left;
    display: block;
}

input,
button,
select,
textarea {
    color: var(--paragraph-font-color);
    font-family: var(--secondary-font-family);
    font-size: 1.5em;
}

input[type="text"], input[type="email"], input[type="tel"], textarea {
    background: var(--bg-color) none repeat scroll 0 0;
    border: 1px solid var(--bg-medium-grey-color);
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border-radius: 3px;
    display: block;
    font-family: var(--secondary-font-family);
    font-size: 1rem;
    padding: 15px;
    width: 100%;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus, textarea:focus, select:focus {
    border: 2px solid var(--primary-color);
    outline:0;
}
input[type="text"].medium-input, input[type="tel"].medium-input {
    display: inline;
    width:56%;
}

select {
    height:60px;
    cursor: pointer;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border-radius: 3px;
    -webkit-appearance:none;
    -moz-appearance:none; /* Safari and Chrome */
    background:url(../images/webform-arrow.svg) no-repeat right var(--bg-color) !important;
    border: 1px solid var(--bg-medium-grey-color);
}
/* -- hack IE pour enlever fleche de base-- */
select::-ms-expand {
    display: none;
}
.wide-select {
    width: 100%;
    padding: 9px 10px 10px;
}
.large-select {
    width: 40%;
    padding: 9px 10px 10px;
    margin: 0 2% 0 0;
}
.medium-select {
    width: 30%;
    padding: 9px 10px 10px;
}
.small-select {
    width: 23%;
    padding: 9px 10px 10px;
    margin: 0 2% 0 0;
}

.last-step h1{
    font-size:calc(1.5rem + 1vw);
    line-height:1.3 ;
}

/*** SMS CheckBox   ***/
.sms-box {
    padding: 10px ;
    background-color: var(--bg-blue-color);
    position: relative;
}

div.sms-box  input[type="checkbox"] {
    position: absolute;
    margin: 0;
    display: block;
    width: 1.5em;
    height: 1.5em;
    border: 3.5px solid var(--primary-color);
    left: 15px;
    top: 22px;
    opacity: .6;
    -webkit-transition: all .12s, border-color .08s;
    transition: all .12s, border-color .08s;
    appearance: none;
    -webkit-appearance:none;
    -webkit-appearance:none;
}

div.sms-box  input[type="checkbox"]:checked, div.sms-box  input[type="checkbox"]:checked:hover  {
    width: 15px;
    top: 18px;
    left: 25px;
    border-radius: 0;
    opacity: 1;
    border-top-color: transparent;
    border-left-color: transparent;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    outline: 0 ;
    appearance:none;
    -webkit-appearance:none;
    -webkit-appearance:none;
}

div.sms-box input[type="checkbox"] + label {
    font-size: 1.5em;
    display: block;
    padding-left: 60px;
    margin: 10px 0;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

div.sms-box  input[type="checkbox"]:checked:focus{
    outline: 0;
}

div.sms-box input[type="checkbox"]:focus-visible {
    outline: 2px solid var(--secondary-color);
}
/*** End SMS Box   ***/

html[lang="fr-CA"] .webform_submit_button {
    /*font-size: 1em;  Todo: modify or remove */
}

button[type="submit"]:hover {
    background-color: var(--title-font-color);
}
button[type="submit"]:focus-visible {
    outline: none;
}

.webform-cta-prev button[type="submit"]:hover .ico-cta {
    transform: translateX(-5px);
}

.webform-cta,
.webform-cta-book,
.webform-cta-pis {
    margin: 20px 0 10px;
}
/* -- FIELD ERROR -- */
.invalid-feedback, .countryprovince .warning label {
    padding: 0.4em 0em;
    color: var(--webform-red);
    font-size: 1em;
    max-width: 90%;
}

.d-block {
    display: block!important;
}

label:not(.sms-box label){
 margin-bottom: 10px;
 margin-top: 25px;
}

.has-feedback.dob:hover .invalid-feedback,
.has-feedback input:hover~.invalid-feedback, 
.has-feedback select:hover~.invalid-feedback, 
.has-feedback textarea:hover~.invalid-feedback {
    visibility: visible;
    opacity: 1;
}

input.error[type="radio"], input.error[type="text"], input.error[type="email"],  input.error[type="tel"],textarea.error, select.error,
.has-feedback .webform-answer.is-invalid {
    border: 2px solid var(--webform-red) ;
    background-color: var(--webform-red-bg) !important;
}
input.error[type="text"]:focus, input.error[type="email"]:focus,  textarea.error:focus, select.error:focus {
    background-color: var(--bg-color);
}

input.valid[type="radio"], input.valid[type="text"], input.valid[type="email"], textarea.valid, select.valid,
.has-feedback .webform-answer {
    border: 2px solid var(--webform-green) ;
    background-color: var(--webform-green-bg) !important;
}
#webform_p_postal_code.valid.warning{
    border: 1px solid var(--bg-medium-grey-color);
    background-color: inherit !important;
}
input.valid[type="text"]:focus, input.valid[type="email"]:focus, textarea.valid:focus, select.valid:focus {
    background-color: var(--bg-color);
}

.countryprovince{
    width: 100%;
    display: block;
    margin-left: auto;
    margin-right: auto;
    padding:  0;
    clear: both;
}
.countryprovince:after{
    content: ' ';
    clear: both;
}
.countryprovince,.countryprovince #webform_country_container,.countryprovince #webform_province_container{       
    display: none;
    
}
.email-container {
  position: relative;
}
.fa.fa-badge-check{
   color: var(--tertiary-color);
   font-size: 3.5rem; 
}
.step-title .fa-badge-check{
   color: var(--tertiary-color);
   font-size: 4rem;
}
.webform-row.view-results{
    width:520px;
    margin-top:60px;
}
.webform-cta-submit button{
 width: 520px;
}
input[type="text"], input[type="email"], input[type="tel"], textarea {
    background: var(--bg-color) none repeat scroll 0 0;
    border: 1px solid var(--grey-form);
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    display: block;
    font-family: var(--secondary-font-family);
    font-size: 1.2em;
    padding: 15px;
    width: 450px;
    height:60px ;
}


/***   Patient Form: Media queries  ***/

/* mixin for Big Desktop up */
@media screen and (min-width : 1201px) and (max-width : 2500px) {

    .webform-row.error .webform-cta-next button::before {
        left: 100px;
    }
}

/* mixin for 1023 and up; */
@media screen and (min-width : 1023px) {
    .form-wrapper {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        width: 100%;
        min-height: 90vh;
    }
    .form-structure {
        display: flex;
        flex-direction: column;
        flex-basis: 100%;
        flex: 1;
        justify-content: center;
    }
    .form-structure {
        max-width: 50vw;
    }
    .webform-row {
        width: 300px;
        margin-left: auto;
        margin-right: auto;
    }
    .webform-row.error .webform-cta-next button::before {
        left: 75px;
    }
}

/* mixin for Desktop up; */
@media screen and (min-width : 901px) and (max-width : 2500px) {

    .webform-row {
        width: 450px;
    }
    
}

@media only screen and (max-width: 600px){

    .fa.fa-badge-check{
        font-size: 3rem; 
    }

    .next-button button, .webform-cta-submit button{
        width: calc(100vw - 2rem);
        min-width: 225px;
        margin-left:auto;
        margin-right:auto;
    }

    .webform-row {
        width: auto;
    }

    input[type="text"], input[type="email"], input[type="tel"], textarea, 
    input[type="text"].medium-input, input[type="tel"].medium-input {
        width: 100%;
    }

    .wide-select {
        width: calc(100vw - 2rem);
    }

    .webform-row .col-2{
        display: grid;
        grid-template-columns: 38vw 54vw;
        column-gap: 2vw;
    }

    .webform-row .col-3{
        display: grid;
        grid-template-columns: 38vw 22vw 30vw;
        column-gap: 2vw;
    }

    .large-select, .medium-select, .small-select {
        width:100%;
    }

    .webform-row .sms-box{
        width: calc(100vw - 2rem);
    }

    div.sms-box  input[type="checkbox"] {
        width: 1.20em;
        height: 1.20em;
    }

    div.sms-box  input[type="checkbox"]:checked, div.sms-box  input[type="checkbox"]:checked:hover  {
        width: 13px;
    }

    .webform-row.view-results{
        width: calc(100vw - 2rem);
    }

    .webform-row .col-3 .invalid-feedback{
        grid-column: span 3;
    }

    .webform-row .col-2 .invalid-feedback{
        grid-column: span 2;
    }

    
}

@media screen and (max-width : 510px) {

    label, input[type="text"], input[type="email"], 
    input[type="tel"], textarea, select,  div.sms-box input[type="checkbox"] + label,
    .next-button button, .webform-cta-submit button{
        font-size: 1.25em;
    }

    .step-2 label.answer{
        min-width: 150px;
    }

    .webform-row .col-3{
        grid-template-columns: max-content auto auto;
    }

     .webform-row .col-2{
        grid-template-columns: 38vw 52vw; 
    }

    .modal-content{
        width: calc(100vw - 4rem);
        height: auto;
    }

}

@media screen and (max-width : 480px) {

    header.wrapper-progressbar, .bg-cloud {
        min-height: 85px;
    }

    main{
      padding-top: 10px;
    }
    
    p, label{
        font-size: 1rem;
    }

     .fa.fa-badge-check{
        font-size: 2.5rem; 
    }

    .last-step{
        transform: translateY(-8px);
    }

    .last-step h1{
        font-size:1rem;
    }

    input[type="text"], input[type="email"], input[type="tel"], textarea, select {
        height:40px ;
    }

    label, input[type="text"], input[type="email"], 
    input[type="tel"], textarea, select,.next-button button, .webform-cta-submit button{
        font-size: 1rem;
    }

    .webform-cta-submit button{
        margin-top: 10px;
     }

    label:not(.sms-box label){
        margin-bottom: 5px;
        margin-top: 10px;
    }

    .webform-row {
        margin-bottom: 5px;
    }

    .webform-row.view-results{
        margin-top:10px;
    }
    
    div.sms-box input[type="checkbox"] + label {
        font-size: 0.8rem;
    }

    div.sms-box {
        padding: 5px ;
    }

    div.sms-box input[type="checkbox"] + label {
        margin: 5px 0;
    }

    .next-button button, .webform-cta-submit button, .next-button a.button-confirmation {
        padding-block: 10px;
    }

}

@media screen and (max-width : 350px) {

    .bg-cloud{
        min-height:150px;
    }
    
    .webform-row .col-3, .webform-row .col-2{
        grid-template-columns: 1fr;
        row-gap: 15px;
    }

    .webform-row .col-3 .invalid-feedback, .webform-row .col-2 .invalid-feedback{
        margin-top:-15px
    }

    label, input[type="text"], input[type="email"], 
    input[type="tel"], textarea, select,  div.sms-box input[type="checkbox"] + label,
    .next-button button, .webform-cta-submit button {
        font-size: 1em;
    }

    .webform-row .col-3 .invalid-feedback, .webform-row .col-2 .invalid-feedback{
        grid-column: unset;
    }

    .large-select, .medium-select, .small-select{
        width:calc(100vw - 2rem);
    }

    .fcolor-darkgrey{
      font-size: 1rem;
    }

}


@media screen and (max-width : 280px) {

    .form-structure {
        background-color: var(--bg-color);
        min-width: 280px;
    }
    input[type="checkbox"]+label:before {
        right: 5px;
        width: 55px;
    }

    input[type="text"], input[type="email"], input[type="tel"], textarea, input[type="text"].medium-input, input[type="tel"].medium-input {
        width: calc(100vw - 2rem);
    }

    .webform-row.error .webform-cta-next button::before {
        left: 35px;
    }
    .webform-row {
        width: 240px;
    }
}

/***   End Patient Form: Media queries  ***/