:root{
  --blue-900: #003b73;
  --blue-700: #0066b3;
  --blue-500: #1e90ff;
  --gray-900: #222222;
  --muted: #6b7280;
  --accent: #e2001a; /* acento del logo */
  --radius: 10px;
  --maxw: 1100px;
  --gap: 1.25rem;
  --ff-head: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --ff-body: "Open Sans", Arial, sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--ff-body);
  color:var(--gray-900);
  background:linear-gradient(180deg, #f7fbff 0%, #ffffff 100%);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.6;
}

.container{
  width:90%;
  max-width:var(--maxw);
  margin:0 auto;
  padding:2.25rem 0;
}

/* header */
.header{
  background:white;
  border-bottom:1px solid #e6eef9;
  position:sticky;
  top:0;
  z-index:50;
}
.header .topbar{display:flex;align-items:center;justify-content:space-between;padding:0.75rem 0}
.logo{display:flex;align-items:center;gap:0.75rem}
.logo img{height:52px}
.nav{display:flex;gap:1rem;align-items:center}
.nav a{
  text-decoration:none;
  color:var(--blue-900);
  padding:0.5rem 0.65rem;
  border-radius:6px;
  font-weight:600;
}
.nav a:hover{background:rgba(0,86,153,0.06)}

/* hero */
.hero{
  background:linear-gradient(90deg, rgba(0,70,140,0.05), rgba(30,144,255,0.02));
  border-radius:var(--radius);
  padding:2.5rem;
  display:grid;
  grid-template-columns:1fr;
  gap:1.25rem;
  align-items:center;
}
.hero h1{font-family:var(--ff-head);color:var(--blue-900);font-size:clamp(1.6rem, 2.8vw, 2.6rem);margin:0}
.hero p{color:var(--muted);margin:0.6rem 0 1rem}

/* CTA buttons */
.btn{
  display:inline-block;
  text-decoration:none;
  padding:0.6rem 0.9rem;
  border-radius:8px;
  font-weight:700;
}
.btn-primary{background:var(--blue-700);color:white}
.btn-outline{border:1px solid var(--blue-700);color:var(--blue-700);background:white}

/* cards grid */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--gap);margin-top:1rem}
.card{
  background:white;border-radius:12px;padding:1rem;border:1px solid #eef6ff;box-shadow:0 6px 18px rgba(13,38,66,0.03)
}
.card h3{margin:0 0 0.5rem;font-family:var(--ff-head);color:var(--blue-900)}
.card p{margin:0;color:var(--muted);font-size:0.95rem}

/* footer */
.footer{
  margin-top:2.25rem;padding:2rem 0;border-top:1px solid #eef6ff;background:white;border-radius:12px;
}
.footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.contact-list{list-style:none;padding:0;margin:0}
.contact-list li{margin:0.5rem 0;color:var(--muted)}

/* small utilities */
.kicker{font-weight:700;color:var(--blue-700);font-size:0.9rem}
.lead{font-size:1.05rem;color:var(--muted)}
.center{text-align:center}

/* responsive nav (mobile) */
.burger{display:none;background:none;border:0}
@media (max-width: 880px){
  .nav{display:none}
  .burger{display:inline-block}
  .header .topbar{gap:10px}
}

/* page-specific tweaks */
.section{padding:2rem 0}
.services-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}
.faq-item{background:white;border-radius:8px;padding:1rem;border:1px solid #eef6ff}
.form-card{background:white;padding:1rem;border-radius:8px;border:1px solid #eef6ff}
.input, textarea, select{
  width:100%;padding:0.6rem;border-radius:6px;border:1px solid #dfeaf7;font-size:0.95rem;
}
textarea{min-height:120px;resize:vertical}

/* small footer */
.small{font-size:0.9rem;color:var(--muted)}

/* accessibility focus */
a:focus, button:focus, input:focus, textarea:focus{
  outline:3px solid rgba(30,144,255,0.18);
  outline-offset:2px;
  border-color:var(--blue-700);
}
