:root{--color-bg:#ffffff;--color-bg-elevated:#f5f5f5;--color-surface:#f8f8f8;--color-surface-hover:#f0f0f0;--color-text:#111111;--color-text-secondary:#333333;--color-text-muted:#9b9b9b;--color-accent:#713dff;--color-accent-light:#8562ff;--color-accent-glow:#b7a4fb;--color-border:rgba(0,0,0,0.08);--color-border-hover:rgba(0,0,0,0.15);--color-glass:rgba(0,0,0,0.06);--color-glass-hover:rgba(0,0,0,0.10);--color-premium:var(--color-accent);--color-premium-light:var(--color-accent-light);--color-premium-bg:rgba(113,61,255,0.04);--color-premium-border:rgba(113,61,255,0.2);--color-premium-glow:rgba(113,61,255,0.1);--color-infra:#06b6d4;--color-infra-light:#22d3ee;--color-infra-bg:rgba(6,182,212,0.04);--color-infra-border:rgba(6,182,212,0.2);--color-infra-glow:rgba(6,182,212,0.1);--color-soporte:#14b8a6;--color-soporte-light:#2dd4bf;--color-soporte-bg:rgba(20,184,166,0.04);--color-soporte-border:rgba(20,184,166,0.2);--color-soporte-glow:rgba(20,184,166,0.1);--gradient-glow:linear-gradient(180deg,rgba(183,164,251,0)0%,rgba(183,164,251,0.15)50%,rgba(133,98,255,0.15)75%,rgba(133,98,255,0)100%);--gradient-hero:radial-gradient(ellipse 80% 60% at 50% 120%,rgba(113,61,255,0.10)0%,rgba(113,61,255,0)70%);--gradient-newsletter:radial-gradient(ellipse 60% 50% at 50% 50%,rgba(113,61,255,0.06)0%,rgba(113,61,255,0)70%);--font-display:'Sora',system-ui,-apple-system,sans-serif;--font-body:'Inter',system-ui,-apple-system,sans-serif;--section-gap:108px;--container-max:1200px;--container-padding:24px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:999px;--transition-fast:0.2s ease;--transition-base:0.3s ease}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:80px}body{font-family:var(--font-body);font-size:16px;line-height:1.6;color:var(--color-text-secondary);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-light)}ul{list-style:none}img{max-width:100%;display:block}input,textarea,button{font-family:inherit;font-size:inherit}button{cursor:pointer;border:none;background:none}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)}.section__header{text-align:center;margin-bottom:64px}.section__label{display:inline-block;font-size:14px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--color-accent-light);margin-bottom:16px}.section__title{font-family:var(--font-display);font-size:clamp(28px,4vw,44px);font-weight:700;line-height:1.15;letter-spacing:-0.02em;color:var(--color-text)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 28px;font-size:15px;font-weight:500;border-radius:var(--radius-full);transition:all var(--transition-base);white-space:nowrap}.btn--primary{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-light));color:#ffffff;border:none;position:relative;z-index:0}.btn--primary::before{content:'';position:absolute;inset:0;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-accent-light),var(--color-accent-glow));opacity:0;transition:opacity var(--transition-base);z-index:-1}.btn--primary:hover{color:#ffffff;box-shadow:0 0 28px rgba(113,61,255,0.35)}.btn--primary:hover::before{opacity:1}.btn--ghost{background:transparent;color:var(--color-accent);border:2px solid var(--color-accent);position:relative;z-index:0;overflow:hidden}.btn--ghost::before{content:'';position:absolute;inset:-1px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-light));opacity:0;transition:opacity var(--transition-base);z-index:-1}.btn--ghost:hover{color:#ffffff;border-color:transparent}.btn--ghost:hover::before{opacity:1}.nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(255,255,255,0.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);transition:all var(--transition-base)}.nav__container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding);display:flex;align-items:center;justify-content:space-between;height:80px}.nav__logo{display:flex;align-items:center}.nav__logo-text{font-family:var(--font-display);font-size:22px;font-weight:700;text-transform:uppercase;letter-spacing:0.15em;color:var(--color-text);transition:opacity var(--transition-fast)}.nav__logo:hover .nav__logo-text{opacity:0.7}.nav__menu{display:flex;align-items:center;gap:32px}.nav__link{font-size:14px;font-weight:500;color:var(--color-text-secondary);transition:color var(--transition-fast)}.nav__link:hover{color:var(--color-text)}.nav__actions{display:flex;align-items:center;gap:12px}.nav__lang{font-size:13px;font-weight:600;color:var(--color-text-secondary);padding:6px 14px;border:1px solid var(--color-border);border-radius:var(--radius-full);transition:all var(--transition-fast)}.nav__lang:hover{color:var(--color-text);border-color:var(--color-border-hover)}.nav__toggle{display:none;flex-direction:column;gap:5px;padding:8px}.nav__toggle span{display:block;width:22px;height:2px;background:var(--color-text);border-radius:2px;transition:all var(--transition-fast)}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:120px var(--container-padding)80px;overflow:hidden}.hero__glow{position:absolute;bottom:-20%;left:50%;transform:translateX(-50%);width:120%;height:80%;background:var(--gradient-hero);pointer-events:none}.hero__container{position:relative;z-index:1;max-width:800px;text-align:center}.hero__badge{display:inline-block;font-size:13px;font-weight:500;letter-spacing:1px;text-transform:uppercase;color:var(--color-accent-light);padding:6px 18px;background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-full);margin-bottom:32px;opacity:0;animation:fadeIn 0.6s ease forwards;animation-delay:0.2s}.hero__title{font-family:var(--font-display);font-size:clamp(36px,6vw,72px);font-weight:700;line-height:1.1;letter-spacing:-0.03em;color:var(--color-text);margin-bottom:24px;min-height:1.2em}.hero__title--accent{display:block;background:linear-gradient(135deg,var(--color-accent-light),var(--color-accent-glow));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero__title-cursor{display:inline-block;width:3px;height:0.9em;background:var(--color-accent);margin-left:4px;vertical-align:text-bottom;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.hero__subtitle{font-size:clamp(16px,2vw,20px);line-height:1.6;color:var(--color-text-secondary);max-width:600px;margin:0 auto 40px;opacity:0;animation:fadeIn 0.6s ease forwards;animation-delay:0.4s}.hero__actions{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;opacity:0;animation:fadeIn 0.6s ease forwards;animation-delay:0.6s}@keyframes fadeIn{to{opacity:1}}.services{padding:var(--section-gap)var(--container-padding)}.services__container{max-width:var(--container-max);margin:0 auto}.service-category{margin-bottom:64px}.service-category:last-child{margin-bottom:0}.service-category__header{text-align:center;margin-bottom:32px}.service-category__title{font-family:var(--font-display);font-size:clamp(20px,2.5vw,28px);font-weight:700;color:var(--color-text);margin-bottom:8px}.service-category__desc{font-size:15px;color:var(--color-text-secondary);max-width:500px;margin:0 auto}.service-category__grid{display:grid;gap:20px}.service-category--premium .service-category__title{color:var(--color-premium-light)}.service-category--premium .service-category__grid{grid-template-columns:repeat(3,1fr)}.service-category--premium .service-card{background:var(--color-premium-bg);border-color:var(--color-premium-border)}.service-category--premium .service-card:hover{background:rgba(113,61,255,0.08);border-color:rgba(113,61,255,0.35);box-shadow:0 8px 32px var(--color-premium-glow);transform:translateY(-4px)}.service-category--premium .service-card__icon{background:rgba(113,61,255,0.1);border-color:var(--color-premium-border);color:var(--color-premium-light)}.service-category--infra .service-category__title{color:var(--color-infra-light)}.service-category--infra .service-category__grid{grid-template-columns:repeat(3,1fr)}.service-category--infra .service-card{background:var(--color-infra-bg);border-color:var(--color-infra-border)}.service-category--infra .service-card:hover{background:rgba(6,182,212,0.08);border-color:rgba(6,182,212,0.35);box-shadow:0 8px 32px var(--color-infra-glow)}.service-category--infra .service-card__icon{background:rgba(6,182,212,0.1);border-color:var(--color-infra-border);color:var(--color-infra-light)}.service-category--soporte .service-category__title{color:var(--color-soporte-light)}.service-category--soporte .service-category__grid{grid-template-columns:repeat(3,1fr)}.service-category--soporte .service-card{background:var(--color-soporte-bg);border-color:var(--color-soporte-border)}.service-category--soporte .service-card:hover{background:rgba(20,184,166,0.08);border-color:rgba(20,184,166,0.35);box-shadow:0 8px 32px var(--color-soporte-glow)}.service-category--soporte .service-card__icon{background:rgba(20,184,166,0.1);border-color:var(--color-soporte-border);color:var(--color-soporte-light)}.service-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:32px;transition:all var(--transition-base)}.service-card:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover);transform:translateY(-4px)}.service-card__icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:24px;color:var(--color-accent-light)}.service-card__title{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--color-text);margin-bottom:12px}.service-card__desc{font-size:15px;line-height:1.6;color:var(--color-text-secondary)}@media(max-width:960px){.service-category--premium .service-category__grid,.service-category--infra .service-category__grid,.service-category--soporte .service-category__grid{grid-template-columns:repeat(2,1fr)}.service-category{margin-bottom:48px}}.projects{padding:var(--section-gap)var(--container-padding)}.projects--hidden{display:none}.projects__container{max-width:var(--container-max);margin:0 auto}.projects__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-base)}.project-card:hover{border-color:var(--color-border-hover);transform:translateY(-4px)}.project-card__image{width:100%;height:200px;background:linear-gradient(135deg,var(--color-bg-elevated),var(--color-surface));border-bottom:1px solid var(--color-border)}.project-card__content{padding:24px}.project-card__title{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--color-text);margin-bottom:8px}.project-card__desc{font-size:14px;color:var(--color-text-secondary)}.blog{padding:var(--section-gap)var(--container-padding)}.blog__container{max-width:var(--container-max);margin:0 auto}.blog__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:64px}.blog-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-base);display:flex;flex-direction:column}.blog-card:hover{border-color:var(--color-border-hover);transform:translateY(-4px)}.blog-card__image{display:block;width:100%;height:200px;overflow:hidden;border-bottom:1px solid var(--color-border)}.blog-card__image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--transition-base)}.blog-card:hover .blog-card__image img{transform:scale(1.05)}.blog-card__image--placeholder{background:var(--color-bg-elevated)}.blog-card__meta{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--color-text-muted);margin-bottom:12px}.blog-card__category{color:var(--color-accent-light);font-weight:500}.blog-card__content{padding:24px;flex:1;display:flex;flex-direction:column}.blog-card__date{display:block;font-size:13px;color:var(--color-text-muted);margin-bottom:8px}.blog-card__title{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--color-text);margin-bottom:10px;line-height:1.3}.blog-card__excerpt{font-size:14px;line-height:1.6;color:var(--color-text-secondary);margin-bottom:16px}.blog-card__link{font-size:14px;font-weight:500;color:var(--color-accent-light);transition:color var(--transition-fast);align-self:flex-start}.blog-card__link:hover{color:var(--color-accent-glow)}.blog__cta{text-align:center}.blog__loading,.no-posts{text-align:center;padding:48px 0;color:var(--color-text-muted);font-size:15px;grid-column:1 / -1}.newsletter{position:relative;padding:80px var(--container-padding);overflow:hidden}.newsletter__container{position:relative;z-index:1;max-width:600px;margin:0 auto;text-align:center}.newsletter__glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;background:var(--gradient-newsletter);pointer-events:none}.newsletter__title{font-family:var(--font-display);font-size:clamp(24px,3vw,36px);font-weight:700;color:var(--color-text);margin-bottom:12px}.newsletter__desc{font-size:16px;color:var(--color-text-secondary);margin-bottom:32px}.newsletter__form{display:flex;gap:12px;max-width:480px;margin:0 auto}.newsletter__hp,.contact__hp{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden}.newsletter__input{flex:1;padding:12px 20px;background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text);font-size:15px;outline:none;transition:all var(--transition-fast)}.newsletter__input::placeholder{color:var(--color-text-muted)}.newsletter__input:focus{border-color:var(--color-accent);background:var(--color-glass-hover)}.contact{padding:var(--section-gap)var(--container-padding)}.contact__container{max-width:var(--container-max);margin:0 auto}.contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:64px}.contact__info-title{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--color-text);margin-bottom:16px}.contact__info-desc{font-size:16px;line-height:1.6;color:var(--color-text-secondary);margin-bottom:32px}.contact__details{display:flex;flex-direction:column;gap:16px}.contact__detail{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--color-text-secondary)}.contact__detail svg{color:var(--color-accent-light);flex-shrink:0}.contact__form{display:flex;flex-direction:column;gap:20px}.form__group{display:flex;flex-direction:column;gap:8px}.form__label{font-size:14px;font-weight:500;color:var(--color-text)}.form__input,.form__textarea{padding:12px 16px;background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:15px;outline:none;transition:all var(--transition-fast);resize:vertical}.form__input::placeholder,.form__textarea::placeholder{color:var(--color-text-muted)}.form__input:focus,.form__textarea:focus{border-color:var(--color-accent);background:var(--color-glass-hover)}.footer{border-top:1px solid var(--color-border);padding:64px var(--container-padding)32px}.footer__container{max-width:var(--container-max);margin:0 auto}.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}.footer__logo{display:inline-block;margin-bottom:12px}.footer__logo img{height:100px;width:auto}.footer__logo:hover{opacity:0.85}.footer__desc{font-size:14px;color:var(--color-text-secondary);max-width:280px}.footer__nav-title{font-size:14px;font-weight:600;color:var(--color-text);margin-bottom:16px;text-transform:uppercase;letter-spacing:1px}.footer__nav ul{display:flex;flex-direction:column;gap:10px}.footer__nav a{font-size:14px;color:var(--color-text-secondary);transition:color var(--transition-fast)}.footer__nav a:hover{color:var(--color-text)}.footer__social-links{display:flex;gap:12px}.footer__social-links a{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast)}.footer__social-links a:hover{background:var(--color-glass-hover);border-color:var(--color-border-hover);color:var(--color-text)}.footer__bottom{padding-top:32px;border-top:1px solid var(--color-border);text-align:center;font-size:13px;color:var(--color-text-muted)}.modal-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,0.7);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;visibility:hidden;transition:all 0.3s ease}.modal-overlay--visible{opacity:1;visibility:visible}.modal{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:600px;width:100%;max-height:80vh;overflow-y:auto;padding:40px;position:relative;transform:translateY(20px);transition:transform 0.3s ease}.modal-overlay--visible .modal{transform:translateY(0)}.modal__close{position:absolute;top:16px;right:16px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--color-text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast)}.modal__close:hover{background:var(--color-glass-hover);color:var(--color-text)}.modal__title{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--color-text);margin-bottom:24px;padding-right:40px}.modal__content{font-size:15px;line-height:1.7;color:var(--color-text-secondary)}.modal__content h3{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--color-text);margin:24px 0 12px}.modal__content p{margin-bottom:12px}.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:rgba(255,255,255,0.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--color-border);transform:translateY(100%);transition:transform 0.4s ease}.cookie-banner--visible{transform:translateY(0)}.cookie-banner__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}.cookie-banner__text{font-size:13px;color:var(--color-text-secondary);margin:0}.cookie-banner__actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.cookie-banner__link{font-size:13px;color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px;transition:color var(--transition-fast)}.cookie-banner__link:hover{color:var(--color-text)}.btn--sm{padding:8px 18px;font-size:13px}@media(max-width:768px){.cookie-banner__inner{flex-direction:column;text-align:center;gap:12px;padding:16px 0}}@media(max-width:1024px){.blog__grid{grid-template-columns:repeat(2,1fr)}.footer__grid{grid-template-columns:1fr 1fr;gap:40px}}@media(max-width:768px){:root{--section-gap:72px}.nav__menu{position:fixed;top:80px;left:0;right:0;bottom:0;background:rgba(255,255,255,0.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);flex-direction:column;justify-content:center;gap:24px;transform:translateX(100%);transition:transform var(--transition-base)}.nav__menu--open{transform:translateX(0)}.nav__link{font-size:20px}.nav__toggle{display:flex}.nav__toggle--active span:nth-child(1){transform:rotate(45deg)translate(5px,5px)}.nav__toggle--active span:nth-child(2){opacity:0}.nav__toggle--active span:nth-child(3){transform:rotate(-45deg)translate(5px,-5px)}.hero__title{font-size:clamp(32px,8vw,48px)}.hero__actions{flex-direction:column;width:100%}.hero__actions .btn{width:100%}.service-category--premium .service-category__grid,.service-category--infra .service-category__grid,.service-category--soporte .service-category__grid{grid-template-columns:1fr}.service-category{margin-bottom:40px}.blog__grid{grid-template-columns:1fr}.contact__grid{grid-template-columns:1fr;gap:40px}.newsletter__form{flex-direction:column}.footer__grid{grid-template-columns:1fr;gap:32px}}@media(max-width:480px){.hero{padding:100px 16px 60px}.services,.blog,.contact{padding:64px 16px}.service-category{margin-bottom:32px}.newsletter{padding:60px 16px}.footer{padding:48px 16px 24px}}