/**
Theme Name: contabix
Author: LS
Author URI: https://mspgroup.broker
Description: Contabix WordPress Theme
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: contabix
Template: generatepress
*/


/*========================================================================
>>> TABLE OF CONTENTS:
==========================================================================
  # COMMON
    => DEFAULTS
    => UTILITY CLASSES
    => ANIMATIONS
    => TYPOGRAPHY
    => ICONS
  # HEADER
    => MAIN NAVIGATION
    => MOBILE NAVIGATION
    => PAGE HEADER
  # FOOTER
    => FOOTER MENU
    => BACK TO TOP
  # CONTENT
    => CUSTOM BLOCK STYLES
  # PLUGINS
    => GRAVITY FORMS
  # COMPATIBILITY
========================================================================*/


/*========================================================================
 # COMMON
========================================================================*/

/*========================================================================
## COMMON => DEFAULTS
========================================================================*/
:root {
    --width-md: 1024;
    --width-sm: 768;
    --width-xs: 480;
    --width-xxs: 320;
}

/*noinspection CssUnresolvedCustomProperty*/
body {
    --color-base-000: var(--base-000);
    --color-base-100: var(--base-100);
    --color-base-200: var(--base-200);
    --color-base-300: var(--base-300);
    --color-base-400: var(--base-400);
    --color-base-500: var(--base-500);
    --color-base-600: var(--base-600);
    --color-base-700: var(--base-700);
    --color-base-800: var(--base-800);
    --color-base-900: var(--base-900);
    --color-base-950: var(--base-950);
    --color-brand-primary: var(--brand-primary);
    --color-brand-secondary: var(--brand-secondary);
    --color-brand-tertiary: var(--brand-tertiary);
}

body:not(.wp-admin) {
    /* fix for group block alignfull overflowing horizontally issue */
    overflow-x: hidden;
}


/*========================================================================
## COMMON => UTILITY CLASSES
========================================================================*/
/* Aspect Ratios */
.ar-16-9, .ar-9-16, .ar-4-3, .ar-3-4, .ar-3-2, .ar-2-3, .ar-1-1 {
    object-fit: cover;
}

.ar-16-9 {
    aspect-ratio: 16/9;
}

.ar-9-16 {
    aspect-ratio: 9/16;
}

.ar-4-3 {
    aspect-ratio: 4/3;
}

.ar-3-4 {
    aspect-ratio: 3/4;
}

.ar-3-2 {
    aspect-ratio: 3/2;
}

.ar-2-3 {
    aspect-ratio: 2/3;
}

.ar-1-1 {
    aspect-ratio: 1/1;
}

.image-float-right {
    display: inline-block;
    float: right;
    margin-left: 32px;
    margin-bottom: 32px;
}

.image-float-right::after {
    content: "";
    display: table;
    clear: both;
}

/* Line Limits */
.line-limit-3, .line-limit-2 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-limit-3 {
    -webkit-line-clamp: 3;
}

.line-limit-2 {
    -webkit-line-clamp: 2;
}

.margin-auto {
    margin-left: auto !important;
    margin-right: auto !important;
}

