/* Globally used variables etc */
:root {
    --primary: #EE3128;
        --primaryDarken200: #c82b23;
    --secondary: #222222;
    --white:#ffffff;
    --grey: #F6F8F9;
    --medGrey:#1A1818;
    --dark:#222222
}
/*
    minWidthSmall:       576px;
    minWidthMedium:      768px;
    minWidthLarge:       992px;
    minWidthExtraLarge:  1200px;

    for testing maxWidth
    maxWidthExtraSmall:  575.98px;
    maxWidthSmall:       767.98px;
    maxWidthMedium:      991.98px;
    maxWidthLarge:       1199.98px;

*/


body {
    overflow-x:hidden;
    background-color:var(--grey)
}
.main {
    overflow-x:hidden; /*mobiles don't accept the overflow on body tag*/
}
img.center, .captionImage.center {
    max-width: 100%;
    height: auto;
    display:block;
    margin:0 auto !important;
}
img.left {
    max-width: 100%;
    height: auto;
    float:left;
}
img.right {
    max-width: 100%;
    height: auto;
    float:right;
}
.container {
    max-width: 1190px;
}


.bg-dark {
    background-color: var(--dark) !important;
}

.main-content--spacer {
    margin-bottom:80px;
}

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;600;700&family=Open+Sans:ital,wght@0,400;0,600;0,700;1,400&display=swap');

:root {
    --defaultFont: 'Open sans', sans-serif;
    --altFont: 'IBM Plex Sans', sans-serif
}

body {
    font-family: var(--defaultFont);
    line-height:25px;
}

h1, h2, h3, h4 {
    font-family: var(--altFont);
}

h1 {
    font-size: 48px;
    font-weight:700;
    position:relative;
    padding-bottom:40px;
    margin-bottom:40px;
}
h1 > small {
    font-size: 50%;
}

h1::after {
    content:'';
    height:10px;
    width:100px;
    background-color:var(--primary);
    position:absolute;
    bottom:0;
    left:0;
}


h2 {
    font-weight: 600;
    font-size:24px;
    padding-bottom:16px;
    border-bottom:1px solid var(--primary);
    margin-bottom:2rem;
}
h3 {
    font-weight:600;
    font-size:21px;
}

h4 {
    font-weight: 600;
    font-size:21px;
    color: var(--medGrey)
}


h5 {
    font-family:var(--defaultFont);
    font-size: 1rem;
    font-weight:700;
}

a {
    color:var(--primary)
}

.main-content .btn ,
#MainNavigation .btn,
.footer .btn {
    padding: 14px 32px !important;
    border:2px solid transparent;
    font-weight:600;
    border-radius:3px;
}
.main-content .btn:hover ,
#MainNavigation .btn:hover,
.footer .btn:hover {
    background-image:none;
}
.main-content .btn::after ,
#MainNavigation .btn::after {
    font-family: 'Font Awesome 5 Free', sans-serif;
    font-weight:900;
    content: '\f061';
    margin-left: 1rem;
}
.btn-primary {
    background-color:var(--primary);
    color:var(--white)
}
.btn-primary:hover {
    background-color:var(--primaryDarken200);
    border-color:var(--dark)
}
    .btn-primary.btn-inverted {
        background-color:var(--white);
        color:var(--primary)
    }
    .btn-primary.btn-inverted:hover {
        background-color:transparent;
        border-color:var(--white);
        color:var(--white)
    }

.btn.btn-outline-primary {
    border: 1px solid;
    color:var(--primary)
}
.btn.btn-outline-primary:hover {
    color:var(--dark);
    background-color:transparent;
}
.btn.btn-outline-primary:not(:disabled):active {
    background-color:var(--primary);
    border-color:var(--primary)
}

.btn.btn-link {
    color:var(--primary)
}



table.table {
    border-bottom: 1px solid var(--primary)
}
table.table thead {
    margin-bottom:100px;
}
table.table  th {
    border-top:none;
    border-bottom: 1px solid var(--primary)
}

.table tr>td:first-of-type,
.table tr>th:first-of-type {
    padding-left:0;
}
.table tr>td:last-of-type,
.table tr>th:last-of-type {
    padding-right:0;
}

