/*
 Theme Name:   TAAN Worldwide
 Theme URI:    https://www.taan.org
 Description:  Child theme of GeneratePress created by Holland Adhaus.
 Author:       Holland Adhaus
 Author URI:   https://hollandadhaus.com
 Template:     generatepress
 Version:      1.1
*/

/**
 * HA
 */

/* Hide featured images used for preload */
.page .featured-image.page-header-image {
    display: none !important;
    visibility: hidden !important;
}
/* Navigation transitions */
.main-navigation a, 
.main-navigation .menu-toggle, 
.main-navigation .menu-bar-items, 
.main-navigation a:hover, 
.main-navigation .menu-toggle:hover, 
.main-navigation .menu-bar-items:hover, 
.main-navigation a:active, 
.main-navigation .menu-toggle:active, 
.main-navigation .menu-bar-items:active, 
.main-navigation a:focus, 
.main-navigation .menu-toggle:focus, 
.main-navigation .menu-bar-items:focus {
    transition: color .2s ease !important;
}
/* Elementor icon list and nav menu transitions */
.elementor-nav-menu a, 
.elementor-nav-menu a:hover, 
.elementor-nav-menu a:active, 
.elementor-nav-menu a:focus, 
.elementor-icon-list-item a span, 
.elementor-icon-list-item a:hover span, 
.elementor-icon-list-item a:focus span, 
.elementor-icon-list-item a:active span, 
.elementor-social-icon *,
.elementor-social-icon:hover *,
.elementor-social-icon:focus *,
.elementor-social-icon:active * {
    transition: all .2s ease !important;
} 
/* Elementor lazy load carousel/swiper compat */
.swiper-slide-image.swiper-lazy.lazy-hidden, 
.entry img.swiper-slide-image.swiper-lazy.lazy-hidden, 
img.thumbnail.swiper-slide-image.swiper-lazy.lazy-hidden {
    opacity: 1 !important;
}
.te0 p:last-child, 
.te0 ul:last-child, 
.te0 ol:last-child {
    margin-bottom: 0 !important;
}
/* Fix E-FA icon fill color bug */
.elementor-icon-list-icon svg.svg-inline--fa path {
  fill: inherit;
}
/* Equal height fix for Elementor Loop Carousels with .force-eq-height */
.force-eq-height .swiper-slide {
  height: auto !important;
}
.force-eq-height .elementor-widget-theme-post-content, 
.force-eq-height .elementor[data-elementor-type="wp-post"], 
.force-eq-height .elementor[data-elementor-type="wp-post"] > .elementor-element {
    height: 100% !important;
}

/**
* Custom
*/

.ham-content a, .ham-content a:hover, .ham-content a:active, .ham-content a:focus {
  transition: .2s all !important;
}

/**
* Gravity Forms
*/

/* Hide required initial instructions */
.gform_required_legend {
    display: none !important;
}
/* Rounded input corners */
.gform_wrapper.gravity-theme input[type="color"], 
.gform_wrapper.gravity-theme input[type="date"], 
.gform_wrapper.gravity-theme input[type="datetime-local"], 
.gform_wrapper.gravity-theme input[type="datetime"], 
.gform_wrapper.gravity-theme input[type="email"], 
.gform_wrapper.gravity-theme input[type="month"], 
.gform_wrapper.gravity-theme input[type="number"], 
.gform_wrapper.gravity-theme input[type="password"], 
.gform_wrapper.gravity-theme input[type="search"], 
.gform_wrapper.gravity-theme input[type="tel"], 
.gform_wrapper.gravity-theme input[type="text"], 
.gform_wrapper.gravity-theme input[type="time"], 
.gform_wrapper.gravity-theme input[type="url"], 
.gform_wrapper.gravity-theme input[type="week"], 
.gform_wrapper.gravity-theme select, 
.gform_wrapper.gravity-theme textarea, 
.gform_wrapper.gravity-theme .ginput_complex input, 
.gform_wrapper.gravity-theme .ginput_complex select, 
.gform_wrapper.gravity-theme .gform_footer button, 
.gform_wrapper.gravity-theme .gform_footer input, 
.gform_wrapper.gravity-theme .gform_page_footer button, 
.gform_wrapper.gravity-theme .gform_page_footer input {
    border-radius: 10px;
}
.gform_wrapper input:focus {
  --gf-ctrl-outline-color-focus: var(--vs-gold);
}
/* Hide instructions on fields with class .hide-instruction */
.gform_wrapper .gfield.hide-instruction .instruction {
    display: none;
    visibility: hidden;
}
/* Submit buttons */
.gform_button, .gform_wrapper input[type="submit"] {
    font-weight: 800;
    font-family: 'proxima-nova', sans-serif;
    font-size: 1.2rem;
}
/* Fix state subfield in address field */
.ginput_address_state {
    margin-bottom: 8px;
}

