/*
 * GEF Elementor Widgets - Custom Styles
 * Extracted from index.html (lines 66-508)
 * All Tailwind utility classes are handled by the Tailwind CDN.
 * This file contains ONLY the custom CSS that Tailwind cannot produce.
 */

.sec { padding-top: 4rem; padding-bottom: 4rem; }
/* Scope body styles to frontend only — avoid leaking into Elementor editor UI */
body:not(.wp-admin):not(.elementor-editor-active) {
  font-family: "Poppins", sans-serif;
  -webkit-font-smoothing: antialiased;
  font-size: 14px;
  color: #000000;
}
/* Scope heading fonts to GEF widget containers inside the editor to avoid
   overriding Elementor's own heading controls in the settings panel. */
body:not(.wp-admin):not(.elementor-editor-active) h1,
body:not(.wp-admin):not(.elementor-editor-active) h2,
body:not(.wp-admin):not(.elementor-editor-active) h3,
body:not(.wp-admin):not(.elementor-editor-active) h4,
body:not(.wp-admin):not(.elementor-editor-active) h5,
body:not(.wp-admin):not(.elementor-editor-active) h6,
body:not(.wp-admin):not(.elementor-editor-active) .font-heading {
  font-family: "Playfair Display", serif;
}
.material-symbols-outlined {
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

/* ===== HERO ===== */
/* Hero section: always full viewport, dark bg, relative context for children */
#home {
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background-color: #000f1f;
}

/* Hero overlay: cover entire section */
.hero-overlay {
  background:
    linear-gradient(160deg, rgba(0, 15, 31, 0.85) 0%, rgba(0, 15, 31, 0.65) 40%, rgba(0, 43, 92, 0.35) 100%);
  position: absolute;
  inset: 0;
}

/* Hero background image: always cover the section */
.hero-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  max-width: none !important;
  max-height: none !important;
}
.hero-img.loaded { transform: scale(1); }

/* Hero background image wrapper: stretch to fill section */
#home > div:first-child {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

/* Hero grid overlay */
#home > div:nth-child(3) {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  opacity: 0.03;
}

/* Hero content area */
#home > div:nth-child(4) {
  position: relative;
  z-index: 10;
}

/* Floating header capsule */
.header-inner {
  background: rgba(255, 255, 255, 0.08) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 16px !important;
  transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
  overflow: visible !important;
}
.header-inner.scrolled {
  background: rgba(255, 255, 255, 0.97) !important;
  border-color: rgba(0, 43, 92, 0.08) !important;
  border-radius: 0 0 16px 16px !important;
  box-shadow: 0 4px 30px rgba(0, 43, 92, 0.08) !important;
}

/* ===== HEADER SCROLLED STATE ===== */
/* Tailwind CDN does not generate CSS for dynamically-added classes,
   so scrolled-state styling must live here with !important. */

/* Nav links — scrolled: dark text */
.header-inner.scrolled .nav-link {
  color: rgba(0, 43, 92, 0.7);
}
.header-inner.scrolled .nav-link:hover {
  color: #002B5C !important;
  background: rgba(0, 43, 92, 0.05) !important;
}

/* Nav link underline — scrolled: use brand gradient */
.header-inner.scrolled .nav-link::after {
  background: linear-gradient(90deg, #00853F, #47b46f) !important;
}

/* Header icons — scrolled: dark */
.header-inner.scrolled #header-icons {
  color: rgba(0, 43, 92, 0.4) !important;
}
.header-inner.scrolled #header-icons a {
  border-color: #e5e7eb !important;
}
.header-inner.scrolled #header-icons a:hover {
  color: #002B5C !important;
  border-color: #9db3d1 !important;
  background: rgba(0, 43, 92, 0.05) !important;
}

/* Mobile menu toggle — scrolled: dark */
.header-inner.scrolled #menu-toggle {
  color: #002B5C !important;
}
.header-inner.scrolled #menu-toggle:hover {
  background: rgba(0, 43, 92, 0.05) !important;
}

/* CTA button — scrolled: deeper shadow */
.header-inner.scrolled .cta-primary {
  box-shadow: 0 4px 14px rgba(0, 43, 92, 0.2) !important;
}

/* Mobile menu — scrolled: dark text, light border */
.header-inner.scrolled #mobile-menu {
  border-color: rgba(0, 43, 92, 0.08) !important;
}
.header-inner.scrolled #mobile-menu nav a {
  color: rgba(0, 43, 92, 0.7) !important;
}
.header-inner.scrolled #mobile-menu nav a:hover {
  color: #002B5C !important;
  background: rgba(0, 43, 92, 0.05) !important;
}
.header-inner.scrolled #mobile-menu .border-t {
  border-color: rgba(0, 43, 92, 0.08) !important;
}
.header-inner.scrolled #mobile-menu .border-t a {
  color: rgba(0, 43, 92, 0.4) !important;
}
.header-inner.scrolled #mobile-menu .border-t a:hover {
  color: rgba(0, 43, 92, 0.7) !important;
}

