/** BASE **/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
1.0 CSS Variables
2.0 Body
3.0 Styles from design
4.0 Layout
5.0 Core Gutenberg blocks

--------------------------------------------------------------*/

/*- 1.0 CSS Variables */
:root {
    /* Defined by WP through theme.json */

    --wp--style--root--padding-top: 0px;
    --wp--style--root--padding-right: 135px;
    --wp--style--root--padding-bottom: 0px;
    --wp--style--root--padding-left: 135px;

    --wp--style--global--content-size: 1650px;
    --wp--style--global--wide-size: 1920px;
    /*
    Variables below are generated by WordPress based on theme.json

    --wp--preset--color--black-like: #222222;
    --wp--preset--color--blue: #5798E5;
    --wp--preset--color--red: #FF4438;
    --wp--preset--color--grey: #A6A6A6;
    --wp--preset--color--light-grey: #D9D9D9;
    --wp--preset--color--off-white: #F9F9F9;
     */

    /* Utils */
    --scrollbar-width: 0px;
    --admin-bar-height: 0px;
    --viewport-height-diff: 0px;

    --custom-theme-z-index-nav: 2000;
    --custom-theme-z-index-overlay: 4000;

    --custom-theme-flex-span: 1;
    --custom-theme-flex-gap: 30px;

    /* Put custom css variables here */
    --custom-theme-site-header-height: 119px;
    --custom-theme-footer-margin-top: 80px;
}


