/*
Theme Name: GP Developer Child Theme
Template: generatepress
Theme URI: https://addisonhalldesign.com
Author: Addison Hall
Author URI: https://addisonhalldesign.com
Description: This is a child theme for GeneratePress for use in jumpstarting more customized development.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gpc
Tags: two-columns, three-columns, one-column, right-sidebar, left-sidebar, fluid-layout, fixed-layout, responsive-layout, flexible-header, full-width-template, buddypress, custom-header, custom-background, custom-menu, custom-colors, sticky-post, threaded-comments, translation-ready, featured-images, theme-options, light, white, dark, black, blue, brown, gray, green, orange, pink, purple, red, silver, tan, yellow
*/

/*

CONTENTS:
1. Defaults
2. Header and Nav
3. Home Page
4. Content
5. Components
6. Widgets
7. Footer
8. Other
9. Animations

*/

/* ==========================================
=! DEFAULTS
------------------------------------------ */

p, ol, ul:not([class^="gb-looper-"]), h4, h5, h6 {
    /* max-width: 92ex; */
    text-wrap: pretty;
}
h1, .is-style-like-h1, h2, .is-style-like-h2 {
    text-wrap: balance;
}

ol, ul {
    margin-left: 1.75em;
}

@media (max-width: 1023px) {
	h1 > br {
		display: none;
	}
}

/* ==========================================
=! HEADER AND NAV
------------------------------------------ */

/* --- sticky nav styling --- */
.main-navigation.has-branding:not([class*=nav-align-]):not(.mobile-header-navigation) .inside-navigation,
.main-navigation.has-sticky-branding.navigation-stick:not([class*=nav-align-]):not(.mobile-header-navigation) .inside-navigation {
    max-width: 100%;
}

/* --- mobile sticky nav custom spacing --- */
@media (max-width: 1104px) {
    .main-navigation.mobile-header-navigation.has-branding .inside-navigation.grid-container {
        padding-left: 15px;
		padding-right: 15px;
    }
}

/* --- tablet-size nav adjustments --- */
@media (max-width: 1469px) and (min-width: 1105px) {
    .site-logo, .site-branding {
        margin-bottom: 0.5rem;
    }
    .gpc .main-navigation:not(.has-sticky-branding.is_stuck) .main-nav ul li a {
        /* padding-left: 12px; */
        /* padding-right: 12px; */
        padding-left: 1vw;
        padding-right: 1vw;
    }
    .gpc .main-navigation:not(.has-sticky-branding.is_stuck) a {
        font-size: 1.8vw;
    }
    .gpc .main-navigation.has-sticky-branding.is_stuck .main-nav ul li a {
        /* padding-left: 12px; */
        /* padding-right: 12px; */
        padding-left: 1vw;
        padding-right: 1vw;
    }
    .gpc .main-navigation.has-sticky-branding.is_stuck a {
        font-size: 1.4vw;
    }
}

/* ==========================================
=! HOME PAGE
------------------------------------------ */



/* ==========================================
=! CONTENT
------------------------------------------ */

/* --- search results --- */
.gpc-search-query-term {
    background-color: var(--highlight);
}
.gpc.search-results .site-main > .dynamic-content-template {
    margin-bottom: 0;
}

/* --- accessible JS links --- */
.gpc-js-trigger:focus-visible {
    outline-color: var(--accent);
    outline-offset: 4px;
    outline-width: 3px;
}

/* ==========================================
=! COMPONENTS
------------------------------------------ */

/* --- fixes potential theme css conflict --- */
.acf-map img {
    max-width: inherit !important;
}

/* --- responsive embed --- */
.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; }
.embed-container iframe, .embed-container object, .embed-container embed, .embed-container video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

/* --- breadcrumbs --- */
.breadcrumbs {
    font-size: 14px;
    margin-bottom: 10px;
}

