/* ==========================================================================
   AFITP — effects layer (child theme)
   Colours, fonts, spacing and layout are edited in Elementor (global classes
   named "afitp-…"). This file only holds what Elementor can't store:
   animations, decorative ::before/::after lines and "hover card → move child" effects.
   ========================================================================== */

:where(:root){
  --afitp-navy:#0E1E45; --afitp-ink:#1B2A4A; --afitp-muted:#5B6B88; --afitp-bg:#F6F9FF; --afitp-line:#E2E9F5;
  --afitp-blue:#1F6FE5; --afitp-red:#E52B3A; --afitp-yellow:#F5B50F; --afitp-green:#1FA84F; --afitp-soft-blue:#EAF2FF;
  --afitp-flag:linear-gradient(90deg,var(--afitp-red) 0 25%,var(--afitp-blue) 25% 50%,var(--afitp-yellow) 50% 75%,var(--afitp-green) 75% 100%);
}

/* ---------- Base ---------- */
html{scroll-behavior:smooth}
body{background:var(--afitp-bg);color:var(--afitp-ink);font-family:Manrope,system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.elementor a{color:inherit;text-decoration:none}
.elementor a:hover{color:inherit}
[id]{scroll-margin-top:84px}

/* Line icons: Elementor adds fill="currentColor" to every SVG; outline icons must stay unfilled */
.elementor .e-svg-base svg[stroke]{fill:none}

/* Colour helpers (set the accent used by icons, bars and nodes) */
.afitp-c-red{--c:var(--afitp-red)} .afitp-c-blue{--c:var(--afitp-blue)} .afitp-c-yellow{--c:var(--afitp-yellow)}
.afitp-c-green{--c:var(--afitp-green)} .afitp-c-navy{--c:var(--afitp-navy)}

/* Accent-driven fills (use the --c colour set by afitp-c-* classes) */
.elementor .afitp-node{background:var(--c);box-shadow:0 0 0 6px color-mix(in srgb,var(--c) 18%,transparent),0 0 24px var(--c)}
.elementor .afitp-pillar-ic{background:color-mix(in srgb,var(--c) 12%,#fff);color:var(--c)}
.elementor .afitp-act-ic{background:var(--c);box-shadow:0 10px 20px -8px var(--c)}
.elementor .afitp-float-ic{background:var(--c)}
.elementor .afitp-meta-item{border-left-color:var(--c)}
.elementor .afitp-benefit-ic{background:color-mix(in srgb,var(--c) 22%,transparent);color:var(--c)}
.elementor .afitp-thumb{background:linear-gradient(135deg,color-mix(in srgb,var(--c,#1F6FE5) 85%,#0E1E45),#0E1E45)}
.elementor .afitp-vm-label{color:var(--c)}
.elementor .afitp-lc-red{--c:#FF7A85} .elementor .afitp-lc-blue{--c:#7FB0FF} .elementor .afitp-lc-yellow{--c:#FFD15C}
.elementor .afitp-lc-green{--c:#5BD68A} .elementor .afitp-lc-purple{--c:#B79CFF}

/* ---------- Header (sticky: top bar scrolls away, main bar stays) ---------- */
.elementor-location-header{position:sticky;top:-40px;z-index:100}
.admin-bar .elementor-location-header{top:-8px}
@media (max-width:782px){.admin-bar .elementor-location-header{top:6px}}
.elementor .afitp-nav .elementor-nav-menu--main .elementor-item{font-family:Manrope,sans-serif;font-weight:600;font-size:14.5px;color:var(--afitp-ink);padding:10px 12px;border-radius:10px;white-space:nowrap;transition:.2s}
.elementor .afitp-nav .elementor-nav-menu--main .elementor-item.elementor-item-active{background:transparent;color:var(--afitp-ink)}
.elementor .afitp-nav .elementor-nav-menu--main .elementor-item:hover{background:var(--afitp-soft-blue);color:var(--afitp-blue)}
.elementor .afitp-nav .elementor-nav-menu--main .elementor-item::before,
.elementor .afitp-nav .elementor-nav-menu--main .elementor-item::after{display:none}
.elementor .afitp-nav .elementor-nav-menu--main>.elementor-nav-menu{gap:2px}
.elementor .afitp-nav .elementor-menu-toggle{background:transparent;color:var(--afitp-navy);font-size:24px;padding:6px}
.elementor .afitp-nav .elementor-menu-toggle svg{fill:var(--afitp-navy)}
.elementor .afitp-nav .elementor-nav-menu--dropdown{background:#fff;border-bottom:1px solid var(--afitp-line);box-shadow:0 20px 30px -20px rgba(14,30,69,.2)}
.elementor .afitp-nav .elementor-nav-menu--dropdown a{font-family:Manrope,sans-serif;font-weight:600;font-size:15px;color:var(--afitp-ink);padding:14px 20px}
.elementor .afitp-nav .elementor-nav-menu--dropdown a.elementor-item-active{background:transparent;color:var(--afitp-ink)}
.elementor .afitp-nav .elementor-nav-menu--dropdown a:hover{background:var(--afitp-soft-blue);color:var(--afitp-blue)}

/* ---------- Eyebrow label with flag line ---------- */
.elementor .afitp-eyebrow::before{content:"";display:inline-block;width:28px;height:3px;border-radius:3px;background:var(--afitp-flag);flex:none}

/* ---------- Buttons: arrow nudges on hover ---------- */
.elementor .afitp-btn .afitp-btn-icon{transition:transform .25s}
.elementor .afitp-btn:hover .afitp-btn-icon{transform:translateX(3px)}

/* ---------- Hero ---------- */
.elementor .afitp-hero{isolation:isolate}
.elementor .afitp-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(var(--afitp-line) 1px,transparent 1px),linear-gradient(90deg,var(--afitp-line) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse at 70% 40%,#000 10%,transparent 70%);mask-image:radial-gradient(ellipse at 70% 40%,#000 10%,transparent 70%);opacity:.7}
.elementor .afitp-hero::after{content:"";position:absolute;z-index:-1;width:640px;height:640px;right:-120px;top:-140px;pointer-events:none;background:radial-gradient(circle,rgba(31,111,229,.16),transparent 65%)}
.afitp-net{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.elementor .afitp-hero>.afitp-hero-grid{position:relative;z-index:2}

/* Headline: underline any words with the U button in Elementor to get the blue + flag underline */
.elementor .afitp-hero-title u{text-decoration:none;color:var(--afitp-blue);position:relative;white-space:nowrap}
.elementor .afitp-hero-title u::after{content:"";position:absolute;left:2px;right:.4em;bottom:-.06em;height:.11em;background:var(--afitp-flag);border-radius:6px}

/* Live dot */
.elementor .afitp-chip-dot-inner{animation:afitp-ping 2s infinite}
@keyframes afitp-ping{0%{box-shadow:0 0 0 0 rgba(31,168,79,.6)}70%{box-shadow:0 0 0 8px rgba(31,168,79,0)}100%{box-shadow:0 0 0 0 rgba(31,168,79,0)}}

/* Orbit */
.elementor .afitp-ring-1{animation:afitp-spin 60s linear infinite}
.elementor .afitp-ring-2{animation:afitp-spin 45s linear infinite reverse}
.elementor .afitp-ring-3{animation:afitp-spin 30s linear infinite}
@keyframes afitp-spin{to{transform:rotate(360deg)}}
.elementor .afitp-float{animation:afitp-bob 6s ease-in-out infinite}
.elementor .afitp-float-2{animation-delay:-3s}
@keyframes afitp-bob{50%{transform:translateY(-10px)}}

/* ---------- Ticker ---------- */
.elementor .afitp-ticker-track{animation:afitp-scroll 40s linear infinite}
@keyframes afitp-scroll{to{transform:translateX(-50%)}}
.elementor .afitp-ticker-item::before{content:"";width:8px;height:8px;border-radius:2px;transform:rotate(45deg);background:var(--c,var(--afitp-blue));flex:none}

/* ---------- About ---------- */
.elementor .afitp-about-p strong{color:var(--afitp-navy)}

/* ---------- Pillars ---------- */
.elementor .afitp-pillar::before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:var(--c);transform:scaleX(.18);transform-origin:left;transition:.4s}
.elementor .afitp-pillar:hover::before{transform:scaleX(1)}

/* ---------- Roadmap ---------- */
.elementor .afitp-track::before{content:"";position:absolute;left:0;right:0;top:34px;height:2px;background:repeating-linear-gradient(90deg,#C8D6EE 0 8px,transparent 8px 14px)}
.elementor .afitp-track::after{content:"";position:absolute;left:0;top:33px;height:4px;width:var(--afitp-progress,25%);background:var(--afitp-flag);border-radius:4px;transition:width .6s}
.elementor .afitp-step-pt::after{content:"";width:10px;height:10px;border-radius:50%;background:#C8D6EE}
.elementor .afitp-step.is-done .afitp-step-pt{border-color:var(--afitp-green)}
.elementor .afitp-step.is-done .afitp-step-pt::after{background:var(--afitp-green)}
.elementor .afitp-step.is-now .afitp-step-pt{border-color:var(--afitp-blue);box-shadow:0 0 0 6px rgba(31,111,229,.15)}
.elementor .afitp-step.is-now .afitp-step-pt::after{background:var(--afitp-blue);animation:afitp-ping 2s infinite}
.elementor .afitp-step.is-done .afitp-step-status{color:var(--afitp-green)}
.elementor .afitp-step.is-now .afitp-step-status{color:var(--afitp-blue)}
.elementor .afitp-step.is-done .afitp-step-status::before{content:"✓ "}
.elementor .afitp-step.is-now .afitp-step-status::before{content:"● "}
.elementor .afitp-step:hover .afitp-step-card{background:#fff;box-shadow:0 10px 30px -12px rgba(14,30,69,.18);border-color:transparent}
@media (max-width:1024px){.elementor .afitp-track::before,.elementor .afitp-track::after{display:none}}
@media (max-width:767px){
  .elementor .afitp-track::before{display:block;left:13px;right:auto;top:0;bottom:0;width:2px;height:auto;background:repeating-linear-gradient(180deg,#C8D6EE 0 8px,transparent 8px 14px)}
}

/* ---------- Why join ---------- */
.elementor .afitp-join{isolation:isolate}
.elementor .afitp-join::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px);background-size:26px 26px;pointer-events:none}
.elementor .afitp-term-line .t-g{color:#5BD68A}.elementor .afitp-term-line .t-b{color:#7FB0FF}.elementor .afitp-term-line .t-y{color:#FFD15C}
.afitp-cursor{display:inline-block;width:9px;height:17px;background:#7FB0FF;vertical-align:-3px;margin-left:2px;animation:afitp-blink 1s steps(1) infinite}
@keyframes afitp-blink{50%{opacity:0}}
.afitp-terminal-body.is-typing .afitp-term-line{display:none}
.afitp-terminal-body.is-typing .afitp-term-line.is-shown{display:block}

/* ---------- Activities ---------- */
.elementor .afitp-act::after{content:"";position:absolute;right:-40%;bottom:-60%;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 20%,transparent),transparent 70%);opacity:0;transition:.4s;pointer-events:none}
.elementor .afitp-act:hover::after{opacity:1}

/* ---------- News ---------- */
.elementor .afitp-thumb-img:not([src]),.elementor .afitp-thumb-img[src=""]{display:none}
.elementor .afitp-thumb::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px);background-size:28px 28px}
.elementor .afitp-thumb img{width:100%;height:100%;object-fit:cover}
.elementor .afitp-post:hover .afitp-more-icon{transform:translateX(4px)}
.elementor .afitp-more-icon{transition:.2s}

/* ---------- CTA ---------- */
.elementor .afitp-cta::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(var(--afitp-red) 0 25%,var(--afitp-blue) 25% 50%,var(--afitp-yellow) 50% 75%,var(--afitp-green) 75%)}

/* ---------- Form ---------- */
.elementor .afitp-submit::after{content:"";width:18px;height:18px;flex:none;background:currentColor;-webkit-mask:url(icon-send.svg) center/contain no-repeat;mask:url(icon-send.svg) center/contain no-repeat}
.elementor .afitp-input::placeholder,.elementor .afitp-textarea::placeholder{color:#8A97B0}

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  .elementor *{animation:none!important;transition:none!important}
}
/* Keep the editor calm while editing */
body.elementor-editor-active .afitp-ticker-track{animation:none}
