:root { color-scheme:light; --blue:#1d71b8; --navy:#0e2a47; --yellow:#ffcc00; --ice:#eaf4fc; --ink:#0b1724; --muted:#5b6875; --line:#d9e4ec; --white:#fff; --page:#fff; --surface:#fff; --soft:#f8fbfd; --header:rgba(255,255,255,.96); }
[data-theme="dark"] { color-scheme:dark; --blue:#69bcf3; --navy:#edf7ff; --ice:#183850; --ink:#f4f9fc; --muted:#c2d0da; --line:#355066; --white:#0e2436; --page:#071521; --surface:#0e2436; --soft:#0a1c2b; --header:rgba(7,21,33,.97); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--page); color:var(--ink); font-family:"Segoe UI",Arial,sans-serif; transition:background .2s,color .2s; }
a { color:inherit; text-decoration:none; }
main { overflow:clip; }
.site-header { height:86px; max-width:1440px; margin:auto; padding:0 5vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50; background:var(--header); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.brand { width:max-content; padding:3px 7px; background:white; border-radius:4px; }.brand img { width:190px; height:44px; object-fit:cover; object-position:top; display:block; }
.main-nav { display:flex; gap:34px; align-items:center; font-size:.91rem; font-weight:600; }
.main-nav a { position:relative; padding:10px 0; }
.main-nav a:after { content:""; position:absolute; left:0; right:100%; bottom:4px; height:2px; background:var(--yellow); transition:right .25s; }
.main-nav a:hover:after,.main-nav a:focus-visible:after { right:0; }
.header-actions { justify-self:end; display:flex; align-items:center; gap:12px; }.theme-switch { display:flex; padding:3px; border:1px solid var(--line); border-radius:999px; background:var(--soft); }.theme-switch button { width:29px; height:29px; border:0; border-radius:50%; background:transparent; color:var(--muted); cursor:pointer; display:grid; place-items:center; font-size:.9rem; }.theme-switch button:hover,.theme-switch button:focus-visible { color:var(--blue); }.theme-switch button.is-active { background:var(--surface); color:var(--blue); box-shadow:0 2px 8px rgba(0,0,0,.12); }.menu-toggle,.mobile-contact { display:none; }.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:52px; padding:0 25px; background:var(--blue); color:white; font-weight:700; border-radius:3px; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); background:#175f9c; }
.button-small { min-height:42px; padding:0 20px; font-size:.9rem; }
.hero { min-height:690px; max-width:1440px; margin:auto; padding:82px 5vw 72px; display:grid; grid-template-columns:1.05fr .95fr; gap:6vw; align-items:center; }
.eyebrow { margin:0 0 22px; text-transform:uppercase; letter-spacing:.16em; color:var(--blue); font-size:.73rem; font-weight:800; display:flex; align-items:center; gap:10px; }
.eyebrow>span { width:22px; height:2px; background:var(--yellow); }
.hero h1 { font-size:clamp(3rem,5.3vw,5.4rem); line-height:.98; letter-spacing:-.055em; margin:0; max-width:780px; color:var(--navy); }
.hero-lead { max-width:650px; margin:30px 0; color:var(--muted); font-size:clamp(1.05rem,1.4vw,1.3rem); line-height:1.65; }
.hero-actions { display:flex; align-items:center; gap:30px; flex-wrap:wrap; }
.text-link { display:inline-flex; align-items:center; gap:12px; font-weight:700; border-bottom:1px solid var(--line); padding:10px 0; }
.text-link span { color:var(--blue); font-size:1.2rem; }
.trust-row { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-top:55px; color:#647381; font-size:.82rem; font-weight:600; }
.trust-row i { width:3px; height:3px; border-radius:50%; background:var(--yellow); }
.hero-visual { min-height:500px; position:relative; background:var(--navy); border-radius:4px; overflow:hidden; box-shadow:0 30px 60px rgba(14,42,71,.2); }
.visual-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px); background-size:45px 45px; mask-image:linear-gradient(to bottom,black,transparent 90%); }
.orbit { position:absolute; border:1px solid rgba(234,244,252,.22); border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); }
.orbit-one { width:320px; height:320px; }.orbit-two { width:470px; height:470px; }
.core-mark { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:142px; height:142px; background:white; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:0 0 0 14px rgba(255,204,0,.12); }
.core-mark span { color:var(--blue); font-size:3.8rem; line-height:.8; font-weight:900; font-style:italic; }.core-mark small { font-weight:700; color:var(--navy); margin-top:10px; }
.signal { position:absolute; background:white; padding:14px 17px; min-width:148px; box-shadow:0 15px 40px rgba(0,0,0,.2); display:flex; align-items:center; gap:11px; font-size:.74rem; color:var(--muted); }
.signal b { width:38px; height:38px; border-radius:50%; background:var(--ice); color:var(--blue); display:grid; place-items:center; overflow:hidden; }.signal b img { width:31px; height:31px; object-fit:contain; mix-blend-mode:multiply; }.signal span { font-weight:700; }
.signal-one { left:7%; top:17%; }.signal-two { right:5%; top:28%; }.signal-three { left:12%; bottom:13%; }
.section { max-width:1440px; margin:auto; padding:110px 5vw; }
.services { background:#f8fbfd; max-width:none; padding-left:max(5vw,calc((100vw - 1440px)/2 + 5vw)); padding-right:max(5vw,calc((100vw - 1440px)/2 + 5vw)); }
.section-heading { display:grid; grid-template-columns:1.1fr .65fr; gap:8vw; align-items:end; margin-bottom:55px; }.section-heading h2,.about h2,.client-copy h2,.contact h2 { font-size:clamp(2.25rem,4vw,4.2rem); line-height:1.05; letter-spacing:-.04em; color:var(--navy); margin:0; }.section-heading>p { color:var(--muted); line-height:1.7; font-size:1.04rem; margin:0 0 8px; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-card { min-height:350px; background:white; padding:28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:transform .25s,box-shadow .25s; }.service-card:hover { transform:translateY(-6px); box-shadow:0 20px 45px rgba(14,42,71,.08); position:relative; z-index:1; }
.service-top { display:flex; justify-content:space-between; color:#8ba0b1; font-size:.78rem; }.service-top i { color:var(--blue); font-style:normal; font-size:1.3rem; }
.service-icon { width:78px; height:78px; margin-top:38px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(145deg,#fff,var(--ice)); border:1px solid #d9eafa; }.service-icon img { width:62px; height:62px; object-fit:contain; mix-blend-mode:multiply; }.service-card h3 { color:var(--navy); font-size:1.35rem; line-height:1.25; margin:26px 0 16px; }.service-card p { color:var(--muted); line-height:1.65; margin:0; font-size:.94rem; }
.about { max-width:none; background:var(--navy); color:white; display:grid; grid-template-columns:1fr 1fr; padding-left:max(5vw,calc((100vw - 1440px)/2 + 5vw)); padding-right:max(5vw,calc((100vw - 1440px)/2 + 5vw)); gap:10vw; }
.eyebrow.light { color:#b9dcf8; }.about h2,.contact h2 { color:white; }.about-panel>p:not(.eyebrow) { color:#c3d3df; line-height:1.75; max-width:620px; font-size:1.05rem; margin:28px 0; }.light-link { color:white; border-color:#496075; }.light-link span { color:var(--yellow); }
.process-list { list-style:none; margin:0; padding:0; border-top:1px solid #365069; }.process-list li { display:grid; grid-template-columns:55px 1fr; gap:20px; padding:27px 0; border-bottom:1px solid #365069; }.process-list li>span { color:var(--yellow); font-size:.78rem; font-weight:800; }.process-list h3 { margin:0 0 8px; font-size:1.25rem; }.process-list p { margin:0; color:#aec0ce; line-height:1.55; }
.client-section { display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; align-items:center; }.client-copy>p:not(.eyebrow) { color:var(--muted); line-height:1.75; margin:28px 0; }.secondary { background:var(--navy); }
.portal-preview { min-height:430px; background:#eef4f8; border:1px solid var(--line); position:relative; box-shadow:0 25px 50px rgba(14,42,71,.12); }.portal-bar { height:52px; background:white; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:7px; padding:0 18px; }.portal-bar>span { width:7px;height:7px;border-radius:50%;background:#cbd6df; }.portal-bar b { margin-left:12px;font-size:.75rem;color:#657786; }.portal-body { display:grid;grid-template-columns:70px 1fr;min-height:378px; }.portal-side { background:var(--navy);display:flex;flex-direction:column;align-items:center;padding-top:35px;gap:27px; }.portal-side i { width:20px;height:4px;border-radius:4px;background:#587086; }.portal-content { padding:42px; }.portal-welcome { display:flex;flex-direction:column;gap:7px; }.portal-welcome small { color:#8496a5; }.portal-welcome strong { color:var(--navy);font-size:1.35rem; }.portal-cards { display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:32px 0; }.portal-cards span { height:90px;background:white;border:1px solid #dce5ec; }.portal-cards span:first-child { border-top:3px solid var(--blue); }.portal-lines { background:white;padding:18px;display:flex;flex-direction:column;gap:13px; }.portal-lines i { height:7px;background:#e7edf2; }.portal-lines i:nth-child(2){width:75%}.portal-lines i:nth-child(3){width:55%}.coming-soon { position:absolute;right:20px;top:70px;background:var(--yellow);color:var(--navy);font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.11em;padding:9px 12px; }
.blog-section { background:#f8fbfd;max-width:none;padding-left:max(5vw,calc((100vw - 1440px)/2 + 5vw));padding-right:max(5vw,calc((100vw - 1440px)/2 + 5vw)); }.section-heading.compact { margin-bottom:42px; }.post-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:24px; }.post-card { background:white;padding-bottom:26px;border-bottom:2px solid var(--line); }.post-art { height:210px;position:relative;overflow:hidden;background:var(--navy); }.post-art:before,.post-art:after { content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.25); }.post-art:before{width:210px;height:210px;right:-45px;top:-75px}.post-art:after{width:110px;height:110px;right:45px;top:50px}.post-art-2{background:var(--blue)}.post-art-3{background:#183b5d}.post-art span { position:absolute;left:25px;bottom:20px;color:var(--yellow);font-size:3rem;font-weight:900; }.post-meta { display:flex;justify-content:space-between;color:#778795;font-size:.74rem;margin:20px 0 12px;text-transform:uppercase;letter-spacing:.07em; }.post-card h3 { color:var(--navy);font-size:1.2rem;line-height:1.4;margin:0 0 22px; }.post-status { color:var(--blue);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em; }
.contact { max-width:none;background:var(--blue);color:white;padding-left:max(5vw,calc((100vw - 1440px)/2 + 5vw));padding-right:max(5vw,calc((100vw - 1440px)/2 + 5vw));display:grid;grid-template-columns:1.2fr .8fr;gap:9vw;align-items:center; }.contact-action p { color:#d6ebfb;line-height:1.7;margin:0 0 24px; }.yellow { background:var(--yellow);color:var(--navy); }.yellow:hover{background:#ffe16a}.whatsapp-button img { width:30px; height:30px; object-fit:contain; mix-blend-mode:multiply; }.phone { display:block;margin-top:20px;font-size:1rem;font-weight:700;color:white; }
footer { background:#081d31;color:#a9bdcc;padding:70px max(5vw,calc((100vw - 1440px)/2 + 5vw)) 25px;display:grid;grid-template-columns:1.2fr 1fr .6fr;gap:50px; }.footer-brand { color:white;font-size:2rem;font-weight:900;letter-spacing:.05em;display:flex;flex-direction:column; }.footer-brand span { color:#9fb2c0;font-size:.72rem;font-weight:400;letter-spacing:0;margin-top:5px; }.footer-links { display:grid;grid-template-columns:1fr 1fr;gap:15px;color:white;font-size:.9rem; }.footer-links a:hover{color:var(--yellow)}footer p{margin:0;line-height:1.8;font-size:.88rem}.footer-bottom { grid-column:1/-1;border-top:1px solid #24405a;padding-top:24px;display:flex;justify-content:space-between;align-items:center;font-size:.75rem; }.web-link { display:inline-flex;align-items:center;gap:8px;color:white; }.web-link img { width:25px;height:25px;object-fit:contain;border-radius:50%;filter:brightness(0) invert(1);opacity:.8; }
@media (max-width:1000px){.site-header{grid-template-columns:1fr auto}.main-nav{display:none}.hero{grid-template-columns:1fr;padding-top:65px}.hero-visual{min-height:430px}.service-grid{grid-template-columns:1fr 1fr}.about,.client-section{grid-template-columns:1fr;gap:60px}.post-grid{grid-template-columns:1fr 1fr}.post-card:last-child{grid-column:1/-1}.contact{grid-template-columns:1fr}.contact-action{max-width:520px}footer{grid-template-columns:1fr 1fr}.footer-links{grid-column:2}.footer-bottom{grid-column:1/-1}}
@media (max-width:640px){.site-header{height:72px;padding:0 20px}.brand img{width:145px;height:35px}.button-small{padding:0 14px;min-height:38px}.hero{padding:55px 20px 60px;gap:45px}.hero h1{font-size:3rem}.hero-lead{font-size:1rem}.hero-visual{min-height:390px}.orbit-one{width:240px;height:240px}.orbit-two{width:350px;height:350px}.core-mark{width:115px;height:115px}.signal{min-width:128px;padding:11px}.signal-two{right:2%}.signal-one{left:3%}.section{padding:78px 20px}.section-heading{grid-template-columns:1fr;gap:25px}.service-grid{grid-template-columns:1fr}.service-card{min-height:290px}.service-card h3{margin-top:22px}.about{padding:80px 20px}.client-section{padding:80px 20px}.portal-preview{min-height:350px}.portal-body{grid-template-columns:48px 1fr;min-height:298px}.portal-content{padding:28px 20px}.portal-cards span{height:70px}.blog-section{padding:80px 20px}.post-grid{grid-template-columns:1fr}.post-card:last-child{grid-column:auto}.contact{padding:80px 20px}footer{padding:60px 20px 24px;grid-template-columns:1fr}.footer-links{grid-column:auto}.footer-bottom{flex-direction:column;gap:10px}.trust-row{margin-top:38px}.signal-three{bottom:8%}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Tema y navegación adaptable */
section[id] { scroll-margin-top:86px; }
.footer-brand { width:max-content; max-width:100%; display:block; }
.footer-brand img { display:block; width:230px; max-width:100%; height:55px; object-fit:cover; object-position:top; filter:invert(1) hue-rotate(180deg) brightness(1.18) contrast(1.08); mix-blend-mode:screen; }
.services,.blog-section { background:var(--soft); }
.service-card,.post-card { background:var(--surface); }
[data-theme="dark"] .portal-preview { background:#0d2437; }
[data-theme="dark"] .portal-bar,[data-theme="dark"] .portal-cards span,[data-theme="dark"] .portal-lines { background:#163249; }
[data-theme="dark"] .portal-welcome strong { color:var(--ink); }
[data-theme="dark"] .portal-lines i { background:#29465d; }
[data-theme="dark"] .portal-bar b,[data-theme="dark"] .portal-welcome small { color:var(--muted); }
[data-theme="dark"] .brand { background:transparent; padding:0; }
[data-theme="dark"] .brand img { display:block; filter:invert(1) hue-rotate(180deg) brightness(1.18) contrast(1.08); mix-blend-mode:screen; }
[data-theme="dark"] .hero-visual { background:#09273e; box-shadow:0 30px 70px rgba(0,0,0,.38); }
[data-theme="dark"] .about { background:#0d2a42; }
[data-theme="dark"] .contact { background:#0e5688; }
[data-theme="dark"] .secondary { background:#1f6fa8; color:#fff; }
[data-theme="dark"] .portal-side,[data-theme="dark"] .post-art-1 { background:#061c2d; }
[data-theme="dark"] .post-art-2 { background:#0f5e95; }
[data-theme="dark"] .post-art-3 { background:#123c5d; }
[data-theme="dark"] .about-panel>p:not(.eyebrow),[data-theme="dark"] .process-list p { color:#d2e3ef; }
[data-theme="dark"] .contact-action p { color:#e7f4fd; }
[data-theme="dark"] .eyebrow.light { color:#d9edfb; }
[data-theme="dark"] .service-top,[data-theme="dark"] .post-meta { color:#b5c8d6; }
[data-theme="dark"] .trust-row { color:#b9cad6; }
[data-theme="dark"] .service-icon { background:#eef7fd; }
[data-theme="dark"] .service-card,[data-theme="dark"] .post-card { box-shadow:inset 0 1px rgba(255,255,255,.025); }
[data-theme="dark"] .service-card:hover { box-shadow:0 20px 46px rgba(0,0,0,.3); }
[data-theme="dark"] .main-nav a,[data-theme="dark"] .text-link { color:var(--ink); }
[data-theme="dark"] .button:not(.yellow) { background:#2385c5; color:#fff; }
[data-theme="dark"] .button:not(.yellow):hover { background:#3199db; }
[data-theme="dark"] .yellow { color:#10283d; }
[data-theme="dark"] .signal { color:#405666; }
[data-theme="dark"] .core-mark small { color:#173550; }

@media (max-width:1000px){
  .main-nav{display:none;position:absolute;top:calc(100% + 1px);left:20px;right:20px;padding:22px;background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 40px rgba(0,0,0,.18);flex-direction:column;align-items:stretch;gap:4px}
  .main-nav.is-open{display:flex}
  .main-nav a{padding:13px 8px}.main-nav a:after{display:none}
  .mobile-contact{display:block!important;margin-top:8px;background:var(--blue);color:white;text-align:center;border-radius:3px}
  .menu-toggle{width:42px;height:42px;padding:10px;border:1px solid var(--line);background:var(--surface);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer}
  .menu-toggle span{display:block;width:20px;height:2px;background:var(--ink);transition:transform .2s,opacity .2s}
  .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(7px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-7px) rotate(-45deg)}
}
@media (max-width:640px){
  section[id] { scroll-margin-top:72px; }
  .brand img{width:132px;height:32px}.header-actions{gap:7px}.header-contact{display:none}.theme-switch button{width:27px;height:27px}
}
