/*
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
------------------------------------------ */

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

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

/* --- header --- */
@media (min-width: 768px) and (max-width: 1024px) {
    .gpc .inside-header {
        padding-left: 30px;
    }
}

/* --- site logo --- */
.gpc .site-header .site-logo {
    position: relative;
    z-index: 2;
}
@media (max-width: 767px) {
    .gpc .site-header .header-image {
        width: 168px;
    }
}
@media (min-width: 768px) and (max-width: 1257px) {
    .gpc .site-header .header-image {
        width: 208px;
    }
}
@media (max-width: 767px) {
    .gpc:not(.single-staff):not(.single-project):not(.single-post) .site-header .site-logo {
        /* background-image: url('/wp-content/uploads/2024/07/jhh-logomark-white-w-small-brick.svg'); */
        background-image: url('/wp-content/uploads/2024/05/jhh-horiz_white-one-brick-block.svg');
        background-repeat: no-repeat;
    }
    .gpc:not(.single-staff):not(.single-project):not(.single-post) .site-header .header-image {
        visibility: hidden;
    }
}

/* --- primary nav --- */
@media (min-width: 768px) and (max-width: 1257px) {
    .gpc .main-navigation .main-nav ul li a {
        padding-left: 10px;
        padding-right: 10px;
    }
    .gpc .menu-item-has-children .dropdown-menu-toggle {
        padding-right: 10px;
    }
    .gpc .main-navigation .main-nav ul li.menu-item-has-children > a {
        padding-right: 0;
    }
}

/* --- primary nav current state --- */
.menu-item.current-menu-item > a,
.menu-item.current_page_item > a,
.menu-item.current_page_parent > a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.4em;
}

/* --- primary nav dropdown toggle --- */
.gpc .menu-item-has-children .dropdown-menu-toggle {
    padding-left: 0.325em;
}

/* --- mobile toggle --- */
@media (max-width: 768px) {
    .gpc:not(.single-staff):not(.single-project):not(.single-post) .main-navigation .main-nav ul li a,
    .gpc:not(.single-staff):not(.single-project):not(.single-post) .main-navigation .menu-toggle,
    .gpc:not(.single-staff):not(.single-project):not(.single-post) .main-navigation .menu-bar-items {
        color: var(--base-3);
    }
}

/* --- header shape with photo --- */
.jhh-hdr-bg-shape {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    pointer-events: none;
    z-index: 1;
}
.jhh-hdr-bg-shape figure {
    display: inline-block;
    position: relative;
    z-index: 1;
    width: 100%;
}
@media (min-width: 768px) {
    .jhh-hdr-bg-shape figure {
        width: 56%;
    }
}
.jhh-hdr-bg-shape figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.jhh-hdr-bg-shape figure::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: 2;
    background-color: rgba(0,0,0,0.5);
    background: linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.1));
}
.jhh-hdr-bg-shape + .site.container {
    padding-top: 40vw;
}
@media (min-width: 768px) {
    .jhh-hdr-bg-shape + .site.container {
        padding-top: 21vw;
    }
}
.jhh-hdr-bg-shape figure {
    mask-repeat: no-repeat;
    mask-size: 120%;
    mask-position: bottom right;
}
@media (min-width: 768px) {
    .jhh-hdr-bg-shape figure {
       mask-size: 100%;
       mask-position: top right;
    }
}
/* header shape: profile */
.jhh-hdr-mask--profile figure {
    mask-image: url('/wp-content/uploads/2024/04/jhh-hdr-mask-profile.svg');
}
/* header shape: projects */
.jhh-hdr-mask--projects figure {
    mask-image: url('/wp-content/uploads/2024/07/jhh-hdr-masks-projects.svg');
}
/* header shape: news */
.jhh-hdr-mask--news figure {
    mask-image: url('/wp-content/uploads/2024/07/jhh-hdr-mask-news.svg');
}
/* header shape: contact */
.jhh-hdr-mask--contact figure {
    mask-image: url('/wp-content/uploads/2024/07/jhh-hdr-mask-contact.svg');
}

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

/* --- home hero --- */
.jhh-home-hero-project-swiper {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 2;
}
.jhh-home-hero-project-swiper__img-container {
    display: block;
    width: 100%;
    height: 100%;
}
.jhh-home-hero-project-swiper__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
@media (max-width: 767px) {
    .gpc .jhh-home-hero__inner:before {
        background-position: bottom right;
    }
}
@media (max-width: 691px) {
    .jhh-home-hero-project-swiper__nav {
        bottom: auto;
        top: 57vw;
    }
}
.jhh-home-hero-project-swiper__nav {
    position: absolute;
    bottom: 90px;
    left: 10px;
    width: 62px;

    --swiper-navigation-size: 22px;
    --swiper-theme-color: white;
}
.jhh-home-hero-project-swiper__nav .swiper-button-prev::after,
.jhh-home-hero-project-swiper__nav .swiper-button-next::after {
    background-color: rgba(0,0,0,0.2);
    padding: 6px 7px;
    border-radius: 2px;
}

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

