/* ---------- Brand tokens ---------- */
:root{
  --brand:#0db5a3;
  --brand-600:#0aa694;
  --brand-soft:#e7fbf8;
  --heading-color:#0f3d3e;
  --text:#344054;
  --muted:#6b7b87;
  --surface:#ffffff;
  --surface-2:#f6faf9;
  --deep:#0e2f31;
  --radius-lg:16px;
  --radius-xl:22px;
  --shadow:0 10px 30px rgba(13,181,163,.15);
  --transition:all 0.3s ease;
}

/* ---------- Base ---------- */
html,body{scroll-behavior:smooth;}
body{
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  color:var(--text);
  background:#fff;
  line-height:1.7;
  font-size:16px;
}

/* links + buttons */
a{text-decoration:none; transition: var(--transition);}
.text-primary-brand{color:var(--brand)!important;}
.btn-brand{
  background:var(--brand);
  color:#fff;
  border:none;
  padding:.85rem 1.6rem;
  border-radius:12px;
  font-weight:600;
  transition: var(--transition);
}
.btn-brand:hover{background:var(--brand-600); color:#fff; transform: translateY(-2px);}

/* navbar */
.navbar .nav-link{
  font-weight:500;
  color:#3a4a55;
  transition: var(--transition);
}
.navbar .nav-link:hover,
.navbar .nav-link.active{color:var(--brand)!important; transform: scale(1.05);}

/* helpers */
.badge-soft{
  background:var(--brand-soft);
  color:var(--brand);
  font-weight:600;
  border-radius:999px;
  padding:.5rem .9rem;
  font-size:.85rem;
  display:inline-block;
  transition: var(--transition);
}
.badge-soft:hover{background:var(--brand-600); color:#fff;}

/* Sections */
.section{padding:80px 0; scroll-margin-top:70px;}
.section-title{
  font-size:3rem;
  font-weight:700;
  line-height:1.2;
  color:var(--heading-color);
  margin-bottom:32px;
  opacity:0; transform:translateY(20px);
  animation:fadeUp 0.6s forwards;
}
.section-lead{
  font-size:1.1rem;
  color:var(--muted);
  opacity:0; transform:translateY(20px);
  animation:fadeUp 0.6s 0.2s forwards;
}

/* Cards */
.soft-card{
  background:var(--surface);
  border:1px solid #eef3f3;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
  transition: var(--transition);
}
.soft-card.flat{ box-shadow:none; }
.soft-card:hover{ transform: translateY(-6px); box-shadow:0 14px 28px rgba(0,0,0,0.12); }

/* Hero */
.hero{
  background: var(--surface-2);
}
.hero h1{
  font-size:3.5rem;
  font-weight:700;
}
.hero p{font-size:1.15rem; color:var(--muted);}
.hero .stats h3{font-size:1.8rem;}

/* About */
.about h2{font-size:2.5rem; color:var(--heading-color);}
.about p{font-size:1rem;}

/* Features */
.features{
  background:#f9fbfb;
}
.features h2{font-size:2.5rem; margin-bottom:15px;}
.features .card{
  border-radius:var(--radius-lg);
  transition:var(--transition);
}
.features .card:hover{transform:translateY(-5px) scale(1.02);}
.features .icon{color:var(--brand); transition:var(--transition);}
.features .icon:hover{transform:rotate(10deg) scale(1.1);}

/* Feature cards */
.feature-card:hover{ transform:translateY(-6px) scale(1.02); box-shadow:var(--shadow);}
.feature-card h4{ font-weight:600; color:var(--heading-color); }
.feature-card p{ color:var(--muted); }
.feature-card ul li{ color:var(--text); margin-bottom:6px; }
.feature-card .link-brand{ color:var(--brand); font-weight:600; text-decoration:none; }
.feature-card .link-brand:hover{ text-decoration:underline; }

/* Status Cards */
.status-card{ border:1px solid #f1f1f1; border-radius:var(--radius-lg); transition:var(--transition);}
.status-card:hover{ transform:translateY(-4px); box-shadow:0 12px 24px rgba(0,0,0,0.08); }
.status-card h6{ font-weight:600; color:var(--heading-color); margin-bottom:10px; }
.badge-status{ display:inline-block; font-size:.85rem; padding:5px 12px; border-radius:20px; font-weight:600; }
.badge-status.in-dev{ background:#e0e7ff; color:#3b82f6; }
.badge-status.implemented{ background:#d1fae5; color:#059669; }
.badge-status.scheduled{ background:#e5e7eb; color:#374151; }

/* Highlights */
.highlight{ background:var(--brand); color:#fff; text-align:center; padding:60px 20px; border-radius:var(--radius-lg);}
.highlight h2{ font-size:2.8rem; line-height:1.3; margin-bottom:15px; }
.highlight p{ font-size:1.1rem; max-width:500px; margin:0 auto; }

/* Services */
.services .soft-card:hover{ transform:translateY(-8px) scale(1.03); box-shadow:0 16px 32px rgba(0,0,0,0.12); }
.services h5{ font-weight:600; color:var(--heading-color); font-size:1.2rem; }
.services p{ color:var(--muted); font-size:0.95rem; }

/* Excellence */
.excellence{ background:#0f3d3e; color:#fff; padding:80px 0; text-align:center; }
.excellence h2{font-size:2.6rem;}
.excellence p{color:#dfe6e6; font-size:1rem;}
.excellence .display-5{font-size:2.5rem;}

/* FAQ */
.faq h2{font-size:2.5rem;}
.faq .accordion-button{ font-weight:500; color:var(--heading-color); transition:var(--transition);}
.faq .accordion-button:focus{ box-shadow:none; }
.faq .accordion-body{ color:var(--muted); font-size:1rem; }

/* CTA */
.final-cta{ background:var(--brand); color:#fff; text-align:center; padding:80px 20px; border-radius:var(--radius-lg);}
.final-cta h2{ font-size:2.8rem; }
.final-cta p{ max-width:700px; margin:0 auto; font-size:1.1rem; }

/* Contact Section */
.contact{ background:#f4fafa; padding:80px 0; }
.section-label{ font-size:.85rem; font-weight:600; color:#009688; letter-spacing:1px; text-transform:uppercase; display:block; margin-bottom:10px; }
.section-title{ font-size:2.2rem; font-weight:700; color:#0d2a2e; margin-bottom:15px; }
.section-desc{ font-size:1rem; color:#6c757d; margin-bottom:25px; line-height:1.6; }
.contact-details .detail-item{ display:flex; align-items:center; margin-bottom:15px; font-size:0.95rem; color:#333; }
.contact-details .detail-item i{ color:#009688; font-size:1.2rem; margin-right:12px; }
.open-map{ display:inline-block; font-weight:600; color:#009688; margin-top:10px; text-decoration:none; }
.open-map:hover{text-decoration:underline; }
.form-card{ background:#fff; padding:35px; border-radius:12px; box-shadow:0 8px 24px rgba(0,0,0,0.06); }
.form-card .form-control{ border:1px solid #e3e9eb; border-radius:8px; margin-bottom:15px; padding:12px 15px; font-size:.95rem; transition:var(--transition);}
.form-card .form-control:focus{ border-color:#009688; box-shadow:0 0 0 0.2rem rgba(0,150,136,.1); }
.btn-submit{ display:block; width:100%; background:#009688; color:#fff; border:none; padding:14px; font-size:1rem; font-weight:600; border-radius:8px; transition:0.3s;}
.btn-submit:hover{ background:#00796b; transform:translateY(-2px); }

/* Footer */
.footer.bg-deep{ background:var(--deep); }
.footer a{ color:#f1f1f1; transition:var(--transition);}
.footer a:hover{ color:var(--brand); }
.footer .text-footer{ color:#d8e4e5; transition:var(--transition);}
.footer .text-footer:hover{ color:#fff; }

/* Rounded images */
.rounded-xl{ border-radius:var(--radius-xl)!important; }

/* ---------- Animations ---------- */
@keyframes fadeUp{
  to{opacity:1; transform:translateY(0);}
}
@keyframes fadeIn{
  from{opacity:0;}
  to{opacity:1;}
}

/* ---------- Responsive ---------- */
@media(max-width:1200px){
  .hero h1{ font-size:3rem; }
  .section-title{ font-size:2rem; }
  .section-lead{ font-size:1rem; }
  .services h5{ font-size:1.1rem; }
  .final-cta h2{ font-size:2.2rem; }
}

@media(max-width:768px){
  .hero h1{ font-size:2.2rem; }
  .section-title{ font-size:1.8rem; }
  .section-lead{ font-size:.95rem; }
  .services h5{ font-size:1rem; }
  .final-cta h2{ font-size:1.8rem; }
  .final-cta p{ font-size:1rem; }
}

@media(max-width:480px){
  .hero h1{ font-size:1.8rem; }
  .section-title{ font-size:1.5rem; }
  .section-lead{ font-size:.9rem; }
  .services h5{ font-size:.95rem; }
  .final-cta h2{ font-size:1.5rem; }
  .final-cta p{ font-size:.95rem; }
}
