/* ==========================================================================
   LeapGeeBEE NCR — Design Tokens & Custom Styles
   Palette: Navy #0A2540 · Blue #1657FF · Orange #FF6A1A · White/Fog
   Display: Sora · Body: Inter
   ========================================================================== */

:root{
  --navy:#0A2540;
  --navy-2:#0F2F52;
  --blue:#1657FF;
  --blue-dim:#3B6BFF;
  --blue-fog:#EAF1FF;
  --orange:#FF6A1A;
  --orange-2:#FF8A3D;
  --orange-fog:#FFEEE2;
  --ink:#152238;
  --slate:#5B6B82;
  --slate-light:#8B99AC;
  --fog:#F6F9FD;
  --white:#FFFFFF;
  --line:#E7EDF6;
  --radius-lg:1.75rem;
  --radius-md:1.25rem;
  --radius-sm:0.75rem;
  --shadow-soft:0 10px 40px -12px rgba(10,37,64,0.18);
  --shadow-card:0 8px 30px -10px rgba(10,37,64,0.12);
  --shadow-lift:0 24px 60px -18px rgba(22,87,255,0.28);
  --ease:cubic-bezier(.16,.84,.44,1);
}

html{scroll-behavior:smooth;}
body{
  font-family:'Inter',system-ui,sans-serif;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,h5,.font-display{font-family:'Sora',system-ui,sans-serif;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;scroll-behavior:auto !important;}
}

/* ---------- Utility color classes ---------- */
.text-navy{color:var(--navy);} .text-blue{color:var(--blue);} .text-orange{color:var(--orange);}
.text-slate{color:var(--slate);}
.bg-navy{background:var(--navy);} .bg-blue{background:var(--blue);} .bg-orange{background:var(--orange);}
.bg-fog{background:var(--fog);} .bg-blue-fog{background:var(--blue-fog);} .bg-orange-fog{background:var(--orange-fog);}
.border-line{border-color:var(--line);}

.gradient-brand{background:linear-gradient(120deg,var(--blue) 0%,#3E7BFF 45%,var(--orange) 100%);}
.gradient-text{
  background:linear-gradient(95deg,var(--blue) 0%,#3E7BFF 55%,var(--orange) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.gradient-navy{background:linear-gradient(160deg,#0A2540 0%,#0F3466 60%,#0A2540 100%);}

/* ---------- Eyebrow / pill labels ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.72rem;letter-spacing:.14em;font-weight:700;text-transform:uppercase;
  color:var(--blue);background:var(--blue-fog);
  padding:.4rem .9rem;border-radius:999px;
}
.eyebrow.on-dark{color:#BFD3FF;background:rgba(255,255,255,0.08);}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--orange);}

/* ---------- Glassmorphism ---------- */
.glass{
  background:rgba(255,255,255,0.66);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  border:1px solid rgba(255,255,255,0.5);
}
.glass-dark{
  background:rgba(10,37,64,0.55);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  border:1px solid rgba(255,255,255,0.12);
}
#navbar{
  transition:all .35s var(--ease);
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(16px) saturate(160%);
  -webkit-backdrop-filter:blur(16px) saturate(160%);
  box-shadow:0 2px 20px -6px rgba(10,37,64,0.10);
  border-bottom:1px solid rgba(10,37,64,0.06);
}
#navbar.scrolled{
  background:rgba(255,255,255,0.96);
  box-shadow:var(--shadow-card);
}

/* ---------- Cards ---------- */
.card{
  background:var(--white);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-card);
  border:1px solid var(--line);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lift);}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-weight:600;border-radius:999px;padding:.9rem 1.9rem;
  transition:all .3s var(--ease);white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(95deg,var(--orange),var(--orange-2));
  color:#fff;box-shadow:0 14px 30px -8px rgba(255,106,26,0.5);
}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 18px 34px -6px rgba(255,106,26,0.6);}
.btn-outline{
  background:transparent;border:1.5px solid rgba(255,255,255,0.55);color:#fff;
}
.btn-outline:hover{background:rgba(255,255,255,0.14);transform:translateY(-3px);}
.btn-navy{background:var(--navy);color:#fff;}
.btn-navy:hover{background:var(--blue);transform:translateY(-3px);}
.btn-ghost{background:var(--blue-fog);color:var(--blue);}
.btn-ghost:hover{background:var(--blue);color:#fff;transform:translateY(-3px);}

/* ---------- Floating / blobs ---------- */
.floaty{animation:floaty 6s ease-in-out infinite;}
.floaty-slow{animation:floaty 9s ease-in-out infinite;}
.floaty-delay{animation-delay:1.4s;}
@keyframes floaty{0%,100%{transform:translateY(0px) rotate(0deg);}50%{transform:translateY(-18px) rotate(3deg);}}

.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;z-index:0;pointer-events:none;}

.pulse-ring{position:relative;}
.pulse-ring::after{
  content:'';position:absolute;inset:0;border-radius:inherit;border:2px solid var(--orange);
  animation:pulseRing 2.4s ease-out infinite;
}
@keyframes pulseRing{0%{transform:scale(1);opacity:.7;}100%{transform:scale(1.6);opacity:0;}}

/* ---------- Hero backdrop pattern (layered via ::before so it never wipes gradient-navy's background) ---------- */
.hero-grid{position:relative;}
.hero-grid::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(255,255,255,0.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.06) 1px,transparent 1px);
  background-size:44px 44px;
}

