:root{
  --brand:#f97316;
  --brand-dark:#ea580c;
  --brand-light:#fed7aa;
  --slate-900:#0f172a;
  --slate-700:#334155;
  --slate-600:#475569;
  --slate-500:#64748b;
  --surface:#f8fafc;
}
html,body{height:100%;}
body{
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans";
  color:var(--slate-900);
  background:#fff;
}
.navbar{
  backdrop-filter: blur(10px);
  background:rgba(255,255,255,.9);
}
.navbar-brand img{height:42px;}
.navbar .nav-link{
  font-weight:500;
  color:var(--slate-700);
}
.navbar .nav-link:hover,
.navbar .nav-link.active{color:var(--brand);}

#hero{
  position:relative;
  min-height:calc(100vh - 72px);
  display:flex;
  align-items:center;
  background:linear-gradient(135deg, rgba(249,115,22,0.12), rgba(249,115,22,0.02));
  overflow:hidden;
}
#hero::after{
  content:"";
  position:absolute;
  inset:-30%;
  background:radial-gradient(circle at top right, rgba(249,115,22,0.25), transparent 55%);
  z-index:0;
}
#hero .container{position:relative; z-index:1;}
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  padding:.4rem .9rem;
  border-radius:999px;
  background:rgba(234,88,12,.12);
  color:var(--brand-dark);
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:.75rem;
}
.hero-title{
  font-size:clamp(2.6rem, 4vw + 1rem, 3.6rem);
  font-weight:800;
  line-height:1.1;
  color:var(--slate-900);
}
.hero-lead{
  max-width:560px;
  font-size:1.08rem;
  color:var(--slate-500);
}
.btn-brand{
  background:linear-gradient(135deg, var(--brand), var(--brand-dark));
  border:none;
  color:#fff;
  padding:.75rem 1.7rem;
  border-radius:999px;
  font-weight:600;
  box-shadow:0 15px 35px -12px rgba(249,115,22,0.55);
}
.btn-brand:hover{color:#fff; transform:translateY(-2px); box-shadow:0 18px 38px -15px rgba(249,115,22,.65);}
.btn-outline-brand{
  border:1px solid rgba(249,115,22,.4);
  border-radius:999px;
  padding:.75rem 1.7rem;
  font-weight:600;
  color:var(--brand);
  position:relative;
}
.btn-outline-brand:hover{
  color:#fff;
  background:var(--brand);
  border-color:var(--brand);
}

.section{
  padding:6rem 0;
}
.section-heading{
  display:flex;
  align-items:center;
  gap:.7rem;
  margin-bottom:1rem;
  color:var(--brand);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.8rem;
}
.section-title{
  font-size:2.2rem;
  font-weight:700;
  color:var(--slate-900);
}
.section-subtitle{
  max-width:560px;
  color:var(--slate-500);
}

.card-service{
  border:none;
  border-radius:24px;
  padding:2.2rem;
  background:#fff;
  box-shadow:0 35px 65px -45px rgba(15,23,42,0.45);
  transition:transform .3s ease, box-shadow .3s ease;
}
.card-service:hover{
  transform:translateY(-10px);
  box-shadow:0 40px 70px -40px rgba(249,115,22,0.45);
}
.card-service .icon{
  width:64px; height:64px;
  display:flex; align-items:center; justify-content:center;
  border-radius:18px;
  background:linear-gradient(135deg, rgba(249,115,22,.18), rgba(249,115,22,.05));
  color:var(--brand);
  font-size:1.6rem;
  margin-bottom:1.5rem;
}
.card-service p{color:var(--slate-500);}

.info-card{
  border-radius:24px;
  padding:2.2rem;
  background:#fff;
  box-shadow:0 30px 70px -50px rgba(15,23,42,.45);
  border:1px solid rgba(15,23,42,.05);
  height:100%;
}
.info-card h5{
  font-size:1.25rem;
  font-weight:700;
  color:var(--slate-900);
}
.info-card .info-text{
  color:var(--slate-600);
  line-height:1.75;
}

.badge-soft{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.35rem .75rem;
  border-radius:999px;
  background:rgba(249,115,22,.12);
  color:var(--brand-dark);
  font-weight:600;
}

.project-card{
  border:none;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 28px 60px -45px rgba(15,23,42,.45);
  transition:transform .3s ease, box-shadow .3s ease;
  height:100%;
}
.project-card img{
  height:220px;
  object-fit:cover;
}
.project-card:hover{
  transform:translateY(-8px);
  box-shadow:0 35px 75px -45px rgba(249,115,22,.5);
}
.project-card .card-body{min-height:220px;}
.project-card .category{
  font-size:.85rem;
  font-weight:600;
  color:var(--brand-dark);
}
.project-card p{color:var(--slate-500);}

.partner-card{
  border:none;
  border-radius:18px;
  padding:1.5rem;
  background:#fff;
  box-shadow:0 20px 55px -45px rgba(15,23,42,.4);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform .3s ease;
  height:100%;
}
.partner-card:hover{transform:translateY(-8px);}
.partner-card img{
  max-height:70px;
  object-fit:contain;
}

.contact-card{
  border-radius:24px;
  padding:2.4rem;
  background:#fff;
  box-shadow:0 35px 80px -50px rgba(15,23,42,.5);
  border:1px solid rgba(15,23,42,.05);
}
.contact-details{
  border-radius:24px;
  padding:2.4rem;
  background:linear-gradient(160deg, rgba(249,115,22,.12), rgba(249,115,22,.05));
  height:100%;
}
.contact-details li{
  display:flex;
  gap:1rem;
  align-items:flex-start;
  padding:.75rem 0;
  border-bottom:1px solid rgba(15,23,42,.08);
  color:var(--slate-600);
}
.contact-details li:last-child{border-bottom:none;}
.contact-details .icon{
  width:36px; height:36px; border-radius:12px;
  background:rgba(249,115,22,.12);
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem;
  color:var(--brand);
}
.contact-details strong{
  display:block;
  color:var(--slate-900);
  font-weight:700;
}
.contact-details span{color:var(--slate-600);}

.footer{
  background:#0f172a;
  color:#cbd5f5;
}
.footer a{color:#f97316; text-decoration:none;}
.footer a:hover{text-decoration:underline;}

.table thead th{white-space:nowrap;}
.form-help{font-size:12px; color:#6b7280;}

.reveal{opacity:0; transform:translateY(50px); transition:opacity .6s ease, transform .6s ease;}
.reveal.show{opacity:1; transform:translateY(0);}

@media (max-width: 991px){
  #hero{min-height:auto; padding:6rem 0 4rem;}
  .section{padding:4.5rem 0;}
  .card-service{padding:1.8rem;}
  .contact-details{margin-top:2rem;}
}

