:root{
  --bg:#070b18;
  --bg2:#0a1024;
  --card:rgba(15,23,42,.72);
  --card2:rgba(2,6,23,.70);
  --text:#e6ecff;
  --muted:#a7b3e6;
  --border:rgba(148,163,184,.18);

  --brand:#b44cff;   /* purple */
  --brand2:#22d3ee;  /* cyan */
  --radius:22px;
  --shadow:0 30px 90px rgba(0,0,0,.55);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}

/* LIGHT THEME - VISIBLE VERTICAL WAVES (GREEN + LIGHT RED) */
body{
  font-family: Inter, system-ui, sans-serif;
  color:#0f172a;
  overflow-x:hidden;
  background:#ffffff;
  position:relative;
}

/* 1) Main moving vertical gradient */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;

  background: linear-gradient(
    180deg,
    rgba(144,238,144,.55) 0%,
    rgba(255,205,205,.30) 25%,
    rgba(144,238,144,.35) 50%,
    rgba(255,190,190,.30) 75%,
    rgba(144,238,144,.50) 100%
  );

  background-size: 100% 380%;        /* BIG so movement shows */
  background-position: 0% 0%;
  animation: vWave 8s ease-in-out infinite;  /* faster */
}

/* 2) Extra wave texture layer (makes motion obvious) */
body::after{
  content:"";
  position:fixed;
  inset:-10%;
  z-index:-1;

  background:
    repeating-linear-gradient(
      180deg,
      rgba(144,238,144,.14) 0px,
      rgba(144,238,144,.14) 120px,
      rgba(255,180,180,.12) 120px,
      rgba(255,180,180,.12) 240px
    );
  background-size: 100% 260%;
  opacity:.55;
  mix-blend-mode: multiply;
  animation: vWave2 20s linear infinite; /* continuous visible movement */
  filter: blur(10px);
}

/* keyframes */
@keyframes vWave{
  0%   { background-position: 0% 0%; }
  50%  { background-position: 0% 85%; }
  100% { background-position: 0% 0%; }
}
@keyframes vWave2{
  0%   { background-position: 0% 0%; }
  100% { background-position: 0% 100%; }
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1180px;margin:0 auto;padding:0 18px}
.section{padding:70px 0}
.grid{display:grid;gap:16px}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:12px 18px;
  border-radius:14px;

  background:linear-gradient(135deg,#22C55E,#16A34A);
  color:#ffffff;

  border:none;
  font-weight:600;
  letter-spacing:.2px;

  box-shadow:
    0 8px 22px rgba(22,163,74,.28),
    inset 0 1px 0 rgba(255,255,255,.25);

  cursor:pointer;
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    background .2s ease;
}

/* Hover */
.btn:hover{
  transform:translateY(-2px);
  box-shadow:
    0 14px 34px rgba(22,163,74,.35);
}

/* Click feel (important mobile UX) */
.btn:active{
  transform:translateY(0);
  box-shadow:0 6px 14px rgba(22,163,74,.25);
}

/* Secondary Button */
.btn.secondary{
  background:rgba(255,255,255,.65);
  color:#374151;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:none;
}

.btn.secondary:hover{
  background:rgba(255,255,255,.85);
}

.pill{
  display:inline-flex;gap:8px;align-items:center;
  padding:7px 12px;border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: #6B7280;
  font-size:13px;
}

.card{
  border:0px solid var(--border);
  background: linear-gradient(135deg, rgba(14,165,233,.40), rgba(2,6,23,.60));
  border-radius:var(--radius);
  box-shadow: var(--shadow);
  padding:18px;
  display:flex;
  flex-direction:column;
}
.card.soft{
  background: rgba(255,255,255,.06);
  box-shadow: none;
}

/* Reusable image card */
.card2{
  border:none;
  box-shadow:none;

  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;

  border-radius:var(--radius);
  padding:40px 30px;
  position:relative;
  overflow:hidden;
}

/* FIXED: your overlay had invalid color + bracket -> was breaking CSS */
.card2::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(
    rgba(255,255,255,.60),
    rgba(255,255,255,.15)
  );
}