.table.vertical-align-items td {
    vertical-align: middle;
}


/*@media screen and (max-width: 800px) {*/
/*    #Form_SubscribePreForm fieldset {*/
/*        flex-wrap:wrap;*/
/*    }*/
/*    #Form_SubscribePreForm fieldset > input {*/
/*        margin-bottom:16px*/
/*    }*/
/*}*/

label.hidden {
    display: none
}

textarea,
input.text,
input[type="text"],
input[type="button"],
input[type="submit"],
.input-checkbox {
    border:1px solid #1A18184E;
    border-radius:5px;
    margin-right:40px
}



/*floating labels*/
.field {
    position: relative;
    margin-bottom: 1rem;
}

.floating-labels .form-control {
    padding: 1.5rem .75rem .375rem .75rem;
}
.floating-labels label {
    position: absolute;
    top: 10px;
    left: 12px;
    display: block;
    width: 100%;
    margin-bottom: 0; /* Override default `<label>` margin */
    line-height: 1.5;
    color: #495057;
    border: 1px solid transparent;
    border-radius: .25rem;
    transition: all .1s ease-in-out;
    z-index:1;
    opacity:0.5;
    font-size:18px;
    -webkit-transform: translateY(18px);
    -moz-transform: translateY(18px);
    -ms-transform: translateY(18px);
    -o-transform: translateY(18px);
    transform: translateY(18px);
}

.floating-labels input::-webkit-input-placeholder,
.floating-labels textarea::-webkit-input-placeholder {
    color: transparent;
}

.floating-labels input:-ms-input-placeholder,
.floating-labels textarea:-ms-input-placeholder {
    color: transparent;
}

.floating-labels input::-ms-input-placeholder,
.floating-labels textarea::-ms-input-placeholder {
    color: transparent;
}

.floating-labels input::-moz-placeholder,
.floating-labels textarea::-moz-placeholder {
    color: transparent;
}

.floating-labels input::placeholder,
.floating-labels textarea::placeholder {
    color: transparent;
}
.floating-labels select.form-control {
    padding-left:10px;
}


/*input:not(:placeholder-shown) {*/
/*    padding-top: calc(var(--input-padding-y) + var(--input-padding-y) * (2 / 3));*/
/*    padding-bottom: calc(var(--input-padding-y) / 3);*/
/*}*/

.floating-labels input:not(:placeholder-shown) ~ label,
.floating-labels textarea:not(:placeholder-shown) ~ label,
.floating-labels select:focus ~ label,
.floating-labels select[value]:valid ~ label {
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
    font-size:14px;
}

/* override opinionated UserForms module */
.userform .left {
    margin-bottom:inherit !important;
    font-weight:inherit !important;
}


select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%238C98F2'><polygon points='0,0 100,0 50,50'/></svg>") no-repeat;
    background-size: 12px;
    background-position: calc(100% - 20px) 32px;
    background-repeat: no-repeat;
}

/* css for elemental and other components */


.feature-element {
    min-height:840px;
    color:var(--white);
    padding-top:125px;
    padding-bottom:280px;
    margin-bottom:-200px;
    background-size:cover;
}


.feature-element h1 {
    font-size:36px;
    padding-bottom:48px;
    margin-bottom:48px;
}
.feature-element h1::after {
    width:130px;
}
.feature-element h1 > small {
    font-weight:600;
    font-size: 18px;
    display:block; /* setting to block to adjust line-height */
    line-height:1.5;
    margin-bottom:20px;
}

.feature-element p {
    font-size:21px;
    line-height:35px
}
.feature-element .details {
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
}

.feature-element .details .btn-holder {
    min-width: 250px;
}
@media screen and (min-width: 576px) {
    .feature-element h1 {
        font-size: 48px;
    }
}

@media screen and (min-width: 768px) {
    .feature-element h1 {
        font-size: 60px;
    }
    .feature-element h1 > small {
        font-size: 24px;
    }
    .feature-element .details {
        flex-wrap:nowrap;
    }
    .feature-element .details .btn-holder {
        text-align:right;
    }
}

@media screen and (min-width: 992px) {
    .feature-element .details .btn-holder {
        margin-left: 100px;
    }
}


