/* Unifi AI Suite — visual refresh layer v2.
 * Layers polish onto the existing dark/green Elementor build without touching page data.
 * Everything is additive; disable in Settings → Unifi AI Suite. */
:root { --uai-brand: #39B78E; --uai-dark: #1E1E1E; --uai-brand-2: #61CE70; --uai-ease: cubic-bezier(.2, .7, .2, 1); }

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--uai-brand); color: #fff; }

/* ---------- Ambient backdrop: soft green glow + fine grid, banking-terminal feel ---------- */
html.uai-js body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(900px 600px at 85% -10%, color-mix(in srgb, var(--uai-brand) 16%, transparent), transparent 60%),
    radial-gradient(700px 500px at -10% 40%, color-mix(in srgb, var(--uai-brand) 9%, transparent), transparent 60%),
    radial-gradient(800px 600px at 60% 110%, color-mix(in srgb, var(--uai-brand) 10%, transparent), transparent 60%);
}
html.uai-js body::after {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .28;
  background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 30%, #000 30%, transparent 100%);
          mask-image: radial-gradient(ellipse 80% 70% at 50% 30%, #000 30%, transparent 100%);
}
html.uai-js .e-con.e-parent, html.uai-js .elementor-section.elementor-top-section, html.uai-js header, html.uai-js footer { position: relative; z-index: 1; }

/* ---------- Scroll progress ---------- */
.uai-progressbar { position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 99997; background: linear-gradient(90deg, var(--uai-brand), var(--uai-brand-2)); box-shadow: 0 0 12px color-mix(in srgb, var(--uai-brand) 70%, transparent); transition: width .1s linear; }
body.admin-bar .uai-progressbar { top: 32px; }
@media (max-width: 782px) { body.admin-bar .uai-progressbar { top: 46px; } }

/* ---------- Header: glass on scroll + hairline ---------- */
html.uai-js body.uai-scrolled .e-con.e-parent:first-of-type,
html.uai-js body.uai-scrolled header .e-con.e-parent,
html.uai-js body.uai-scrolled .elementor-location-header > .e-con,
html.uai-js body.uai-scrolled .ehf-header .e-con.e-parent,
html.uai-js body.uai-scrolled .elementor-sticky--active {
  backdrop-filter: saturate(150%) blur(12px); -webkit-backdrop-filter: saturate(150%) blur(12px);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--uai-brand) 35%, transparent), 0 12px 32px rgba(0,0,0,.35);
}
/* nav link underline slide */
.elementor-nav-menu a.elementor-item { position: relative; transition: color .2s; }
.elementor-nav-menu a.elementor-item::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px; border-radius: 2px; background: var(--uai-brand); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--uai-ease); }
.elementor-nav-menu a.elementor-item:hover::after, .elementor-nav-menu a.elementor-item-active::after { transform: scaleX(1); }