@media (max-width: 767px) {
    .margin-auto-sm > .gb-grid-column {
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

.max-width-md {
    max-width: calc(var(--width-md) * 1px);
}

.max-width-sm {
    max-width: calc(var(--width-sm) * 1px);
}

.max-width-xs {
    max-width: calc(var(--width-xs) * 1px);
}

.max-width-xxs {
    max-width: calc(var(--width-xxs) * 1px);
}

.no-underline, .no-underline * {
    text-decoration: none !important;
}

.no-wrap {
    flex-wrap: nowrap !important;
}

@media (min-width: 1025px) {
    .no-wrap-lg {
        flex-wrap: nowrap !important;
    }
}

@media (max-width: 1024px) and (min-width: 769px) {
    .no-wrap-md {
        flex-wrap: nowrap !important;
    }
}

body:not(.wp-admin) .visually-hidden:not(:focus):not(:active) {
    /*display: none !important;*/
    /*visibility: hidden !important;*/
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

body.wp-admin .visually-hidden {
    opacity: 0.2;
    pointer-events: none;
}

body.wp-admin .visually-hidden * {
    pointer-events: none;
}

/*========================================================================
## COMMON => ANIMATIONS
========================================================================*/
.fadeInUp {
    opacity: 0;
    will-change: transform;
    transform: translateZ(0);
}


/*========================================================================
## COMMON => TYPOGRAPHY
========================================================================*/
/*noinspection DuplicatedCode*/
:root {
    /* NOTE:
     * These HAVE TO match what is in the Customizer > Typography.
     * Load font family using Font Library and set headline-font as 'All Headings', set body-font as HTML
     */
    --headline-font: 'Outfit';
    --body-font: 'Outfit';

    /* SAFARI FIX for fluid typography */
    min-height: 0vw;

    --fs-heading-xl: clamp(38px, calc(2.2rem + ((1vw - 6px) * 2.6667)), 60px);
    --fs-heading-lg: clamp(30px, calc(1.5rem + ((1vw - 6px) * 5)), 50px);
    --fs-heading-md: clamp(26px, calc(1.25rem + ((1vw - 6px) * 2)), 32px);
    --fs-heading-base: clamp(1.13rem, 0.806rem + 0.926vw, 1.62rem);
    --fs-heading-sm: clamp(1rem, 0.806rem + 0.926vw, 1.4rem);
    --fs-body-xl: clamp(1.27rem, calc(1.15rem + 0.59vw), 1.62rem);
    --fs-body-lg: clamp(1.13rem, calc(1.05rem + 0.38vw), 1.35rem);
    --fs-body-base: 1rem;
    --fs-body-sm: .8rem;
    --fs-counter-number: clamp(54px, calc(3.375rem + ((1vw - 6px) * 1.6667)), 64px);
    --fs-counter-text: 1.13rem;
}

/* Default Body Text Settings */
p, .text-xs, .text-sm, .text-md, .text-lg, .text-xl {
    font-family: var(--body-font), sans-serif;
    font-weight: 400;
    margin-bottom: 1.2em;
}

p, .text-xs, .text-sm, .text-md {
    line-height: 1.5;
}

.text-lg, .text-xl {
    line-height: 1.6;
}

/* Default Headline Text Settings */
h1, h2, h3, h4, h5, h6,
.heading-xl, .heading-lg, .heading-base, .heading-sm {
    font-family: var(--headline-font), sans-serif;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 16px;
}

.heading-xl {
    font-size: var(--fs-heading-xl);
}

h1, .heading-lg {
    font-size: var(--fs-heading-lg);
}

h2, .heading-md {
    font-size: var(--fs-heading-md);
}

h3, .heading-base {
    font-size: var(--fs-heading-base);
}

h4, h5, h6, .heading-sm {
    font-size: var(--fs-heading-sm);
}

p, .text-base, .text-xl, .text-lg, .text-sm {
    font-family: var(--body-font), sans-serif !important;
    font-weight: 400;
}

strong {
    font-weight: 700;
}

.text-xl {
    font-size: var(--fs-body-xl);
}

.text-lg {
    font-size: var(--fs-body-lg);
}

p, .text-base {
    font-size: var(--fs-body-base) !important;
}

.text-sm {
    font-size: var(--fs-body-sm);
}

.counter_number {
    font-size: var(--fs-counter-number) !important;
}

.counter_text {
    font-size: var(--fs-counter-text) !important;
}

/*========================================================================
## COMMON => ICONS
========================================================================*/


/*========================================================================
 # HEADER
========================================================================*/

/*========================================================================
## HEADER => NAVIGATION
========================================================================*/
/* Menu effects */
.main-navigation:not(.slideout-navigation) li.menu-item[class*="current-menu-"] a {
    position: relative;
}

.main-navigation:not(.slideout-navigation) li.menu-item:last-child > a {
    padding-right: 0;
    margin-right: 0;
}

.main-navigation:not(.slideout-navigation) li.menu-item > a::after {
    transition: width 0.3s ease 0s, left 0.3s ease 0s;;
    height: 3px;
    content: "";
    position: absolute;
    background-color: var(--color-brand-primary);
    width: 0%;
    bottom: 10px;
    display: block;
}

.main-navigation:not(.slideout-navigation) li.menu-item:hover > a::after,
.main-navigation:not(.slideout-navigation) li.menu-item[class*="current-menu-"] > a::after {
    width: calc(100% - 40px);
}

.main-navigation:not(.slideout-navigation) li.menu-item:last-child:hover > a::after,
.main-navigation:not(.slideout-navigation) li.menu-item[class*="current-menu-"]:last-child > a::after {
    width: calc(100% - 20px);
}

/* Merged main menu */
.header-wrap .main-navigation.has-sticky-branding:not(.is_stuck) {
    background-color: transparent !important;
}

.header-wrap .main-navigation.has-sticky-branding:not(.is_stuck) li.menu-item a {
    color: var(--color-base-000) !important;
}

.header-wrap .main-navigation.has-sticky-branding:not(.is_stuck) li.menu-item:hover a,
.header-wrap .main-navigation.has-sticky-branding:not(.is_stuck) li.menu-item[class*="current-menu-"] a {
    color: var(--color-base-600) !important;
}

.header-wrap .main-navigation.has-sticky-branding:not(.is_stuck) li.menu-item a::after {
    background-color: var(--color-base-000) !important;
}

.header-wrap .main-navigation.has-sticky-branding:not(.is_stuck) li.menu-item:hover a::after,
.header-wrap .main-navigation.has-sticky-branding:not(.is_stuck) li.menu-item[class*="current-menu-"] a::after {
    background-color: var(--color-base-600) !important;
}


/*========================================================================
## HEADER => MOBILE NAVIGATION
========================================================================*/
.header-wrap #mobile-header:not(.is_stuck) .menu-toggle {
    color: var(--color-base-000) !important;
}

.header-wrap #mobile-header:not(.is_stuck) .menu-toggle:hover {
    color: var(--color-base-600) !important;
}


.main-navigation:not(.slideout-navigation) .menu-item-home {
    display: none !important;
}

#generate-slideout-menu .slideout-exit {
    margin-left: auto;
    position: absolute;
    top: 0;
    right: 0;
    padding-top: 12px;
}