/* --- background video --- */
.background-video {
    position: absolute;
	top: 0;
	left: 0;
    opacity: 0.65;
}
video.background-video[poster] {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

/* --- show/hide overlay query items --- */
.overlay-query .gb-loop-item {
    display: none;
}
.overlay-query .gb-loop-item.show {
    display: block;
}

/* --- team photos animation --- */
.team-photos-animation {
	--track-size: 250px; /* width or height, depending on animation direction */
	--photo-width: 250px;
	--photo-height: 250px;
	--photo-gap: 40px;
	--photo-item-offset: max(
		calc(var(--photo-width) * var(--photo-count)),
		calc(100% + var(--photo-width))
	);
	--photo-anim-duration: calc(2s * var(--photo-count));
	--photo-anim-delay: calc(var(--photo-anim-duration) / var(--photo-count) * (var(--photo-count) - var(--photo-index)) * -1);
    --photo-bg-color: var(--base-2);

	block-size: var(--track-size);
	max-inline-size: calc(2 * calc(var(--photo-width) * var(--photo-count)));
    -webkit-mask-image: linear-gradient(to top, transparent 0, #000000 33.33%, #000000 66.66%, transparent 100%);
    mask-image: linear-gradient(to top, transparent 0, #000000 33.33%, #000000 66.66%, transparent 100%);
    overflow: hidden;
    position: relative;
    height: calc(var(--photo-height) * 2);
    max-width: calc((var(--photo-width) * 2) + var(--photo-gap));
	margin-left: auto;
	margin-right: auto;
}
.team-photo-tracks {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--photo-gap);
}
.team-photo-track {
    display: flex;
    flex-direction: column;
    height: calc(calc(var(--photo-height) + var(--photo-gap)) * var(--photo-count));
}
.team-photo {
    flex-shrink: 0;
    padding: calc(var(--photo-gap) / 2) 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
	inset-inline-start: var(--photo-item-offset);
	text-align: center;
    background-color: var(--photo-bg-color);
    /* border: 1px solid var(--base); */
}
.team-photo a {
	display: block;
}
.team-photo-img {
    display: block;
    width: var(--photo-width);
    height: var(--photo-height);
    object-fit: cover;
    border: 2px solid var(--contrast);
}
.team-photo figcaption {
    color: var(--contrast-3);
    font-size: 0.55rem;
    text-transform: uppercase;
    letter-spacing: 0.125em;
    margin-top: auto;
}
.team-photo-track.track-1 {
    --photo-count-local: var(--photo-count);
    animation: team-photo-scroll var(--photo-anim-duration) var(--photo-anim-delay, 0s) linear infinite;
}
.team-photo-track.track-2 {
    --photo-count-local: var(--photo-count);
    animation: team-photo-scroll var(--photo-anim-duration) var(--photo-anim-delay, 0s) linear infinite reverse;
}
@keyframes team-photo-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateY(-50%);
    }
}

