:root{
  --navy:#14305E; --navy-deep:#0B1F3F; --teal:#3F8F95; --teal-soft:#5BB5B0;
  --bg:#F6FAFB; --surface:#FFFFFF; --text:#1B2B45; --muted:#506078; --line:#D9E4E8;
  --hero-from:#0B1F3F; --hero-to:#1B4A78; --on-hero:#FFFFFF;
  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0B1626; --surface:#12233B; --text:#E8F0F5; --muted:#9FB2C6; --line:#24395A; --navy:#8FB7E6; --teal:#6CC3C0;
  --hero-from:#07121F; --hero-to:#123A63; color-scheme:dark;}}
:root[data-theme="dark"]{
  --bg:#0B1626; --surface:#12233B; --text:#E8F0F5; --muted:#9FB2C6; --line:#24395A; --navy:#8FB7E6; --teal:#6CC3C0;
  --hero-from:#07121F; --hero-to:#123A63; color-scheme:dark;}
html{scroll-behavior:smooth;scroll-padding-top:calc(88px + env(safe-area-inset-top,0px))}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.0625rem/1.65 "Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:#fff;z-index:30}
h1,h2,h3{font-family:Manrope,"Segoe UI",system-ui,sans-serif;line-height:1.15;margin:0;letter-spacing:-.02em}
a{color:inherit}
:focus-visible{outline:3px solid var(--teal-soft);outline-offset:3px;border-radius:4px}
.wrap{width:min(1120px,100% - 2.5rem);margin-inline:auto}

/* Cabecera */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:#fff;border-bottom:1px solid #D9E4E8}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0}
.brand img{height:56px;width:auto;display:block;mix-blend-mode:multiply}
nav{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;justify-content:flex-end}
nav a{text-decoration:none;font-weight:600;color:#14305E;font-size:.97rem}
nav a:hover{color:#3F8F95}
.btn{display:inline-block;background:var(--navy-deep);color:#fff!important;padding:.75rem 1.4rem;border-radius:999px;font:700 .98rem Manrope,sans-serif;text-decoration:none;border:2px solid var(--navy-deep);transition:background .2s,color .2s}
.btn:hover{background:#3F8F95;border-color:#3F8F95}
.btn.ghost{background:transparent;color:var(--on-hero)!important;border-color:rgba(255,255,255,.55)}
.btn.ghost:hover{background:#fff;color:var(--navy-deep)!important;border-color:#fff}
nav .btn{padding:.55rem 1.1rem}

/* Hero */
.hero{background:linear-gradient(135deg,var(--hero-from),var(--hero-to));color:var(--on-hero);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center;padding:5.5rem 0 5rem}
.hero h1{font-size:clamp(2.2rem,5vw,3.7rem);font-weight:800;max-width:15ch}
.hero p{font-size:1.2rem;color:#D2E3EE;max-width:48ch;margin:1.4rem 0 2rem}
.actions{display:flex;gap:.9rem;flex-wrap:wrap}
.hero .btn:not(.ghost){background:var(--teal-soft);border-color:var(--teal-soft);color:#08203A!important}
.hero .btn:not(.ghost):hover{background:#fff;border-color:#fff}
.pulse{width:100%;height:auto;display:block}
.pulse path.line{stroke-dasharray:1200;stroke-dashoffset:1200;animation:draw 3.2s ease-out .3s forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* Secciones */
section{padding:5rem 0}
.head{max-width:60ch;margin-bottom:2.6rem}
.head h2{font-size:clamp(1.8rem,3.4vw,2.5rem);font-weight:800;color:var(--navy)}
.head p{color:var(--muted);margin:.9rem 0 0}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.9rem}
.card h3{font-size:1.25rem;color:var(--navy);margin:1rem 0 .5rem}
.card p{margin:0;color:var(--muted)}
.ico{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#14305E,#3F8F95);display:grid;place-items:center}
.ico svg{width:26px;height:26px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.split{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:start}
.facts{display:grid;gap:1rem}
.fact{border-left:4px solid var(--teal);padding:.2rem 0 .2rem 1.1rem}
.fact strong{display:block;font:700 1.1rem Manrope,sans-serif;color:var(--navy)}
.fact span{color:var(--muted)}
.band{background:var(--surface);border-block:1px solid var(--line)}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.values div{padding-top:1rem;border-top:3px solid var(--teal)}
.values h3{font-size:1.1rem;color:var(--navy);margin-bottom:.4rem}
.values p{margin:0;color:var(--muted);font-size:1rem}

/* Contacto */
.contact{background:linear-gradient(135deg,var(--hero-from),var(--hero-to));color:#fff;border-radius:24px;padding:3.2rem;display:grid;grid-template-columns:1.2fr 1fr;gap:2.5rem;align-items:center}
.contact h2{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800}
.contact p{color:#D2E3EE;margin:.9rem 0 0}
.contact ul{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.contact li{display:flex;gap:.8rem;align-items:flex-start}
.contact li svg{flex:none;width:22px;height:22px;stroke:#5BB5B0;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-top:3px}
.contact a{color:#fff}
footer{background:#fff;border-top:1px solid #D9E4E8;color:#506078;font-size:.95rem}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;padding:1.8rem 0}
footer img{height:40px;mix-blend-mode:multiply}

@media (max-width:900px){
  .hero .wrap,.split,.contact{grid-template-columns:1fr}
  .hero .wrap{padding:3.5rem 0}
  .grid3{grid-template-columns:1fr}
  .values{grid-template-columns:1fr 1fr}
  .contact{padding:2rem 1.5rem}
  section{padding:3.5rem 0}
  .pulse{max-width:420px}
}
@media (max-width:620px){
  nav a:not(.btn){display:none}
  .brand img{height:46px}
  .values{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pulse path.line{animation:none;stroke-dashoffset:0}
}
/* Ajustes de secciones y contacto */
#empresa .head{margin:0}
#contacto{padding-top:0}
.contact .btn{background:#5BB5B0;border-color:#5BB5B0;color:#08203A!important}