.has-white-color { color: #FFF; }
.has-black-color { color: #000; }

.has-black-like-color { color: var(--wp--preset--color--black-like); }
.has-blue-color { color: var(--wp--preset--color--blue); }
.has-red-color { color: var(--wp--preset--color--red); }
.has-grey-color { color: var(--wp--preset--color--grey); }
.has-light-grey-color { color: var(--wp--preset--color--light-grey); }
.has-off-white-color { color: var(--wp--preset--color--off-white); }


.has-white-background-color { background-color: #FFF; }

.has-black-like-background-color { background-color: var(--wp--preset--color--black-like); color: #FFF; }
.has-blue-background-color { background-color: var(--wp--preset--color--blue); color: #FFF; }
.has-red-background-color { background-color: var(--wp--preset--color--red); }
.has-grey-background-color { background-color: var(--wp--preset--color--grey); }
.has-light-grey-background-color { background-color: var(--wp--preset--color--light-grey); }
.has-off-white-background-color { background-color: var(--wp--preset--color--off-white); }

.has-black-like-background-color + .has-black-like-background-color,
.has-white-background-color + .has-white-background-color {
    padding-top: 0;
}

@media screen and (max-width: 1439px) {
    :root {
        --wp--style--root--padding-right: 60px;
        --wp--style--root--padding-left: 60px;
    }
}
@media screen and (max-width: 767px) {
    :root {
        --custom-theme-site-header-height: 78px;
        --wp--style--root--padding-right: 20px;
        --wp--style--root--padding-left: 20px;
    }
}

.custom-block-title {
    background: #CCC;
    color: #333;
    text-align: center;
    font-weight: bold;
    text-transform: uppercase;
    padding: 5px 20px;
    grid-row: -1;
    grid-column: span 12;
}
.custom-block-title--lvl2 {
    font-size: 80%;
    background: #DDD;
    grid-row: -1;
    grid-column: span 12;
}

/*- 2.0 Body */
.editor-styles-wrapper,
body:not(.wp-admin) {
    font-family: Gilroy, sans-serif;
    color: var(--wp--preset--color--black-like);
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/*- 3.0 Styles from design */
.custom-theme-text-legend {
    font-size: 0.9375rem;
    line-height: 1.3;
    font-weight: 400;
}
.custom-theme-text-category {
    font-size: 1rem;
    line-height: 1.325;
    font-weight: 400;
}



/*- 4.0 Layout */
.layout-width {
    max-width: var(--wp--style--global--wide-size);
    margin: 0 auto;
}
.content-width {
    max-width: var(--wp--style--global--content-size);
    margin: 0 auto;
}
.has-block-layout > *:not(.alignfull):not(.alignwide) {
    margin-right: auto;
    margin-left: auto;
    max-width: var(--wp--style--global--content-size);
}
.has-global-padding .alignfull,
.has-global-padding .alignwide {
    margin-left: calc(var(--wp--style--root--padding-left) * -1);
    margin-right: calc(var(--wp--style--root--padding-right) * -1);
}

.content-width .alignfull {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw + var(--scrollbar-width) / 2);
    margin-right: calc(50% - 50vw + var(--scrollbar-width) / 2);
    max-width: calc(100vw - var(--scrollbar-width));
    width: calc(100vw - var(--scrollbar-width));
}

.custom-theme-flex-grid,
.gform-theme--foundation .gform_fields,
.ginput_complex {
    display: flex;
    gap: var(--custom-theme-flex-gap);
}
.custom-theme-flex-grid > *,
.gform_fields > *,
.ginput_complex > * {
    flex: 0 0 calc((100% - 11 * var(--custom-theme-flex-gap)) / 12 * var(--custom-theme-flex-span) + var(--custom-theme-flex-gap) * (var(--custom-theme-flex-span) - 1));
}

.site-content {
    padding-top: var(--custom-theme-site-header-height);
}
.site-content::after {
    content: '';
    display: block;
    margin-top: var(--custom-theme-footer-margin-top);
}

@media screen and (max-width: 991px) {
    .hide-on-tablet-portrait {
        display: none!important;
    }
}
@media screen and (max-width: 767px) {
    .custom-theme-flex-grid,
    .gform-theme--foundation .gform_fields,
    .ginput_complex {
        flex-wrap: wrap;
    }
}




/*- 5.0 Core Gutenberg blocks */

p[data-type="core/paragraph"],
.block-paragraph {
    margin-top: 0;
    margin-bottom: 1.2em;
    font-size: 1.125rem;
    line-height: 1.4;
}

p[data-type="core/paragraph"] a,
.block-paragraph a,
[data-type="core/list"] a,
.block-list a {
    color: inherit;
    text-decoration: underline;
    font-weight: bold;
}

h1[data-type="core/heading"],
.block-h1,
.is-style-like-h1-light {
    font-size: 3.5rem;
    line-height: 1.2;
    margin: 0;
    font-weight: 700;
}

h2[data-type="core/heading"],
.block-h2 {
    font-size: 2.1875rem;
    line-height: 1.018;

    font-weight: 700;
    margin-bottom: 20px;
    margin-top: 0;
}

h3[data-type="core/heading"],
.block-h3 {
    font-size: 1.5625rem;
    line-height: 1.2;
    font-weight: 700;
    margin-top: 50px;
    margin-bottom: 10px;
}
.block-h2 + .block-h3 {
    margin-top: 0;
    margin-bottom: 20px;
}

h4[data-type="core/heading"],
.block-h4,
.is-style-like-h4 {
    font-size: 1.25rem;
    line-height: 1.2;
    margin: 0;
    font-weight: 700;
}

h5[data-type="core/heading"],
.block-h5 {
    font-size: 1.375rem;
    line-height: 1.3;
    margin: 0;
    font-weight: 700;
}

h6[data-type="core/heading"],
.block-h6 {
    font-size: 1.125rem;
    line-height: 1.3;
    margin: 0;
    font-weight: 700;
}

[data-type="core/list"],
.block-list {
    margin-top: 0;
    margin-bottom: 1.2em;
    padding: 0;
    font-size: 1.125rem;
    line-height: 1.4;
}

[data-type="core/list"] li,
.block-list li {
    list-style-type: none;
    padding-left: 26px;
}
[data-type="core/list"] li::before,
.block-list li::before {
    content: '';
    display: inline-block;
    margin-left: -16px;
    margin-right: 13px;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: currentColor;
    vertical-align: middle;
}
[data-type="core/list"] li ul,
.block-list li ul {
    margin-bottom: 0;
}
[data-type="core/list"] li {
    display: flex;
    flex-wrap: wrap;
}
[data-type="core/list"] li::before {
    position: relative;
    top: 13px;
}
[data-type="core/list"] li ul {
    flex: 1 1 100%;
}
.wp-block-image img {
    max-width: 100%;
    height: auto;
}
.wp-block-image.alignfull {
    margin-top: 0;
    margin-bottom: 0;
}
.wp-block-image.alignfull img {
    width: 100%;
    display: block;
}
.wp-block-image.is-style-with-shadow {
    padding-top: 130px;
    margin-top: -130px;
    padding-bottom: 130px;
}
.wp-block-image.is-style-with-shadow + * {
    margin-top: -130px;
}
.wp-block-image.is-style-with-shadow img {
    display: block;
    filter: drop-shadow(0px 4px 74px rgba(184, 184, 184, 0.5));
}

.wp-block-buttons {
    margin-top: 40px;
    gap: 24px;
}
.wp-block-heading + .wp-block-buttons {
    margin-top: 0;
}

.wp-block-button__link {
    --custom-theme-button-bg-color: var(--wp--preset--color--blue);
    --custom-theme-button-border-color: var(--wp--preset--color--blue);
    --custom-theme-button-text-color: #FFF;
    min-width: 270px;
    text-align: center;
    padding: 11px 40px 13px;
    border: 1px solid var(--custom-theme-button-border-color);
    background: var(--custom-theme-button-bg-color);
    color: var(--custom-theme-button-text-color);
    text-decoration: none;
    border-radius: 45px;
    display: block;
    transition: 0.3s ease-out;
}
.has-blue-background-color .wp-block-button__link,
.has-blue-background-color .wp-block-button__link {
    --custom-theme-button-bg-color: #FFF;
    --custom-theme-button-border-color: #FFF;
    --custom-theme-button-text-color: var(--wp--preset--color--blue)
}
.wp-block-button__link:focus,
.wp-block-button__link:hover {
    --custom-theme-button-bg-color: #FFF;
    --custom-theme-button-text-color: var(--wp--preset--color--blue);
}
.has-black-like-background-color .wp-block-button__link:focus,
.has-black-like-background-color .wp-block-button__link:hover {
    --custom-theme-button-border-color: #FFF;
}
.has-blue-background-color .wp-block-button__link:focus,
.has-blue-background-color .wp-block-button__link:hover {
    --custom-theme-button-bg-color: var(--wp--preset--color--black-like);
    --custom-theme-button-border-color: var(--wp--preset--color--black-like);
    --custom-theme-button-text-color: #FFF;
}

.is-style-outline .wp-block-button__link:not(:focus):not(:hover) {
    --custom-theme-button-bg-color: none;
}
.has-white-background-color .is-style-outline .wp-block-button__link,
.has-off-white-background-color .is-style-outline .wp-block-button__link {
    --custom-theme-button-border-color: var(--wp--preset--color--black-like);
    --custom-theme-button-text-color: var(--wp--preset--color--black-like);
}
.has-white-background-color .is-style-outline .wp-block-button__link:focus,
.has-white-background-color .is-style-outline .wp-block-button__link:hover,
.has-off-white-background-color .is-style-outline .wp-block-button__link:focus,
.has-off-white-background-color .is-style-outline .wp-block-button__link:hover {
    --custom-theme-button-bg-color: var(--wp--preset--color--black-like);
    --custom-theme-button-text-color: #FFF;
}
.has-black-like-background-color .is-style-outline .wp-block-button__link {
    --custom-theme-button-border-color: #FFF;
}
.has-black-like-background-color .is-style-outline .wp-block-button__link:focus,
.has-black-like-background-color .is-style-outline .wp-block-button__link:hover {
    --custom-theme-button-text-color: var(--wp--preset--color--black-like);
}

.wp-block-quote {
    margin: 30px 0;
}
.wp-block-quote p {
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.3;
    font-style: italic;
}
.wp-block-quote p:before {
    content: '“';
    display: block;
    font-size: 2.9em;
    line-height: 1.069;
    font-style: normal;
    margin-bottom: -0.3em;
}
.wp-block-quote p:after {
    content: '”';
}
.wp-block-quote cite {
    font-style: normal;
    font-size: 0.9375rem;
    line-height: 1.3;
    font-weight: 400;
}

.wp-block-embed {

}

.wp-block-columns {
    --wp--style--block-gap: 10px;
}


.is-style-light,
.block-editor-rich-text__editable.is-style-light, /* for the admin/editor */
.is-style-like-h1-light {
    font-weight: 400;
    line-height: 1.1;
}
.is-style-verbatim {
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.4;
    font-style: italic;
    margin-bottom: 0.8em;
    margin-top: 3.4em;
}


.is-style-legend,
.block-editor-rich-text__editable.is-style-legend /* for the admin/editor */ {
    font-size: 0.9375rem;
    line-height: 1.3;
    font-weight: 400;
}

@media screen and (max-width: 1279px) {
    .wp-block-button__link {
        min-width: 0;
    }
}
@media screen and (max-width: 767px) {
    .block-h1 {
        font-size: 2.8125rem;
    }
    .block-h1 br,
    .block-h2 br {
        display: none;
    }

    .wp-block-image.alignfull {
        overflow: scroll;
        width: calc(100% + var(--wp--style--root--padding-left) + var(--wp--style--root--padding-right));
        scroll-snap-type: x mandatory;
    }
    /* Hide scroll bar when there is a shadow or the scroll bar will appear on top of other content... */
    .wp-block-image.alignfull.is-style-with-shadow {
        scrollbar-width: none;
    }
    .wp-block-image.alignfull.is-style-with-shadow::-webkit-scrollbar {
        display: none;
    }
    .wp-block-image.alignfull img {
        height: 80vh;
        object-fit: cover;
        width: auto;
        max-width: none;
        object-position: left center;
    }

    .wp-block-buttons {
        flex-direction: column;
    }

    .wp-block-quote p {
        font-size: 1.125rem;
    }
}
@media screen and (max-width: 359px) {
    .block-h2 {
        font-size: 1.75rem;
    }
}