#generate-slideout-menu .main-nav {
    margin-top: 48px;
}


/*========================================================================
## HEADER => PAGE HEADER (HERO)
========================================================================*/
.page-hero .page-hero-title {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
}

/*========================================================================
 # FOOTER
========================================================================*/
@media (min-width: 1025px) {
    body.full-width-content .site {
        z-index: 2;
        position: relative;
    }

    body.full-width-content .site-footer {
        position: sticky;
        bottom: 0;
        top: 0;
        z-index: 0;
    }
}


/*========================================================================
## FOOTER => FOOTER MENU
========================================================================*/
@media (min-width: 1025px) {
    #footer-grid .grid-wrapper:not(.social-links) .gb-grid-column:last-of-type {
        margin-left: auto;
    }
}

@media (max-width: 640px) {
    #footer-grid {
        flex-direction: column;
    }

    #footer-grid .gb-grid-column:nth-of-type(2) {
        margin-left: auto;
        margin-right: auto;
    }
}


/*========================================================================
## FOOTER => BACK TO TOP
========================================================================*/


/*========================================================================
 # CONTENT
========================================================================*/
body.full-width-content .site-main > * {
    margin-bottom: 0;
}

a.button {
    border-radius: 5px;
}

/* Numbers count-up effect */
@media (min-width: 1025px) {
    .numbers_wrapper .numbers_grid {
        display: flex;
        flex-wrap: nowrap;
    }
}


/*========================================================================
## CONTENT => CUSTOM BLOCK STYLES
========================================================================*/
/* core/list */
ul.wp-block-list {
    padding-left: 0;
    margin-left: 1em;
    margin-bottom: 0;
}

/* GenerateBlocks headline */
.gb-icon-after-headline > .gb-icon {
    order: 2;
}

#post-navigation .gb-icon-after-headline > .gb-icon {
}


/*========================================================================
## CONTENT => BLOG ARCHIVE
========================================================================*/
body.blog .post > .inside-article {
    display: flex;
    flex-direction: column;
}

body.blog .post > .inside-article .entry-header {
    height: 100%;
    display: flex;
    flex-direction: column;
}