/* ---------- Flip cards (process steps) ---------- */
.flip-card{perspective:1400px;height:230px;}
.flip-card-inner{
  position:relative;width:100%;height:100%;
  transition:transform .7s cubic-bezier(.34,1.56,.64,1);
  transform-style:preserve-3d;
}
.flip-card:hover .flip-card-inner,
.flip-card.flipped .flip-card-inner{transform:rotateY(180deg);}
.flip-card-front,.flip-card-back{
  position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  border-radius:var(--radius-md);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:1.5rem;text-align:center;
}
.flip-card-front{background:var(--white);box-shadow:var(--shadow-card);border:1px solid var(--line);}
.flip-card-back{
  background:linear-gradient(150deg,var(--navy) 0%,var(--blue) 100%);
  color:#fff;transform:rotateY(180deg);box-shadow:var(--shadow-lift);
}

/* ---------- Signature: flight path timeline (legacy, unused but kept safe) ---------- */
.flight-path-wrap{position:relative;}
.flight-path-svg path{
  fill:none;stroke:var(--line);stroke-width:3;stroke-dasharray:2 10;stroke-linecap:round;
}
.flight-path-svg path.progress{
  stroke:var(--orange);stroke-dasharray:2 10;
}
.plane-icon{filter:drop-shadow(0 6px 10px rgba(255,106,26,0.45));}

/* ---------- Section heading underline ---------- */
.title-mark{position:relative;display:inline-block;}
.title-mark::after{
  content:'';position:absolute;left:0;bottom:-10px;height:5px;width:56px;border-radius:99px;
  background:linear-gradient(95deg,var(--blue),var(--orange));
}
.title-mark.center::after{left:50%;transform:translateX(-50%);}

/* ---------- Counter numerals ---------- */
.stat-num{font-family:'Sora',system-ui,sans-serif;font-weight:700;font-variant-numeric:tabular-nums;}

/* ---------- Marquee (logos/partners) ---------- */
.marquee-track{display:flex;gap:3.5rem;animation:marquee 26s linear infinite;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- Accordion ---------- */
.acc-item .acc-panel{max-height:0;overflow:hidden;transition:max-height .4s var(--ease);}
.acc-item.open .acc-panel{max-height:400px;}
.acc-item .acc-icon{transition:transform .35s var(--ease);}
.acc-item.open .acc-icon{transform:rotate(45deg);}

/* ---------- Preloader ---------- */
#preloader{position:fixed;inset:0;z-index:9999;background:var(--navy);display:flex;align-items:center;justify-content:center;transition:opacity .5s ease, visibility .5s ease;}
#preloader.hide{opacity:0;visibility:hidden;}
.loader-ring{width:58px;height:58px;border-radius:50%;border:4px solid rgba(255,255,255,0.15);border-top-color:var(--orange);animation:spin .9s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ---------- Back to top ---------- */
#backToTop{
  position:fixed;right:1.4rem;bottom:1.4rem;z-index:40;width:48px;height:48px;border-radius:50%;
  background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-soft);opacity:0;pointer-events:none;transform:translateY(12px);
  transition:all .3s var(--ease);
}
#backToTop.show{opacity:1;pointer-events:auto;transform:translateY(0);}
#backToTop:hover{background:var(--blue);}

