:root{
  --navy:#1c4494;      /* azul oscuro del logo (S) */
  --blue:#326cb4;      /* azul claro del logo (A) */
  --ink:#0f1f3d;
  --text:#33415c;
  --muted:#5f6b85;
  --bg:#ffffff;
  --alt:#f3f6fb;
  --line:#dbe3f0;
  --radius:14px;
  --shadow:0 8px 28px rgba(28,68,148,.10);
  --font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --slab:'Roboto Slab',Georgia,serif;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:inherit}
ul{padding:0;list-style:none}
.container{width:min(1120px,100% - 32px);margin-inline:auto}
h1,h2,h3,h4{font-family:var(--slab);color:var(--ink);line-height:1.2}
h1{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:700}
h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700}
h3{font-size:1.15rem;font-weight:600}
.eyebrow{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);font-weight:600;margin-bottom:.75rem}
.lead{font-size:1.1rem;color:var(--muted);margin-top:1rem;max-width:56ch}

.btn{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;font-weight:600;padding:.85rem 1.5rem;border-radius:999px;border:2px solid var(--navy);cursor:pointer;font:inherit;font-weight:600;transition:transform .15s,background .15s,box-shadow .15s}
.btn:hover{background:var(--blue);border-color:var(--blue);transform:translateY(-1px);box-shadow:var(--shadow)}
.btn--sm{padding:.5rem 1.1rem;font-size:.92rem}
.btn--ghost{background:transparent;color:var(--navy)}
.btn--ghost:hover{color:#fff}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav__in{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.brand img{width:44px;height:auto}
.brand__t{display:flex;flex-direction:column;line-height:1.15}
.brand__t b{font-family:var(--slab);letter-spacing:.14em;color:var(--navy);font-size:.95rem}
.brand__t small{font-size:.7rem;color:var(--muted)}
.menu{display:flex;align-items:center;gap:1.6rem}
.menu a:not(.btn){text-decoration:none;font-weight:500;font-size:.95rem}
.menu a:not(.btn):hover{color:var(--blue)}
.burger{display:none;background:none;border:0;padding:.5rem;cursor:pointer}
.burger span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;transition:.2s}

/* hero */
.hero{background:linear-gradient(180deg,var(--alt),#fff);overflow:hidden}
.hero__in{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center;padding:clamp(3rem,8vw,6rem) 0}
.hero__cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.hero__pts{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1.8rem;font-size:.92rem;color:var(--muted)}
.hero__pts li::before{content:"✓";color:var(--blue);font-weight:700;margin-right:.4rem}
.hero__art{position:relative;display:grid;place-items:center}
.hero__art img{position:relative;width:min(260px,60%)}
.orb{position:absolute;width:min(380px,90%);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 30% 30%,#e3ecfa,#c7d8f2 60%,transparent 70%);box-shadow:inset 0 0 0 1px var(--line)}

/* sections */
.sec{padding:clamp(3.5rem,8vw,5.5rem) 0}
.sec--alt{background:var(--alt)}
.sec__h{max-width:640px;margin-bottom:2.5rem}
.sec__h p:last-child{color:var(--muted);margin-top:.8rem}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem}
.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.ico{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--navy),var(--blue));display:grid;place-items:center;margin-bottom:1rem}
.ico svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.card ul{margin-top:.9rem;display:grid;gap:.45rem;font-size:.94rem}
.card li{padding-left:1.1rem;position:relative}
.card li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--blue)}
.card--soon{border-style:dashed;background:var(--alt)}
.tag{position:absolute;top:1rem;right:1rem;font-size:.7rem;font-weight:600;background:#fff;border:1px solid var(--line);color:var(--navy);padding:.2rem .6rem;border-radius:999px}

.chips{display:flex;flex-wrap:wrap;gap:.7rem}
.chips li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.55rem 1.1rem;font-weight:500;color:var(--navy)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-top:3rem}
.steps span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff;font-weight:600;margin-bottom:.8rem}
.steps p{color:var(--muted);margin-top:.4rem;font-size:.95rem}

.mv{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}
.mv article{border-left:4px solid var(--blue);padding:.3rem 0 .3rem 1.4rem}
.mv h3{margin-bottom:.6rem;font-size:1.3rem}
.vals{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:3rem}
.vals div{background:var(--alt);border-radius:var(--radius);padding:1.2rem}
.vals h4{font-size:1rem;color:var(--navy);margin-bottom:.4rem}
.vals p{font-size:.88rem;color:var(--muted)}

/* contact */
.sec--dark{background:linear-gradient(135deg,#12306d,var(--navy) 60%,var(--blue));color:#dbe6fa}
.sec--dark h2{color:#fff}
.sec--dark .eyebrow{color:#a9c4f0}
.sec--dark .lead{color:#c5d6f3}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.info{margin-top:2rem;display:grid;gap:1rem}
.info li{display:grid;gap:.1rem}
.info b{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:#a9c4f0;font-weight:600}
.info a{text-decoration:none;font-weight:500}
.info a:hover{text-decoration:underline}
.form{background:#fff;color:var(--text);border-radius:var(--radius);padding:1.8rem;display:grid;gap:1rem;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.form label{display:grid;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--ink)}
.form input,.form select,.form textarea{font:inherit;font-weight:400;padding:.7rem .9rem;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--blue);border-color:var(--blue)}
.err{color:#b3261e;font-size:.88rem}
.form .btn{justify-self:start}

.foot{background:#0d2250;color:#b9c8e6;padding:2.5rem 0;font-size:.9rem}
.foot__in{display:grid;gap:1rem}
.brand--f img{filter:brightness(0) invert(1)}
.brand--f .brand__t b{color:#fff}
.brand--f .brand__t small{color:#9db2d8}
.copy{font-size:.8rem;color:#8ea3cc}

.wa{position:fixed;right:18px;bottom:18px;z-index:30;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.28);transition:transform .15s}
.wa:hover{transform:scale(1.08)}

@media (max-width:820px){
  .hero__in,.contact{grid-template-columns:1fr}
  .hero__art{order:-1;max-height:220px}
  .hero__art img{width:150px}.orb{width:210px}
  .burger{display:block}
  .menu{position:absolute;top:68px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;padding:1rem 16px 1.4rem;gap:1rem;display:none}
  .menu.open{display:flex}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.menu-serv{margin-top:3rem;background:var(--alt);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.4rem,4vw,2.4rem)}
.menu-serv__sub{color:var(--muted);margin:.4rem 0 1.6rem}
.menu-serv__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem;margin-bottom:1.8rem}
.menu-serv h4{font-size:.95rem;color:var(--navy);margin-bottom:.5rem}
.menu-serv li{font-size:.92rem;padding-left:1.1rem;position:relative;margin-bottom:.3rem}
.menu-serv li::before{content:"✓";position:absolute;left:0;color:var(--blue);font-weight:700}