/*marketing grid element*/
.marketing-blocks-container {
    display:flex;
    flex-direction: column;
    max-height:510px;
    min-height:510px;
    flex-wrap:wrap;
    flex-basis:75%;
}
.marketing-block {
    background-size:cover;
    width:calc(40% - 10px);
    margin: 0 0 5px 5px;
    display:flex;
    position:relative;
    flex-grow:1;
}
.marketing-block:first-of-type {
    height:510px;
    width:60%;
    max-width:770px;
    margin: 0 5px 0 0;
}
@media screen and (min-width:768px) {
    .marketing-block:last-of-type {
        margin: 5px 0 0 5px;
    }
}

.btn.marketing-block--button {
    position:absolute;
    bottom:30px;
    left:0;
    border-radius:0;
}
.btn.marketing-block--button:hover {
    background-color:var(--dark);
    color:var(--white)
}

@media screen and (max-width: 767.98px) {
    .marketing-blocks-container {
        flex-wrap:nowrap;
        max-height:initial;
    }
    .marketing-block,
    .marketing-block:first-of-type {
        width:100%;
        height: 260px;
        margin: 5px 0;
    }
}

@media screen and (min-width: 1200px) {

    .marketing-block:first-of-type {
        width:75%;
    }
    .marketing-block {
        width: calc(100% - 770px);
    }
}

/*header element*/
.header-element {
    padding: 100px 0;
}
.header-element>.container>.row>.col {
    display:flex;
    align-items: center;
}
.header-element .content {
    font-size:18px;
    line-height:30px;
}


/*Banner element*/
.banner-element {
    min-height: 280px;
}

@media screen and (min-width:992px){
    .banner-element {
        min-height: 440px
    }
}
@media screen and (min-width: 1200px) {
    .banner-element {
        min-height: 590px;
    }
}



/*Find a surveyor element*/
#FindASurveyorForm .CompositeField {
    width:100%;
    display:flex;
    flex-wrap:wrap;
    margin:0;
    gap:40px;
}
#FindASurveyorForm .CompositeField > .field {
    width:33%;
    margin-top:0;
    margin-bottom:0;
    flex-grow:1;
    flex-basis:200px;
}
#FindASurveyorForm .CompositeField > .field input,
#FindASurveyorForm .CompositeField > .field select {
    height:65px;
}

#FindASurveyor {
    overflow-x:auto;
}

/*card column element*/
.card-column-element {
    margin:40px 0;
}
.card-column-element div.d-flex {
    flex-wrap: wrap;
    gap:40px;
}
.card-column-element .card {
    width: calc(50% - 20px);
    flex-grow:1;
    flex-basis:400px;
}

.card-column-card {
    position:relative;
    padding-bottom:80px;
    letter-spacing: -0.16px;
    height:100%;
    margin-bottom:30px;
}
.d-flex > .card-column-card {
    height:initial;
}
.card-column-card h2 {
    letter-spacing: -0.24px;
}
.card-column-card .btn {
    position:absolute;
    bottom:40px;
    left:40px;
}
.card-column-card--image {
    margin:10px 10px -15px 10px;
    width:calc(100% - 20px);
    height:auto;
}

/*Use this class to wrap card content
* eg.
    <div class="container">
        <div class="card-break-container">
            <div class="card">
*/
.card-break-container {
    margin: 0 -40px;
}
.card {
    box-shadow:0 0 3px #0000000D;
    border-radius:3px;
    border:none;
}
.card-body {
    padding:40px;
}

/*card deck*/
.card-deck .card {
    margin-left:20px;
    margin-right:20px;
}
.card-deck .card:first-of-type {
    margin-left:0;
}
.card-deck .card:last-of-type {
    margin-right:0;
}
@media screen and (min-width:568px){
    .card-deck .card.card-contact-form {
        min-width:480px;
    }
}

.card-deck .card.card-sidebar {
    flex-grow:0;
    flex-basis:400px;
}

/* committee element */
.committee_element .profile-pic.no-pic {
    min-height:200px;
}


/* accordion element */
.accordion .card-header {
    padding:0 !important;
}
@media screen and (max-width:568px) {
    .accordion .btn {
        padding-left:1rem !important;
        padding-right:1rem !important;
    }
    .accordion .btn::after {
        display:none;
    }
}

