@font-face{font-family:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/sora-latin-ext-wght-normal.CawQDOvP.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/sora-latin-wght-normal.DdqRvwsR.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2) format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2) format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #ffffff;--paper-deep: #ffffff;--ink: #242021;--ink-soft: #4a4649;--ink-faint: #6d696c;--accent: #242021;--accent-deep: #1a1719;--error: #c0392b;--silver: #b8b8ba;--dark: #242021;--hairline: rgba(36, 32, 33, .14);--hairline-light: rgba(255, 255, 255, .16);--white: #ffffff;--whatsapp: #25d366;--font-display: "Sora Variable", "Sora", system-ui, sans-serif;--font-body: "Inter Variable", "Inter", system-ui, sans-serif;--font-mono: "IBM Plex Mono", monospace;--maxw: 1180px;--rk: 18px;--shadow: 0 24px 60px -30px rgba(36, 32, 33, .5);--ease: cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--accent);color:var(--white);padding:10px 18px;border-radius:0 0 10px;font-weight:600;text-decoration:none}.skip-link:focus{left:0}html{scroll-behavior:smooth;scroll-padding-top:88px;overflow-x:clip}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}body{margin:0;font-family:var(--font-body);font-size:17px;line-height:1.6;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{color:var(--white);background:var(--accent)}:root{caret-color:var(--accent)}::placeholder{color:var(--ink-faint);opacity:1}html{scrollbar-color:var(--accent-deep) var(--paper);scrollbar-width:thin}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}a{color:inherit}img{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--font-display);font-weight:670;line-height:1.05;letter-spacing:-.02em;margin:0;text-wrap:balance}p{margin:0}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(20px,5vw,40px)}.mono-label{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.02em;text-transform:uppercase;color:var(--accent);font-weight:500}.btn{--pad: 15px 26px;display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:620;font-size:1rem;letter-spacing:-.01em;line-height:1;padding:var(--pad);border-radius:999px;text-decoration:none;border:none;cursor:pointer;transition:transform .28s var(--ease),background .28s var(--ease),box-shadow .28s var(--ease);white-space:nowrap}.btn svg{width:16px;height:16px;flex:none}.btn-primary{background:var(--accent);color:var(--white)}.btn-primary:hover{background:var(--accent-deep);transform:translateY(-2px);box-shadow:0 18px 34px -18px #262224cc}.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--hairline)}.btn-ghost:hover{box-shadow:inset 0 0 0 1.5px var(--ink);transform:translateY(-2px)}.btn-light{background:var(--white);color:var(--ink)}.btn-light:hover{background:var(--paper);transform:translateY(-2px)}.btn-outline-light{background:transparent;color:var(--white);box-shadow:inset 0 0 0 1.5px var(--hairline-light)}.btn-outline-light:hover{box-shadow:inset 0 0 0 1.5px var(--white);transform:translateY(-2px)}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--hairline)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-family:var(--font-display);font-weight:720;font-size:1.28rem;letter-spacing:-.02em;color:var(--ink)}.brand-mark{width:34px;height:34px;border-radius:10px;object-fit:cover;display:block}.site-header .brand-mark{width:auto;height:auto;max-height:54px;max-width:100%;object-fit:contain;display:block}.site-nav{display:flex;align-items:center;gap:30px}.site-nav a,.site-nav button{text-decoration:none;background:none;border:none;cursor:pointer;padding:0 0 2px;font-family:inherit;font-weight:540;font-size:.98rem;color:var(--ink-soft);transition:color .2s var(--ease);border-bottom:2px solid transparent}.site-nav a:hover,.site-nav button:hover{color:var(--ink);border-bottom-color:var(--accent)}.header-actions{display:flex;align-items:center;gap:16px}.header-phone{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-family:var(--font-mono);font-size:.9rem;color:var(--ink);font-weight:500}.header-phone svg{width:15px;height:15px;color:var(--accent)}.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;color:var(--ink)}.nav-toggle svg{width:26px;height:26px;display:block}.hero{position:relative;overflow:hidden;background:var(--dark)}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#242021d9,#24202199 45%,#24202126);pointer-events:none}.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}@media (min-width: 821px){.hero:after{background:linear-gradient(90deg,#242021,#242021d9 55%,#2420214d 78%,#24202100)}.hero-bg{right:0;left:auto;width:min(1216px,100%);height:100%;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 30%);mask-image:linear-gradient(90deg,transparent 0%,#000 30%)}}.hero .wrap{position:relative;z-index:2;padding-block:clamp(56px,8vh,96px) clamp(48px,7vh,84px);color:var(--white)}.hero-inner{max-width:620px}.hero-inner{animation:hero-in .9s cubic-bezier(.22,.61,.36,1) both}@keyframes hero-in{0%{opacity:0;transform:translateY(22px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@media (prefers-reduced-motion: reduce){.hero-inner{animation:none}}.hero h1{font-size:clamp(1.9rem,4.2vw,3.2rem);color:var(--white);max-width:14ch}.hero h1 em{font-style:normal;color:var(--silver)}.hero-sub{margin-top:18px;font-size:1.02rem;line-height:1.55;color:color-mix(in srgb,var(--white) 86%,transparent);max-width:55ch}.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.hero-spec{margin-top:32px;border-top:1px solid var(--hairline-light);max-width:520px}.hero-spec>div{color:var(--white)}.hero-spec dt{font-family:var(--font-mono);font-size:.84rem;font-weight:500;color:var(--silver)}.hero-spec dd{margin:3px 0 0;font-size:.8rem;color:color-mix(in srgb,var(--white) 74%,transparent)}.hero-spec>div{border-top:1px solid var(--hairline-light);padding:13px 0}section{padding-block:clamp(64px,9vh,104px)}.section-head{max-width:680px;margin-bottom:52px}.section-head h2{font-size:clamp(1.9rem,3.4vw,2.8rem)}.section-head .lede{margin-top:18px;font-size:1.08rem;color:var(--ink-soft);line-height:1.6}.casos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.caso{position:relative;text-decoration:none;color:inherit;border-radius:16px;overflow:hidden;background:var(--white);box-shadow:var(--shadow);transition:transform .34s var(--ease);display:flex;flex-direction:column}.caso:hover{transform:translateY(-5px)}.caso-media{position:relative;aspect-ratio:16 / 10;overflow:hidden}.caso-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}.caso:hover .caso-media img{transform:scale(1.05)}.caso-media:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(36,32,33,.42),transparent 55%)}.caso-rubro{position:absolute;left:16px;bottom:14px;z-index:2;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--white);background:var(--dark);padding:6px 12px;border-radius:999px}.caso-estado{position:absolute;top:14px;right:16px;z-index:2;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:999px;background:#242021d6;color:var(--white);display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.18)}.caso-estado:before{content:"";width:7px;height:7px;border-radius:50%;flex:none}.caso-estado[data-state=done]:before{background:#6ec97a}.caso-estado[data-state=act]:before{background:#f0b429}.caso-sistemas{margin-top:20px;padding-top:14px;border-top:1px solid var(--hairline)}.caso-sistemas-label{display:block;margin-bottom:12px;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.caso-sistemas ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px 12px;list-style:none;margin:0;padding:0}.caso-sistemas li{display:inline-flex;align-items:center;gap:7px;min-width:0;font-family:var(--font-mono);font-size:.72rem;color:var(--ink);line-height:1.3}.caso-sistemas li svg{width:13px;height:13px;color:var(--accent-deep);flex:none;margin-top:1px}.caso-body{padding:26px 28px 28px;display:flex;flex-direction:column;flex:1}.caso-cliente{display:flex;align-items:center;gap:16px;margin-bottom:12px}.caso-logo{width:64px;height:64px;border-radius:12px;object-fit:contain;background:var(--white);border:1px solid var(--hairline);padding:8px;flex:none}.caso-logo-placeholder{display:grid;place-items:center;background:var(--paper-deep);border:1px dashed var(--hairline);color:var(--silver);padding:0}.caso-logo-placeholder svg{width:30px;height:30px}.caso-cliente-nombre{min-width:0}.caso-body h3{font-size:1.4rem;margin-bottom:4px}.caso-sys{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-faint)}.caso-resultado{margin-top:12px;color:var(--ink-soft);line-height:1.6}.caso-cert{margin-top:16px;display:inline-flex;align-items:center;gap:8px;font-size:.92rem;color:var(--ink);font-weight:540}.caso-cert svg{width:16px;height:16px;color:var(--accent);flex:none}.casos-cta{margin-top:56px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:32px 48px;background:var(--dark);color:var(--white);border-radius:24px;padding:48px 52px}.casos-cta-lead{margin:0;max-width:58ch;font-size:clamp(1.18rem,2vw,1.5rem);line-height:1.5;font-weight:620}.casos-cta-actions{display:flex;flex-wrap:wrap;gap:14px}.servicios-list{display:grid;gap:0}.servicio{display:grid;grid-template-columns:52px 1fr auto;gap:0 36px;align-items:start;padding:42px 0;border-top:1px solid var(--hairline);cursor:pointer}.servicio:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.servicio:last-child{border-bottom:1px solid var(--hairline)}.servicio-num{font-family:var(--font-mono);font-size:.85rem;color:var(--accent-deep);align-self:start;padding-top:6px}.servicio-body h3{font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:-.025em}.servicio-desc{margin-top:12px;color:var(--ink-soft);line-height:1.65;max-width:56ch}.servicio-areas{display:grid;grid-template-columns:repeat(2,1fr);gap:26px 32px;margin-top:30px;border-top:1px solid var(--hairline);padding-top:26px}.servicio-area-titulo{display:block;font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:12px}.servicio-area ul,.servicio-items{list-style:none;margin:0;padding:0;display:grid;gap:8px}.servicio-area li,.servicio-items li{display:inline-flex;align-items:flex-start;gap:8px;min-width:0;font-family:var(--font-mono);font-size:.78rem;color:var(--ink);line-height:1.45}.servicio-area li svg,.servicio-items li svg{width:13px;height:13px;color:var(--accent-deep);flex:none;margin-top:3px}.servicio-items{margin-top:24px;grid-template-columns:repeat(2,1fr);gap:9px 28px}.servicio-cta{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:620;font-size:.96rem;letter-spacing:-.01em;line-height:1;color:var(--ink);background:transparent;box-shadow:inset 0 0 0 1.5px var(--hairline);padding:13px 24px;border:none;border-radius:999px;white-space:nowrap;transition:background .28s var(--ease),color .28s var(--ease),box-shadow .28s var(--ease),transform .28s var(--ease)}.servicio-cta:hover{background:var(--accent);color:var(--white);box-shadow:inset 0 0 0 1.5px var(--accent);transform:translateY(-2px)}.servicio-cta svg{width:15px;height:15px;transition:transform .28s var(--ease)}.servicio-cta:hover svg{transform:translate(4px)}.servicio-link{display:inline-block;margin-top:26px;font-family:var(--font-display);font-weight:620;font-size:1rem;color:var(--accent-deep);text-decoration:none;transition:opacity .28s var(--ease),text-decoration-color .28s var(--ease)}.servicio-link:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--accent-deep);opacity:.85}.casos{background:#f6f6f7}.dark{background:var(--dark);color:var(--white)}.dark .section-head h2,.dark .section-head .lede{color:var(--white)}.dark .section-head .lede{color:color-mix(in srgb,var(--white) 78%,transparent)}.dark .section-head .mono-label{color:var(--silver)}.empresa-layout{display:grid;grid-template-columns:minmax(280px,.9fr) 1.35fr;gap:clamp(44px,6vw,84px);align-items:start}.empresa-aside{position:sticky;top:104px}.empresa-aside .btn-carta{margin-top:36px}.empresa-aside h2{color:var(--white);max-width:19ch}.empresa-aside .lede{margin-top:18px;font-size:1.08rem;color:color-mix(in srgb,var(--white) 78%,transparent);line-height:1.6;max-width:44ch}.empresa-aside .empresa-props{margin-top:40px}.empresa-props{border-top:1px solid var(--hairline-light)}.empresa-prop{padding:16px 0;border-top:1px solid var(--hairline-light);margin-top:-1px}.empresa-prop strong{display:block;font-family:var(--font-display);font-size:1.5rem;font-weight:670;letter-spacing:-.02em;color:var(--white)}.empresa-prop span{font-size:.86rem;color:color-mix(in srgb,var(--white) 64%,transparent)}.empresa-quote{margin:0;font-family:var(--font-display);font-size:clamp(1.35rem,2vw,1.75rem);font-weight:620;letter-spacing:-.02em;line-height:1.35;color:var(--white);border-left:2px solid var(--silver);padding-left:26px}.empresa-photo-wrap{position:relative;margin-top:36px}.empresa-photo{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:18px;transition:opacity .42s var(--ease)}.empresa-photo-dots{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:flex;gap:7px;z-index:2}.empresa-photo-dots span{width:26px;height:3px;border-radius:999px;background:#ffffff61;overflow:hidden}.empresa-photo-dots span.fill:after{content:"";display:block;height:100%;background:var(--white);transform-origin:left;animation:dot-fill 5s linear forwards}@keyframes dot-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.empresa-pillars{margin-top:40px;display:grid;grid-template-columns:repeat(3,1fr);gap:0 32px}.empresa-pillar{border-top:1px solid var(--hairline-light);padding-top:20px}.empresa-pillar .idx{font-family:var(--font-mono);font-size:.82rem;color:var(--silver);display:block;margin-bottom:14px}.empresa-pillar h3{font-size:1.08rem;color:var(--white);margin-bottom:10px}.empresa-pillar p{font-size:.92rem;color:color-mix(in srgb,var(--white) 70%,transparent);line-height:1.6}.contact-form{color:var(--ink)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1 / -1}.field{display:flex;flex-direction:column;gap:7px}.field-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.field label{font-size:.86rem;font-weight:560;color:var(--ink-soft)}.char-count{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-faint);margin-left:auto}.field input,.field select,.field textarea{font-family:var(--font-body);font-size:.98rem;color:var(--ink);background:var(--paper);border:1.5px solid var(--hairline);border-radius:10px;padding:12px 14px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.field textarea{resize:vertical;min-height:96px}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);background:var(--white)}.field .err{font-size:.8rem;color:var(--error);display:none}.phone-field{display:flex;align-items:center;gap:8px;background:var(--paper);border:1.5px solid var(--hairline);border-radius:10px;padding:0 14px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease)}.phone-field:focus-within{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);background:var(--white)}.phone-code{font-family:var(--font-mono);font-size:.98rem;color:var(--ink-faint);border-right:1.5px solid var(--hairline);padding-right:10px;white-space:nowrap;user-select:none}.phone-field input{border:none;background:transparent;padding:12px 0;flex:1;min-width:0}.phone-field input:focus{box-shadow:none;background:transparent}.field.invalid .phone-field,.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--error)}.field.invalid .err{display:block}.hp{position:absolute;left:-9999px;top:-9999px;opacity:0}.form-submit{width:100%;justify-content:center;margin-top:20px}.form-submit .btn-label{display:inline-flex;align-items:center;gap:10px}.form-submit .btn-spinner{display:none;width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.form-submit.loading .btn-spinner{display:inline-block}.form-submit.loading .btn-label svg{display:none}.form-submit.loading{opacity:.85;cursor:progress}@keyframes spin{to{transform:rotate(360deg)}}.form-error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.96);z-index:30;max-width:min(320px,82%);padding:14px 18px;border:1.5px solid var(--error);border-radius:12px;background:var(--white);box-shadow:var(--shadow);color:var(--error);font-size:.86rem;line-height:1.5;text-align:center;opacity:0;visibility:hidden;transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s var(--ease)}.form-error.show{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}.contact-form .privacy{margin-top:14px;font-size:.78rem;color:var(--ink-faint);line-height:1.5;text-align:center}.form-success{text-align:center;padding:26px 6px 8px}.form-success .badge{width:62px;height:62px;border-radius:50%;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);display:grid;place-items:center;margin:0 auto 18px}.form-success .badge svg{width:30px;height:30px}.form-success h3{font-size:1.5rem;margin-bottom:12px}.form-success p{color:var(--ink-soft);line-height:1.6;max-width:38ch;margin:0 auto}.form-success .btn{margin-top:26px}.form-success .promise{margin-top:18px;font-family:var(--font-display);font-weight:620;color:var(--dark)}.contact-modal{position:relative;border:none;padding:34px;border-radius:18px;background:var(--white);color:var(--ink);box-shadow:var(--shadow);width:min(560px,calc(100% - 2rem));max-height:calc(100% - 2rem);overflow-y:auto}.contact-modal::backdrop{background:color-mix(in srgb,var(--dark) 72%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-close{position:absolute;top:18px;right:18px;width:40px;height:40px;border-radius:999px;background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink);border:none;cursor:pointer;display:grid;place-items:center}.modal-close:hover{background:var(--ink);color:var(--white)}.modal-close svg{width:18px;height:18px}.modal-head{margin-bottom:22px}.modal-head h2{font-size:1.7rem;margin-bottom:14px}.modal-head p{color:var(--ink-soft);line-height:1.6}.casos-more{margin-top:34px;display:flex;justify-content:center}.projects-modal{border:none;padding:0;border-radius:18px;background:var(--white);color:var(--ink);box-shadow:var(--shadow);width:min(880px,calc(100% - 2rem));max-height:calc(100% - 2rem);overflow-y:auto}.projects-modal::backdrop{background:color-mix(in srgb,var(--dark) 72%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.projects-shell{padding:34px;display:flex;flex-direction:column}.projects-table-wrap{overflow-x:auto;max-height:420px;overflow-y:auto}.projects-table{width:100%;border-collapse:collapse;font-size:.94rem}.projects-table th{text-align:left;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:10px 14px;border-bottom:1px solid var(--hairline);position:sticky;top:0;background:var(--white)}.projects-table td{padding:11px 14px;border-bottom:1px solid var(--hairline);vertical-align:top}.projects-table tr:last-child td{border-bottom:1px solid transparent}.project-obra{font-weight:560;color:var(--ink)}.project-sistemas{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-soft)}.project-state{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:999px;background:#242021d6;color:var(--white);border:1px solid rgba(255,255,255,.18);white-space:nowrap}.project-state:before{content:"";width:7px;height:7px;border-radius:50%;flex:none}.project-state[data-state=done]:before{background:#6ec97a}.project-state[data-state=act]:before{background:#f0b429}.projects-to-contact{display:flex;justify-content:flex-end;margin-top:24px}.projects-link{display:inline-block;font-family:var(--font-display);font-weight:620;font-size:1rem;color:var(--accent-deep);text-decoration:none;transition:opacity .28s var(--ease),text-decoration-color .28s var(--ease)}.projects-link:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--accent-deep);opacity:.85}.site-footer{background:var(--dark);color:var(--white);padding-block:52px 40px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}.site-footer .brand{color:var(--white);margin-bottom:16px}.site-footer .brand-mark{width:auto;height:auto;max-height:54px;max-width:100%;object-fit:contain;filter:brightness(0) invert(1)}.footer-desc{color:color-mix(in srgb,var(--white) 66%,transparent);font-size:.94rem;line-height:1.65;max-width:40ch}.footer-col h4{font-family:var(--font-display);font-weight:620;font-size:.9rem;letter-spacing:.02em;text-transform:uppercase;color:var(--silver);margin-bottom:16px}.footer-col a{display:block;color:color-mix(in srgb,var(--white) 74%,transparent);text-decoration:none;font-size:.94rem;margin-bottom:10px}.footer-col a:hover{color:var(--white)}.footer-bottom{margin-top:44px;padding-top:22px;border-top:1px solid var(--hairline-light);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.82rem;color:color-mix(in srgb,var(--white) 56%,transparent)}.footer-creditline{font-size:.72rem;letter-spacing:.02em;color:color-mix(in srgb,var(--white) 40%,transparent)}.footer-creditline a{color:color-mix(in srgb,var(--white) 52%,transparent);text-decoration:none;transition:color .28s var(--ease);margin-left:4px}.footer-creditline a:hover{color:var(--white);text-decoration:underline}.wa-float{position:fixed;right:22px;bottom:22px;z-index:60;display:inline-flex;align-items:center;gap:10px;color:var(--white);text-decoration:none;font-family:var(--font-display);font-weight:620;font-size:.92rem}.wa-circle{position:relative;width:58px;height:58px;border-radius:50%;background:var(--whatsapp);display:grid;place-items:center;box-shadow:0 18px 40px -14px #24202199;transition:transform .28s var(--ease)}.wa-ripple{position:absolute;left:0;bottom:0;width:58px;height:58px;border-radius:50%;pointer-events:none}.wa-ripple:before,.wa-ripple:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--whatsapp);opacity:0;animation:wa-ripple 3s cubic-bezier(.22,.61,.36,1) infinite}.wa-ripple:after{animation-delay:1.5s}@keyframes wa-ripple{0%{transform:scale(1);opacity:.6}70%{opacity:.15}to{transform:scale(1.55);opacity:0}}.wa-float:hover .wa-circle{transform:scale(1.06)}.wa-float:hover .wa-ripple:before,.wa-float:hover .wa-ripple:after{opacity:0;animation:none}.wa-circle svg{width:26px;height:26px}.wa-tip{position:relative;z-index:2;pointer-events:none;background:var(--whatsapp);color:var(--white);padding:9px 16px;border-radius:999px;font-size:.86rem;box-shadow:0 14px 34px -16px #25d3668c,0 14px 34px -18px #24202173;white-space:nowrap;margin-right:0;opacity:0;transform:translate(12px);transition:opacity .28s var(--ease),transform .28s var(--ease),background .28s var(--ease),color .28s var(--ease)}.wa-float:hover .wa-tip{opacity:1;transform:translate(0)}@media (max-width: 560px){.wa-float{right:16px;bottom:16px}.wa-tip{display:none}}.proveedores{background:var(--paper);border-bottom:1px solid var(--hairline);padding-block:44px}.proveedores-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin-bottom:28px}.proveedores-head p{color:var(--ink-soft);font-size:.95rem}.proveedores-viewport{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.proveedores-track{display:flex;gap:18px;width:max-content;animation:marquee 32s linear infinite}.proveedores-viewport:hover .proveedores-track{animation-play-state:paused}@keyframes marquee{to{transform:translate(-50%)}}.logo-chip{flex:none;display:flex;align-items:center;justify-content:center;width:168px;height:84px;background:var(--white);border:1px solid var(--hairline);border-radius:14px;padding:12px 18px}.logo-chip img{max-width:100%;max-height:100%;object-fit:contain;filter:saturate(.6) opacity(.85);transition:filter .3s var(--ease)}.logo-chip:hover img{filter:saturate(1) opacity(1)}code,.mono-label,.servicio-num{font-variant-numeric:tabular-nums}@media (max-width: 940px){.casos-grid{grid-template-columns:repeat(2,1fr)}.servicios-list{grid-template-columns:1fr}.servicio{grid-template-columns:44px 1fr;gap:0 22px;padding:32px 0}.servicio-cta{grid-column:1 / -1;justify-self:start;margin-top:20px}.servicio-areas,.servicio-items,.empresa-layout{grid-template-columns:1fr}.empresa-aside{position:static}.empresa-pillars{grid-template-columns:1fr;gap:28px}.footer-grid{grid-template-columns:1fr 1fr}.casos-cta{grid-template-columns:1fr;text-align:center}.casos-cta-actions{justify-content:center}}@media (max-width: 940px){.site-nav{position:fixed;inset:76px 0 auto;background:var(--paper);flex-direction:column;align-items:flex-start;padding:26px 22px;gap:20px;border-bottom:1px solid var(--hairline);box-shadow:var(--shadow);transform:translateY(-12px);opacity:0;pointer-events:none;transition:opacity .3s var(--ease),transform .3s var(--ease)}.site-nav.open{opacity:1;transform:translateY(0);pointer-events:auto}.site-nav a,.site-nav button{font-size:1.1rem}.nav-toggle{display:block}.header-phone{display:none}.header-actions{gap:10px}.header-actions .btn-primary{padding:11px 18px;font-size:.9rem}}@media (max-width: 560px){body{font-size:16px}.casos-grid,.form-grid,.footer-grid{grid-template-columns:1fr}.hero-spec dt{font-size:.84rem}.cta-full{display:none}.empresa-aside .btn-carta{display:flex;margin-inline:auto;justify-content:center}.servicio-cta{justify-self:stretch;width:100%;justify-content:center;max-width:100%;white-space:normal}.servicio-link{width:100%;text-align:center;align-self:center;white-space:normal}.empresa-aside .btn-carta{white-space:normal}.casos-more{width:100%}.casos-more .btn{flex:1;justify-content:center;min-width:0;white-space:normal}}.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease);will-change:opacity,transform}.js [data-reveal].is-visible{opacity:1;transform:translateY(0)}.js [data-reveal-delay="1"]{transition-delay:.1s}.js [data-reveal-delay="2"]{transition-delay:.2s}.js [data-reveal-delay="3"]{transition-delay:.3s}.js [data-reveal-delay="4"]{transition-delay:.4s}.js [data-reveal-delay="5"]{transition-delay:.5s}@media (prefers-reduced-motion: reduce){.js [data-reveal]{opacity:1;transform:none;transition:none}}.error-page .site-header{border-bottom:1px solid var(--hairline)}.error-main{min-height:58vh;display:flex;align-items:center}.error-shell{padding-block:clamp(64px,10vh,120px)}.error-code{font-family:var(--font-display);font-weight:720;font-size:clamp(4.6rem,15vw,9rem);line-height:.95;letter-spacing:-.05em;color:var(--ink)}.error-code span{color:var(--silver)}.error-title{margin-top:18px;font-size:clamp(1.4rem,3vw,2.1rem);letter-spacing:-.025em}.error-sub{margin-top:14px;max-width:46ch;color:var(--ink-soft);line-height:1.65;font-size:1.02rem}.error-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.error-actions .btn-back{display:inline-flex;align-items:center;gap:10px}.error-actions svg{width:16px;height:16px}
