
/* -------------------------
   Variables & reset
   ------------------------- */
   html {
  scroll-behavior: smooth;
}
:root{
  --bg: #d8f9ff;
  --ink: #062433;
  --muted: #0b4b6b;
  --accent: #f28b66;
  --accent-2: #ff9f80;
  --ease: cubic-bezier(.2,.9,.3,1);
  --anim-duration: 640ms;

}


* { box-sizing: border-box; margin:0; padding:0; }
html,body { height:100%; }
body {
  font-family: 'Poppins', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background: var(--bg);
  color: var(--ink);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  min-height:100vh;
}

/* NAVBAR */
.navbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 60px;
  border-bottom:2px solid #000;
  position:sticky;
  top:0;
  background:var(--bg);
  z-index:50;
}

.logo { display:flex; align-items:center; gap:12px; }
.logo-img { width:42px; height:auto; display:block; }
.brand { font-family: 'Playfair Display', serif; font-size:22px; letter-spacing:1px; }

/* nav links */
nav ul {
  list-style:none;
  display:flex;
  gap:28px;
  align-items:center;
}
nav a {
  text-decoration:none;
  color:var(--ink);
  font-weight:500;
  padding-bottom:6px;

    font-family: 'Lato', sans-serif;
  font-weight: 500;
  letter-spacing: 0.5px;
}
nav a:hover, nav a.active { border-bottom:2px solid #000; }

/* menu button for small screens */
.menu-btn {
  display:none;
  background:transparent;
  border:none;
  font-size:26px;
  cursor:pointer;
}

/* HERO layout */
.hero{
  display:flex;
  gap:30px;
  align-items:center;
  justify-content:space-between;
  padding:65px 100px 80px 100px; /* bottom extra room for waves */
  position:relative;
  overflow:visible;
}

.hero-text{ flex:1; max-width:560px; }
.hero-text h2{
  font-family: 'Playfair Display', serif;
  font-size:3.2rem;
  line-height:1.08;
  color:var(--ink);
  margin-bottom:18px;
}
.hero-text p{
  color:var(--muted);
  font-size:1.05rem;
  margin-bottom:28px;
}
.Text-Bold {
 
  font-size: 1.14rem;
   font-weight: 520;
   color: #183dc5d9;
}
.btn{
  background:var(--accent);
  border:none;
  padding:14px 36px;
  border-radius:8px;
  font-weight:700;
  cursor:pointer;
  transition: transform 220ms var(--ease), background 220ms var(--ease);
}
.btn:hover{ transform:translateY(-4px); background:var(--accent-2); }

/* hero image */
.hero-image{ flex:1; display:flex; justify-content:center; align-items:center; }
.image-wrap{
  width:440px;
 /* border-radius: 48% 32% 48% 28% / 42% 60% 30% 70%; 
  overflow:hidden;
  box-shadow: 0 18px 40px rgba(2,18,33,0.12); */
  transform-origin:center;
}
.image-wrap img{ width:100%; height:auto; display:block; }

/* ===== Scroll to Top Button ===== */
#scrollTopBtn {
  position: fixed;
  bottom: 35px;
  right: 35px;
  z-index: 999;
  background: linear-gradient(135deg, #0078ff, #00c6ff);
  color: #fff;
  border: none;
  outline: none;
  padding: 14px 18px;
  border-radius: 50%;
  font-size: 1.3rem;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 120, 255, 0.45);
  opacity: 0;
  visibility: hidden;
  transform: translateY(40px);
  transition: all 0.4s ease;
}

#scrollTopBtn:hover {
  background: linear-gradient(135deg, #00c6ff, #0078ff);
  transform: translateY(-5px) scale(1.08);
  box-shadow: 0 8px 22px rgba(0, 120, 255, 0.6);
}

#scrollTopBtn.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
/* WAVES - positioned at bottom, pointer-events:none so they won't capture clicks */
.waves{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  height:180px;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}