.card2 > *{
  position:relative;
  z-index:2;
}

.topbar{
  position:sticky;top:0;z-index:50;
  backdrop-filter: blur(10px);
  background: rgba(7,11,24,.55);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;gap:14px;
}
.brand{
  display:flex;align-items:center;gap:10px;
  font-weight:700;letter-spacing:.2px;
}
.logoMark{
  width:36px;height:36px;border-radius:12px;
  background: radial-gradient(circle at 30% 30%, rgba(180,76,255,.9), rgba(34,211,238,.55));
  box-shadow: 0 12px 40px rgba(180,76,255,.22);
  border:1px solid rgba(255,255,255,.14);
}
.navlinks{display:flex;gap:14px;flex-wrap:wrap}
.navlinks a{
  padding:9px 12px;border-radius:12px;
  color: rgba(230,236,255,.88);
  border:1px solid transparent;
}
.navlinks a:hover{border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.05)}
.navcta{display:flex;gap:10px;align-items:center}

.hero{
  padding:70px 0 20px;
}
.heroGrid{
  display:grid;gap:18px;
  grid-template-columns: 1.3fr .9fr;
  align-items:stretch;
}

.h1{
  font-size: clamp(24px, 2.8vw, 40px);
  line-height: 1.18;
  letter-spacing: -0.3px;
  font-weight: 650;
  margin: 0 0 12px;
}
.h2{
  font-size:16px;
  line-height:1.65;
  color:#374151;
  margin:0 0 18px;
}

.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.kpi{
  padding:14px;border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
}
.kpi b{display:block;font-size:18px}
.kpi span{color: rgba(230,236,255,.70);font-size:13px}

.heroCard{
  position:relative;
  overflow:hidden;
}
.heroCard::before{
  content:"";
  position:absolute;inset:-60px;
  background:
    radial-gradient(380px 180px at 20% 10%, rgba(180,76,255,.35), transparent 60%),
    radial-gradient(320px 200px at 80% 20%, rgba(34,211,238,.28), transparent 60%),
    linear-gradient(90deg, rgba(255,255,255,.06), transparent 35%, rgba(255,255,255,.05));
  filter: blur(0px);
  opacity:.85;
}
.heroCardInner{position:relative}

