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

*/

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

/* --- native smooth scroll with offset --- */
html {
    scroll-behavior: smooth;
    scroll-padding-top: 66px;
}

body.gpc {
    background-size: 1000px auto;
    -webkit-font-smoothing: auto;
    overflow-x: hidden;
}

@media (max-width: 768px) {
    body.gpc {
        font-size: 21px;
    }
}

/* --- Underline links in content area --- */
/* .inside-article .entry-content a:not([class]) {
    border-bottom: 1px dotted;
} */

/* --- remove underline in undesirable places --- */
.gpc .inside-article .entry-content .addtoany_content a,
.gpc .inside-article .entry-content .attachment a,
.gpc .inside-article .entry-content .wp-block-image figure > a,
.gpc .inside-article .entry-content .wp-block-gallery figure > a,
.gpc .inside-article .entry-content .elementor-tab-title a,
.gpc .inside-article .entry-content .elementor-nav-menu a,
.gpc .inside-article .entry-content .no-link-decoration {
    border-bottom: none !important;
}

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

/* --- site logo --- */
@media (max-width: 931px) {
    .gpc .site-header .header-image {
        width: 150px;
    }
}

/* --- mobile secondary nav --- */
@media (max-width: 768px) {
    .gpc .secondary-navigation .menu-toggle {
        display: none;
    }
    .gpc.secondary-nav-aligned-right .secondary-navigation .inside-navigation {
        justify-content: center;
    }
    .gpc .secondary-navigation ul,
    .gpc .secondary-navigation:not(.toggled) .main-nav > ul {
        display: flex;
    }
}

/* --- dropdown menu toggle --- */
.main-navigation .menu-item-has-children .dropdown-menu-toggle,
.secondary-navigation .menu-item-has-children .dropdown-menu-toggle {
    padding-right: 12px;
    padding-left: 5px;
    font-size: 0.8125em;
    opacity: 0.75;
}
.main-navigation .menu-item-has-children .dropdown-menu-toggle .icon-arrow svg {
    top: 0.175em;
}
.secondary-navigation .menu-item-has-children .dropdown-menu-toggle {
    opacity: 0.85;
}

/* --- current menu item hover states --- */
.main-navigation .main-nav ul ul li[class*="current-menu-"]:hover > a,
.main-navigation .main-nav ul ul li[class*="current-menu-"]:focus > a {
    color: #ffffff;
    background-color: var(--contrast);
}

/* --- icons in secondary nav --- */
.gpc .menu-item.menu-icon > a > svg {
    vertical-align: middle;
    margin-right: 0.125em;
    margin-bottom: 0.2em;
}