/*footer*/

.footer {
    padding-top:40px;
    background-color:var(--white);
    font-size:14px;
    margin-top:40px;
}
.footer .card {
    box-shadow:none;
}
.subscribe-form {
    background-color:var(--grey);
    margin-bottom:40px;
}
.footer .sponsors {
    margin-bottom:40px;
    border-bottom:1px solid var(--grey)
}
.footer-menu a {
    color:var(--dark)
}

.footer .sponsors h5 {
    margin-bottom:1.4rem;
}


.footer .sponsors-list {
    display:flex;
    flex-wrap:wrap;
}

.footer .sponsors-list img {
    height:50px;
    width:auto;
}

.footer .sponsors-list > *:not(:last-of-type) {
    margin-right: 33px;
}


.footer .social-links {
    display:flex;
}
.footer .social-link {
    width:40px;
    height:40px;
    color:var(--white);
    background-color:var(--medGrey);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content: center;
    opacity:0.45;
    font-size:1.6rem;
}
.footer .social-link:hover {
    text-decoration:none;
    opacity:0.65;
}
.footer .social-link i.fa-facebook-f {
    margin-top:0.4rem;
    font-size:2rem
}
.footer .social-link:not(:last-of-type) {
    margin-right:14px;
}

.footer-item {
    line-height:1.2rem;
    margin-bottom:0.4rem;
}


.footer-byline {
    background-color:var(--primary);
    color:var(--white);
    display:flex;
    justify-content: space-between;
    align-items:center;
    min-height:60px;
    margin-top:33px;
}
.footer-byline p {
    margin-bottom:0;
}
.footer-byline a {
    color:var(--white);
    text-decoration:underline;
}

/* Header css*/
#MainNavigation {
    height:90px;
    padding: 0 15px;
    font-family: var(--defaultFont);
    font-weight: 600;
}

.navbar-brand {
    width: 130px;
    height: 180px;
    background-color: var(--white);
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    border-bottom:10px solid var(--primary);
    display:flex;
    align-items:center;
    justify-content: center;
    align-self:baseline;
    margin-top:-0.75rem;
}
.navbar-brand > img {
    width:93px;
    height:auto;
}

#MainNavigation .nav-link {
    color:var(--white);
}
#MainNavigation .nav-link:not(.btn) {
    height:90px;
    /*line-height:90px;*/
    padding:0 13px;
    vertical-align:middle;
    -webkit-transition: all 0.2s;
    -moz-transition: all 0.2s;
    -ms-transition: all 0.2s;
    -o-transition: all 0.2s;
    transition: all 0.2s;
    display:flex;
    align-items: center;
}
#MainNavigation .nav-link:not(.btn):hover,
#MainNavigation .nav-item.active .nav-link:not(.btn) {
    background-color: rgba(255,255,255,0.1);
}

#MainNavigation .navbar-toggler {
    position:fixed;
    right:0;
    top:0;
    height:56px;
    width:56px;
    background-color:var(--primary);
    z-index:1100;
}

.w-fixed-member-navigation #MainNavigation .navbar-toggler {
    top:56px;
}

@media screen and (max-width:991.98px) {
    #navbarMenuContent {
        position:fixed;
        height:100vh;
        width:calc(100vw - 18px);
        max-width:400px;
        padding-top:60px;
        right:0;
        top:0;
        background-color:var(--dark);
        box-shadow:-16px 0 32px rgba(0,0,0,0.3);
        transform:translateX(100%);
        -webkit-transition: all 0.2s;
        -moz-transition: all 0.2s;
        -ms-transition: all 0.2s;
        -o-transition: all 0.2s;
        transition: all 0.2s;
        z-index:1010;
    }
    .w-fixed-member-navigation #navbarMenuContent {
        top: 56px;
    }
    #navbarMenuContent.show {
        transform:translateX(0)
    }
    #MainNavigation .nav-item .nav-link:not(.btn) {
        display:block;
        height:60px;
        line-height:60px;
    }
}

@media screen and (min-width:992px) {
    #MainNavigation .nav-item {
        display: flex;
        align-items: center;
    }
}

@media screen and (min-width:1200px) {
    #MainNavigation {
        padding: 0 60px;
    }
}

