/*
Theme Name: Hello Elementor Child Safe
Theme URI: https://elementor.com/hello-theme/
Description: A safe child theme for Hello Elementor. It loads the parent theme styling without changing existing site layouts and includes an optional dynamic Programme Tabs shortcode for ACF-powered programme pages.
Author: Biggorilla Team
Author URI: https://xovotech.com/
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child-safe
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
*/

/*
Do not add global CSS here unless needed.
This child theme is intentionally style-safe so activating it does not change existing layouts.
*/
/* Expanding Image Carousel */
.expanding-image-carousel .elementor-image-carousel-wrapper {
    overflow: visible !important;
}

.expanding-image-carousel .swiper {
    overflow: visible !important;
}

.expanding-image-carousel .swiper-wrapper {
    align-items: center;
}

.expanding-image-carousel .swiper-slide {
    width: 300px !important;
    height: 360px !important;
    opacity: 0.55;
    overflow: hidden;
    border-radius: 20px;
    transition: width 0.45s ease, height 0.45s ease, opacity 0.45s ease, transform 0.45s ease;
}

.expanding-image-carousel .swiper-slide-active {
    width: 615px !important;
    height: 400px !important;
    opacity: 1;
    z-index: 10;
}

.expanding-image-carousel .swiper-slide figure {
    width: 100%;
    height: 100%;
    margin: 0;
}

.expanding-image-carousel .swiper-slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    border-radius: 20px;
    display: block;
}

/* Optional: make nearby slides slightly visible and clean */
.expanding-image-carousel .swiper-slide:not(.swiper-slide-active) {
    transform: scale(0.96);
}
.colored-loop-carousel .loop-learn-more-btn .elementor-button {
    background-color: var(--loop-button-bg) !important;
    border-color: var(--loop-button-bg) !important;
    color: #ffffff !important;
}

.colored-loop-carousel .loop-learn-more-btn .elementor-button:hover {
    background-color: var(--loop-button-bg) !important;
    border-color: var(--loop-button-bg) !important;
    color: #ffffff !important;
    filter: brightness(0.92);
}
.hope-form {
    min-height: 400px;
}

.hope-form:empty::before,
.hope-form > div:empty::before {
    content: "Loading form…";
    display: flex;
    align-items: center;
    justify-content: center;
    height: 400px;
    color: #888;
    font-size: 14px;
}
/* Caret rotation on hover */
.menu-item-has-children:hover .sub-arrow {
  transform: rotate(-180deg);
  opacity: 1;
}
.sub-arrow {
  display: inline-flex;
  align-items: center;
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  opacity: 0.55;
}

/* Animated dropdown reveal */
.elementor-nav-menu--dropdown {
  opacity: 0;
  transform: translateY(-8px) scale(0.97);
  transform-origin: top left;
  pointer-events: none;
  transition:
    opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 10px !important;
  border: 0.5px solid rgba(0,0,0,0.08) !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.08), 0 1px 4px rgba(0,0,0,0.04) !important;
  padding: 6px !important;
}

.menu-item-has-children:hover .elementor-nav-menu--dropdown {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: all;
}

/* Sub-item slide-in nudge on hover */
.elementor-sub-item {
  border-radius: 6px;
  transition: background 0.15s ease, color 0.15s ease, padding-left 0.15s ease;
}
.elementor-sub-item:hover {
  padding-left: 18px;
}
/* Hover & active pointer indicator */
.elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
.elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after {
  border-radius: 50px;
  background-color: #80C343;
  height: 3px;        /* slim underline feel */
  bottom: -2px;       /* tight to the text */
  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
              opacity 0.3s ease;
}
/* Aghosh WOW FAQ - works for Elementor old + new accordion */
.aghosh-faq-wow {
  --blue: #1457a5;
  --cyan: #00a8df;
  --dark: #071f3d;
  --text: #101828;
  --muted: #5d6678;
}

/* FAQ section background */


/* Old Elementor accordion items */
.aghosh-faq-wow .elementor-accordion-item,
.aghosh-faq-wow .e-n-accordion-item {
  position: relative !important;
  border: 0 !important;
  border-radius: 26px !important;
  margin-bottom: 20px !important;
  background: rgba(255,255,255,.86) !important;
  overflow: hidden !important;
  box-shadow:
    0 20px 55px rgba(7,31,61,.08),
    inset 0 0 0 1px rgba(20,87,165,.12);
  backdrop-filter: blur(16px);
  transition: all .45s cubic-bezier(.2,.8,.2,1) !important;
}

