:root{
  /* Colores basados en tu logo */
  --navy:#0b2a4a;
  --navy-2:#0a223c;
  --panel:#0f2f52;
  --text:#f2f6fb;
  --muted:#b9c8da;

  --blue:#39a9e6;     /* “Services” */
  --orange:#f5a11b;
  --red:#e6453a;
  --green:#38b24a;

  --shadow: 0 12px 34px rgba(0,0,0,.28);
  --radius: 16px;
  --radius-sm: 12px;
  --max: 1120px;
}

*{box-sizing:border-box}
html,body{margin:0; padding:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;}
body{
  background: radial-gradient(1100px 520px at 12% -10%, rgba(57,169,230,.22), transparent 55%),
              radial-gradient(900px 480px at 110% 10%, rgba(245,161,27,.18), transparent 55%),
              linear-gradient(180deg, var(--navy), #061a2e);
  color:var(--text);
}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
.container{width:min(100% - 40px, var(--max)); margin-inline:auto}
.grid{display:grid; gap:18px}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:12px 18px; border-radius:999px; font-weight:800;

  border: 1px solid rgba(245,161,27,.45);
  background: linear-gradient(135deg, rgba(245,161,27,1), rgba(245,161,27,.78));
  color:#1c1405;

  box-shadow: 0 10px 22px rgba(245,161,27,.22);
  transition: transform .15s ease, filter .15s ease;
}
.btn:hover{transform: translateY(-1px); filter:saturate(1.08)}
.btn.secondary{
  background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  color: var(--text);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:none;
}
.btn.ghost{
  background: transparent;
  color: var(--text);
}

/* Header / Nav */
header{
  position: sticky; top:0; z-index:50;
  backdrop-filter: blur(10px);
  background: linear-gradient(180deg, rgba(6,26,46,.92), rgba(6,26,46,.60));
  border-bottom: 1px solid rgba(255,255,255,.10);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding: 12px 0;
  gap:16px;
}
.brand{
  display:flex; align-items:center; gap:12px;
  font-weight:900; letter-spacing:.2px;
}
.brand img{
  width: 52px; height: 52px;
  object-fit: contain;
  border-radius: 12px;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  padding:8px;
}
.brand small{
  display:block; color: rgba(255,255,255,.75);
  font-weight:700; letter-spacing:.3px;
  margin-top:2px;
}
nav ul{display:flex; list-style:none; gap:10px; padding:0; margin:0}
nav a{
  color: var(--muted); font-weight:800; font-size:.95rem;
  padding:10px 12px; border-radius: 12px;
  transition: background .15s ease, color .15s ease;
}
nav a:hover{color: var(--text); background: rgba(255,255,255,.08)}
nav a.active{color: var(--text); background: rgba(57,169,230,.18); border:1px solid rgba(57,169,230,.25)}

.nav-cta{display:flex; gap:10px; align-items:center}
.burger{
  display:none;
  width:40px; height:40px; border-radius: 12px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--text);
  cursor:pointer;
}
.mobile-panel{display:none; padding: 6px 0 16px}
.mobile-panel a{
  display:block; padding: 10px 12px; margin: 6px 0;
  border-radius: 12px; background: rgba(255,255,255,.06);
  color: var(--muted); font-weight:800;
}

/* Sections */
section{padding: 34px 0}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:14px; margin-bottom: 14px;}
.section-head h1,.section-head h2{margin:0; letter-spacing:-.6px}
.section-head p{margin:6px 0 0; color: var(--muted); line-height:1.55}

.card{
  background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  border:1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 22px;
}
.kicker{
  display:inline-flex; gap:10px; align-items:center;
  padding: 7px 12px; border-radius: 999px;
  background: rgba(57,169,230,.18);
  border:1px solid rgba(57,169,230,.25);
  color: rgba(255,255,255,.92);
  font-weight:900; font-size:.86rem;
}
.hero{
  padding: 44px 0 26px;
}
.hero-wrap{
  display:grid; gap:18px;
  grid-template-columns: 1.15fr .85fr;
}
.hero h1{
  margin: 14px 0 10px;
  font-size: clamp(2.0rem, 3.1vw, 3.2rem);
  line-height: 1.05;
}
.hero p{color: var(--muted); font-size: 1.05rem; line-height:1.65; margin: 0 0 18px}
.hero-actions{display:flex; gap:10px; flex-wrap:wrap}

