/*
 Theme Name: HCP Child Theme
 Description: HCP child theme for Divi
 Author: Bradley Newton
 Template: Divi
 Version: 1.0.0
*/

:root {

    /* colors */
    --go2-brand-blue: #3c3494;
    --go2-brand-light-blue: #7AD0E4;
    --go2-secondary-purple: #82568E;
    --go2-secondary-gray: #7283A4;
    --go2-secondary-green: #BACA33;
    --go2-secondary-yellow: #FED847;
    --go2-text-gray: #696969;
    --go2-transparent-green: #BACA3333; /* vertical overlay accent bar */
    --go2-flat-card-background-shade: #F9FAEB; /* flat card background shade */
    --go2-text-base: #444; /* may also be defined in Appearance */

    --go2-go2-black: #282a2b;

    --go2-site-light-gray: #eef6f8;

    /* fonts */
    --go2-text-font: 'Rubik', Helvetica, arial, sans-serif;
    /* --go2-montserrat-font: gotham-bold, Helvetica, arial, sans-serif; */
    --go2-montserrat-font: montserrat-bold, Helvetica, arial, sans-serif;

    /* accent bar */
    --go2-accent-bar-width: 30px; /* vertical overlay accent bar */
    --go2-accent-bar-blend-opacity: 1;
    --go2-accent-bar-blend-mode: multiply;

    /* transitions and animations */
    --go2-animation-slower-duration: 0.6s;
    --go2-animation-faster-duration: 0.3s;

    /* max width, for divi sections */
    --go2-section-max-width: 2560px;
    --go2-page-width: 1240px; /* should align with divi page width setting */

    /* default content padding, each side. Applied by default. */
    --go2-content-padding-large-desktop: 30px;  /*      >= 1405px */
    --go2-content-padding-desktop: 24px;        /* 980px - 1404px */
    --go2-content-padding-tablet: 20px;         /* 768px - 979px */
    --go2-content-padding-mobile: 15px;         /* 480px - 767px */
    --go2-content-padding-small-mobile: 15px;   /* <= 479 */

    /* card gutter width. These may not align with Divi breakpoints. */
    --go2-card-gutter-large-desktop: 20px;
    --go2-card-gutter-desktop: 15px;
    --go2-card-gutter-tablet: 15px;

    /* default vertical margins, for sections */
    --go2-section-gap-large-desktop: 150px;
    --go2-section-gap-desktop: 120px;
    --go2-section-gap-tablet: 100px;
    --go2-section-gap-mobile: 60px;
    --go2-section-gap-small-mobile: 40px;

    /* margin multiplier, to reduce space between related sections */
    --go2-section-gap-margin-calc: 0.5;
}


/**
 * Fonts, normally enqueued by Divi, are loaded locally to inhibit CLS
 * In functions.php, Divi google font output is deregistered.
 * If new Google fonts are added to Divi builder, comment these out, and 
 * uncomment the code to deregister fonts in functions.php.
 */

 @font-face {
    font-family: 'montserrat-bold';
    font-weight: bold;
    font-display: swap;
    font-style: normal;
    src: url('assets/fonts/montserrat/static/Montserrat-Bold.woff2') format('woff2'),
         url('assets/fonts/montserrat/static/Montserrat-Bold.woff') format('woff'),
         url('assets/fonts/montserrat/static/Montserrat-Bold.ttf') format('truetype');
}

/* @font-face {
    font-family: 'gotham-bold';
    font-weight: bold;
    font-display: swap;
    font-style: normal;
    src: url('assets/fonts/gotham/gotham-bold.woff2') format('woff2'),
         url('assets/fonts/gotham/gotham-bold.woff') format('woff'),
         url('assets/fonts/gotham/gotham-bold.ttf') format('truetype');
} */

@font-face {
    font-family: 'Rubik';
    font-weight: 400;
    font-display: swap;
    font-style: normal;
    src: url('assets/fonts/rubik/Rubik-Regular.woff2') format('woff2'),
         url('assets/fonts/rubik/Rubik-Regular.woff') format('woff'),
         url('assets/fonts/rubik/Rubik-Regular.ttf') format('truetype');
}