/* ---------- WhatsApp float ---------- */
#waBtn{
  position:fixed;left:1.4rem;bottom:1.4rem;z-index:40;width:58px;height:58px;border-radius:50%;
  background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.6rem;
  box-shadow:0 14px 30px -8px rgba(37,211,102,0.55);
}

/* ---------- Nav link underline ---------- */
.nav-link{position:relative;}
.nav-link::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--orange);transform:scaleX(0);transition:transform .3s var(--ease);}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1);}

/* ---------- Service / country card image mask ---------- */
.img-tilt{transition:transform .6s var(--ease);}
.card:hover .img-tilt{transform:scale(1.08);}

/* ---------- Swiper pagination tweaks ---------- */
.swiper-pagination-bullet{background:var(--slate-light) !important;opacity:.5 !important;}
.swiper-pagination-bullet-active{background:var(--orange) !important;opacity:1 !important;}
.swiper-button-next,.swiper-button-prev{color:var(--navy) !important;}
.country-swiper-prev,.country-swiper-next{
  width:2.5rem;height:2.5rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);
  display:flex;align-items:center;justify-content:center;font-size:.8rem;box-shadow:0 6px 16px rgba(10,37,64,.08);transition:all .2s var(--ease);
}
.country-swiper-prev:hover,.country-swiper-next:hover{background:var(--blue);border-color:var(--blue);color:#fff;}
.country-swiper-prev.swiper-button-disabled,.country-swiper-next.swiper-button-disabled{opacity:.35;cursor:not-allowed;box-shadow:none;}

/* ---------- Scrollbar ---------- */
::-webkit-scrollbar{width:9px;}
::-webkit-scrollbar-track{background:var(--fog);}
::-webkit-scrollbar-thumb{background:var(--slate-light);border-radius:99px;}

/* ---------- Focus states (a11y) ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid var(--orange);outline-offset:2px;
}

/* ---------- Reveal helper (fallback if AOS disabled) ---------- */
.reveal{opacity:0;transform:translateY(24px);}
.reveal.in{opacity:1;transform:translateY(0);transition:all .7s var(--ease);}

/* ---------- Country navigation flags ---------- */
/* Flag CDN uses ISO 3166-1 country codes: CA, AU, GB, US, DE, IE, NZ and AE. */
.glass a[href^="study-in-"] > span{
  background-color:transparent !important;
  background-position:center;
  background-repeat:no-repeat;
  background-size:22px auto;
  color:transparent !important;
  font-size:0 !important;
}
.glass a[href="study-in-canada.html"] > span{background-image:url('../img/flags/ca.png');}
.glass a[href="study-in-australia.html"] > span{background-image:url('../img/flags/au.png');}
.glass a[href="study-in-uk.html"] > span{background-image:url('../img/flags/gb.png');}
.glass a[href="study-in-usa.html"] > span{background-image:url('../img/flags/us.png');}
.glass a[href="study-in-germany.html"] > span{background-image:url('../img/flags/de.png');}
.glass a[href="study-in-ireland.html"] > span{background-image:url('../img/flags/ie.png');}
.glass a[href="study-in-new-zealand.html"] > span{background-image:url('../img/flags/nz.png');}
.glass a[href="study-in-dubai.html"] > span{background-image:url('../img/flags/ae.png');}
.glass a[href="study-in-europe.html"] > span{background-image:url('../img/flags/eu.png');}
.glass a[href="study-in-japan.html"] > span{background-image:url('../img/flags/jp.png');}
.glass a[href="study-in-korea.html"] > span{background-image:url('../img/flags/kr.png');}

/* Admission-style branch registration form on the contact page. */
.contact-register-form{overflow:hidden;border:1px solid var(--line);border-radius:1.25rem;background:#fff;box-shadow:var(--shadow-card);}
.contact-form-head{padding:1.25rem 1.7rem;background:#f8f6f0;border-bottom:1px solid #dedbd2;}
.contact-form-head h3{margin:0;color:var(--navy);font-family:Georgia,serif;font-size:1.5rem;line-height:1.2;}
.contact-form-head p{margin:.35rem 0 0;color:#687b9f;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
.contact-form-body{padding:1.5rem 1.7rem;display:grid;gap:.85rem;}
.contact-branch-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;}
.contact-branch-option{margin:0;border:1px solid var(--line);border-radius:.55rem;background:#fff;color:var(--navy);padding:.65rem .35rem;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .2s,color .2s,border-color .2s;}
.contact-branch-option:hover,.contact-branch-option[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff;}
.contact-captcha{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:center;}
.contact-captcha-code{min-width:6.7rem;padding:.78rem .4rem;border:1px dashed #c79d3f;border-radius:.55rem;background:#fffdf7;color:var(--navy);font-family:monospace;font-size:.85rem;font-weight:800;letter-spacing:.15em;text-align:center;white-space:nowrap;}
.contact-captcha button{width:1.6rem;margin:0 0 0 .2rem;border:0;background:transparent;color:var(--navy);cursor:pointer;font-size:.9rem;}
.contact-whatsapp-submit{width:100%;margin-top:.25rem;border:0;border-radius:999px;background:linear-gradient(135deg,#d93431,#be1f29);color:#fff;padding:.9rem 1rem;font:inherit;font-weight:800;font-size:1rem;cursor:pointer;box-shadow:0 8px 17px rgba(193,39,45,.22);}
.contact-whatsapp-submit:hover{background:#b91f28;}
@media(max-width:420px){.contact-form-head,.contact-form-body{padding-left:1.1rem;padding-right:1.1rem;}.contact-branch-options{grid-template-columns:1fr;}.contact-captcha{grid-template-columns:1fr;}}

/* Three-branch location panel in the footer. */
.branch-footer-locations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;padding:2.75rem 0 3.5rem;border-bottom:1px solid rgba(255,255,255,.1);}
.branch-footer-name{margin:0 0 1rem;color:#58e2d3;font-size:.84rem;font-weight:800;letter-spacing:.04em;}
.branch-footer-address{min-height:5.8rem;margin:0 0 1.3rem;color:#fff;font-family:'Sora',sans-serif;font-size:1.08rem;font-weight:700;line-height:1.45;}
.branch-footer-card iframe{display:block;width:100%;height:15.7rem;border:0;background:#fff;}
.branch-footer-map-link{display:inline-flex;align-items:center;gap:.35rem;margin-top:.65rem;color:#80f4e4;font-size:.8rem;font-weight:700;}
.branch-footer-email,.branch-footer-phone{display:block;margin-top:.85rem;color:#fff;font-family:'Sora',sans-serif;font-size:1rem;font-weight:700;overflow-wrap:anywhere;}
.branch-footer-phone{margin-top:.35rem;color:#ffb28b;font-size:.9rem;}
.branch-footer-map-link:hover,.branch-footer-email:hover,.branch-footer-phone:hover{color:var(--orange);}
@media(max-width:900px){.branch-footer-locations{grid-template-columns:1fr;gap:2rem;}.branch-footer-address{min-height:0;}.branch-footer-card iframe{height:17rem;}}

/* Local bank and lender marks in the education-loan partner grid. */
.lender-logo{width:2.75rem;height:2.75rem;flex:0 0 2.75rem;object-fit:contain;border-radius:.75rem;background:#fff;padding:.25rem;}

/* Use the same local flag assets in the mobile country accordion. */
.acc-panel a[href="study-in-europe.html"] > span,
.acc-panel a[href="study-in-japan.html"] > span,
.acc-panel a[href="study-in-korea.html"] > span{
  background-position:center;
  background-repeat:no-repeat;
  background-size:20px auto;
  color:transparent;
  font-size:0;
}
.acc-panel a[href="study-in-europe.html"] > span{background-image:url('../img/flags/eu.png');}
.acc-panel a[href="study-in-japan.html"] > span{background-image:url('../img/flags/jp.png');}
.acc-panel a[href="study-in-korea.html"] > span{background-image:url('../img/flags/kr.png');}
