/* Tipografía y layout */
:root{
  --max:72rem; --gap:clamp(12px,2vw,24px);
  --bg:#ffffff; --fg:#0f172a; --muted:#64748b;
  --line:#e5e7eb; --brand:#0ea5e9; --brand-dark:#0284c7;
  --card:#f8fafc; --shadow:0 10px 20px rgba(2,6,23,.06);
  --radius:16px;
}
.container{max-width:var(--max);padding:0 var(--gap);margin:auto}
.muted{color:var(--muted)}

/* Header */
.site-header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);z-index:20}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:64px}
.brand{font-weight:700;font-size:1.125rem}
.main-nav{display:flex;gap:1rem;align-items:center}
.main-nav a{padding:.5rem .25rem;border-radius:8px}
.main-nav a.active,.main-nav a:hover{background:rgba(2,6,23,.04)}
.menu-toggle{display:none;background:none;border:0;font-size:1.25rem}
@media (max-width:800px){
  .menu-toggle{display:inline-block}
  .main-nav{position:absolute;inset:64px 0 auto 0;background:#fff;border-bottom:1px solid var(--line);padding:12px var(--gap);display:none;flex-direction:column}
  .main-nav.open{display:flex}
}

/* Hero */
.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--gap);align-items:center;padding:clamp(24px,6vw,72px) 0}
.hero .hero-text h1{font-size:clamp(1.6rem,3.6vw,2.6rem);margin:.25rem 0 .5rem}
.hero .cta{display:flex;gap:.75rem;margin-top:1rem}
.hero-media img{border-radius:var(--radius);box-shadow:var(--shadow)}
@media (max-width:900px){.hero{grid-template-columns:1fr}}

/* Strips & KPIs */
.strip{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin:12px 0}
.kpis{display:flex;gap:clamp(12px,2vw,24px);justify-content:space-between;margin:0;list-style:none;padding:0}
.kpis li{flex:1;text-align:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}
.kpis strong{display:block;font-size:1.1rem}

/* Grids & Cards */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin:36px 0}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}
@media (max-width:900px){.grid-3,.grid-2{grid-template-columns:1fr}}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
@media (max-width:900px){.cards{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(12px,1.8vw,20px);box-shadow:var(--shadow)}
.card.project h3{margin:.25rem 0}

/* Project detail sections */
.project-detail{border-top:1px solid var(--line);padding:24px 0}
.project-detail h2{margin-bottom:.25rem}

/* Lists */
.check{list-style:none;padding:0;margin:.5rem 0}
.check li{padding-left:1.5rem;position:relative;margin:.4rem 0}
.check li::before{content:"✓";position:absolute;left:0;color:green}

/* Timeline */
.timeline{list-style:none;padding:0;margin:0}
.timeline li{padding:10px 0;border-bottom:1px dashed var(--line)}
.timeline li:last-child{border-bottom:0}

/* Tags */
.tags{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0;list-style:none}
.tags li{background:var(--card);border:1px solid var(--line);padding:.25rem .5rem;border-radius:999px}

/* Forms */
.form{max-width:720px}
.field{display:flex;flex-direction:column;margin-bottom:.75rem}
.field input,.field textarea{border:1px solid var(--line);border-radius:10px;padding:.6rem .75rem;background:#fff}
.field input:focus,.field textarea:focus{outline:2px solid var(--brand);border-color:var(--brand)}

/* Buttons & links */
.btn{display:inline-block;background:var(--brand);color:#fff !important;padding:.6rem 1rem;border-radius:12px;border:1px solid var(--brand);text-decoration:none;transition:.2s}
.btn:hover{background:var(--brand-dark);border-color:var(--brand-dark)}
.btn.ghost{background:transparent;color:var(--brand) !important}
.link{font-weight:600}

/* Alerts */
.alert{padding:.75rem 1rem;border-radius:10px;border:1px solid}
.alert.success{background:#ecfdf5;border-color:#10b981;color:#065f46}
.alert.error{background:#fef2f2;border-color:#ef4444;color:#7f1d1d}

/* Footer */
.site-footer{border-top:1px solid var(--line);margin-top:48px;padding:24px 0;background:#fff}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--gap)}
.foot-nav{display:grid;gap:.25rem}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr}}