/* Hover lift */
.aghosh-faq-wow .elementor-accordion-item:hover,
.aghosh-faq-wow .e-n-accordion-item:hover {
  transform: translateY(-6px);
  box-shadow:
    0 32px 80px rgba(7,31,61,.14),
    inset 0 0 0 1px rgba(0,168,223,.28);
}

/* Animated glow */
.aghosh-faq-wow .elementor-accordion-item::before,
.aghosh-faq-wow .e-n-accordion-item::before {
  content: "";
  position: absolute;
  inset: -2px;
  z-index: 0;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(20,87,165,.35),
    rgba(0,168,223,.38),
    transparent
  );
  background-size: 300% 300%;
  opacity: 0;
  transition: opacity .4s ease;
  pointer-events: none;
}

.aghosh-faq-wow .elementor-accordion-item:hover::before,
.aghosh-faq-wow .e-n-accordion-item:hover::before,
.aghosh-faq-wow .elementor-tab-title.elementor-active::before {
  opacity: 1;
  animation: faqGlowMove 4s linear infinite;
}

/* Inner white layer */
.aghosh-faq-wow .elementor-accordion-item > *,
.aghosh-faq-wow .e-n-accordion-item > * {
  position: relative;
  z-index: 2;
}

/* Question title - old accordion */
.aghosh-faq-wow .elementor-tab-title {
  position: relative !important;
  padding: 26px 82px 26px 32px !important;
  border: 0 !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--text) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em;
  transition: all .35s ease !important;
}

/* Question title - new nested accordion */
.aghosh-faq-wow summary.e-n-accordion-item-title {
  position: relative !important;
  padding: 26px 82px 26px 32px !important;
  border: 0 !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--text) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em;
  transition: all .35s ease !important;
}

/* Active title */
.aghosh-faq-wow .elementor-tab-title.elementor-active,
.aghosh-faq-wow .e-n-accordion-item[open] summary.e-n-accordion-item-title {
  color: var(--blue) !important;
}

/* Left animated bar */
.aghosh-faq-wow .elementor-tab-title::after,
.aghosh-faq-wow summary.e-n-accordion-item-title::after {
  content: "";
  position: absolute;
  left: 0;
  top: 24px;
  width: 5px;
  height: 38px;
  border-radius: 0 20px 20px 0;
  background: linear-gradient(180deg, var(--blue), var(--cyan));
  transform: scaleY(.25);
  opacity: 0;
  transition: all .35s ease;
}

.aghosh-faq-wow .elementor-tab-title:hover::after,
.aghosh-faq-wow .elementor-tab-title.elementor-active::after,
.aghosh-faq-wow .e-n-accordion-item:hover summary::after,
.aghosh-faq-wow .e-n-accordion-item[open] summary::after {
  transform: scaleY(1);
  opacity: 1;
}

/* Answer text - old */
.aghosh-faq-wow .elementor-tab-content {
  padding: 0 32px 30px 32px !important;
  border: 0 !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--muted) !important;
  font-size: 16.5px !important;
  line-height: 1.85 !important;
  animation: faqReveal .5s cubic-bezier(.2,.8,.2,1);
}

/* Answer area - new nested */
.aghosh-faq-wow .e-n-accordion-item > .e-con,
.aghosh-faq-wow .e-n-accordion-item > div:not(summary) {
  padding: 0 32px 30px 32px !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--muted) !important;
  animation: faqReveal .5s cubic-bezier(.2,.8,.2,1);
}

/* Icon bubble old */
.aghosh-faq-wow .elementor-accordion-icon {
  position: absolute !important;
  right: 28px;
  top: 50%;
  width: 42px;
  height: 42px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(20,87,165,.11), rgba(0,168,223,.13));
  color: var(--blue) !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  transition: all .45s cubic-bezier(.2,.8,.2,1) !important;
}

.aghosh-faq-wow .elementor-tab-title.elementor-active .elementor-accordion-icon {
  background: linear-gradient(135deg, var(--blue), var(--cyan));
  color: #fff !important;
  transform: translateY(-50%) rotate(180deg) scale(1.08);
  box-shadow: 0 14px 30px rgba(20,87,165,.28);
}

/* Icon bubble new */
.aghosh-faq-wow .e-n-accordion-item-title-icon {
  position: absolute !important;
  right: 28px;
  top: 50%;
  width: 42px;
  height: 42px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(20,87,165,.11), rgba(0,168,223,.13));
  color: var(--blue) !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  transition: all .45s cubic-bezier(.2,.8,.2,1) !important;
}

