/* Required Defaults */

html {
    height: 100%;
    font-size: 16px;
    text-rendering: optimizeLegibility;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-smoothing: antialiased;
    text-shadow: rgba(0, 0, 0, .01) 0 0 .063rem;
}

body {
    height: 100%;
    background: #fff; 
}

.mobile-only,
.tablet-and-below,
.phablet-and-below {
    display: none;
}

.desktop-only,
.hide-mobile {
    display: block;
}

.wow {
    visibility: hidden;
}

.wrapper {
    min-height: 100%;
    height: auto !important;
    overflow: hidden;
    width: 100vw;
}

.over {
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    position: absolute;
}

.overlay {
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    position: fixed;
    z-index: 150;
    display: none;
    background: rgba(0,0,0,.71); 
}

.overlay .searching {
    width: 100%;
    padding: 1.5rem;
    color: #fff;
    font-size: 2.5rem;
    position: absolute;
    left: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    font-family: 'PlutoBold';
    text-align: center;
}

.overlay .searching .text {
    padding-top: 1.5rem;
    display: block;
}

.overlay .searching .loading {
    display: block;
    width: 3.5rem;
    height: 3.5rem;
    background: url(../theme-svg/compass.svg) center no-repeat;
    background-size: 3.5rem 3.5rem; 
    margin: auto;
}

.finder-error {
    padding: .75rem;
    color: #fff;
    font-size: 1.5rem;
    font-family: 'PlutoBold';
    text-align: center;
    text-shadow: 0 0 1.5rem rgba(0,0,0,.35);
}