/* ---------- Buttons: pill, gradient, shimmer sweep, arrow ---------- */
.elementor-button, .elementor-widget-button a, .uai-btn, .eael-creative-button, .premium-button {
  transition: transform .2s var(--uai-ease), box-shadow .25s var(--uai-ease), background-color .2s, color .2s, filter .2s !important;
}
html.uai-js .elementor-button.uai-cta {
  border-radius: 999px !important; position: relative; overflow: hidden; isolation: isolate;
  background-image: linear-gradient(135deg, var(--uai-brand), color-mix(in srgb, var(--uai-brand) 70%, #1E1E1E)) !important;
  box-shadow: 0 8px 24px color-mix(in srgb, var(--uai-brand) 28%, transparent), inset 0 1px 0 rgba(255,255,255,.18);
  letter-spacing: .01em;
}
html.uai-js .elementor-button.uai-cta::before {
  content: ""; position: absolute; top: -50%; bottom: -50%; left: -30%; width: 40%; z-index: -1;
  background: linear-gradient(105deg, transparent 0, rgba(255,255,255,.28) 50%, transparent 100%);
  transform: translateX(-180%) skewX(-18deg); transition: transform .7s var(--uai-ease);
}
html.uai-js .elementor-button.uai-cta:hover::before { transform: translateX(380%) skewX(-18deg); }
html.uai-js .elementor-button.uai-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 34px color-mix(in srgb, var(--uai-brand) 45%, transparent), inset 0 1px 0 rgba(255,255,255,.2); filter: saturate(1.1); }
html.uai-js .elementor-button.uai-cta:active { transform: translateY(0); }
/* text-style buttons (no padding): arrow + underline slide instead of a pill */
html.uai-js .elementor-button.uai-linkbtn { background: transparent !important; box-shadow: none; border-radius: 0 !important; position: relative; }
html.uai-js .elementor-button.uai-linkbtn.uai-arrow { padding-right: 22px !important; }
html.uai-js .elementor-button.uai-linkbtn .elementor-button-icon { transition: transform .3s var(--uai-ease); display: inline-block; }
html.uai-js .elementor-button.uai-linkbtn:hover .elementor-button-icon { transform: translateX(5px); }
html.uai-js .elementor-button.uai-linkbtn.uai-arrow::after { content: "\2192"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); transition: transform .3s var(--uai-ease); }
html.uai-js .elementor-button.uai-linkbtn::before { content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 1.5px; background: var(--uai-brand); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--uai-ease); }
html.uai-js .elementor-button.uai-linkbtn.uai-arrow:hover::after { transform: translate(5px, -50%); }
html.uai-js .elementor-button.uai-linkbtn:hover::before { transform: scaleX(1); }
a:focus-visible, button:focus-visible, .elementor-button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--uai-brand) 55%, transparent) !important; outline-offset: 2px;
}

/* ---------- Headings: gradient accent on green headings, word-reveal ---------- */
html.uai-js h1.elementor-heading-title, html.uai-js h2.elementor-heading-title { letter-spacing: -.015em; }
html.uai-js .uai-split { display: inline-block; }
html.uai-js .uai-split .uai-w { display: inline-block; white-space: nowrap; }
html.uai-js .uai-split .uai-c { display: inline-block; opacity: 0; transform: translateY(.55em) scale(.92); filter: blur(4px); transition: opacity .55s var(--uai-ease), transform .7s var(--uai-ease), filter .55s var(--uai-ease); }
html.uai-js .uai-split.uai-in .uai-c { opacity: 1; transform: none; filter: none; }
/* underline bar (Elementor divider directly under a heading) grows in */
html.uai-js .elementor-widget-divider .elementor-divider-separator { transform-origin: left; transition: transform .8s var(--uai-ease) .2s; }
html.uai-js .elementor-widget-divider.uai-reveal:not(.uai-in) .elementor-divider-separator { transform: scaleX(0); }

/* ---------- Scroll reveal (generic) ---------- */
html.uai-js .uai-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--uai-ease), transform .8s var(--uai-ease); will-change: opacity, transform; }
html.uai-js .uai-reveal.uai-in { opacity: 1; transform: none; }
html.uai-js .uai-reveal.uai-from-left { transform: translateX(-28px); }
html.uai-js .uai-reveal.uai-from-right { transform: translateX(28px); }
html.uai-js .uai-reveal.uai-zoom { transform: scale(.94); }
html.uai-js .uai-reveal.uai-in.uai-from-left, html.uai-js .uai-reveal.uai-in.uai-from-right, html.uai-js .uai-reveal.uai-in.uai-zoom { transform: none; }

/* ---------- Hero image: float + halo ---------- */
html.uai-js .uai-hero-img { position: relative; }
html.uai-js .uai-hero-img::before { content: ""; position: absolute; inset: 8% 12%; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--uai-brand) 38%, transparent), transparent); filter: blur(28px); z-index: -1; animation: uai-halo 6s ease-in-out infinite; }
html.uai-js .uai-hero-img img { animation: uai-float 7s ease-in-out infinite; filter: drop-shadow(0 30px 40px rgba(0,0,0,.45)); }
@keyframes uai-float { 0%, 100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-14px) rotate(-.6deg) } }
@keyframes uai-halo { 0%, 100% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.08) } }