/* --- client logos animation --- */
.client-logos-animation {
	--track-height: 164px;
	--logo-width: 240px;
	--logo-gap: 0;
	--logo-item-offset: max(
		calc(var(--logo-width) * var(--logo-count)),
		calc(100% + var(--logo-width))
	);
	--logo-anim-duration: calc(4s * var(--logo-count));
	--logo-anim-delay: calc(var(--logo-anim-duration) / var(--logo-count) * (var(--logo-count) - var(--logo-index)) * -1);
    --logo-bg-color: var(--bg-color, var(--base-3));

	block-size: var(--track-height);
	max-inline-size: calc(2 * calc(var(--logo-width) * var(--logo-count)));
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000000 33.33%, #000000 66.66%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000000 33.33%, #000000 66.66%, transparent 100%);
    overflow: hidden;
    position: relative;
    min-height: var(--track-height);
	margin-left: auto;
	margin-right: auto;
}
.client-logo-tracks {
    position: absolute;
    top: 0;
}
.client-logo-track {
    display: flex;
    width: calc(2 * calc(var(--logo-width) * var(--logo-count)));
}
.client-logo {
    flex-shrink: 0;
    padding: 0 calc(var(--logo-gap) / 2);
    width: var(--logo-width);
    height: var(--track-height);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
	inset-inline-start: var(--logo-item-offset);
	text-align: center;
    background-color: var(--logo-bg-color);
    /* border: 1px solid var(--base); */
}
.client-logo a {
	display: block;
}
.client-logo-img {
    width: 100%;
    height: calc(var(--track-height) - 2rem);
    object-fit: contain;
    mix-blend-mode: multiply;
}
.client-logo figcaption {
    color: var(--contrast-3);
    font-size: 0.55rem;
    text-transform: uppercase;
    letter-spacing: 0.125em;
    margin-top: auto;
}
.client-logo-track.track-1 {
    --logo-count-local: var(--logo-count);
    animation: client-logo-scroll var(--logo-anim-duration) var(--logo-anim-delay, 0s) linear infinite;
}
.client-logo-track.track-2 {
    --logo-count-local: var(--logo-count);
    animation: client-logo-scroll var(--logo-anim-duration) var(--logo-anim-delay, 0s) linear infinite reverse;
}
@keyframes client-logo-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* --- case studies --- */
@media (max-width: 767.999px) {
    .gpc-looper--case-studies {
        -webkit-mask-image: linear-gradient(to top, transparent 0, #000000 10%, #000000 100%);
        mask-image: linear-gradient(to top, transparent 0, #000000 10%, #000000 100%);
    }
    .gpc-looper--case-studies.expand {
        -webkit-mask-image: unset;
        mask-image: unset;
        max-height: unset;
    }
}

/* --- hide hidden GenerateBlocks loop items --- */
.gb-loop-item.hidden {
    display: none;
}

/* --- Gravity Forms --- */
.gform_wrapper.gravity-theme .gform_fields {
    grid-row-gap: var(--space-m-l);
}
.gform_wrapper.gravity-theme .gfield_label {
    margin-bottom: 0;
}
.gform_wrapper.gravity-theme .gfield_header_item, .gform_wrapper.gravity-theme .gform_fileupload_rules, .gform_wrapper.gravity-theme .ginput_complex label {
    color: var(--contrast-2);
    margin-bottom: var(--space-3xs);
    padding-top: 0;
}
.gform_wrapper.gravity-theme .field_description_above .description, .gform_wrapper.gravity-theme .field_description_above .gfield_description, .gform_wrapper.gravity-theme .field_description_above .gsection_description, .gform_wrapper.gravity-theme .field_description_above .instruction {
    color: var(--contrast-2);
    margin-bottom: var(--space-3xs);
    margin-top: 0;
    padding: 0;
}

/* --- GB carousel default overrides --- */
.gpc :where(.gb-carousel-pagination)[data-pagination-type=bullets] {
    gap: var(--space-s);
}
.gpc :where(.gb-carousel-pagination) .gb-carousel-dot {
    height: var(--space-xs);
    width: var(--space-xs);
}

/* --- blog archive & category nav --- */
.gpc-blog-archive-nav {
    background-color: var(--base-2);
    display: block;
    margin-bottom: var(--space-s);
    padding-top: var(--space-s);
}

@media (min-width: 767px) {
    .gpc-blog-archive-nav {
        border-bottom: 2px solid var(--contrast);
        padding-top: var(--space-l);
    }
}

.gpc-blog-archive-nav ul.wp-block-archives-list {
    display: flex;
    flex-wrap: wrap;
    list-style-type: none;
    margin-left: 0px;
    column-gap: 0;
    row-gap: var(--space-s);
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 100%;
    margin-bottom: 0px
}

@media (min-width: 767px) {
    .gpc-blog-archive-nav ul.wp-block-archives-list {
        justify-content: space-evenly;
        align-items: center;
        flex-wrap: nowrap;
        column-gap: var(--space-l);
    }
}

.gpc-blog-archive-nav ul.wp-block-archives-list li {
    display: none;
    text-align: center;
    /* white-space: nowrap */
}

.gpc-blog-archive-nav ul.wp-block-archives-list li:nth-child(-n+6) {
    display: block
}

.gpc-blog-archive-nav ul.wp-block-archives-list li a {
    color: var(--contrast-3);
    font-weight: 700;
    text-decoration: none;
    position: relative;
    display: block;
    padding-left: var(--space-m);
    padding-right: var(--space-m);
}

.gpc-blog-archive-nav ul.wp-block-archives-list li a:is([aria-current="page"],[aria-selected="true"],[aria-pressed="true"]) {
        color: var(--accent)
    }

@media (max-width: 766.999px) {
    .gpc-blog-archive-nav ul.wp-block-archives-list li a:is([aria-current="page"],[aria-selected="true"],[aria-pressed="true"])::after {
        background: url('/wp-content/themes/generatepress-child/img/icn-arrow-down-hex8C2837.svg') no-repeat;
        background-size: 0.8em 0.8em;
        display: block;
        content: '';
        width: 1em;
        height: 1em;
        position: absolute;
        top: 0.375em;
        right: 0.25em;
    }
}

@media (min-width: 767px) {
    .gpc-blog-archive-nav ul.wp-block-archives-list li a:is([aria-current="page"],[aria-selected="true"],[aria-pressed="true"])::after {
        background-color: var(--contrast);
        content: '';
        display: block;
        position: absolute;
        left: 0px;
        right: 0px;
        bottom: -8px;
        width: 100%;
        height: 6px
    }
}

@media (max-width:1024px) {
    .gpc-blog-archive-nav {
        justify-content: flex-start
    }
}

/* ==========================================
=! WIDGETS
------------------------------------------ */

/* --- GPC Sub Menu Widget --- */
/* .widget_gpc_sub_menu_widget .dropdown-menu-toggle { display: none; } */
.widget_gpc_sub_menu_widget .menu-item-has-children .sub-menu { margin-left: 1.2em; }
.widget_gpc_sub_menu_widget .menu-item-has-children .sub-menu li { list-style: disc; }
.widget_gpc_sub_menu_widget .current-menu-item > a { font-weight: bold; }

/* ==========================================
=! FOOTER
------------------------------------------ */



/* ==========================================
=! OTHER
------------------------------------------ */

/* --- simple spacing utilities --- */
.m0 { margin:0 !important }
.mt0 { margin-top:0 !important }
.mr0 { margin-right:0 !important }
.mb0 { margin-bottom:0 !important }
.ml0 { margin-left:0 !important }
.p0 { padding:0 !important }
.pt0 { padding-top:0 !important }
.pr0 { padding-right:0 !important }
.pb0 { padding-bottom:0 !important }
.pl0 { padding-left:0 !important }

/* --- hiding elements --- */
body.gpc .hidden {
    display: none;
}
body.gpc .sr-only {
    position:absolute;
    left:-10000px;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden;
}

/* ==========================================
=! ANIMATION
------------------------------------------ */

/* --- do all the preload stuff --- */
@media (min-width: 768px) {
    .preload * {
        -webkit-transition: none !important;
        transition: none !important;
        -webkit-animation: none !important;
        animation: none !important;
    }
    /* opacity will be set back to 1 by animations below */
    .has-js .prep-animation,
    .has-js .prep-scroll-animation {
        opacity: 0;
    }
}

/* --- respect user preferences for motion --- */
@media screen and (prefers-reduced-motion: reduce) {
    body * {
        -webkit-transition: none !important;
        transition: none !important;
        -webkit-animation: none !important;
        animation: none !important;
    }
}

/* ----------------------------------------------
 * Generated by Animista
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

 @media (min-width: 768px) {
     .fade-in-left {
         -webkit-animation: fade-in-left 1.2s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
                 animation: fade-in-left 1.2s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
     }
     
     .fade-in {
         -webkit-animation: fade-in 1.2s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
                 animation: fade-in 1.2s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
     }
     
     .fade-in-bottom {
         -webkit-animation: fade-in-bottom 1.2s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
                 animation: fade-in-bottom 1.2s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
     }
     
     .fade-in-right {
         -webkit-animation: fade-in-right 1.2s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
                 animation: fade-in-right 1.2s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
     }
 }

/* --- animation fade-in-left --- */
@-webkit-keyframes fade-in-left {
    0% {
        -webkit-transform: translateX(-75px);
                transform: translateX(-75px);
        opacity: 0;
    }
    100% {
        -webkit-transform: translateX(0);
                transform: translateX(0);
        opacity: 1;
    }
}
@keyframes fade-in-left {
    0% {
        -webkit-transform: translateX(-75px);
                transform: translateX(-75px);
        opacity: 0;
    }
    100% {
        -webkit-transform: translateX(0);
                transform: translateX(0);
        opacity: 1;
    }
}

/* --- animation fade-in --- */
@-webkit-keyframes fade-in {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
@keyframes fade-in {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

/* --- animation fade-in-bottom --- */
@-webkit-keyframes fade-in-bottom {
    0% {
        -webkit-transform: translateY(75px);
                transform: translateY(75px);
        opacity: 0;
    }
    100% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
        opacity: 1;
    }
}
@keyframes fade-in-bottom {
    0% {
        -webkit-transform: translateY(75px);
                transform: translateY(75px);
        opacity: 0;
    }
    100% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
        opacity: 1;
    }
}  

/* --- animation fade-in-right --- */
@-webkit-keyframes fade-in-right {
    0% {
        -webkit-transform: translateX(75px);
                transform: translateX(75px);
        opacity: 0;
    }
    100% {
        -webkit-transform: translateX(0);
                transform: translateX(0);
        opacity: 1;
    }
}
@keyframes fade-in-right {
    0% {
        -webkit-transform: translateX(75px);
                transform: translateX(75px);
        opacity: 0;
    }
    100% {
        -webkit-transform: translateX(0);
                transform: translateX(0);
        opacity: 1;
    }
}

/* --- animation rotate-people-1 --- */
.gpc-team-pics-carousel,
.gpc-team-carousel-pic {
    animation-name: rotate-people-pics;
    animation-timing-function: linear;
    animation-duration: 24s;
    animation-iteration-count: infinite;
}
.gpc-team-pics-carousel--right {
    animation-name: rotate-people-pics-reversed;
}
.gpc-team-carousel-pic {
    animation-name: rotate-people-pics-reversed;
}
.gpc-team-pics-carousel--right .gpc-team-carousel-pic {
    animation-name: rotate-people-pics;
}
@keyframes rotate-people-pics {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}
@keyframes rotate-people-pics-reversed {
    from {
        transform: rotate(360deg);
    }
    to {
        transform: rotate(0deg);
    }
}
  
  
/* --- delay classes --- */
.delay-250 {
    -webkit-animation-delay: 250ms;
    animation-delay: 250ms;
}
.delay-500 {
    -webkit-animation-delay: 500ms;
    animation-delay: 500ms;
}
.delay-750 {
    -webkit-animation-delay: 750ms;
    animation-delay: 750ms;
}
.delay-1000 {
    -webkit-animation-delay: 1000ms;
    animation-delay: 1000ms;
}
.delay-1250 {
    -webkit-animation-delay: 1250ms;
    animation-delay: 1250ms;
}
.delay-1500 {
    -webkit-animation-delay: 1500ms;
    animation-delay: 1500ms;
}