@font-face {
    font-family: 'Rubik';
    font-weight: 500;
    font-display: swap;
    font-style: normal;
    src: url('assets/fonts/rubik/Rubik-500.woff2') format('woff2'),
         url('assets/fonts/rubik/Rubik-500.woff') format('woff'),
         url('assets/fonts/rubik/Rubik-500.ttf') format('truetype');
}

@font-face {
    font-family: 'Rubik';
    font-weight: 600;
    font-display: swap;
    font-style: normal;
    src: url('assets/fonts/rubik/Rubik-600.woff2') format('woff2'),
         url('assets/fonts/rubik/Rubik-600.woff') format('woff'),
         url('assets/fonts/rubik/Rubik-600.ttf') format('truetype');
}

@font-face {
    font-family: 'Rubik';
    font-weight: 700;
    font-display: swap;
    font-style: normal;
    src: url('assets/fonts/rubik/Rubik-700.woff2') format('woff2'),
         url('assets/fonts/rubik/Rubik-700.woff') format('woff'),
         url('assets/fonts/rubik/Rubik-700.ttf') format('truetype');
}

@font-face {
    font-family: 'Rubik';
    font-weight: 800;
    font-display: swap;
    font-style: normal;
    src: url('assets/fonts/rubik/Rubik-800.woff2') format('woff2'),
         url('assets/fonts/rubik/Rubik-800.woff') format('woff'),
         url('assets/fonts/rubik/Rubik-800.ttf') format('truetype');
}

@font-face {
    font-family: 'Rubik';
    font-weight: 400;
    font-display: swap;
    font-style: italic;
    src: url('assets/fonts/rubik/Rubik-Italic.woff2') format('woff2'),
         url('assets/fonts/rubik/Rubik-Italic.woff') format('woff'),
         url('assets/fonts/rubik/Rubik-Italic.ttf') format('truetype');
}


/**
 * >>> Typography and Post-CSS Reset <<<
 *
 * some additional specificity required to avoid corrupting Divi builder styles
 */

html {
	font-size: 125%;
}
body {
    font-size: 1.25rem;
    line-height: 1.6em;
	letter-spacing: -0.04em;
	font-weight: 400;
	font-family: var(--go2-text-font);
    color: var(--go2-text-base);
}
:is(p, ul, ol, li, dl, dt, dd, blockquote, pre, form, table, figure, fieldset, hr):not([class]) {
    /* font-size: 1rem; */
	margin-top: 1em;
	margin-bottom: 0;
    padding: 0; /* divi adds padding to everything */
    line-height: inherit;
}
body blockquote:not([class]) {
    padding-left: 20px;
}
:is(dt, li):not([class]) {
    margin-top: 0.5em;
    margin-left: 1em;
    padding-left: 0.5em;
}
body dd:not([class]) {
    margin-top: 0;
}
body :is(ul, ol):not([class]),
body .et_pb_module :is(ul, ol) {
    line-height: inherit !important; /* divi fixes an ambiguous value */
    padding-bottom: 0;
}
td, tr {
    font-size: 0.9rem;
}
/* body #page-container #et-boc a:not([class]):not(:has(img)) {
    text-decoration: none;
    border-bottom: 2px dotted var(--go2-brand-blue);
}
body #page-container #et-boc a:not([class]):not(:has(img)):hover {
    border-bottom: 2px solid var(--go2-brand-blue);
} */
small {
    font-size: 0.7rem;
    line-height: 1.45em;
    display: inline-block;
    margin-top: 0.25rem;
}
:is(p, ul, ol, dl, blockquote, pre, form, table, figure, fieldset, hr):first-child {
    margin-top: 0;
}
:is(ul, ol):not([class]) {
    margin-left: 2.1em;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--go2-montserrat-font);
	font-weight: 700;
	margin-top: 1em;
	margin-bottom: 0;
}
h1 {
	font-size: 2.6rem;
    line-height: 1.3em;
    letter-spacing: 0;
	margin-top: 0;
    color: var(--go2-brand-blue);
}
h2 {
    font-size: 1.4rem;
    line-height: 1.25em;
    color: var(--go2-go2-black);
}
h3 {
    font-size: 1.4rem;
    line-height: 1.25em;
    color: var(--go2-go2-black);
}
h4 {
	font-size: 1.2rem;
    line-height: 1.3em;
}
h5 {
    font-size: 1rem;
    line-height: 1.4em;
}
h6 {
    font-size: 0.9rem;
    line-height: 1.45em;
}