/* --- submenu --- */
.main-navigation .menu-item-has-children .sub-menu {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

/* --- header widgets with centered logo --- */
@media (min-width: 767.999px) {
    .gpc .header-widget {
        float: none;
        max-width: 100%;
        position: absolute;
        top: 24px;
        right: 30px;
        bottom: 24px;
        left: 30px;
    }
    .gpc .header-widget .widget {
        margin: 0;
        padding: 0;
        display: inline-block;
        position: relative;
        top: 45%;
        transform: translateY(-50%);
    }
    .gpc .header-widget .widget:first-child {
        float: left;
    }
    .gpc .header-widget .widget:last-child {
        float: right;
    }
}

/* --- lightweight social icons --- */
.gpc .lsi-social-icons li a {
    padding: 4px;
    line-height: 1;
}

/* --- top bar / secondary navigation --- */
.gpc .secondary-navigation {
    padding: 0 2rem;
}

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

/* --- hero full screen --- */
@media (min-height: 901px) {
    .gpc .lw-hero-full-screen {
        min-height: calc(100vh - 290px);
    }
}

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

.entry-content em,
.entry-content i {
    letter-spacing: 0.015em;
}

.entry-content div > p:last-child {
    margin-bottom: 0;
}

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

.img-frame {
    border: 1px solid rgba(90, 71, 26, 0.15);
    padding: 5px;
}

.gpc .wp-block-separator:not(.is-style-dots) {
    margin-left: auto;
    margin-right: auto;
    max-width: 80px;
}

/* --- wp footnotes --- */
.gpc .wp-block-footnotes {
    font-size: 85%;
}

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

.page-hero.lwm-page-header {
    background-color: var(--contrast);
}
.lwm-page-header .lwm-page-header-title,
.lwm-page-header .lwm-page-header-eyebrow {
    font-family: "mrs-eaves-roman-small-caps", serif;
    font-weight: normal;
    letter-spacing: 5px;
}
.lwm-page-header .lwm-page-header-eyebrow {
    font-size: 24px;
    letter-spacing: 4.5px;
    text-transform: lowercase;
}
.lwm-page-header .lwm-page-header-title {
    margin-bottom: 0;
}
.lwm-page-header .lwm-page-header-subtitle {
    font-family: "mrs-eaves", serif;
    font-size: 1.7em;
    line-height: 1;
    margin: 0.125em 0 0.75em;
}
.lwm-page-header .lwm-page-header-subtitle:empty {
    display: none;
}
.lwm-page-header-separator::after {
    content: '';
    display: block;
    background-color: #fff;
    margin: 1rem auto;
    width: 40px;
    height: 1px;
}

/* --- contact page header: reduce height so content is visible sooner --- */
.page-id-43 .page-hero {
    padding-top: 11%;
    padding-bottom: 5%;
}

/* --- visual services menu --- */
@media (min-width: 1200px) {
    .elementor.elementor-334 {
        margin-right: -100px;
        margin-left: -100px;
    }
}

/* --- WordPress gallery --- */
.gallery-columns-2 .gallery-item,
.gallery-columns-3 .gallery-item,
.gallery-columns-4 .gallery-item,
.gallery-columns-5 .gallery-item,
.gallery-columns-6 .gallery-item,
.gallery-columns-7 .gallery-item,
.gallery-columns-8 .gallery-item,
.gallery-columns-9 .gallery-item {
  max-width: 50%;
}
@media screen and (min-width: 640px) {
  .gallery-columns-3 .gallery-item,
  .gallery-columns-4 .gallery-item,
  .gallery-columns-5 .gallery-item,
  .gallery-columns-6 .gallery-item,
  .gallery-columns-7 .gallery-item,
  .gallery-columns-8 .gallery-item,
  .gallery-columns-9 .gallery-item {
    max-width: 33.33%;
  }
}
@media screen and (min-width: 992px) {
  .gallery-columns-4 .gallery-item {
    max-width: 25%;
  }
  .gallery-columns-5 .gallery-item {
    max-width: 20%;
  }
  .gallery-columns-6 .gallery-item {
    max-width: 16.66%;
  }
  .gallery-columns-7 .gallery-item {
    max-width: 14.28%;
  }
  .gallery-columns-8 .gallery-item {
    max-width: 12.5%;
  }
  .gallery-columns-9 .gallery-item {
    max-width: 11.11%;
  }
}

/* --- size of ACF Google map --- */
.acf-map {
  width: 100%;
  height: 400px;
  border: #ccc solid 1px;
  margin: 20px 0;
}

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

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

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

/* --- accordion custom stuff --- */
.gb-accordion__item .lw-accordion-toggle-close,
.gb-accordion__item-open .lw-accordion-toggle-open {
    display: none;
}
.gb-accordion__item-open .lw-accordion-toggle-close {
    display: block;
}

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

.widget .textwidget p:last-child {
    margin: 0;
}

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

/* --- overwrite GP's default footer link color --- */
.gpc .footer-bar .widget_nav_menu .current-menu-item a {
    color: #ffffff;
}

/* --- new footer widget padding --- */
@media (min-width: 767.999px) {
    .site-footer .footer-widgets-container .inner-padding {
        padding-right: 90px;
    }
}

.footer-widgets .widget-title::after {
    content: '';
    display: block;
    background-color: #998B7D;
    width: 35px;
    height: 1px;
    margin-top: 0.85rem;
}

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

/* --- Plugin: Lightweight Grid Columns spacing fix --- */
.has-js .lgc-column { visibility: hidden; }
.lgc-row .lgc-column { visibility: visible; }
@media (min-width: 768px) {
  .lgc-row {
    margin-left: -20px;
    margin-right: -20px;
  }
}
.lgc-row .inside-grid-column {
  padding: 0 20px;
}

/* --- Gravity Forms --- */
.gpc .gform_wrapper label.gfield_label,
.gpc .gform_wrapper legend.gfield_label {
    font-weight: normal;
}
.gpc .gform_wrapper .field_sublabel_above .ginput_complex.ginput_container label,
.gpc .gform_wrapper .field_sublabel_above div[class*=gfield_date_].ginput_container label,
.gpc .gform_wrapper .field_sublabel_above div[class*=gfield_time_].ginput_container label,
.gpc .gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label,
.gpc .gform_wrapper .field_sublabel_below div[class*=gfield_date_].ginput_container label,
.gpc .gform_wrapper .field_sublabel_below div[class*=gfield_time_].ginput_container label {
    font-family: "mrs-eaves-roman-small-caps", Sans-serif;
    font-weight: normal;
    letter-spacing: 1.5px;
    text-transform: lowercase;
}

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

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