/* ---------- Cards: glass border, top hairline, lift + glow, cursor spotlight ---------- */
html.uai-js .elementor-widget-icon-box .elementor-widget-container,
html.uai-js .elementor-widget-image-box .elementor-widget-container,
html.uai-js .elementor-widget-testimonial .elementor-widget-container,
html.uai-js .wpr-timeline-content,
html.uai-js .swiper-slide .elementor-testimonial,
html.uai-js .uai-card-like {
  position: relative; border-radius: 18px; transition: transform .35s var(--uai-ease), box-shadow .35s var(--uai-ease), border-color .35s;
  border: 1px solid rgba(255,255,255,.06);
  background-image: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01));
}
html.uai-js .elementor-widget-icon-box .elementor-widget-container::before,
html.uai-js .wpr-timeline-content::before,
html.uai-js .uai-card-like::before {
  content: ""; position: absolute; left: 12%; right: 12%; top: 0; height: 1px; border-radius: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--uai-brand) 70%, transparent), transparent); opacity: .7;
}
html.uai-js .elementor-widget-icon-box:hover .elementor-widget-container,
html.uai-js .elementor-widget-image-box:hover .elementor-widget-container,
html.uai-js .wpr-timeline-content:hover,
html.uai-js .uai-card-like:hover {
  transform: translateY(-5px); border-color: color-mix(in srgb, var(--uai-brand) 45%, transparent);
  box-shadow: 0 22px 48px rgba(0,0,0,.35), 0 0 0 1px color-mix(in srgb, var(--uai-brand) 25%, transparent), 0 0 40px -10px color-mix(in srgb, var(--uai-brand) 45%, transparent);
}
/* White pricing tiles (Funding page): keep white, add lift + green edge on hover */
html.uai-js .uai-tile { transition: transform .3s var(--uai-ease), box-shadow .3s var(--uai-ease); border-radius: 14px; }
html.uai-js .uai-tile:hover { transform: translateY(-4px) scale(1.01); box-shadow: 0 18px 40px rgba(0,0,0,.35), inset 0 0 0 2px var(--uai-brand); }
/* cursor spotlight */
html.uai-js .uai-spot { position: relative; overflow: hidden; }
html.uai-js .uai-spot::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .3s; background: radial-gradient(240px circle at var(--uai-x, 50%) var(--uai-y, 50%), color-mix(in srgb, var(--uai-brand) 14%, transparent), transparent 60%); }
html.uai-js .uai-spot:hover::after { opacity: 1; }

/* icon-box icons: soft ring + hover pulse */
html.uai-js .elementor-widget-icon-box .elementor-icon { transition: transform .35s var(--uai-ease), box-shadow .35s; border-radius: 50%; }
html.uai-js .elementor-widget-icon-box:hover .elementor-icon { transform: translateY(-2px) scale(1.06); box-shadow: 0 0 0 8px color-mix(in srgb, var(--uai-brand) 12%, transparent); }