body.blog .post > .inside-article .entry-header .entry-title {

}

body.blog .post > .inside-article .entry-header .entry-meta {
    margin-top: auto;
    padding-top: 4px;
}

body.blog .post > .inside-article .post-image {
    margin-top: 4px;
}

body.blog .post > .inside-article .post-image img {
    margin-top: 1em;
}

body.blog .post > .inside-article .entry-summary {
    margin-top: 24px;
}

body.blog .post > .inside-article .entry-summary p:not(.read-more-container) {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.blog .post > .inside-article .entry-summary .read-more-container {
    text-align: center;
}


/*========================================================================
 # PLUGINS
========================================================================*/

/*========================================================================
## PLUGINS => GRAVITY FORMS
========================================================================*/
.gform-theme--framework {
    --gf-field-choice-gap: 16px;
    --gf-field-choice-meta-space: 24px;
    --gf-field-date-width: 168px;
    --gf-field-gap-x: 24px;
    --gf-field-gap-y: 32px;
    --gf-field-list-btns-gap: 8px;
    --gf-field-list-btns-width: calc(32px + var(--gf-field-list-btns-gap) + var(--gf-field-gap-x));
    --gf-field-pg-steps-gap-x: 24px;
    --gf-field-pg-steps-gap-y: 8px;
    --gf-field-time-width: 110px;
    --gf-form-footer-gap: 24px;
    --gf-form-footer-margin-y-start: 40px;
    --gf-form-gap-x: 24px;
    --gf-form-gap-y: 32px;
    --gf-label-req-gap: 6px;
    --gf-label-space-x-secondary: 12px;
    --gf-label-space-y-secondary: 0 !important;
    --gf-label-width: 30%;
}

.gform_anchor::before { /* We do this in GForms instead using built-in filter */
    /*content: "";*/
    /*display: block;*/
    /*width: 0;*/
    /*height: 120px;*/
    /*margin: -120px 0 0;*/
}

.contactform_wrapper .gform_required_legend {
    color: var(--gf-form-validation-heading-color);
    font-style: italic !important;
    font-weight: 700;
    text-align: center;
}

.contactform_wrapper input[type="email"],
.contactform_wrapper input[type="text"],
.contactform_wrapper textarea,
.contactform_wrapper label.gform-field-label {
    font-size: var(--fs-body-sm) !important;
}

.contactform_wrapper label.gfield_label {
    font-size: var(--fs-body-md) !important;
}

.contactform .gform_required_notice {
    color: var(--gf-form-validation-heading-color);
    font-style: italic;
    font-weight: 700;
    margin-top: 16px;
    text-align: center;
}

.contactform .gform_button[type="submit"] {
    background-color: var(--color-brand-primary) !important;
    border-radius: 5px !important;
    border: 2px solid var(--color-brand-primary) !important;
    box-shadow: none !important;
    color: var(--color-base-000) !important;
    display: inline-flex !important;
    font-weight: 600 !important;
    letter-spacing: 0.05em !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 12px 24px !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    transition: all 0.2s ease 0s !important;
}

.contactform .gform_button[type="submit"]:hover {
    border: 2px solid var(--brand-primary) !important;
    background-color: var(--brand-secondary) !important;
    color: var(--base-000) !important;
}

@media (min-width: 640px) {
    .contactform .gfield--type-choice .gfield_radio {
        flex-direction: row;
    }
}

@media (max-width: 767px) {
    .contactform .gform_validation_errors .gform_submission_error {
        flex-direction: row !important;
    }
}


/*========================================================================
 # COMPATIBILITY
========================================================================*/
@media (max-width: 767px) {
    .hero_container_outer {
        height: 580px !important;
    }

    .generate-columns-activated .generate-columns-container {
        margin-left:0 !important;
        margin-right: 0 !important;
    }

    .generate-columns-container .generate-columns,.generate-columns-container>* {
        padding-left: 0 !important;
    }

    .generate-columns-container .page-header {
        margin-left: 0 !important;
    }

    .generate-columns.mobile-grid-100,.grid-sizer.mobile-grid-100 {
        width: 100% !important;
    }

    .generate-columns-container>.paging-navigation {
        margin-left: 0 !important;
    }
}
