:root{
  --primary:#4BABD3;
  --primary-content:#10102E;
  --green:#4ade80;
  --deep-2:#161A45;
  --deep-3:#1C2150;
  --ink:#F4F6FB;
  --muted:#9AA1C9;
}

html{
  scroll-behavior:smooth;
}

::selection{
  background:var(--primary);
  color:var(--primary-content);
}

body{
  position:relative;
}

/* ============ NOISE OVERLAY ============ */
.noise-overlay{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:1;
  opacity:.035;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ============ NAV ============ */
#site-nav{
  background:transparent;
}
#site-nav.scrolled{
  background:rgba(16,16,46,.7);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.06);
}

/* ============ HERO ============ */
#hero-grid{
  display:block;
}
.hero-vignette{
  background:
    radial-gradient(60% 50% at 50% 38%, rgba(75,171,211,.16), transparent 70%),
    radial-gradient(120% 80% at 50% 100%, rgba(16,16,46,.95), transparent 60%),
    linear-gradient(180deg, rgba(16,16,46,.2) 0%, rgba(16,16,46,.55) 70%, rgba(16,16,46,1) 100%);
  pointer-events:none;
}

.gradient-text{
  background:linear-gradient(95deg, var(--primary) 0%, #8fd4ec 45%, var(--green) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.hero-line{
  overflow:hidden;
}

.hero-title {
  line-height: 1.6 !important;
}

.eyebrow{
  display:inline-block;
  font-size:.8rem;
  letter-spacing:.06em;
  color:var(--primary);
  text-transform:uppercase;
  font-weight:600;
  position:relative;
  padding-bottom:.4rem;
}
.eyebrow::after{
  content:"";
  position:absolute;
  bottom:0;
  right:50%;
  transform:translateX(50%);
  width:32px;
  height:2px;
  background:linear-gradient(90deg, var(--primary), var(--green));
  border-radius:2px;
}

/* ============ CTA BUTTON ============ */
.cta-pill{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:var(--primary);
  color:var(--primary-content);
  font-weight:700;
  font-size:.95rem;
  padding:.85rem 1.6rem;
  border-radius:999px;
  border:1px solid transparent;
  transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, background .35s ease;
  box-shadow:0 0 0 0 rgba(75,171,211,0);
  white-space:nowrap;
}
.cta-pill:hover{
  transform:translateY(-2px);
  background:#5fc1e5;
  box-shadow:0 8px 30px -6px rgba(75,171,211,.55);
}
.cta-pill-lg{
  padding:1.1rem 2.2rem;
  font-size:1.05rem;
}
.cta-pill svg{
  transition:transform .3s ease;
  transform:scaleX(-1); /* rtl arrow points left visually -> flip to point toward reading direction */
}
.cta-pill:hover svg{
  transform:scaleX(-1) translateX(4px);
}

.scroll-cue{
  opacity:0;
}
.scroll-cue-line{
  width:1px;
  height:38px;
  background:linear-gradient(180deg, var(--primary), transparent);
  animation:scrollPulse 1.8s ease-in-out infinite;
}
@keyframes scrollPulse{
  0%,100%{opacity:.3; transform:scaleY(.6); transform-origin:top;}
  50%{opacity:1; transform:scaleY(1); transform-origin:top;}
}

/* ============ WHY CARDS ============ */
.why-card{
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01));
  border:1px solid rgba(255,255,255,.07);
  border-radius:1.25rem;
  padding:2rem 1.75rem;
  transition:border-color .4s ease, transform .4s ease, background .4s ease;
  position:relative;
  overflow:hidden;
}
.why-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(180px 180px at var(--mx,50%) var(--my,0%), rgba(75,171,211,.14), transparent 70%);
  opacity:0;
  transition:opacity .4s ease;
}
.why-card:hover::before{ opacity:1; }
.why-card:hover{
  border-color:rgba(75,171,211,.35);
  transform:translateY(-4px);
}
.why-icon{
  width:48px;height:48px;
  border-radius:.85rem;
  background:rgba(75,171,211,.1);
  color:var(--primary);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:1.25rem;
}
.why-icon svg{ width:24px; height:24px; }
.why-title{
  font-family:'Almarai', sans-serif;
  font-weight:800;
  font-size:1.15rem;
  margin-bottom:.5rem;
}
.why-desc{
  color:var(--muted);
  font-size:.92rem;
  line-height:1.7;
}

/* ============ SERVICES ============ */
.service-row{
  display:flex;
  align-items:center;
  gap:1.5rem;
  padding:1.75rem 1.5rem;
  border-bottom:1px solid rgba(255,255,255,.07);
  transition:background .35s ease, padding .35s ease;
  border-radius:.75rem;
}
.service-row:hover{
  background:rgba(255,255,255,.025);
}
.service-row:last-child{ border-bottom:none; }
.service-index{
  font-family:'Almarai', sans-serif;
  font-weight:900;
  font-size:1.4rem;
  color:var(--primary);
  opacity:.55;
  min-width:3rem;
}
.service-body{ flex:1; }
.service-body h3{
  font-family:'Almarai', sans-serif;
  font-weight:800;
  font-size:1.15rem;
  margin-bottom:.35rem;
}
.service-body p{
  color:var(--muted);
  font-size:.92rem;
}
.service-arrow{
  width:20px;height:20px;
  color:var(--muted);
  flex-shrink:0;
  transform:scaleX(-1);
  transition:transform .35s ease, color .35s ease;
}
.service-row:hover .service-arrow{
  color:var(--green);
  transform:scaleX(-1) translateX(6px);
}