/* ===== DESKTOP DROPDOWN SUBMENU ===== */
.header-inner .nav-link,
.header-inner .nav-submenu-link {
  text-transform: uppercase !important;
  font-size: 14px !important;
  font-family: "Playfair Display", serif !important;
}

.header-inner:not(.scrolled) .nav-link,
.header-inner:not(.scrolled) .text-white\/75 {
  color: #fff !important;
}

.header-inner .nav-dropdown {
  overflow: visible !important;
}
.nav-dropdown-menu {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(4px) !important;
  pointer-events: none !important;
  transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease !important;
}
.nav-dropdown:hover > .nav-dropdown-menu,
.nav-dropdown:focus-within > .nav-dropdown-menu,
.nav-dropdown.is-open > .nav-dropdown-menu {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}
.nav-dropdown-menu .nav-submenu-link {
  color: #000 !important;
  white-space: nowrap;
}
.nav-dropdown-menu .nav-submenu-link:hover,
.nav-dropdown-menu .nav-submenu-link:focus,
.nav-dropdown-menu .nav-submenu-link.active,
.nav-dropdown-menu .nav-submenu-link[aria-current="page"] {
  color: #fff !important;
  background: #187049 !important;
}

/* Remove the nav-link underline from dropdown buttons */
.nav-dropdown > .nav-link::after {
  display: none !important;
}

/* Transparent state: dropdown button matches other nav links */
.nav-dropdown > .nav-link {
  background: none !important;
  border: none !important;
  cursor: pointer !important;
}
.nav-dropdown:hover > .nav-link {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.1) !important;
}
.nav-dropdown:hover > .nav-link .nav-dropdown-arrow {
  transform: rotate(180deg);
}

/* Scrolled state: dropdown button colors */
.header-inner.scrolled .nav-dropdown .nav-link {
  color: #000 !important;
}
.header-inner.scrolled .nav-dropdown:hover > .nav-link,
.header-inner.scrolled .nav-dropdown .nav-link:hover {
  color: #000 !important;
  background: rgba(0, 0, 0, 0.05) !important;
}

.header-inner.scrolled .nav-link {
  color: #000 !important;
}
.header-inner.scrolled .nav-link:hover,
.header-inner.scrolled .nav-link:focus,
.header-inner.scrolled .nav-link.active,
.header-inner.scrolled .nav-link[aria-current="page"] {
  color: #000 !important;
  background: rgba(0, 0, 0, 0.05) !important;
}

/* ===== MOBILE SUBMENU ACCORDION ===== */
#mobile-menu {
  overflow: hidden;
}
.mobile-submenu-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.mobile-submenu-wrap.open .mobile-submenu-body {
  /* height set dynamically via JS */
}

/* Scrolled state: mobile submenu toggle */
.header-inner.scrolled #mobile-menu .mobile-submenu-toggle {
  color: rgba(0, 43, 92, 0.7) !important;
}
.header-inner.scrolled #mobile-menu .mobile-submenu-toggle:hover {
  color: #002B5C !important;
  background: rgba(0, 43, 92, 0.05) !important;
}
.header-inner.scrolled #mobile-menu .mobile-submenu-body a {
  color: rgba(0, 43, 92, 0.5) !important;
}
.header-inner.scrolled #mobile-menu .mobile-submenu-body a:hover {
  color: rgba(0, 43, 92, 0.7) !important;
  background: rgba(0, 43, 92, 0.05) !important;
}

/* ===== HEADER LOGO ===== */
/* Logo images must always be constrained — never display at native size */
#main-header img {
  height: 36px !important;
  max-width: 120px !important;
  width: auto !important;
  object-fit: contain !important;
}
@media (min-width: 1024px) {
  #main-header img {
    height: 44px !important;
    max-width: none !important;
  }
}

/* Header: fixed, full-width on frontend */
#main-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 50 !important;
  transition: all 0.5s ease !important;
}

/* Header inner flex row */
#main-header .header-inner > div:first-child {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.5rem !important;
}

/* Hero accent line */
.hero-accent-line {
  width: 4px !important;
  border-radius: 4px !important;
  background: linear-gradient(180deg, #00853F 0%, rgba(0, 133, 63, 0.2) 100%) !important;
}

/* Hero CTA glow */
.hero-cta-primary {
  position: relative !important;
  overflow: hidden !important;
}
.hero-cta-primary::after {
  content: "" !important;
  position: absolute !important;
  top: -50% !important;
  left: -50% !important;
  width: 200% !important;
  height: 200% !important;
  background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, transparent 60%) !important;
  opacity: 0 !important;
  transition: opacity 0.4s ease !important;
}
.hero-cta-primary:hover::after { opacity: 1 !important; }

/* Scroll indicator */
@keyframes scroll-bounce {
  0%, 100% { transform: translateY(0); opacity: 1; }
  50% { transform: translateY(8px); opacity: 0.5; }
}
.scroll-indicator {
  animation: scroll-bounce 2s ease-in-out infinite !important;
}
/* Hero slow zoom on frontend */
body:not(.elementor-editor-active) .hero-img {
  transform: scale(1) !important;
  transition: transform 14s cubic-bezier(0.25, 0.1, 0.25, 1) !important;
}