.stat{
  display:flex; justify-content:space-between; align-items:center;
  padding: 14px 14px;
  border-radius: var(--radius-sm);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.14);
}
.stat b{font-size:1.2rem}
.stat span{color: var(--muted); font-weight:800}

.badge-row{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px}
.badge{
  padding:8px 10px; border-radius: 999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  font-weight:900; font-size:.85rem; color: rgba(255,255,255,.92);
}
.badge.red{border-color: rgba(230,69,58,.35); background: rgba(230,69,58,.15)}
.badge.orange{border-color: rgba(245,161,27,.35); background: rgba(245,161,27,.15)}
.badge.green{border-color: rgba(56,178,74,.35); background: rgba(56,178,74,.15)}
.badge.blue{border-color: rgba(57,169,230,.35); background: rgba(57,169,230,.15)}

.cols-3{grid-template-columns: repeat(3, minmax(0,1fr))}
.cols-2{grid-template-columns: repeat(2, minmax(0,1fr))}

.list{
  margin: 10px 0 0;
  padding-left: 18px;
  color: var(--muted);
  line-height:1.7;
}
.list li{margin: 6px 0}

.project-grid{grid-template-columns: repeat(3, minmax(0,1fr))}
.project{
  padding: 0; overflow:hidden;
}
.project .thumb{
  width:100%; height: 190px; background: rgba(0,0,0,.18);
  display:grid; place-items:center;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.project .thumb img{width:100%; height:100%; object-fit:cover}
.project .body{padding: 16px 16px 18px}
.project .tag{
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 10px; border-radius:999px;
  font-weight:900; font-size:.82rem;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  margin-bottom: 10px;
}
hr.sep{border:none; border-top:1px solid rgba(255,255,255,.10); margin: 16px 0}

/* Contact */
.contact-grid{grid-template-columns: .95fr 1.05fr}
.contact-item{display:flex; gap:12px; padding: 10px 0; border-bottom: 1px dashed rgba(255,255,255,.14)}
.contact-item:last-child{border-bottom:none}
.contact-item b{display:block}
.contact-item span{color: var(--muted)}
label{font-weight:900; font-size:.92rem}
input,textarea,select{
  width:100%;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  color: var(--text);
  padding: 12px;
  border-radius: 12px;
  outline:none;
}
textarea{min-height: 120px; resize: vertical}
.form-row{display:grid; grid-template-columns: 1fr 1fr; gap:12px}
.hint{color: var(--muted); font-size:.86rem}
.error{display:none; color:#ffb2b8; font-weight:900}
.success{display:none; color:#b7ffd3; font-weight:900}

/* Footer */
footer{
  padding: 26px 0 44px;
  border-top: 1px solid rgba(255,255,255,.10);
  color: var(--muted);
}
.footer-wrap{
  display:flex; justify-content:space-between; align-items:center;
  gap:12px; flex-wrap:wrap;
}

/* WhatsApp floating */
.wa-float{
  position: fixed; right: 18px; bottom: 18px; z-index: 60;
  display:flex; align-items:center; gap:10px;
  padding: 12px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(56,178,74,.25), rgba(0,0,0,.22));
  border: 1px solid rgba(56,178,74,.35);
  box-shadow: 0 10px 24px rgba(0,0,0,.32);
  color: #eafff1; font-weight:900;
}
.wa-dot{
  width:10px; height:10px; border-radius:50%;
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(56,178,74,.18);
}

/* Responsive */
@media (max-width: 980px){
  .hero-wrap{grid-template-columns: 1fr}
  .cols-3, .project-grid{grid-template-columns: repeat(2, minmax(0,1fr))}
  .contact-grid{grid-template-columns: 1fr}
}
@media (max-width: 740px){
  nav ul{display:none}
  .burger{display:inline-grid; place-items:center}
  .mobile-panel.show{display:block}
  .form-row{grid-template-columns: 1fr}
}
@media (max-width: 520px){
  .container{width:min(100% - 26px, var(--max))}
  .cols-3, .cols-2, .project-grid{grid-template-columns: 1fr}
}