.spinner {
    -webkit-animation-name: spin;
    -webkit-animation-duration: 2000ms;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    -moz-animation-name: spin;
    -moz-animation-duration: 2000ms;
    -moz-animation-iteration-count: infinite;
    -moz-animation-timing-function: linear;
    -ms-animation-name: spin;
    -ms-animation-duration: 2000ms;
    -ms-animation-iteration-count: infinite;
    -ms-animation-timing-function: linear; 
    animation-name: spin;
    animation-duration: 2000ms;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@-moz-keyframes spin {
    from { -moz-transform: rotate(0deg); }
    to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
    from { -webkit-transform: rotate(0deg); }
    to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
    from {transform:rotate(0deg);}
    to {transform:rotate(360deg);}
}

.container {
    max-width: 80rem;
    margin: 0 auto;
    display: block;
}

.container.lg {
    max-width: 64rem;
}

.container.md {
    max-width: 62rem;
}

.container.sm {
    max-width: 48rem;
}

.inner {
    padding: 1.5rem;
}

.innerLeftRight {
    padding: 0 1.5rem;
}

.innerTopBtm {
    padding: 1.5rem 0;
}

.innerNoRight {
    padding-right: 0;
}

.innerNoLeft {
    padding-left: 0;
}

.innerNoTop {
    padding-top: 0;
}

.innerNoBtm {
    padding-bottom: 0;
}

.half-padding {
    padding: 2.75rem .75rem .75rem;
}

.ie-only,
body.msie .not-ie {
    display: none;
}

body.msie .ie-only {
    display: block;
}

* {
    outline: none;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

a,
a:hover {
    color: inherit;
    text-decoration: none;
    font-weight: inherit;
    cursor: pointer;
    -webkit-transition: all .5s ease-in-out;
    -moz-transition: all .5s ease-in-out;
    -o-transition: all .5s ease-in-out;
    transition: all .5s ease-in-out;
}

strong,
b {
    font-family: 'PlutoBold';
}

em {
    font-style: italic;
}

sup { 
    vertical-align: super;
    font-size: 50%;
}

sub { 
    vertical-align: sub;
    font-size: 50%;
}

img,
.wp-caption {
    max-width: 100%;
    height: auto;
    display: block;
}

.no-select,
label {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.pull-left-md,
.align-left {
    float: left;
}

.pull-right-md,
.align-right {
    float: right;
}

.relative {
    position: relative;
}

.absolute {
    position: absolute;
}


/* Responsive Backaground */

.responsive-background {
    background: #eee;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    position: relative;
}

.responsive-background img {
    display: none;
}

.slick-slide img {
    display: none !important;
}

.responsive-background .loading {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(92deg, #aaaaaa, #eeeeee);
    background-size: 400% 400%;
    -webkit-animation: cycleBackground 2s ease infinite;
    -moz-animation: cycleBackground 2s ease infinite;
    -o-animation: cycleBackground 2s ease infinite;
    animation: cycleBackground 2s ease infinite;
}

@-webkit-keyframes cycleBackground {
    0%{background-position:0% 50%}
    50%{background-position:100% 50%}
    100%{background-position:0% 50%}
}
@-moz-keyframes cycleBackground {
    0%{background-position:0% 50%}
    50%{background-position:100% 50%}
    100%{background-position:0% 50%}
}
@-o-keyframes cycleBackground {
    0%{background-position:0% 50%}
    50%{background-position:100% 50%}
    100%{background-position:0% 50%}
}
@keyframes cycleBackground { 
    0%{background-position:0% 50%}
    50%{background-position:100% 50%}
    100%{background-position:0% 50%}
}

@-moz-keyframes spin {
    from { -moz-transform: rotate(0deg); }
    to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
    from { -webkit-transform: rotate(0deg); }
    to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
    from {transform:rotate(0deg);}
    to {transform:rotate(360deg);}
}

.responsive-background .loading.loaded,
body.msie .responsive-background .loading,
body.older-os .responsive-background .loading {
    visibility: hidden;
    opacity: 0;
    -webkit-transition: all .5s ease-in-out;
    -moz-transition: all .5s ease-in-out;
    -o-transition: all .5s ease-in-out;
    transition: all .5s ease-in-out;
}


/* SVG Alignments */

.block-banner object.align svg {
    width: auto !important;
}

.social-block .align svg {
    width: auto;
    max-height: 7.5rem;
}

.top-left svg {
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: 0 !important;
    -webkit-transform: translate(0,0) !important;
    transform: translate(0,0) !important;
    position: absolute !important;
}

.top-right svg {
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: auto !important;
    -webkit-transform: translate(0,0) !important;
    transform: translate(0,0) !important;
    position: absolute !important;
}

.top-centre svg {
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: 50% !important;
    -webkit-transform: translate(-50%,0) !important;
    transform: translate(-50%,0) !important;
    position: absolute !important;
}

.centre-centre svg {
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    left: 50% !important;
    -webkit-transform: translate(-50%,-50%) !important;
    transform: translate(-50%,-50%) !important;
    position: absolute !important;
}

.centre-right svg {
    top: 50% !important;
    right: 0 !important;
    bottom: auto !important;
    left: auto !important;
    -webkit-transform: translate(0,-50%) !important;
    transform: translate(0,-50%) !important;
    position: absolute !important;
}

.centre-left svg {
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    left: 0 !important;
    -webkit-transform: translate(0,-50%) !important;
    transform: translate(0,-50%) !important;
    position: absolute !important;
}

.bottom-left svg {
    top: auto !important;
    right: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    -webkit-transform: translate(0,0) !important;
    transform: translate(0,0) !important;
    position: absolute !important;
}

.bottom-right svg {
    top: auto !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    -webkit-transform: translate(0,0) !important;
    transform: translate(0,0) !important;
    position: absolute !important;
}

.bottom-centre svg {
    top: auto !important;
    right: auto !important;
    bottom: 0 !important;
    left: 50% !important;
    -webkit-transform: translate(-50%,0) !important;
    transform: translate(-50%,0) !important;
    position: absolute !important;
}


/* WP Defaults */

.alignnone {
    margin: 0;
}

.aligncenter,
div.aligncenter {
    display: block;
    margin: auto;
}

.alignright {
    float:right;
    margin: .313rem 0 1.25rem 1.25rem;
}

.alignleft {
    float: left;
    margin: .313rem 1.25rem 1.25rem 0;
}

.aligncenter {
    display: block;
    margin: auto;
}

a img.alignright {
    float: right;
    margin: .313rem 0 1.25rem 1.25rem;
}

a img.alignnone {
    margin: auto;
}

a img.alignleft {
    float: left;
    margin: .313rem 1.25rem 1.25rem 0;
}

a img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto
}

.wp-caption {
    background: #fff;
    text-align: center;
    max-width: 100%
}

.wp-caption.alignnone {
    margin: .313rem 1.25rem 1.25rem 0;
}

.wp-caption.alignleft {
    margin: .313rem 1.25rem 1.25rem 0;
}

.wp-caption.alignright {
    margin: .313rem 0 1.25rem 1.25rem;
}

.wp-caption img {
    border: 0 none;
    height: auto;
    margin: 0;
    width: 100%;
    padding: 0;
}

.wp-caption p.wp-caption-text {
    font-size: .875rem;
    line-height: 140%;
    padding: .375rem;
    margin: 0;
    background: #03296A;
    color: #fff;
}


@media only screen and (max-width: 80em) {

    .phablet-and-below {
        display: block;
    }
}


@media only screen and (max-width: 62em) {

    .tablet-and-below {
        display: block;
    }

    .pull-left-md,
    .align-left,
    .pull-right-md,
    .align-right {
        float: none;
    }

}


@media only screen and (max-width: 48em) {

    .mobile-only {
        display: block;
    }

    .desktop-only {
        display: none;
    }

    .hide-mobile {
        display: none;
    }

    body.single-branch .block-banner.responsive-background,
    body.page-template-page-head-office .block-banner.responsive-background {
        background-size: auto 40rem !important;
        background-position: top center !important;
    }


}