/* Gradient text for headings */
.gradient-text {
  background: linear-gradient(135deg, #ffffff 0%, #9db3d1 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}

/* ===== SECTION ACCENT ===== */
.accent-dot {
  width: 8px !important; height: 8px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #00853F, #47b46f) !important;
  box-shadow: 0 0 0 4px rgba(0, 133, 63, 0.2) !important;
}

/* Accent line (used in about/testimonials/faq page sections) */
.accent-line {
  width: 48px !important; height: 3px !important; border-radius: 3px !important;
  background: linear-gradient(90deg, #00853F, #47b46f) !important;
}

/* ===== FLOATING SHAPES ===== */
@keyframes drift {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  33% { transform: translate(30px, -25px) rotate(120deg); }
  66% { transform: translate(-20px, 15px) rotate(240deg); }
}
.drift { animation: drift 20s ease-in-out infinite !important; }
.drift-slow { animation: drift 30s ease-in-out infinite reverse !important; }

/* ===== SCROLL REVEALS ===== */
.reveal {
  opacity: 0 !important; transform: translateY(28px) !important;
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.reveal.visible { opacity: 1 !important; transform: translateY(0) !important; }
.d1 { transition-delay: 0.1s !important; }
.d2 { transition-delay: 0.2s !important; }
.d3 { transition-delay: 0.3s !important; }
.d4 { transition-delay: 0.4s !important; }
.d5 { transition-delay: 0.5s !important; }
.d6 { transition-delay: 0.6s !important; }
.d7 { transition-delay: 0.7s !important; }
.d8 { transition-delay: 0.8s !important; }

.reveal-left {
  opacity: 0 !important; transform: translateX(-40px) !important;
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.reveal-left.visible { opacity: 1 !important; transform: translateX(0) !important; }

.reveal-right {
  opacity: 0 !important; transform: translateX(40px) !important;
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.reveal-right.visible { opacity: 1 !important; transform: translateX(0) !important; }

.reveal-scale {
  opacity: 0 !important; transform: scale(0.92) !important;
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.7s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.reveal-scale.visible { opacity: 1 !important; transform: scale(1) !important; }

/* ===== CARD HOVER ===== */
.card-hover {
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.4s ease,
              border-color 0.4s ease !important;
}
.card-hover:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 25px 50px -15px rgba(0, 43, 92, 0.15) !important;
  border-color: rgba(0, 43, 92, 0.2) !important;
}

/* ===== HOVER-CARD (new design cards) ===== */
.hover-card {
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.hover-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 20px 40px -12px rgba(0, 43, 92, 0.12) !important;
}

/* ===== PRODUCT CARDS ===== */
.product-card img,
.prod-card img {
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.product-card:hover img,
.prod-card:hover img { transform: scale(1.08) !important; }
.product-card .overlay-gradient {
  transition: opacity 0.5s ease !important;
}
.product-card:hover .overlay-gradient { opacity: 1 !important; }

/* ===== INDUSTRY CARDS ===== */
.industry-card {
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.4s ease !important;
}
.industry-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 20px 50px -15px rgba(0, 43, 92, 0.12) !important;
}
.industry-card img {
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.industry-card:hover img { transform: scale(1.08) !important; }

/* ===== STAT BAR ===== */
.stat-item { position: relative !important; }
.stat-item::after {
  content: "" !important; position: absolute !important; bottom: -8px !important; left: 0 !important;
  width: 0 !important; height: 2px !important; border-radius: 1px !important;
  background: linear-gradient(90deg, #002B5C, #577daf) !important;
  transition: width 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.6s !important;
}
.stat-item.visible::after { width: 36px !important; }

/* ===== NAV LINK ===== */
.nav-link {
  position: relative !important;
}
.nav-link::after {
  content: "" !important; position: absolute !important; bottom: 0 !important; left: 50% !important;
  width: 0 !important; height: 2px !important; border-radius: 1px !important;
  background: linear-gradient(90deg, #002B5C, #577daf) !important;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
  transform: translateX(-50%) !important;
}
.nav-link:hover::after, .nav-link.active::after { width: 70% !important; }

/* ===== PROCESS CONNECTOR ===== */
@media (min-width: 640px) {
  .step-item:not(:last-child)::after {
    content: ""; position: absolute;
    top: 22px; left: calc(50% + 26px);
    width: calc(100% - 52px); height: 2px;
    background: repeating-linear-gradient(90deg, #d1d5db 0px, #d1d5db 5px, transparent 5px, transparent 10px);
  }
}

/* ===== GLOW TOP LINE ===== */
.glow-top { position: relative; }
.glow-top::before {
  content: ""; position: absolute; top: -1px; left: 15%; right: 15%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0, 43, 92, 0.6), transparent);
}

/* ===== CTA BUTTON EFFECT ===== */
.cta-primary {
  position: relative !important; overflow: hidden !important;
  transition: all 0.3s ease !important;
}
.cta-primary::before {
  content: "" !important; position: absolute !important; inset: 0 !important;
  background: linear-gradient(135deg, #047857, #059669) !important;
  transform: scaleX(0) !important; transform-origin: left !important;
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1) !important;
  z-index: 0 !important;
}
.cta-primary:hover::before { transform: scaleX(1) !important; }
.cta-primary span { position: relative !important; z-index: 1 !important; }

/* ===== MARQUEE ===== */
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.marquee-track {
  animation: marquee 40s linear infinite !important;
}

/* ===== MOB-CENTER (mobile text alignment) ===== */
@media (max-width: 639px) {
  .mob-center { text-align: center !important; }
}

/* ===== FLOATING ORB ===== */
@keyframes float {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(20px, -20px) scale(1.05); }
  66% { transform: translate(-10px, 10px) scale(0.97); }
}
.float-orb {
  animation: float 8s ease-in-out infinite !important;
}
.float-orb-2 {
  animation: float 10s ease-in-out infinite reverse !important;
}

/* ===== CTA BACKGROUND ANIMATION ===== */
@keyframes cta-drift-1 {
  0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.07; }
  25% { transform: translate(60px, -40px) rotate(90deg); opacity: 0.12; }
  50% { transform: translate(20px, -80px) rotate(180deg); opacity: 0.06; }
  75% { transform: translate(-40px, -30px) rotate(270deg); opacity: 0.1; }
}
@keyframes cta-drift-2 {
  0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.06; }
  25% { transform: translate(-50px, 30px) rotate(-90deg); opacity: 0.1; }
  50% { transform: translate(-20px, 70px) rotate(-180deg); opacity: 0.05; }
  75% { transform: translate(30px, 40px) rotate(-270deg); opacity: 0.09; }
}
@keyframes cta-drift-3 {
  0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.05; }
  50% { transform: translate(40px, -50px) scale(1.2); opacity: 0.1; }
}
@keyframes cta-line {
  0% { transform: translateX(-100%); opacity: 0; }
  50% { opacity: 1; }
  100% { transform: translateX(100%); opacity: 0; }
}
.cta-shape-1 { animation: cta-drift-1 14s ease-in-out infinite !important; }
.cta-shape-2 { animation: cta-drift-2 18s ease-in-out infinite !important; }
.cta-shape-3 { animation: cta-drift-3 12s ease-in-out infinite !important; }
.cta-shape-4 { animation: cta-drift-1 20s ease-in-out infinite reverse !important; }
.cta-line { animation: cta-line 6s linear infinite !important; }
.cta-line-2 { animation: cta-line 8s linear 2s infinite !important; }

/* ===== TESTIMONIAL CARD — PREMIUM ===== */
.testimonial-card {
  position: relative !important;
  border-radius: 20px !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  background: linear-gradient(160deg, rgba(255,255,255,0.07) 0%, rgba(255,255,255,0.02) 100%) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  padding: 28px !important;
  height: 100% !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.4s ease,
              border-color 0.4s ease !important;
}
.testimonial-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 30px 60px -15px rgba(0, 43, 92, 0.25) !important;
  border-color: rgba(0, 133, 63, 0.25) !important;
}
.testimonial-card .quote-mark {
  position: absolute !important;
  top: 16px !important; right: 20px !important;
  font-size: 48px !important;
  font-family: "Playfair Display", serif !important;
  color: rgba(0, 133, 63, 0.15) !important;
  line-height: 1 !important;
  pointer-events: none !important;
}
.testimonial-card .stars {
  display: flex !important;
  align-items: center !important;
  gap: 2px !important;
  margin-bottom: 14px !important;
}
.testimonial-card .stars span {
  color: #f59e0b !important;
  font-size: 15px !important;
}
.testimonial-card .quote-text {
  font-size: 13.5px !important;
  line-height: 1.75 !important;
  color: rgba(255,255,255,0.6) !important;
  font-style: italic !important;
}
.testimonial-card .author-bar {
  margin-top: 20px !important;
  padding-top: 16px !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
.testimonial-card .avatar {
  width: 44px !important; height: 44px !important;
  border-radius: 50% !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  font-family: "Playfair Display", serif !important;
  font-size: 13px !important; font-weight: 700 !important;
  flex-shrink: 0 !important;
}
.testimonial-card .author-name {
  font-family: "Playfair Display", serif !important;
  font-size: 14px !important; font-weight: 600 !important;
  color: #fff !important;
}
.testimonial-card .author-role {
  font-size: 11px !important;
  color: rgba(255,255,255,0.35) !important;
  margin-top: 2px !important;
}

/* ===== HIGHLIGHT CARD (featured) ===== */
.testimonial-highlight {
  border: 1px solid rgba(0, 133, 63, 0.3) !important;
  background: linear-gradient(160deg, rgba(0, 133, 63, 0.12) 0%, rgba(0, 43, 92, 0.08) 100%) !important;
}
.testimonial-highlight .quote-mark {
  color: rgba(0, 133, 63, 0.25) !important;
}

/* ===== BENTO CARD ===== */
.bento-card {
  border-radius: 20px !important;
  border: 1px solid #e5e7eb !important;
  background: #fff !important;
  padding: 28px !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.4s ease !important;
}
.bento-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 25px 50px -15px rgba(0, 43, 92, 0.15) !important;
}

/* ===== TRUST BADGE ===== */
.trust-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 14px 24px !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  backdrop-filter: blur(8px) !important;
  transition: all 0.3s ease !important;
}
.trust-badge:hover {
  background: rgba(255,255,255,0.08) !important;
  border-color: rgba(0, 133, 63, 0.2) !important;
}

/* ===== COUNTER NUM ===== */
.counter-num { font-variant-numeric: tabular-nums !important; }

/* ===== TESTIMONIAL SLIDER (old class names — kept for backwards compat) ===== */
.slider-wrapper { position: relative !important; overflow: hidden !important; }
.slider-track {
  display: flex !important;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.slider-track > div { flex: 0 0 100% !important; padding: 0 10px !important; }
@media (min-width: 768px) { .slider-track > div { flex: 0 0 50% !important; } }
@media (min-width: 1024px) { .slider-track > div { flex: 0 0 33.333% !important; } }
.slider-btn {
  position: absolute !important; top: 50% !important; transform: translateY(-50%) !important;
  z-index: 10 !important; width: 44px !important; height: 44px !important; border-radius: 50% !important;
  background: rgba(255,255,255,0.08) !important; border: 1px solid rgba(255,255,255,0.15) !important; color: white !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  cursor: pointer !important; transition: all 0.3s !important;
  backdrop-filter: blur(12px) !important;
}
.slider-btn:hover { background: #002B5C !important; color: white !important; border-color: #002B5C !important; }
.slider-btn.prev { left: -4px !important; }
.slider-btn.next { right: -4px !important; }
.slider-dots { display: flex !important; justify-content: center !important; gap: 8px !important; margin-top: 1.5rem !important; }
.slider-dots button {
  width: 8px !important; height: 8px !important; border-radius: 50% !important; border: none !important;
  background: rgba(255,255,255,0.2) !important; cursor: pointer !important; transition: all 0.3s !important; padding: 0 !important;
}
.slider-dots button.active { background: #00853F !important; width: 28px !important; border-radius: 4px !important; }

/* ===== T-SLIDER (new testimonial slider class names) ===== */
.t-slider {
  display: flex !important;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.t-slider > div { flex: 0 0 100% !important; }
@media (min-width: 768px) { .t-slider > div { flex: 0 0 50% !important; } }
@media (min-width: 1024px) { .t-slider > div { flex: 0 0 33.333% !important; } }
.t-dots { display: flex !important; justify-content: center !important; gap: 8px !important; margin-top: 2rem !important; }
.t-dots button {
  width: 8px !important; height: 8px !important; border-radius: 50% !important; border: none !important;
  background: rgba(255,255,255,0.2) !important; cursor: pointer !important; transition: all 0.3s !important; padding: 0 !important;
}
.t-dots button.active { background: #fff !important; width: 24px !important; border-radius: 4px !important; }

/* ===== FAQ TOGGLE ===== */
.faq-answer,
.faq-body {
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.16, 1, 0.3, 1),
              padding 0.3s ease;
}
.faq-icon,
.faq-chevron {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.faq-item.active .faq-icon,
.faq-item.active .faq-chevron {
  transform: rotate(180deg) !important;
}

/* ===== BACK TO TOP ===== */
.gef-back-to-top {
  opacity: 0 !important;
  transform: translateY(12px) !important;
  pointer-events: none !important;
  transition: opacity 0.3s ease, transform 0.3s ease !important;
}
.gef-back-to-top.show {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

/* ===== PROGRESS BAR (stats) ===== */
.progress-fill {
  width: 0 !important;
  transition: width 1.5s cubic-bezier(0.16, 1, 0.3, 1) 0.3s !important;
}
.progress-fill.animate {
  width: var(--progress) !important;
}

/* ===== PROG-FILL (new design stats bar) ===== */
.prog-fill {
  width: 0 !important;
  transition: width 1.5s cubic-bezier(0.16, 1, 0.3, 1) 0.3s !important;
}
.prog-fill.go {
  width: var(--w) !important;
}

/* ===== PARALLAX SECTION ===== */
.parallax-bg {
  background-attachment: fixed !important;
  background-size: cover !important;
  background-position: center !important;
}
@media (max-width: 1024px) {
  .parallax-bg { background-attachment: scroll !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .reveal, .reveal-left, .reveal-right, .reveal-scale,
  .reveal.visible, .reveal-left.visible, .reveal-right.visible, .reveal-scale.visible,
  .card-hover:hover, .hover-card:hover, .industry-card:hover,
  .product-card:hover img, .prod-card:hover img,
  .industry-card:hover img, .hero-img, .hero-img.loaded,
  .bento-card:hover, .testimonial-card:hover {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
  .marquee-track { animation: none !important; }
  .float-orb, .float-orb-2 { animation: none !important; }
  .drift, .drift-slow { animation: none !important; }
  .faq-answer, .faq-body { max-height: none !important; transition: none !important; }
  .progress-fill { width: var(--progress) !important; transition: none !important; }
  .prog-fill { width: var(--w) !important; transition: none !important; }
  .gef-back-to-top { opacity: 1 !important; transform: none !important; }
}

/* Trust bar & features mobile slider */
.trust-slider,
.features-slider,
.cert-slider,
.products-slider,
.why-grid {
  -webkit-overflow-scrolling: touch;
  padding-bottom: 4px;
}
.trust-slider::-webkit-scrollbar,
.features-slider::-webkit-scrollbar,
.cert-slider::-webkit-scrollbar,
.products-slider::-webkit-scrollbar,
.why-grid::-webkit-scrollbar { display: none; }
.trust-slider,
.features-slider,
.cert-slider,
.products-slider,
.why-grid { -ms-overflow-style: none; scrollbar-width: none; }
@media (min-width: 768px) {
  .trust-slider { scroll-snap-type: none; padding-bottom: 0; }
}
@media (min-width: 640px) {
  .features-slider,
  .cert-slider,
  .products-slider,
  .why-grid { scroll-snap-type: none; padding-bottom: 0; }
  .why-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    overflow: visible !important;
  }
  .why-grid > div {
    width: auto !important;
    display: contents !important;
  }
}

/* Center-align section text on mobile */
@media (max-width: 639px) {
  .sec { text-align: center; }
  .sec .mx-auto { text-align: center; }
  .sec h2, .sec h3, .sec p { text-align: center; }
  .sec .max-w-\[560px\],
  .sec .max-w-\[600px\],
  .sec .max-w-\[640px\] { margin-left: auto; margin-right: auto; }
  .sec .flex.items-center.gap-3.mb-4,
  .sec div.flex.items-center.gap-3 { justify-content: center; }
}

/* Generic mobile slider dots */
.mobile-slider-dots { display: none; }
@media (max-width: 639px) {
  .mobile-slider-dots {
    display: flex; justify-content: center; gap: 6px;
    margin-top: 1rem;
  }
  .mobile-slider-dots button {
    width: 8px; height: 8px; border-radius: 50%; border: none;
    background: rgba(0,43,92,0.15); cursor: pointer; transition: all 0.3s; padding: 0;
  }
  .mobile-slider-dots button.active {
    background: #00853F; width: 20px; border-radius: 4px;
  }
}

/* ===== ELEMENTOR WRAPPER OVERRIDES ===== */
/* GEF widgets are full-width by design.  Remove Elementor's default section,
   column, and widget-container padding / max-width so the widget output is
   unconstrained.  Uses :has() (supported in all modern browsers) to walk up
   from the widget element to its parent column, container, and section.      */

/* Widget container: zero constraints */
[class*="elementor-widget-gef"] > .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  width: 100% !important;
}

/* Column that holds a GEF widget: full width, no padding */
.elementor-column:has(> .elementor-element[class*="elementor-widget-gef"]) {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Section that holds a GEF widget: full width, no padding */
.elementor-section:has([class*="elementor-widget-gef"]) {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.elementor-section:has([class*="elementor-widget-gef"]) > .elementor-container {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  flex-wrap: nowrap !important;
}

/* Ensure <section>, <header>, <footer> inside widget containers are unconstrained */
[class*="elementor-widget-gef"] > .elementor-widget-container > section,
[class*="elementor-widget-gef"] > .elementor-widget-container > header,
[class*="elementor-widget-gef"] > .elementor-widget-container > footer {
  max-width: none !important;
}

/* ===== HEADER / FOOTER — force stretch in editor (position: relative mode) ===== */
/* On the frontend the header/footer are position:fixed so they ignore parents.
   In the editor they become position:relative, so the parent column/section
   must also be full-width for them to display correctly.                     */
.elementor-editor-active [class*="elementor-widget-gef"] #main-header {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
}

/* ===== ELEMENTOR EDITOR OVERRIDES ===== */
/* These rules apply ONLY inside GEF widget containers in the Elementor editor
   preview iframe.  They are scoped to [class*="elementor-widget-gef"] so they
   never touch Elementor's own settings panel or other plugins' widgets.       */

/* ----- Critical Tailwind utility fallbacks for the editor preview --------------
   If the Tailwind CDN loads, its generated CSS takes precedence (same specificity).
   If it doesn't load, these rules provide the minimum styling needed for content
   to be visible and readable in the editor.                                    */
.elementor-editor-active [class*="elementor-widget-gef"] .relative { position: relative !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .absolute { position: absolute !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .fixed    { position: relative !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .overflow-hidden { overflow: hidden !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .inset-0   { inset: 0 !important; }

/* Layout */
.elementor-editor-active [class*="elementor-widget-gef"] .flex       { display: flex !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .grid       { display: grid !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .hidden     { display: none !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .block      { display: block !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .inline-flex{ display: inline-flex !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .items-center    { align-items: center !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .justify-center  { justify-content: center !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .justify-between { justify-content: space-between !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .flex-col        { flex-direction: column !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .flex-wrap        { flex-wrap: wrap !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .shrink-0         { flex-shrink: 0 !important; }

/* Spacing */
.elementor-editor-active [class*="elementor-widget-gef"] .mx-auto { margin-left: auto !important; margin-right: auto !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .gap-2   { gap: 0.5rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .gap-3   { gap: 0.75rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .gap-4   { gap: 1rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .gap-6   { gap: 1.5rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .mt-2    { margin-top: 0.5rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .mt-5    { margin-top: 1.25rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .mt-7    { margin-top: 1.75rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .mt-10   { margin-top: 2.5rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .mt-14   { margin-top: 3.5rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .mb-4    { margin-bottom: 1rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .mb-6    { margin-bottom: 1.5rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .mb-14   { margin-bottom: 3.5rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .p-4     { padding: 1rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .p-6     { padding: 1.5rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .px-5    { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .px-6    { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .py-2    { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .py-7    { padding-top: 1.75rem !important; padding-bottom: 1.75rem !important; }

/* Sizing */
.elementor-editor-active [class*="elementor-widget-gef"] .w-full    { width: 100% !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .h-full    { height: 100% !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .min-h-screen { min-height: 100vh !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .max-w-3xl { max-width: 48rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .object-cover { object-fit: cover !important; }

/* Text */
.elementor-editor-active [class*="elementor-widget-gef"] .text-white      { color: #ffffff !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .text-center     { text-align: center !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .text-left       { text-align: left !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .font-bold       { font-weight: 700 !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .font-semibold   { font-weight: 600 !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .font-medium     { font-weight: 500 !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .uppercase       { text-transform: uppercase !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .tracking-tight  { letter-spacing: -0.025em !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .leading-tight   { line-height: 1.25 !important; }

/* Border / Radius / Background */
.elementor-editor-active [class*="elementor-widget-gef"] .rounded-2xl  { border-radius: 1rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .rounded-xl   { border-radius: 0.75rem !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .rounded-full { border-radius: 9999px !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .border       { border-width: 1px !important; border-style: solid !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .bg-white     { background-color: #ffffff !important; }

/* Pointer events */
.elementor-editor-active [class*="elementor-widget-gef"] .pointer-events-none { pointer-events: none !important; }

/* Text color classes that use opacity — critical for hero/CTA sections */
.elementor-editor-active [class*="elementor-widget-gef"] [class*="text-white/"] { color: #ffffff !important; }
.elementor-editor-active [class*="elementor-widget-gef"] [class*="bg-white/"]  { background-color: rgba(255,255,255,0.1) !important; }
.elementor-editor-active [class*="elementor-widget-gef"] [class*="border-white/"] { border-color: rgba(255,255,255,0.15) !important; }
.elementor-editor-active [class*="elementor-widget-gef"] [class*="bg-dark-"]   { background-color: #000f1f !important; }
.elementor-editor-active [class*="elementor-widget-gef"] [class*="text-dark-"] { color: #000f1f !important; }
.elementor-editor-active [class*="elementor-widget-gef"] [class*="text-muted-"] { color: #6b7280 !important; }
.elementor-editor-active [class*="elementor-widget-gef"] [class*="text-brand-"] { color: #002B5C !important; }
.elementor-editor-active [class*="elementor-widget-gef"] [class*="bg-brand-500"] { background-color: #002B5C !important; }

/* z-index */
.elementor-editor-active [class*="elementor-widget-gef"] .z-10  { z-index: 10 !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .z-20  { z-index: 20 !important; }
.elementor-editor-active [class*="elementor-widget-gef"] .z-50  { z-index: 50 !important; }

/* space-y utility */
.elementor-editor-active [class*="elementor-widget-gef"] .space-y-3 > * + * { margin-top: 0.75rem !important; }

/* Responsive: lg prefix — show lg:hidden / hidden lg:flex items properly */
@media (min-width: 1024px) {
  .elementor-editor-active [class*="elementor-widget-gef"] .lg\:flex     { display: flex !important; }
  .elementor-editor-active [class*="elementor-widget-gef"] .lg\:hidden   { display: none !important; }
  .elementor-editor-active [class*="elementor-widget-gef"] .lg\:grid     { display: grid !important; }
  .elementor-editor-active [class*="elementor-widget-gef"] .lg\:block    { display: block !important; }
  .elementor-editor-active [class*="elementor-widget-gef"] .lg\:text-left { text-align: left !important; }
  .elementor-editor-active [class*="elementor-widget-gef"] .lg\:px-8     { padding-left: 2rem !important; padding-right: 2rem !important; }
}
@media (max-width: 1023px) {
  .elementor-editor-active [class*="elementor-widget-gef"] .lg\:hidden   { display: block !important; }
  .elementor-editor-active [class*="elementor-widget-gef"] .hidden.lg\:flex { display: none !important; }
}
/* md breakpoint */
@media (min-width: 768px) {
  .elementor-editor-active [class*="elementor-widget-gef"] .md\:inline-flex { display: inline-flex !important; }
  .elementor-editor-active [class*="elementor-widget-gef"] .md\:flex-row   { flex-direction: row !important; }
}
/* sm breakpoint */
@media (min-width: 640px) {
  .elementor-editor-active [class*="elementor-widget-gef"] .sm\:flex-row   { flex-direction: row !important; }
  .elementor-editor-active [class*="elementor-widget-gef"] .sm\:grid-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ----- End critical Tailwind fallbacks ----- */

/* Force ALL reveal elements visible in editor (both selectors for robustness) */
.elementor-editor-active [class*="elementor-widget-gef"] .reveal,
.elementor-editor-active [class*="elementor-widget-gef"] .reveal-left,
.elementor-editor-active [class*="elementor-widget-gef"] .reveal-right,
.elementor-editor-active [class*="elementor-widget-gef"] .reveal-scale,
.elementor-editor-active .reveal,
.elementor-editor-active .reveal-left,
.elementor-editor-active .reveal-right,
.elementor-editor-active .reveal-scale {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* Ensure all GEF widget content is visible in the editor */
.elementor-editor-active [class*="elementor-widget-gef"] .elementor-widget-container {
  overflow: visible !important;
  font-family: "Poppins", sans-serif;
  -webkit-font-smoothing: antialiased;
  font-size: 14px;
}

/* Apply GEF heading font inside editor widget containers only */
.elementor-editor-active [class*="elementor-widget-gef"] .elementor-widget-container h1,
.elementor-editor-active [class*="elementor-widget-gef"] .elementor-widget-container h2,
.elementor-editor-active [class*="elementor-widget-gef"] .elementor-widget-container h3,
.elementor-editor-active [class*="elementor-widget-gef"] .elementor-widget-container h4,
.elementor-editor-active [class*="elementor-widget-gef"] .elementor-widget-container h5,
.elementor-editor-active [class*="elementor-widget-gef"] .elementor-widget-container h6,
.elementor-editor-active [class*="elementor-widget-gef"] .elementor-widget-container .font-heading {
  font-family: "Playfair Display", serif;
}

/* Hero image should not zoom in editor */
.elementor-editor-active [class*="elementor-widget-gef"] .hero-img {
  transform: none !important;
}

/* Progress bars should be pre-filled in editor */
.elementor-editor-active [class*="elementor-widget-gef"] .progress-fill {
  width: var(--progress) !important;
  transition: none !important;
}
.elementor-editor-active [class*="elementor-widget-gef"] .prog-fill {
  width: var(--w) !important;
  transition: none !important;
}

/* Marquee should be static in editor */
.elementor-editor-active [class*="elementor-widget-gef"] .marquee-track {
  animation: none !important;
}

/* FAQ answers should be visible in editor */
.elementor-editor-active [class*="elementor-widget-gef"] .faq-answer,
.elementor-editor-active [class*="elementor-widget-gef"] .faq-body {
  max-height: none !important;
  overflow: visible !important;
}

/* FAQ items: show expanded state in editor */
.elementor-editor-active [class*="elementor-widget-gef"] .faq-item {
  border-color: rgba(0, 43, 92, 0.15) !important;
}
.elementor-editor-active [class*="elementor-widget-gef"] .faq-item:first-child .faq-answer,
.elementor-editor-active [class*="elementor-widget-gef"] .faq-item:first-child .faq-body {
  border-top: 1px solid rgba(0, 43, 92, 0.08);
  padding-top: 0;
}

/* Hide scroll-down indicator in editor */
.elementor-editor-active [class*="elementor-widget-gef"] .scroll-indicator {
  display: none !important;
}

/* Hide back-to-top button in editor */
.elementor-editor-active [class*="elementor-widget-gef"] .gef-back-to-top {
  display: none !important;
}

/* Disable floating orb animations in editor */
.elementor-editor-active [class*="elementor-widget-gef"] .float-orb,
.elementor-editor-active [class*="elementor-widget-gef"] .float-orb-2 {
  animation: none !important;
}

/* Disable CTA background shape animations in editor */
.elementor-editor-active [class*="elementor-widget-gef"] .cta-shape-1,
.elementor-editor-active [class*="elementor-widget-gef"] .cta-shape-2,
.elementor-editor-active [class*="elementor-widget-gef"] .cta-shape-3,
.elementor-editor-active [class*="elementor-widget-gef"] .cta-shape-4,
.elementor-editor-active [class*="elementor-widget-gef"] .cta-line,
.elementor-editor-active [class*="elementor-widget-gef"] .cta-line-2 {
  animation: none !important;
}

/* Counter numbers should show final values in editor */
.elementor-editor-active .counter-num[data-target] {
  opacity: 1 !important;
}
