:root{--azul1:#023e8a;--azul2:#0077b6;--azul3:#00b4d8;--azul4:#90e0ef;--texto:#1b1f23;--fondo:#f5f9fc;}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,'Segoe UI',Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial,'Noto Sans';color:var(--texto);background:var(--fondo)}
header{background:linear-gradient(135deg,var(--azul1),var(--azul2));color:#fff;padding:28px 16px;text-align:center;position:sticky;top:0;z-index:10;box-shadow:0 6px 20px rgba(2,62,138,.25)}
header .brand{display:flex;gap:16px;align-items:center;justify-content:center;flex-wrap:wrap}
header img{max-width:200px;height:auto;filter:drop-shadow(0 4px 12px rgba(0,0,0,.25))}
header h1{margin:0;font-size:clamp(28px,3vw,40px);letter-spacing:.5px}
header p{margin:4px 0 0;opacity:.9}
.container{max-width:1100px;margin:0 auto;padding:24px 16px}
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{background:#fff;border-radius:16px;padding:18px;box-shadow:0 8px 30px rgba(2,62,138,.08);transition:transform .2s ease,box-shadow .2s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 12px 36px rgba(2,62,138,.15)}
.card img{width:100%;height:170px;object-fit:cover;border-radius:12px;margin-bottom:10px}
.card h3{margin:.2rem 0 .4rem 0}
.badge{display:inline-block;font-size:12px;background:var(--azul4);color:var(--azul1);padding:4px 8px;border-radius:999px;margin-bottom:8px}
.section-title{font-size:clamp(22px,2.4vw,28px);margin:8px 0 16px 0;color:var(--azul1)}
.portfolio img{height:220px}
.contact{background:#fff;border-radius:16px;padding:18px;box-shadow:0 8px 30px rgba(2,62,138,.08)}
form{display:grid;gap:12px}
input,textarea{width:100%;padding:12px 14px;border:1px solid #d8e6f3;border-radius:10px;font-size:16px;background:#fff}
textarea{min-height:120px;resize:vertical}
button{padding:12px 16px;border:0;border-radius:10px;background:var(--azul2);color:#fff;font-weight:600;cursor:pointer;transition:filter .18s ease,transform .18s ease}
button:hover{filter:brightness(1.05);transform:translateY(-1px)}
.map{border:0;width:100%;height:320px;border-radius:12px}
footer{margin-top:40px;background:var(--azul1);color:#e7f5ff;text-align:center;padding:18px}