/* ============ TIMELINE ============ */
#timeline{
  position:relative;
  padding-inline-start:2.5rem;
}
.timeline-track{
  position:absolute;
  inset-inline-start:.4rem;
  top:.5rem;
  bottom:.5rem;
  width:2px;
  background:rgba(255,255,255,.08);
}
.timeline-progress{
  width:100%;
  height:0%;
  background:linear-gradient(180deg, var(--primary), var(--green));
  box-shadow:0 0 14px rgba(75,171,211,.6);
}
.timeline-step{
  position:relative;
  padding-bottom:3.25rem;
}
.timeline-step:last-child{ padding-bottom:0; }
.timeline-dot{
  position:absolute;
  inset-inline-start:-2.5rem;
  top:.15rem;
  width:11px;height:11px;
  border-radius:50%;
  background:var(--primary-content);
  border:2px solid var(--muted);
  transform:scale(.85);
  transition:border-color .4s ease, background .4s ease, transform .4s ease, box-shadow .4s ease;
}
.timeline-dot.active{
  border-color:var(--green);
  background:var(--green);
  transform:scale(1.15);
  box-shadow:0 0 16px rgba(74,222,128,.7);
}
.timeline-num{
  font-family:'Almarai', sans-serif;
  font-weight:900;
  color:var(--primary);
  opacity:.5;
  font-size:.85rem;
  display:block;
  margin-bottom:.4rem;
}
.timeline-content h3{
  font-family:'Almarai', sans-serif;
  font-weight:800;
  font-size:1.3rem;
  margin-bottom:.5rem;
}
.timeline-content p{
  color:var(--muted);
  line-height:1.7;
  max-width:32rem;
}

/* ============ TRUST / STATS ============ */
.trust-band{
  background:linear-gradient(180deg, rgba(75,171,211,.05), transparent 30%, transparent 70%, rgba(74,222,128,.04));
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.stat-card{
  text-align:center;
  padding:1.5rem 1rem;
}
.stat-num{
  font-family:'Almarai', sans-serif;
  font-weight:900;
  font-size:clamp(2.2rem, 5vw, 3.2rem);
  color:var(--ink);
  line-height:1;
}
.stat-plus{
  color:var(--green);
}
.stat-label{
  color:var(--muted);
  font-size:.88rem;
  margin-top:.65rem;
}

/* ============ FAQ ============ */
.faq-item{
  border:1px solid rgba(255,255,255,.08);
  border-radius:1rem;
  overflow:hidden;
  background:rgba(255,255,255,.02);
}
.faq-q{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.35rem 1.5rem;
  text-align:right;
  font-family:'Almarai', sans-serif;
  font-weight:700;
  font-size:1rem;
  color:var(--ink);
}
.faq-q svg{
  width:18px;height:18px;
  color:var(--primary);
  flex-shrink:0;
  margin-inline-start:1rem;
  transition:transform .35s ease;
}
.faq-item.open .faq-q svg{
  transform:rotate(180deg);
}
.faq-a{
  max-height:0;
  overflow:hidden;
  transition:max-height .4s cubic-bezier(.16,1,.3,1), padding .4s ease;
  padding:0 1.5rem;
}
.faq-item.open .faq-a{
  padding:0 1.5rem 1.35rem;
}
.faq-a p{
  color:var(--muted);
  line-height:1.75;
  font-size:.95rem;
}

/* ============ FINAL CTA / FORM ============ */
.cta-glow{
  background:radial-gradient(50% 50% at 50% 30%, rgba(75,171,211,.12), transparent 70%);
  pointer-events:none;
}
.contact-card{
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.09);
  border-radius:1.5rem;
  padding:2.25rem 2rem;
  backdrop-filter:blur(10px);
}
.field{
  display:flex;
  flex-direction:column;
  gap:.5rem;
}
.field label{
  font-size:.85rem;
  color:var(--muted);
}
.field input,
.field textarea{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:.7rem;
  padding:.85rem 1rem;
  font-family:'IBM Plex Sans Arabic', sans-serif;
  color:var(--ink);
  font-size:.95rem;
  transition:border-color .3s ease, background .3s ease;
}
.field input:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--primary);
  background:rgba(75,171,211,.06);
}
.field textarea{ resize:vertical; min-height:6rem; }
.form-note{
  color:var(--muted);
  font-size:.82rem;
  margin-top:1rem;
}

/* ============ REVEAL UTIL (initial state before GSAP) ============ */
.reveal-up{
  opacity:0;
  transform:translateY(36px);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .reveal-up{ opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
}

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