.heroList{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.heroList li{
  display:flex;gap:10px;align-items:flex-start;
  padding:12px;border-radius:16px;
  background: rgba(0,0,0,.18);
  border:1px solid rgba(255,255,255,.10);
}

.heroSplit{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:18px;
  padding:18px;
  overflow:hidden;
}
.heroLeft{
  padding:18px 18px 18px 18px;
}
.heroRight{
  border-radius: calc(var(--radius) - 6px);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 420px;
  position: relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
}
.heroRight::after{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(circle at 30% 30%, rgba(180,76,255,.12), transparent 55%),
              linear-gradient(180deg, rgba(2,6,23,.10), rgba(2,6,23,.25));
}

@media (max-width: 980px){
  .heroSplit{
    grid-template-columns: 1fr;
  }
  .heroRight{
    min-height: 320px;
  }
}

.dot{
  width:10px;height:10px;border-radius:999px;margin-top:6px;
  background: linear-gradient(135deg, var(--brand), var(--brand2));
  box-shadow: 0 8px 20px rgba(180,76,255,.24);
}
.small{color: rgba(230,236,255,.72);font-size:14px;line-height:1.55}

.titleRow{
  display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px;
}
.titleRow h3{margin:0;font-size:22px}
.titleRow p{margin:0;color:#6B7280;max-width:560px}

.cards3{grid-template-columns:repeat(3,1fr)}
.cards2{grid-template-columns:repeat(2,1fr)}
.cards4{grid-template-columns:repeat(4,1fr)}

.itemTitle{margin:0 0 6px;font-size:18px}
.itemText{margin:0;color:#1F2937;line-height:1.6;font-size:14px}

/* ===== NEW FOOTER ONLY (Left | Center | Right) ===== */
.footer{
  padding:22px 0;
  border-top:1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
}

.footerRow{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  gap:18px;
  font-size:14px;
  color: rgba(15,23,42,.82);
}

.footerLeft{ text-align:left; }

.footerCenter{ text-align:center; }
.designText{
  font-size:14px;
  opacity:.75;
  margin-bottom:8px;
}

.webcraftLogo{
  height:42px;
  width:auto;
  max-width:180px;
  display:block;
  margin:0 auto;
}

.footerRight{
  display:flex;
  justify-content:flex-end;
  gap:18px;
}

.footerRight a{
  opacity:.85;
}
.footerRight a:hover{
  opacity:.65;
}

@media (max-width:768px){
  .footerRow{
    grid-template-columns:1fr;
    text-align:center;
  }
  .footerLeft{ text-align:center; }
  .footerRight{ justify-content:center; }
}

/* Forms */
.formRow{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
.field{
  display:flex;flex-direction:column;gap:8px;
}
.field label{font-size:13px;color: #1E3A8A}
.field input, .field textarea{
  width:100%;
  padding:12px 14px;border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--text);
  outline:none;
}
.field textarea{min-height:120px;resize:vertical}
.note{
  font-size:13px;
  color: rgba(230,236,255,.72);
  margin-top:10px;
}

.note2{
  font-size:13px;
  color: #1F2937;
  margin-top:10px;
}

/* responsive */
@media (max-width: 980px){
  .heroGrid{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(3,1fr)}
  .cards3,.cards4{grid-template-columns:1fr}
  .cards2{grid-template-columns:1fr}
}
@media (max-width: 560px){
  .kpis{grid-template-columns:1fr}
  .formRow{grid-template-columns:1fr}
}

/* ===== Mobile Nav Drawer ===== */
.navToggle{
  display:none;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color: rgba(230,236,255,.92);
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 18px;
  line-height: 1;
}

@media (max-width: 900px){
  .nav{
    padding:10px 0;              /* topbar height reduce */
  }

  .navlinks{ display:none; }     /* hide links */
  .navcta{ display:none; }       /* hide Book Appointment on bar */
  .navToggle{ display:inline-flex; align-items:center; justify-content:center; }
}

/* Drawer backdrop */
.navDrawer{
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(6px);
  display:none;
  z-index:9999;
}

.navDrawer.open{ display:block; }

/* Slide panel */
.navPanel{
  position:absolute;
  top:0; right:0;
  height:100%;
  width:min(84vw, 340px);
  background: rgba(7,11,24,.92);
  border-left: 1px solid rgba(255,255,255,.10);
  padding:16px;
  transform: translateX(100%);
  transition: transform .25s ease;
}

.navDrawer.open .navPanel{ transform: translateX(0); }

.navPanelTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom: 10px;
}

.navPanelTitle{
  font-weight:700;
  color: rgba(230,236,255,.92);
}

.navClose{
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color: rgba(230,236,255,.92);
  border-radius: 12px;
  padding: 8px 10px;
  font-size: 16px;
}

.navPanel a{
  display:block;
  padding:12px 12px;
  margin:8px 0;
  border-radius: 14px;
  color: rgba(230,236,255,.90);
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
}

.navPanel a:hover{ background: rgba(255,255,255,.10); }

.navPanelCta{
  margin-top: 14px;
  text-align:center;
  background: linear-gradient(135deg, rgba(180,76,255,.22), rgba(34,211,238,.16)) !important;
}

.list1{
  list-style:none;
  padding-left:0;
  margin:10px 0 14px;
}

.list1 li{
  position:relative;
  padding-left:18px;
  margin:4px 0;
  font-size:15px;
  color:rgba(15,23,42,.72);   /* lighter text */
  line-height:1.5;
}

.card-image{
  margin-top:auto;
  border-radius:18px;
  overflow:hidden;
  height:190px;
  position:relative;
}

.card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* soft medical overlay */
.card-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
      180deg,
      rgba(255,255,255,.05),
      rgba(0,0,0,.15)
  );
}