
:root{
  --primary:#4D656E;
  --accent:#7DA3AE;
  --bg:#F6F8FA;
  --text:#0F172A;
  --muted:#475569;
  --card:#ffffff;
  --border:rgba(15,23,42,.10);
  --shadow: 0 10px 30px rgba(15,23,42,.08);
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:linear-gradient(180deg, #ffffff 0%, var(--bg) 55%, #ffffff 100%);
}
a{color:inherit; text-decoration:none}
.container{width:min(1120px, 92%); margin:0 auto}
/* Header */
.header{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.85); backdrop-filter: blur(10px); border-bottom:1px solid var(--border)}
.nav{display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:18px}
.brand{display:flex; align-items:center; gap:12px}
.brand img{height:42px; width:auto}
.menu{display:flex; align-items:center; gap:18px}
.menu a{font-weight:600; color:var(--muted); padding:8px 10px; border-radius:12px}
.menu a:hover{background:rgba(77,101,110,.08); color:var(--text)}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:12px 16px; border-radius:14px; font-weight:700; border:1px solid transparent; cursor:pointer}
.btn-primary{background:var(--primary); color:white; box-shadow: 0 12px 28px rgba(77,101,110,.25)}
.btn-primary:hover{filter:brightness(.95)}
.btn-outline{background:transparent; border-color:rgba(77,101,110,.35); color:var(--primary)}
.btn-outline:hover{background:rgba(77,101,110,.08)}
.burger{display:none; border:1px solid var(--border); background:white; border-radius:14px; padding:10px 12px}
/* Hero */
.hero{padding:54px 0 28px}
.hero-grid{display:grid; grid-template-columns: 1.05fr .95fr; gap:28px; align-items:stretch}
.hero-card{background:var(--card); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden}
.hero-media{position:relative; min-height:360px; z-index:0}
.hero-media img{width:100%; height:100%; object-fit:cover; display:block}
.hero-media::after{
  content:"";
  position:absolute; inset:0;
  /* Overlay más oscuro para mejorar legibilidad del texto */
  background:linear-gradient(90deg, rgba(15,23,42,.90) 0%, rgba(15,23,42,.62) 52%, rgba(15,23,42,0) 82%);
  z-index:1;
  pointer-events:none;
}
.hero-content{position:absolute; inset:0; padding:26px; display:flex; flex-direction:column; justify-content:flex-end; color:white; z-index:2; text-shadow:0 2px 14px rgba(0,0,0,.55)}
.kicker{display:inline-flex; align-items:center; gap:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; font-size:12px; opacity:1}
.kicker .dot{width:8px; height:8px; border-radius:99px; background:var(--accent)}
.h1{margin:10px 0 10px; font-size:40px; line-height:1.08; text-wrap:balance}
.lead{margin:0 0 18px; font-size:16px; line-height:1.6; color:rgba(255,255,255,.98); max-width:55ch}
.hero-actions{display:flex; gap:12px; flex-wrap:wrap}
.hero-side{padding:22px}
.stat-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px}
.stat{border:1px solid var(--border); border-radius:16px; padding:14px; background:linear-gradient(180deg, #fff, #f8fafc)}
.stat strong{display:block; font-size:20px}
.stat span{color:var(--muted); font-size:13px}
.badges{display:flex; flex-wrap:wrap; gap:10px; margin-top:14px}
.badge{border:1px solid rgba(77,101,110,.22); background:rgba(77,101,110,.06); color:var(--primary); padding:8px 10px; border-radius:999px; font-weight:700; font-size:13px}
/* Sections */
.section{padding:56px 0}
.section h2{font-size:30px; margin:0 0 10px}
.section p{margin:0 0 14px; color:var(--muted); line-height:1.7}
.grid-2{display:grid; grid-template-columns: 1fr 1fr; gap:26px; align-items:center}
.card{background:var(--card); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow)}
.card.pad{padding:22px}
.media{border-radius:var(--radius); overflow:hidden; border:1px solid var(--border); box-shadow:var(--shadow)}
.media img{width:100%; height:auto; display:block}
/* Services */
.cards{display:grid; grid-template-columns: repeat(4, 1fr); gap:16px; margin-top:16px}
.service{padding:16px; display:flex; flex-direction:column; gap:12px}
.service .thumb{border-radius:16px; overflow:hidden; border:1px solid var(--border)}
.service .thumb img{width:100%; height:160px; object-fit:cover; display:block}
.service .thumb img.focus-top{object-position:50% 8%}
.service .thumb img.focus-left{object-position:28% 50%}
.service .thumb img.focus-top-left{object-position:30% 6%}
.service h3{margin:0; font-size:16px}
.service p{margin:0; font-size:14px; color:var(--muted); line-height:1.55}

/* Service list */
.service-list{margin:0; padding-left:18px; color:var(--muted); line-height:1.7}
.service-list{columns:2; column-gap:28px}
.service-list li{break-inside:avoid; margin:6px 0}
/* Values */
.triple{display:grid; grid-template-columns: repeat(3, 1fr); gap:16px; margin-top:14px}
.pill{padding:18px}
.pill h3{margin:0 0 8px; font-size:16px}
.pill p{margin:0; font-size:14px}
/* Contact */
.contact-grid{display:grid; grid-template-columns: 1fr 1fr; gap:18px; margin-top:16px}
form .row{display:grid; grid-template-columns:1fr 1fr; gap:12px}
input, textarea{width:100%; padding:12px 12px; border-radius:14px; border:1px solid rgba(15,23,42,.18); outline:none; font:inherit; background:white}
textarea{min-height:120px; resize:vertical}
input:focus, textarea:focus{border-color: rgba(77,101,110,.55); box-shadow: 0 0 0 4px rgba(77,101,110,.12)}
.help{font-size:13px; color:var(--muted)}
.map{border:0; width:100%; height:320px; border-radius:var(--radius)}
.footer{padding:26px 0 40px; color:var(--muted); border-top:1px solid var(--border); background:linear-gradient(180deg, var(--bg), #fff)}
/* Responsive */
@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr}
  .cards{grid-template-columns:repeat(2, 1fr)}
  .grid-2{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
}
@media (max-width: 680px){
  .menu{display:none}
  .burger{display:inline-flex}
  .h1{font-size:34px}
  .cards{grid-template-columns:1fr}
  form .row{grid-template-columns:1fr}
  .service-list{columns:1}
}
/* Mobile menu */
.mobile{display:none; padding:0 0 14px}
.mobile a{display:block; padding:10px 0; color:var(--muted); font-weight:650}
.mobile a:hover{color:var(--text)}
.mobile.open{display:block}