.gform_fields {
    --gf-form-gap-y: 1.5rem;
}
.gform-button {
    color: var(--taan-red);
    border-radius: 10px !important;
    text-transform: uppercase;
}
.gform-button:hover, 
.gform-button:active, 
.gform-button:focus {
    background-color: var(--taan-red) !important;
    --gf-ctrl-btn-bg-color-hover-primary: var(--taan-red-light) !important;
    color: #fff !important;
}
.gform_wrapper .gform-button--width-full {
    width: 100% !important;
}
.gform_wrapper .gform_button, 
.gform_wrapper input[type="submit"] {
    font-weight: 800 !important;
    text-transform: uppercase !important;
    border-radius: 10px !important;
    background: var(--taan-red);
    color: #fff;
}
.gform_wrapper .gform_button:hover, 
.gform_wrapper .gform_button:active, 
.gform_wrapper .gform_button:focus, 
.gform_wrapper input[type="submit"]:hover, 
.gform_wrapper input[type="submit"]:active, 
.gform_wrapper input[type="submit"]:focus {
    background: var(--taan-red-light) !important;
    color: #fff !important;
}

/* Make the two rows size to their own content instead of equal fr */
.grid-rows-auto {
    align-content: start;                 /* don't stretch rows to fill */
    grid-template-rows: auto auto !important;  /* replace the 1fr rows */
    /* If Elementor injects grid-auto-rows or a fixed height, we neutralize: */
    grid-auto-rows: auto;
}

/* Ensure items don't re-stretch themselves */
.grid-rows-auto > .e-con {
    align-self: start;
}

.elementor-icon-list-item.elementor-inline-item {
  line-height: 200%;
}
.elementor-flip-box__button {
  width: 100%;
}

/**** Split section with bleeds ****/
:root {
  --site-content-max: 1140px;
  --outer-pad: 0;            /* default; overridden by .outer-pad at <=1140px */
}
html, body {
  overflow-x: hidden;
}