/**
 * >>> Sitewide defaults
 */

.et_pb_row {
    margin-left: auto;
    margin-right: auto;
}


/**
 * >>> Utility classes <<<
 *
 *
 * go2-blue-text            Change text color to brand blue
 *
 * go2-green-text           Change text color to secondary green
 *
 * go2-white-text           Change text color to white
 *
 *
 * go2-nowrap               Prevent text wrapping
 *
 *
 * go2-hide-desktop         Hides element on desktop
 *
 * go2-hide-tablet          Hides element on tablet
 *
 * go2-hide-mobile          Hides element on mobile
 *
 *
 * go2-section-max-width    Set section max width. Does not allow override.
 *
 * go2-width-100            Force element full width
 *
 * go2-row-pad              Apply standardized viewport X padding
 * 
 * go2-row-card-gap         Set a standardized gap between columns in a row.
 *                          Intended for use with cards. Converts row to flex.
 *
 * go2-section-gap          Apply standardized vertical margin
 *
 * go2-section-gap-pull-lower   Reduce the gap below, for a related section
 *
 * go2-section-gap-pull-upper   Reduce the gap above, for a related section
 *
 *
 * --- Specify only one accent bar per element, e.g. blue/solid/left ---
 *
 * go2-accent-blue          Set accent bar color to blue
 *
 * go2-accent-green         Set accent bar color to green
 *
 * go2-accent-solid         Set accent bar appearance to solid
 *
 * go2-accent-blend         Set accent bar appearance to blend
 *
 * go2-accent-left          Set accent bar to left of container
 *
 * go2-accent-right         Set accent bar to right of container
 *
 * go2-accent-top           Set accent bar to top of container
 *
 * go2-accent-bottom        Set accent bar to bottom of container
 *
 * go2-accent-pad           Add padding to push content away from bar.
 *                          Pads the immediate children. May not work as 
 *                          expected with every element.
 *
 * go2-accent-pad-alt       Add padding. Pads the target element. May not 
 *                          work as expected with every element.
 *
 * go2-slide-up             Mirrors the corner heading slide up animation.
 *                          Apply to any text element immediately below the heading
 *                          to synchronize the slide up effect.
 */

.go2-btn-sm {
    font-size: 0.9rem;
}
.go2-btn-lg {
    font-size: 1.1rem;
}