.aghosh-faq-wow .e-n-accordion-item[open] .e-n-accordion-item-title-icon {
  background: linear-gradient(135deg, var(--blue), var(--cyan));
  color: #fff !important;
  transform: translateY(-50%) rotate(180deg) scale(1.08);
  box-shadow: 0 14px 30px rgba(20,87,165,.28);
}
/* Old Elementor Accordion */
.aghosh-faq-wow .elementor-tab-title.elementor-active .elementor-accordion-icon,
.aghosh-faq-wow .elementor-tab-title.elementor-active .elementor-accordion-icon i,
.aghosh-faq-wow .elementor-tab-title.elementor-active .elementor-accordion-icon svg,
.aghosh-faq-wow .elementor-tab-title.elementor-active .elementor-accordion-icon svg path {
  color: #fff !important;
  fill: #fff !important;
  stroke: #fff !important;
}

/* Nested Accordion */
.aghosh-faq-wow .e-n-accordion-item[open] .e-n-accordion-item-title-icon,
.aghosh-faq-wow .e-n-accordion-item[open] .e-n-accordion-item-title-icon i,
.aghosh-faq-wow .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg,
.aghosh-faq-wow .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg path {
  color: #fff !important;
  fill: #fff !important;
  stroke: #fff !important;
}
/* Animations */
@keyframes faqReveal {
  from {
    opacity: 0;
    transform: translateY(-14px) scale(.985);
    filter: blur(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

@keyframes faqGlowMove {
  0% {
    background-position: 0% 50%;
  }
  100% {
    background-position: 300% 50%;
  }
}
/* Fix icon bubble clipping */
.aghosh-faq-wow .elementor-tab-title,
.aghosh-faq-wow summary.e-n-accordion-item-title {
  min-height: 76px;
  display: flex;
  align-items: center;
  overflow: visible !important;
}

/* Icon wrapper */
.aghosh-faq-wow .elementor-accordion-icon,
.aghosh-faq-wow .e-n-accordion-item-title-icon {
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 40px;
  height: 40px;
  min-width: 40px;
  min-height: 40px;
  line-height: 1 !important;
  overflow: visible !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
}

/* Active state keep proper position */
.aghosh-faq-wow .elementor-tab-title.elementor-active .elementor-accordion-icon,
.aghosh-faq-wow .e-n-accordion-item[open] .e-n-accordion-item-title-icon {
  transform: translateY(-50%) rotate(180deg) scale(1.05) !important;
}

/* Inner minus icon */
.aghosh-faq-wow .elementor-accordion-icon i,
.aghosh-faq-wow .elementor-accordion-icon svg,
.aghosh-faq-wow .e-n-accordion-item-title-icon i,
.aghosh-faq-wow .e-n-accordion-item-title-icon svg {
  display: block;
  line-height: 1 !important;
}
.aghosh-faq-wow .elementor-accordion-icon,
.aghosh-faq-wow .e-n-accordion-item-title-icon {
  width: 38px;
  height: 38px;
  min-width: 38px;
  min-height: 38px;
}
/* Mobile */
@media (max-width: 767px) {
  .aghosh-faq-wow {
    padding: 55px 0;
  }

  .aghosh-faq-wow .elementor-accordion-item,
  .aghosh-faq-wow .e-n-accordion-item {
    border-radius: 18px !important;
    margin-bottom: 14px !important;
  }

  .aghosh-faq-wow .elementor-tab-title,
  .aghosh-faq-wow summary.e-n-accordion-item-title {
    padding: 20px 64px 20px 20px !important;
    font-size: 15.5px !important;
  }

  .aghosh-faq-wow .elementor-tab-content,
  .aghosh-faq-wow .e-n-accordion-item > .e-con,
  .aghosh-faq-wow .e-n-accordion-item > div:not(summary) {
    padding: 0 20px 22px 20px !important;
    font-size: 15px !important;
  }

  .aghosh-faq-wow .elementor-accordion-icon,
  .aghosh-faq-wow .e-n-accordion-item-title-icon {
    right: 18px;
    width: 34px;
    height: 34px;
  }
}
/* Tablet */
@media (max-width: 1024px) {
    .expanding-image-carousel .swiper-slide {
        width: 220px !important;
        height: 270px !important;
    }

    .expanding-image-carousel .swiper-slide-active {
        width: 440px !important;
        height: 310px !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .expanding-image-carousel .elementor-image-carousel-wrapper,
    .expanding-image-carousel .swiper {
        overflow: hidden !important;
    }

    .expanding-image-carousel .swiper-slide {
        width: 170px !important;
        height: 210px !important;
    }

    .expanding-image-carousel .swiper-slide-active {
        width: 280px !important;
        height: 230px !important;
    }
}