/* both svg waves full width scaled a bit to create parallax */
.wave{ position:absolute; bottom:0; width:200%; height:100%; left:-20%; opacity:0.95; transform-origin:center; }
.wave path { fill:#bfeaff; }

/* slight differences for depth */
.wave1 { animation: waveMove1 10s linear infinite; opacity:0.9; }
.wave1 path { fill:#bfeaff; }

.wave2 { animation: waveMove2 14s linear infinite reverse; opacity:0.6; filter: blur(6px) saturate(105%); }
.wave2 path { fill:#c2ecff; }

/* Animation keyframes for waves */
@keyframes waveMove1 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-12%) translateY(-6px) rotate(.001deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes waveMove2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(10%) translateY(6px) rotate(.001deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

/* -------------------------
   Animation utilities
   ------------------------- */
/* no transitions until JS toggles .js-ready on body — prevents "jump" on load */
.animate {
  opacity:0;
  transform: translateY(20px) scale(0.995);
  /* store per-item delay via --delay */
  --delay: 0ms;
}

/* only enable transitions after JS ready */
body.js-ready .animate {
  transition: opacity var(--anim-duration) var(--ease) var(--delay),
              transform var(--anim-duration) var(--ease) var(--delay);
}

/* when element enters viewport */
.in-view {
  opacity:1 !important;
  transform: translateY(0) scale(1) !important;
}

/* allow CSS delay control (we will set via JS) */
.animate { transition-delay: var(--delay); }

/* accessibility: respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .wave, .hero-image img, .btn, .animate, .wave path { animation: none !important; transition: none !important; transform: none !important; }
}

/* -------------------------
   Responsive
   ------------------------- */
@media (max-width: 1000px){
  .hero{ padding:60px 40px 160px 40px; flex-direction:column-reverse; text-align:center; gap:28px; }
  .image-wrap{ width:360px; margin-top:8px; }
  .hero-text{ max-width:820px; margin-top:8px; }
  .hero-text h2{ font-size:2.4rem; }
}

@media (max-width: 1100px){
  .navbar{ padding:14px 20px; }
  .menu-btn{ display:block; }
  nav ul{ display:none; position:absolute; top:62px; right:0; left:0; background:var(--bg); flex-direction:column; gap:14px; padding:14px 20px; border-top:2px solid #000; z-index:60; }
  nav ul.show { display:flex; }
  .hero{ padding:40px 18px 140px 18px; }
  .image-wrap{ width:300px; }
  .hero-text h2{ font-size:1.9rem; }
}

@media (max-width:420px){
  .image-wrap{ width:240px; }
  .hero-text h2{ font-size:1.6rem; }
  .btn{ padding:12px 20px; }
}

/* ==========================
   Product & Services Section
   ========================== */
.services-section {
/*  background: #f5fbff;  */
  padding: 100px 80px 40px 80px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.section-title {
  font-family: 'Playfair Display', serif;
  font-size: 2.8rem;
  color: #062433;
  margin-bottom: 60px;
  position: relative;
  display: inline-block;
}

.section-title span {
  color: #0078ff;
  position: relative;
}

.section-title::after {
  content: "";
  display: block;
  width: 0;
  height: 3px;
  background: #0078ff;
  margin: 8px auto 0;
  transition: width 0.8s ease;
}

.section-title.in-view::after {
  width: 80%;
}

/* Grid layout */
.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 30px;
  max-width: 1100px;
  margin: 30px;
}

.service-card {
  background: #fff;
  border-radius: 16px;
  padding: 2rem 1.5rem;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
  transition: all 0.4s ease;
  margin: 30px;
}

.service-card i {
  font-size: 2.8rem;
  color: #0078ff;
  margin-bottom: 1rem;
  transition: all 0.4s ease;
}

.service-card h3 {
  font-size: 1.3rem;
  margin-bottom: 0.8rem;
}

.service-card p {
  font-size: 0.95rem;
  color: #0b4b6b;
}

/* Hover animation */
.service-card:hover {
  transform: translateY(-10px) scale(1.03);
  box-shadow: 0 12px 24px rgba(0, 120, 255, 0.50);
}

.service-card:hover i {
  transform: rotate(10deg) scale(1.15);
  color: #0056d6;
  text-shadow: 0 0 10px rgba(0, 120, 255, 0.4);
}

/* Responsive */
@media (max-width: 768px) {
  .services-section {
    padding: 70px 20px;
  }

  .section-title {
    font-size: 2rem;
  }
}



  /* ========================= 
        Global Footer 
  ========================== */
.site-footer {
  background: radial-gradient(circle at top right, #001f3f, #000814);
  color: #fff;
  padding: 60px 10%;
  position: relative;
  overflow: hidden;
}

.footer-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 40px;
  margin-bottom: 40px;
}

.footer-col h2 {
  color: #00d4ff;
  font-size: 1.8em;
  margin-bottom: 15px;
}

.footer-col h3 {
  color: #00d4ff;
  font-size: 1.2em;
  margin-bottom: 15px;
}

.footer-col p {
  color: #ccc;
  line-height: 1.6;
  font-size: 0.95em;
}

.footer-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-col ul li {
  margin: 8px 0;
  color: #ddd;
  font-size: 0.95em;
}

.footer-col ul li i {
  color: #00d4ff;
  margin-right: 10px;
}

.footer-col ul li a {
  text-decoration: none;
  color: #ccc;
  transition: color 0.3s;
}

.footer-col ul li a:hover {
  color: #00d4ff;
}

.social-links a {
  color: #fff;
  font-size: 1.2em;
  margin-right: 15px;
  transition: color 0.3s, transform 0.3s;
}

.social-links a:hover {
  color: #00d4ff;
  transform: scale(1.2);
}

.footer-bottom {
  text-align: center;
  border-top: 1px solid #111;
  padding-top: 20px;
  color: #aaa;
  font-size: 0.9em;
}

/* ===== Animation (fade-up) ===== */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  animation: fadeUp 1.2s ease forwards;
}

@keyframes fadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}



  /* ===== Dropdown Styles ===== */
.dropdown {
  position: relative;
}

.dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
  min-width: 230px;
  padding: 10px 0;
  z-index: 1000;
}

.dropdown:hover > .dropdown-menu {
  display: block;
  animation: fadeDrop 0.3s ease forwards;
}

.dropdown-menu li {
  position: relative;
}

.dropdown-menu a {
  display: block;
  padding: 10px 18px;
  color: var(--ink);
  font-weight: 500;
  transition: all 0.3s ease;
}

.dropdown-menu a:hover {
  background: #e8f4ff;
  color: var(--muted);
}

/* ===== Sub-dropdown ===== */
.sub-dropdown-menu {
  display: none;
  position: absolute;
  top: 0;
  left: 100%;
  background: #fff;
  border-radius: 8px;
  min-width: 230px;
  padding: 10px 0;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}



@keyframes fadeDrop {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeDropRight {
  from {
    opacity: 0;
    transform: translateX(10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* ===== Mobile dropdown fix ===== */
@media (max-width: 1100px) {
  .dropdown-menu,
  .sub-dropdown-menu {
    position: static;
    box-shadow: none;
    background: transparent;
    padding-left: 15px;
  }


  .dropdown-menu a,
  .sub-dropdown-menu a {
    background: transparent;
    padding: 8px 0;
  }
}


.sub-dropdown-menu.show {
  animation: fadeDropRight 0.3s ease forwards;
}

.dropdown-menu.show,
.sub-dropdown-menu.show {
  display: block !important;
  opacity: 1;
  visibility: visible;
}

 