/* Outer section: no side padding */
.split-bleed {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Centered wrapper defines a container for cqw units */
.split-bleed .split-inner {
  width: 100%;
  max-width: var(--site-content-max);
  margin: 0 auto;
  display: flex;
  gap: 0;
  align-items: stretch;
  container-type: inline-size; /* 1cqw = 1% of this wrapper's width */
}

/* Columns (force CSS to win over Elementor flex-basis/width) */
.split-left {
  flex: 0 0 auto !important;
  width: auto !important; /* gets overridden in the >=1201px rule */
  min-width: 0;
}
.split-right {
  flex: 0 0 50cqw !important;
  max-width: 50cqw !important;
  min-width: 0;
}

/* >=768px: bleed the LEFT to the viewport edge; RIGHT stays boxed */
@media (min-width:768px) {
  .split-bleed {
    --inner-bleed-left: min(var(--site-content-max), 100vw);
    --gutter-bleed-left: calc((100vw - var(--inner-bleed-left)) / 2);
  }
  .split-left{
    width: calc(50cqw + var(--gutter-bleed-left)) !important;
    margin-left: calc(var(--gutter-bleed-left) * -1) !important;
  
    /* tuning */
    --depth: 80px;   /* how far the arc cuts into the box */
    --ry: 60%;       /* vertical radius */

    /* Base: full visible rectangle
      Cutout: ellipse "bite" on the left */
    -webkit-mask-image:
      linear-gradient(#000 0 0),
      radial-gradient(ellipse var(--depth) var(--ry) at 100% 50%,
        #000 99%, transparent 100%);
    -webkit-mask-composite: xor; /* subtract-ish in WebKit */

            mask-image:
      linear-gradient(#000 0 0),
      radial-gradient(ellipse var(--depth) var(--ry) at 100% 50%,
        #000 99%, transparent 100%);
            mask-composite: exclude; /* subtract in Firefox */

    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%, 100% 100%;
          mask-size: 100% 100%, 100% 100%;
  }
}

/* <=767px: stack; both columns full width; only counter parent pad if declared */
@media (max-width:767px){
  /* If a parent set --outer-pad (e.g., via .outer-pad), let this section bleed over it */
  .split-bleed {
    margin-left: calc(-1 * var(--outer-pad));
    margin-right: calc(-1 * var(--outer-pad));
  }

  .split-left, 
  .split-right {
    flex: 0 0 auto !important;
    max-width: none !important;
    width: 100% !important;
    min-width: 0;
    margin: 0 !important;
  }

  .split-bleed .split-inner {
    flex-direction: column;
    max-width: none;
    width: 100% !important;
    margin: 0;
  }
}
/**** END ****/

/* Outermost section (no side padding) */
.split-bleed-alt {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Centered wrapper establishes container for cqw units */
.split-bleed-alt .split-inner-alt {
  width: 100%;
  max-width: var(--site-content-max);
  margin: 0 auto;
  display: flex;
  gap: 0;
  align-items: stretch;
  container-type: inline-size; /* 1cqw = 1% of this wrapper's width */
}

/* Columns (force CSS to win over Elementor flex-basis/width) */

.split-left-alt {
  flex: 0 0 50cqw !important;
  max-width: 50cqw !important;
  min-width: 0;
}
.split-right-alt {
  flex: 0 0 auto !important;
  width: auto; /* gets overridden in the >=1201px rule */
  min-width: 0;
}


/* >=768px: bleed the RIGHT to the viewport edge; LEFT stays boxed */
@media (min-width:768px) {
  .split-bleed-alt {
    --inner: min(var(--site-content-max), 100vw);
    --gutter: calc((100vw - var(--inner)) / 2); /* viewport --> inner wrapper gutter */
  }
  .split-right-alt {
    width: calc(50cqw + var(--gutter));
    margin-right: calc(var(--gutter) * -1); /* push to the right screen edge */

  /* tuning */
  --depth: 80px;   /* how far the arc cuts into the box */
  --ry: 60%;       /* vertical radius */

  /* Base: full visible rectangle
    Cutout: ellipse "bite" on the left */
  -webkit-mask-image:
    linear-gradient(#000 0 0),
    radial-gradient(ellipse var(--depth) var(--ry) at 0% 50%,
      #000 99%, transparent 100%);
  -webkit-mask-composite: xor; /* subtract-ish in WebKit */

          mask-image:
    linear-gradient(#000 0 0),
    radial-gradient(ellipse var(--depth) var(--ry) at 0% 50%,
      #000 99%, transparent 100%);
          mask-composite: exclude; /* subtract in Firefox */

  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%, 100% 100%;
        mask-size: 100% 100%, 100% 100%;
  }
}

/* <=767px: stack; both columns full width; only counter parent pad if declared */
@media (max-width:767px) {
  .split-bleed-alt {
    margin-left:  calc(-1 * var(--outer-pad));
    margin-right: calc(-1 * var(--outer-pad));
  }
  .split-left-alt, 
  .split-right-alt {
    flex: 0 0 auto !important;
    max-width: none !important;
    width: 100% !important;
    min-width: 0;
    margin: 0 !important;
  }

  .split-bleed-alt .split-inner-alt {
    flex-direction: column;
    max-width: none;
    width: 100% !important;
    margin: 0;
  }
}
/**** END alt ****/

.il-h3-p h3, 
.il-h4-p h4 {
    font-size: inherit !important;
    line-height: inherit !important;
    text-transform: inherit !important;
    margin-bottom: 0.25rem;
}
/* .il-h4-p h4 {
    font-size: 1.5rem;
    line-height: 2rem;
    text-transform: inherit;
    margin-bottom: 0.25rem;
} */
.il-h3-p p, 
.il-h4-p p {
    margin-bottom: 0;
} 
.il-inset-ul {
    margin-bottom: 0;
}

/* Homepage hero video */
/* Background video container: fills the hero, behind the content */
#hero .elementor-background-video-container {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 0; /* then give your content containers higher z-index if needed */
}
/* Video: lock its size, but keep Elementor's centering transform */
#hero .elementor-background-video-hosted {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  /* DON'T touch transform/top/left here - let Elementor keep translate(-50%, -50%) */
}
/* Make sure content sits above the video */
#hero .e-child {
  position: relative;
  z-index: 1;
}

/* Termly */
div[name="termly-embed"] {
    margin: -20px;
}

.footer-copyright p {
    margin: 0 !important;
}

.elementor-widget-breadcrumbs .breadcrumb_last strong {
  font-weight: 800 !important;
}

.event-li .event-li-content {
  height: 100% !important;
}

@media (max-width: 450px) {
  .mobile-menu-control-wrapper {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    width: 100%;
    margin-top: 1.5rem;
  }
  .main-navigation .menu-toggle {
    background: var(--taan-red);
    width: 3rem !important;
    height: 3rem !important;
    flex-grow: 0 !important;
    padding: 0.85rem;
    padding-right: 0.85rem;
    font-size: 1.25rem;
    line-height: 1.25rem;
    margin-left: 0.75rem;
  }
  #sticky-navigation.is_stuck .menu-toggle {
    margin-right: 20px !important;
  }
  .main-navigation.has-sticky-branding.navigation-stick .menu-toggle {
    padding: 0 !important;
  }
  .main-navigation .menu-toggle:hover, 
  .main-navigation .menu-toggle:active, 
  .main-navigation .menu-toggle:focus {
    background: var(--taan-red-light);
    color: #fff !important;
  }
  .main-navigation .menu-toggle, 
  .main-navigation .menu-bar-items {
    color: #fff !important;
  }
  .main-navigation.toggled .main-nav > ul {
    margin-top: 0.75rem;
    border-radius: 10px;
    box-shadow: 0 0 10px 0 rgba(0,0,0,0.25);
  }
}
.sticky-enabled .main-navigation.is_stuck {
  box-shadow: 0 0px 10px -3px rgba(0, 0, 0, .5);
  background-color: rgba(255,255,255,0.95);
  backdrop-filter: blur(8px);
}

@media (max-height: 600px) and (max-width: 400px) {
  #hero {
    padding: 10rem 2rem !important;
  }
}

.person-card .person-card-titles p {
  margin: 0;
}

/* Timeline */
@media (max-width: 767px) {
  .taan-timeline .tt-event {
    padding: 0 0 1.5rem 0;
  }
  .taan-timeline::after {
    content: '';
    display: inline-block;
    position: absolute;
    left: calc(-1.5rem + 6px);
    width: 4px;
    height: 100%;
    background: #616161;
    z-index: -1;
  }
  .taan-timeline .tt-event::after {
    content: '';
    display: inline-block;
    position: absolute;
    left: -1.65rem;
    top:-1rem;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 100%;
    background: var(--taan-red);
  }
  .taan-timeline .tt-event .tt-event-col-left {
    display: none !important;
    visibility: hidden !important;
  }
  .taan-timeline .tt-event .tt-event-col-right {
    padding: 0 !important;
  }
}