.go2-blue-text {
    color: var(--go2-brand-blue);
}
.go2-green-text {
	color: var(--go2-secondary-green);
}
.go2-white-text {
	color: #fff;
}
.go2-nowrap {
    white-space: nowrap;
}
.go2-section-max-width {
    max-width: var(--go2-section-max-width);
    margin-left: auto;
    margin-right: auto;
}
.go2-width-100 {
    width: 100% !important;
}
[class*="go2-accent"]:after {
    content: "";
    position: absolute;
    z-index: 999;
    visibility: visible;
}
.go2-accent-blue:after {
    background-color: var(--go2-brand-light-blue);
}
.go2-accent-green:after {
    background-color: var(--go2-secondary-green);
}
.go2-accent-blend:after {
    opacity: var(--go2-accent-bar-blend-opacity);
    mix-blend-mode: var(--go2-accent-bar-blend-mode); 
}
.go2-accent-solid:after {
    opacity: 1;
}
.go2-accent-right:after {
    top: 0;
    right: 0;
    height: 100%;
    width: var(--go2-accent-bar-width);
}
.go2-accent-left:after {
    top: 0;
    left: 0;
    height: 100%;
    width: var(--go2-accent-bar-width);
}
.go2-accent-top:after {
    top: 0;
    left: 0;
    width: 100%;
    height: var(--go2-accent-bar-width);
}
.go2-accent-bottom:after {
    bottom: 0;
    left: 0;
    width: 100%;
    height: var(--go2-accent-bar-width);
}
.go2-accent-left.go2-accent-pad > *,
.go2-accent-left.go2-accent-pad-alt {
    padding-left: var(--go2-accent-bar-width);
}
.go2-accent-right.go2-accent-pad > *,
.go2-accent-right.go2-accent-pad-alt {
    padding-right: var(--go2-accent-bar-width);
}
.go2-accent-top.go2-accent-pad > *,
.go2-accent-top.go2-accent-pad-alt {
    padding-top: var(--go2-accent-bar-width);
}
.go2-accent-bottom.go2-accent-pad > *,
.go2-accent-bottom.go2-accent-pad-alt {
    padding-bottom: var(--go2-accent-bar-width);
}
body .entry-content .et_pb_row.go2-row-card-gap {
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0 !important;
    margin-bottom: var(--go2-card-gutter-large-desktop) !important;
}
.go2-section-gap {
    padding-top: 0;
    padding-bottom: 0;
}