/* --- shape backgrounds --- */
/* body.parent-pageid-33 {
    position: relative;
}
body.parent-pageid-33::after {
    content: '';
    display: block;
    position: fixed;
    bottom: 0;
    left: -30px;
    z-index: 100;
    width: 80px;
    height: 90px;
    background: url('/wp-content/themes/generatepress-child/img/jhh-logo-shape-bottom-right.svg') no-repeat;
    background-size: contain;
} */

/* --- sideways h1 page intro heading --- */
@media (min-width: 1475px) {
    .jhh-page-intro__h1-heading {
        left: 0px;
        position: absolute;
        top: 0px;
        transform: translate3d(-15px, 3vw, 0px) rotate(-90deg);
        transform-origin: bottom left;
    }
}

/* --- project hero image --- */
.project-hero-video {
    display: none;
}
@media (min-width: 768px) {
    .project-hero-video {
        display: block;
    }
    .project-hero-video + .project__hero-img {
        display: none;
    }
}
.gpc .project__hero > .gb-shapes .gb-shape-1 svg {
    height: 8vw;
}

/* --- project data --- */
.project-data__value ul,
.project-data__value ol {
    margin-left: 1.25em;
}

/* --- project-gallery --- */
.project-gallery {
    list-style: none;
    margin-left: 0;
    display: flex;
    gap: 16px 20px;
    flex-wrap: wrap;
}
.project-gallery li {
    width: calc(50% - 10px);
}
.project-gallery li img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
@media (min-width: 768px) {
    .project-gallery {
        gap: 26px 30px;
    }
    .project-gallery li {
        width: calc(50% - 15px);
    }
}
@media (min-width: 1025px) {
    .project-gallery {
        gap: 36px 40px;
    }
    .project-gallery li {
        width: calc(50% - 20px);
    }
    .project-gallery li:nth-child(2n) {
        margin-top: -4vw;
    }
}

/* ==========================================
=! 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%; }
.embed-container--square { padding-bottom: 100%; }

/* --- html video --- */
.video-html,
video {
    max-width: 100%;
    width: 100%;
}

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

/* --- project-categories-menu --- */
.project-categories-menu {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-left: -12px;
}
.project-categories-menu::before {
    content: 'Categories:';
    padding: 10px 12px;
}
.project-categories-menu li a {
    display: inline-block;
    font-size: 16px;
    padding: 10px 12px;
}
.project-categories-menu li.selected a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.4em;
}

/* --- Testimonials (uses Swiper JS) --- */
.swiper.jhh-testimonials-swiper {
    padding-bottom: 1.5em;
    --swiper-pagination-bottom: 0;
    --swiper-theme-color: white;
}
.swiper.jhh-testimonials-swiper > .swiper-wrapper {
    align-items: center;
}
.jhh-testimonial__text {
    border: none;
    margin: 0 0 1em 0;
    padding: 0;
    font-style: unset;
}
.swiper.jhh-testimonials-swiper .swiper-pagination {
    text-align: left;
}

/* ==========================================
=! 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
------------------------------------------ */

/* --- full-width site footer --- */
.blog .jhh-site-footer__inner,
.page-id-46 .jhh-site-footer__inner,
.single-project .jhh-site-footer__inner,
.single-staff .jhh-site-footer__inner,
.single-post .jhh-site-footer__inner {
    max-width: 100%; 
}

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

.hide {
    position:absolute !important;
    height:1px;
    width:1px;
    overflow:hidden;
    clip:rect(1px, 1px, 1px, 1px);
}

/* ==========================================
=! 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;
    }
    .has-js .prep-animation,
    .has-js .prep-scroll-animation {
        visibility: hidden;
    }
    .has-js .do-animation,
    .has-js .do-scroll-animation {
        visibility: visible;
    }
}

/* ----------------------------------------------
 * 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;
    }
}
  
  
/* --- 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;
}
.delay-1750 {
    -webkit-animation-delay: 1750ms;
    animation-delay: 1750ms;
}
.delay-2000 {
    -webkit-animation-delay: 2000ms;
    animation-delay: 2000ms;
}
.delay-2250 {
    -webkit-animation-delay: 2250ms;
    animation-delay: 2250ms;
}
.delay-2500 {
    -webkit-animation-delay: 2500ms;
    animation-delay: 2500ms;
}
.delay-2750 {
    -webkit-animation-delay: 2750ms;
    animation-delay: 2750ms;
}
.delay-3000 {
    -webkit-animation-delay: 3000ms;
    animation-delay: 3000ms;
}