/* testimonials: big quote mark + star row */
html.uai-js .elementor-testimonial { position: relative; }
html.uai-js .elementor-testimonial::before { content: "\201C"; position: absolute; top: 2px; right: 16px; font: 700 84px/1 Georgia, serif; color: color-mix(in srgb, var(--uai-brand) 22%, transparent); pointer-events: none; }
html.uai-js .uai-stars { display: inline-flex; gap: 2px; margin-bottom: 8px; color: #F5B83D; font-size: 14px; letter-spacing: 1px; }

/* images: rounded + subtle zoom */
html.uai-js .elementor-widget-image:not(.uai-hero-img):not(.uai-logo) img { border-radius: 14px; transition: transform .6s var(--uai-ease), box-shadow .6s; }
html.uai-js .elementor-widget-image:not(.uai-hero-img):not(.uai-logo):hover img { transform: scale(1.02); }

/* ---------- Section separators: hairline gradient between top-level containers ---------- */
html.uai-js .uai-sep { height: 1px; background: linear-gradient(90deg, transparent 5%, rgba(255,255,255,.12) 30%, color-mix(in srgb, var(--uai-brand) 55%, transparent) 50%, rgba(255,255,255,.12) 70%, transparent 95%); margin: 0 auto; max-width: 1200px; position: relative; z-index: 1; }

/* ---------- Trust strip (inserted under hero) ---------- */
.uai-trust { position: relative; z-index: 1; max-width: 1200px; margin: -8px auto 8px; padding: 0 20px; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 12px; font-family: "Poppins", "Roboto", system-ui, sans-serif; }
.uai-trust span { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px; font-size: 13.5px; font-weight: 500; color: #e8ecea; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.09); backdrop-filter: blur(6px); transition: border-color .25s, transform .25s, background .25s; }
.uai-trust span:hover { border-color: color-mix(in srgb, var(--uai-brand) 55%, transparent); background: color-mix(in srgb, var(--uai-brand) 10%, transparent); transform: translateY(-2px); }
.uai-trust svg { width: 16px; height: 16px; color: var(--uai-brand); flex: none; }

/* ---------- Ticker (industries) ---------- */
.uai-ticker { position: relative; z-index: 1; overflow: hidden; padding: 14px 0; margin: 12px 0 0; border-top: 1px solid rgba(255,255,255,.06); border-bottom: 1px solid rgba(255,255,255,.06); -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); font-family: "Poppins", "Roboto", system-ui, sans-serif; }
.uai-ticker-track { display: flex; gap: 48px; width: max-content; animation: uai-ticker 38s linear infinite; }
.uai-ticker:hover .uai-ticker-track { animation-play-state: paused; }
.uai-ticker-track span { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.55); display: inline-flex; align-items: center; gap: 48px; white-space: nowrap; }
.uai-ticker-track span::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--uai-brand); opacity: .8; }
@keyframes uai-ticker { to { transform: translateX(-50%); } }

/* ---------- Newsletter / forms: input polish ---------- */
html.uai-js .elementor-field-group .elementor-field { border-radius: 12px !important; transition: box-shadow .2s, border-color .2s; }
html.uai-js .elementor-field-group .elementor-field:focus { box-shadow: 0 0 0 4px color-mix(in srgb, var(--uai-brand) 22%, transparent); border-color: var(--uai-brand) !important; }

/* ---------- Back-to-top ---------- */
.uai-top { position: fixed; left: 24px; transform: translateY(20px); bottom: 24px; z-index: 99990; width: 42px; height: 42px; border-radius: 50%; background: rgba(30,30,30,.85); color: #fff; border: 1px solid rgba(255,255,255,.14); box-shadow: 0 6px 20px rgba(0,0,0,.35); cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s, border-color .25s; font-size: 18px; display: grid; place-items: center; backdrop-filter: blur(8px); }
.uai-top:hover { border-color: var(--uai-brand); }
.uai-top.uai-show { opacity: 1; transform: none; pointer-events: auto; }
@media (max-width: 767px) { .uai-top { display: none; } }

/* ---------- Mobile sticky action bar ---------- */
.uai-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 99995; display: none; gap: 10px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); background: rgba(24, 24, 24, .9); backdrop-filter: blur(12px); border-top: 1px solid rgba(255, 255, 255, .08); transform: translateY(100%); transition: transform .3s var(--uai-ease); }
.uai-sticky.uai-show { transform: none; }
.uai-sticky a { flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; font-weight: 700; font-size: 15px; padding: 13px 10px; border-radius: 999px; font-family: "Poppins", "Roboto", system-ui, sans-serif; }
.uai-sticky .uai-sticky-call { background: rgba(255, 255, 255, .1); color: #fff; }
.uai-sticky .uai-sticky-apply { background: linear-gradient(135deg, var(--uai-brand), color-mix(in srgb, var(--uai-brand) 75%, #000)); color: #fff; box-shadow: 0 6px 18px color-mix(in srgb, var(--uai-brand) 35%, transparent); }
@media (max-width: 767px) { .uai-sticky { display: flex; } body.uai-has-sticky { padding-bottom: 72px; } }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  html.uai-js .uai-reveal, html.uai-js .uai-split .uai-c { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
  html.uai-js .uai-hero-img img, html.uai-js .uai-hero-img::before, .uai-ticker-track { animation: none !important; }
}