@media all and (min-width: 1405px) {
    .go2-section-gap {
        margin-top: var(--go2-section-gap-large-desktop);
        margin-bottom: var(--go2-section-gap-large-desktop);
    }
    .go2-section-gap-pull-lower {
        margin-bottom: calc( var(--go2-section-gap-large-desktop) * var(--go2-section-gap-margin-calc) );
    }
    .go2-section-gap-pull-upper {
        margin-top: calc( var(--go2-section-gap-large-desktop) * var(--go2-section-gap-margin-calc) );
    }
    .entry-content > div > div > div > .et_pb_row { /* specificity, in case divi rolls out nested rows in the future */
        width: calc( 100% - var(--go2-content-padding-large-desktop) * 2 );
    }
    body .go2-row-pad {
        padding-left: var(--go2-content-padding-large-desktop);
        padding-right: var(--go2-content-padding-large-desktop);
    }
    body .go2-row-card-gap {
        gap: var(--go2-card-gutter-large-desktop);
    }
    .go2-hide-desktop {
        display: none !important;
    }
}
@media all and (min-width: 980px) and (max-width: 1404px) {
    .go2-section-gap {
        margin-top: var(--go2-section-gap-desktop);
        margin-bottom: var(--go2-section-gap-desktop);
    }
    .go2-section-gap-pull-lower {
        margin-bottom: calc( var(--go2-section-gap-desktop) * var(--go2-section-gap-margin-calc) );
    }
    .go2-section-gap-pull-upper {
        margin-top: calc( var(--go2-section-gap-desktop) * var(--go2-section-gap-margin-calc) );
    }
    .entry-content > div > div > div > .et_pb_row {
        width: calc( 100% - var(--go2-content-padding-desktop) * 2 );
    }
    body .go2-row-pad {
        padding-left: var(--go2-content-padding-desktop);
        padding-right: var(--go2-content-padding-desktop);
    }
    body .go2-row-card-gap {
        gap: var(--go2-card-gutter-desktop);
    }
    .go2-hide-desktop {
        display: none !important;
    }
}
@media all and (min-width: 768px) and (max-width: 979px) {
    .go2-section-gap {
        margin-top: var(--go2-section-gap-tablet);
        margin-bottom: var(--go2-section-gap-tablet);
    }
    .go2-section-gap-pull-lower {
        margin-bottom: calc( var(--go2-section-gap-tablet) * var(--go2-section-gap-margin-calc) );
    }
    .go2-section-gap-pull-upper {
        margin-top: calc( var(--go2-section-gap-tablet) * var(--go2-section-gap-margin-calc) );
    }
    body .entry-content .et_pb_row.go2-row-card-gap .et_pb_column { /* specificity required to override divi */
        margin-top: calc( var(--go2-card-gutter-tablet) / 2 );
        margin-bottom: calc( var(--go2-card-gutter-tablet) / 2 );
    }
    .entry-content > div > div > div > .et_pb_row {
        width: calc( 100% - var(--go2-content-padding-tablet) * 2 );
    }
    body .go2-row-pad {
        padding-left: var(--go2-content-padding-tablet);
        padding-right: var(--go2-content-padding-tablet);
    }
    body .go2-row-card-gap {
        gap: var(--go2-card-gutter-tablet);
    }
    .go2-hide-tablet {
        display: none !important;
    }
}
@media all and (min-width: 768px) {
    .go2-row-card-gap {
        display: flex;
    }
    .et_pb_section .go2-row-card-gap.et_pb_row > .et_pb_column {
        flex: 1 1 auto;
        margin: 0;
        /* float: none; */ /* proposed */
    }
    .go2-row-card-gap.et_pb_row:not([class*="go2-accent"]):after {
        display: none; /* adds to flex, remove it */
    }
}
@media all and (min-width: 480px) and (max-width: 767px) {
    .go2-section-gap {
        margin-top: var(--go2-section-gap-mobile);
        margin-bottom: var(--go2-section-gap-mobile);
    }
    .go2-section-gap-pull-lower {
        margin-bottom: calc( var(--go2-section-gap-mobile) * var(--go2-section-gap-margin-calc) );
    }
    .go2-section-gap-pull-upper {
        margin-top: calc( var(--go2-section-gap-mobile) * var(--go2-section-gap-margin-calc) );
    }
    body .entry-content .et_pb_row.go2-row-card-gap {
        margin-bottom: var(--go2-card-gutter-gutter-tablet) !important;
    }
    body .entry-content .et_pb_row.go2-row-card-gap .et_pb_column { /* specificity required to override divi */
        margin-top: calc( var(--go2-card-gutter-tablet) / 2 );
        margin-bottom: calc( var(--go2-card-gutter-tablet) / 2 );
    }
    .entry-content > div > div > div > .et_pb_row {
        width: calc( 100% - var(--go2-content-padding-mobile) * 2 );
    }
    body .go2-row-pad {
        padding-left: var(--go2-content-padding-mobile);
        padding-right: var(--go2-content-padding-mobile);
    }
    .go2-hide-mobile {
        display: none !important;
    }
}
@media all and (max-width: 479px) {
    .go2-section-gap {
        margin-top: var(--go2-section-gap-small-mobile);
        margin-bottom: var(--go2-section-gap-small-mobile);
    }
    .go2-section-gap-pull-lower {
        margin-bottom: calc( var(--go2-section-gap-small-mobile) * var(--go2-section-gap-margin-calc) );
    }
    .go2-section-gap-pull-upper {
        margin-top: calc( var(--go2-section-gap-small-mobile) * var(--go2-section-gap-margin-calc) );
    }
    body .entry-content .et_pb_row.go2-row-card-gap {
        margin-bottom: var(--go2-card-gutter-gutter-tablet) !important;
    }
    body .entry-content .et_pb_row.go2-row-card-gap .et_pb_column {
        margin-top: calc( var(--go2-card-gutter-tablet) / 2 ) !important; /* required to override divi */
        margin-bottom: calc( var(--go2-card-gutter-tablet) / 2 ) !important;
    }
    .entry-content > div > div > div > .et_pb_row {
        width: calc( 100% - var(--go2-content-padding-small-mobile) * 2 );
    }
    body .go2-row-pad {
        padding-left: var(--go2-content-padding-small-mobile);
        padding-right: var(--go2-content-padding-small-mobile);
    }
    .go2-hide-mobile {
        display: none !important;
    }
}


/**
 * GO2 STYLE HEADING
 */

.et-db #et-boc .et-l .et_pb_menu ul li a {
    min-height: 52px;
    display: flex;
    align-items: center;
}
.et-db #et-boc .et-l .et-menu .menu-item-has-children>a:first-child:after {
    display: none;
}
.et-db #et-boc .et-l .nav li li {
    padding: 0;
}
.et-db #et-boc .et-l .et-menu li>a {
    padding: 0;
}
.et-db #et-boc .et-l .et_pb_menu .nav li ul {
    border: none;
}
/* .et-db #et-boc .et-l .nav .et-hover,
.et-db #et-boc .et-l .nav .et-hover * {
    border: 0 none !important;
} */



/**
 * >>> Site Footer <<<
 */

.go2-footer {
    overflow: hidden;
}
.go2-footer svg {
    width: 100%;
    height: 100%;
}
.go2-footer .input {
    border-radius: 50px !important;
    border: 0 none !important;
}
.go2-footer :is(p, ul, ol, li, h2) {
    margin: 0;
    padding: 0;
    font-size: 0.75rem;
}
.go2-footer-nav a {
    color: #fff !important;
}
.go2-footer-nav ul {
    padding: 0;
    margin: 0;
    list-style-type: none;
    display: flex;
    justify-content: flex-end;
    gap: 30px;
}
@media (max-width: 980px) {
    .go2-footer :is(p, li) {
        font-size: 0.75rem;
        text-align: center;
    }
    .go2-footer .go2-footer-logo {
        margin-left: auto !important;
        margin-right: auto !important;
    }
    .go2-footer .et_pb_row_2_tb_footer .et_pb_text_inner {
        display: flex;
        justify-content: center;
    }
    .go2-footer.go2-footer-lower .et_pb_row:nth-child(2) .et_pb_column {
        margin: 2px 0; /* reduce leading between last two paragraphs */
    }
    .go2-footer.go2-footer-lower .et_pb_row:first-child {
        margin-bottom: 0 !important;
    }
    .go2-footer.go2-footer-lower .et_pb_column {
        margin: 10px 0;
    }
    .go2-footer-nav ul {
        justify-content: center;
    }
}


/**
 * >>> FLAT ICON CARD WITH PALE GREEN BACKGROUND <<<
 */

.go2-icon-card {
    font-family: var(--go2-text-font);
    /* color: var(--go2-text-gray); */
    background: var(--go2-flat-card-background-shade);
    box-shadow: inset 0 0 0 1px var(--go2-flat-card-background-shade);
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 33px;
    height: 100%;
    font-size: 1rem;
    line-height: 1.4em;
    text-align: center;
    transition: background var(--go2-animation-faster-duration) ease-in-out, box-shadow var(--go2-animation-faster-duration) ease-in-out;
}
.go2-icon-card:hover {
    background: #fff;
    box-shadow: inset 0 0 0 1px var(--go2-secondary-green);
}
.go2-icon-card .et_pb_module_header {
    padding: 0;
    margin: 0 0 0.9em;
}
.go2-icon-card p:last-child {
    margin: 0;
}
body .go2-icon-card .et_pb_main_blurb_image {
    /* width: 86px; */
    margin-bottom: 22px;
}
.go2-icon-card .et_pb_main_blurb_image .et_pb_image_wrap svg {
    width: 100%;
    height: 100%;
}
.go2-icon-card .et_pb_main_blurb_image .et_pb_image_wrap svg * {
    /* fill: var(--go2-brand-blue); */
}
.go2-icon-card .et_pb_image_wrap {
    /* margin-top: 75px;
    margin-bottom: 32px; */
    display: inline;
}
.go2-icon-card .et_pb_module_header {
    font-family: var(--go2-text-font);
    font-size: 1.4rem;
    line-height: 1.4em;
    font-weight: 700;
    text-align: center;
    color: #000;
}
.go2-icon-card .et_pb_blurb_description {
    padding-bottom: 75px;
}

