.page-loader{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--dark);display:flex;justify-content:center;align-items:center;z-index:9999;transition:opacity .6s var(--ease-out-expo),visibility .6s var(--ease-out-expo);animation:autoHideLoader .5s ease-out .3s forwards}@keyframes autoHideLoader{to{opacity:0;visibility:hidden}}.page-loader.hidden{opacity:0;visibility:hidden;animation:none}.loader-spinner{width:50px;height:50px;border:3px solid rgba(37,99,235,.15);border-top:3px solid var(--primary);border-radius:50%;animation:spin .8s var(--ease-in-out-circ) infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}:root{--primary:#2563eb;--primary-dark:#1d4ed8;--primary-light:#3b82f6;--accent:#00d4ff;--accent-hover:#0099cc;--accent-dark:#0077aa;--dark:#0F1419;--dark-secondary:#1a1f25;--gray-800:#1f2937;--gray-600:#4b5563;--gray-400:#9ca3af;--gray-200:#e5e7eb;--gray-100:#f3f4f6;--light:#F8FAFC;--white:#ffffff;--wa:#25D366;--font-display:'Montserrat',sans-serif;--font-body:'DM Sans',sans-serif;--font-mono:'JetBrains Mono',monospace;--navbar-height:80px;--hero-min-height:80vh;--hero-min-height-mobile:70vh;--hero-min-height-small:65vh;--section-padding:80px;--section-padding-mobile:60px;--section-padding-small:50px;--hero-padding-bottom:60px;--hero-padding-bottom-mobile:40px;--hero-padding-bottom-small:30px;--card-border-radius:20px;--portfolio-card-radius:16px;--btn-border-radius:12px;--transition-speed:0.25s;--transition-speed-slow:0.4s;--ease-out-expo:cubic-bezier(0.16, 1, 0.3, 1);--ease-in-out-circ:cubic-bezier(0.85, 0, 0.15, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth}@font-face{font-family:'DM Sans Fallback';src:local('Arial');size-adjust:100%;ascent-override:92%;descent-override:24%;line-gap-override:0%}body{font-family:'DM Sans','DM Sans Fallback',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:var(--dark);margin:0;padding:0;padding-top:84px;line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-3x{font-size:3em;line-height:1}.navbar{position:fixed;top:0;width:100%;z-index:1030;background:rgba(15,20,25,.85)!important;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 1px 0 rgba(255,255,255,.05),0 8px 32px rgba(0,0,0,.12);border-bottom:1px solid rgba(255,255,255,.06);transition:background var(--transition-speed) var(--ease-out-expo)}.navbar-brand img{height:52px;width:auto;transition:transform var(--transition-speed) var(--ease-out-expo)}.navbar-brand:hover img{transform:scale(1.05)}.navbar-brand{margin-right:2rem}.navbar-nav .nav-link{padding-left:1.2rem!important;padding-right:1.2rem!important;font-family:var(--font-display);font-size:.95rem;font-weight:600;letter-spacing:-.01em;color:rgba(255,255,255,.9)!important;transition:all var(--transition-speed) var(--ease-out-expo);position:relative}.navbar-nav .nav-link::after{content:'';position:absolute;bottom:-4px;left:50%;transform:translateX(-50%) scaleX(0);width:80%;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);transition:transform var(--transition-speed) var(--ease-out-expo)}.navbar-nav .nav-link:hover{transform:translateY(-1px);color:var(--accent)!important}.navbar-nav .nav-link:hover::after{transform:translateX(-50%) scaleX(1)}.navbar-nav .nav-link.active{color:var(--accent)!important}.hero-section{min-height:var(--hero-min-height);display:flex;align-items:center;position:relative;color:#fff;background-image:linear-gradient(135deg,rgba(15,20,25,.35) 0,rgba(13,27,42,.35) 60%,rgba(10,31,61,.35) 100%),url('/img/hero-poster.webp');background-size:cover;background-position:center;background-repeat:no-repeat;padding:var(--section-padding) 0 var(--hero-padding-bottom);text-align:center;overflow:hidden}.hero-section::after{content:'';position:absolute;top:10%;left:-10%;width:200px;height:200px;background:linear-gradient(45deg,rgba(37,99,235,.1),rgba(59,130,246,.2));border-radius:50%;z-index:1;animation:float 6s ease-in-out infinite}.hero-section::before{content:'';position:absolute;bottom:15%;right:-5%;width:150px;height:150px;background:linear-gradient(135deg,rgba(99,102,241,.15),rgba(168,85,247,.1));border-radius:30% 70% 70% 30%/30% 30% 70% 70%;z-index:1;animation:float 8s ease-in-out infinite reverse}@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(10deg)}}.hero-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:0;transition:opacity 1.2s cubic-bezier(.16, 1, .3, 1)}.hero-section.hero-video-ready .hero-video{opacity:1}.hero-watermark{position:absolute;bottom:30px;right:30px;width:120px;height:auto;opacity:0;z-index:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease;filter:brightness(0) invert(1);pointer-events:none}.hero-section.hero-video-ready .hero-watermark{opacity:.15;transform:translateY(0);transition-delay:0.25s}.hero-section.hero-video-ready .hero-watermark:hover{opacity:.25}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,rgba(15,20,25,.35) 0,rgba(15,20,25,.35) 40%,rgba(37,99,235,.35) 100%);z-index:1;animation:breathe 5s ease-in-out infinite}.hero-overlay::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 30%,rgba(59,130,246,.18) 0,transparent 50%),radial-gradient(circle at 80% 70%,rgba(37,99,235,.22) 0,transparent 60%),radial-gradient(circle at 50% 50%,rgba(29,78,216,.12) 0,transparent 70%);z-index:1;animation:gradientShift 12s ease-in-out infinite;mix-blend-mode:screen}@keyframes breathe{0%,100%{opacity:.92}50%{opacity:.85}}@keyframes gradientShift{0%,100%{background:radial-gradient(circle at 20% 30%,rgba(59,130,246,.18) 0,transparent 50%),radial-gradient(circle at 80% 70%,rgba(37,99,235,.22) 0,transparent 60%),radial-gradient(circle at 50% 50%,rgba(29,78,216,.12) 0,transparent 70%)}33%{background:radial-gradient(circle at 80% 20%,rgba(37,99,235,.2) 0,transparent 55%),radial-gradient(circle at 20% 80%,rgba(59,130,246,.15) 0,transparent 50%),radial-gradient(circle at 60% 40%,rgba(29,78,216,.14) 0,transparent 65%)}66%{background:radial-gradient(circle at 50% 80%,rgba(59,130,246,.22) 0,transparent 60%),radial-gradient(circle at 40% 20%,rgba(37,99,235,.18) 0,transparent 55%),radial-gradient(circle at 70% 60%,rgba(29,78,216,.12) 0,transparent 50%)}}.hero-content-glass{background:rgba(15,20,25,.72);border-radius:28px;padding:2.5rem 3.5rem;border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 32px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.05) inset;position:relative;z-index:2}.hero-badge-wrapper{display:inline-block;margin-bottom:1rem}.hero-title{font-family:var(--font-display);font-size:clamp(.625rem, 1.2vw, .7rem);font-weight:700;color:#35dcff;letter-spacing:.1em;text-transform:uppercase;padding:.45rem 1.1rem;background:rgba(7,30,48,.88);backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid rgba(53,220,255,.45);border-radius:30px;display:inline-block;text-shadow:none;box-shadow:0 4px 12px rgba(7,30,48,.35)}.hero-header{font-family:var(--font-body);font-size:clamp(1rem, 2.5vw, 1.125rem);font-weight:500;color:rgba(255,255,255,.7);margin-bottom:1.5rem;letter-spacing:.01em;text-shadow:0 2px 4px rgba(0,0,0,.2)}.hero-main-title{font-family:var(--font-display);font-size:clamp(2.25rem, 6vw, 4rem);font-weight:700;margin:.75rem 0 1rem;color:#fff;letter-spacing:-.02em;line-height:1.1;text-shadow:none}.hero-subtitle{font-family:var(--font-body);font-size:clamp(.95rem, 2.2vw, 1.1rem);color:rgba(255,255,255,.92);max-width:620px;margin:0 auto 2rem;line-height:1.6;font-weight:400;text-shadow:none}.hero-content-glass .mt-4{min-height:56px}@media (prefers-reduced-motion:reduce){.hero-content-glass .mt-4,.hero-main-title,.hero-subtitle{animation:none}}html[data-no-motion=true] .hero-section,html[data-no-motion=true] .hero-section *,html[data-no-motion=true] .hero-section ::after,html[data-no-motion=true] .hero-section ::before,html[data-no-motion=true] .hero-section::after,html[data-no-motion=true] .hero-section::before{animation:none!important;transition:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;mix-blend-mode:normal!important;contain:none!important}html[data-no-motion=true] .hero-overlay::before,html[data-no-motion=true] .hero-section::after,html[data-no-motion=true] .hero-section::before{content:none!important;display:none!important}html[data-no-motion=true] .hero-video{display:block!important;opacity:0!important}html[data-no-motion=true] .hero-section.hero-video-ready .hero-video{opacity:1!important}@media (max-width:768px){.hero-content-glass{padding:2rem 1.75rem;border-radius:24px}}@media (max-width:576px){.hero-main-title{font-size:clamp(1.75rem, 6vw, 2.5rem);line-height:1.2}.hero-content-glass{padding:1.5rem;margin:0 .5rem}.btn-hero-cta{min-height:44px;padding:.875rem 1.75rem}}@media (min-width:769px) and (max-width:1024px){.hero-content-glass{padding:2.25rem 2.5rem}}.hero-description{font-family:var(--font-body);font-size:clamp(1rem, 2.5vw, 1.25rem);color:rgba(255,255,255,.85);max-width:750px;margin:0 auto;line-height:1.7;font-weight:400;text-shadow:0 2px 8px rgba(0,0,0,.25);animation:fadeInUp .8s var(--ease-out-expo) .7s both}.hero-description p{margin-bottom:.8rem}.hero-badges{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;animation:fadeInUp 1s ease-out 1.1s both}.hero-badge{background:rgba(255,255,255,.15);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.9);font-size:.85rem;font-weight:500;padding:8px 16px;border-radius:25px;text-shadow:0 1px 2px rgba(0,0,0,.2);transition:all .3s ease}.hero-badge:hover{background:rgba(255,255,255,.25);transform:translateY(-2px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px);will-change:transform,opacity}100%{opacity:1;transform:translateY(0)}}@keyframes heroFadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.btn-hero-cta{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem 2.25rem;background:linear-gradient(135deg,#00d4ff 0,#09c 100%);color:#0a1628;border:none;border-radius:var(--btn-border-radius);font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:-.01em;line-height:1;text-decoration:none;box-shadow:0 4px 20px rgba(0,212,255,.4),0 8px 40px rgba(0,212,255,.25),inset 0 1px 0 rgba(255,255,255,.3);transition:all .4s var(--ease-out-expo);overflow:hidden;animation:fadeInUp .8s var(--ease-out-expo) .7s both}.btn-hero-cta::before{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(to right,transparent 0,rgba(255,255,255,.25) 50%,transparent 100%);transition:left .5s ease}.btn-hero-cta:hover{transform:translateY(-2px);box-shadow:0 6px 28px rgba(0,212,255,.5),0 12px 56px rgba(0,212,255,.35),inset 0 1px 0 rgba(255,255,255,.4);color:#0a1628}.btn-hero-cta:hover::before{left:150%}.btn-hero-cta:active{transform:translateY(0) scale(.98)}.btn-hero-cta i{transition:transform .4s var(--ease-out-expo)}.btn-hero-cta:hover i{transform:translateX(4px)}.section-title{font-family:var(--font-display);font-size:clamp(2rem, 5vw, 3rem);font-weight:800;letter-spacing:-.02em;color:var(--dark);margin-bottom:1rem;position:relative;display:inline-block}.section-title::after{content:'';position:absolute;bottom:-8px;left:0;width:60px;height:4px;background:linear-gradient(90deg,var(--accent) 0,var(--accent-hover) 50%,transparent 100%);border-radius:2px;box-shadow:0 0 12px rgba(0,212,255,.4)}.img-skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite}@keyframes skeleton-loading{0%{background-position:200% 0}100%{background-position:-200% 0}}img{max-width:100%;height:auto;will-change:auto}.lazy{opacity:0;transition:opacity .3s}.lazy.loaded{opacity:1}#proyectos-destacados{overflow:hidden}#proyectos-destacados .projects-header{margin-bottom:1.25rem!important}#proyectos-destacados .projects-header .section-title{margin-bottom:1rem}#proyectos-destacados .projects-header p{margin-bottom:0}.carousel-container{position:relative;max-width:1400px;margin:0 auto;padding:0 20px}.carousel-wrapper{display:flex;align-items:center;justify-content:center;position:relative;height:510px;perspective:2000px;transition:transform .15s ease-out}.carousel-card{position:absolute;top:0;width:400px;height:440px;display:flex;flex-direction:column;background:#fff;border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.1);transition:all .8s cubic-bezier(.25, .46, .45, .94);opacity:0;transform:translateX(0) scale(.8) rotateY(0);pointer-events:none;overflow:hidden;transform-style:preserve-3d}.carousel-card.active{opacity:1;transform:translateX(0) scale(1) rotateY(0) translateZ(0);z-index:3;pointer-events:auto;cursor:pointer}.carousel-card.prev{opacity:.7;transform:translateX(-420px) scale(.88) rotateY(-25deg) translateZ(-100px);z-index:2;pointer-events:auto;cursor:pointer}.carousel-card.next{opacity:.7;transform:translateX(420px) scale(.88) rotateY(25deg) translateZ(-100px);z-index:2;pointer-events:auto;cursor:pointer}.carousel-card.prev-2{opacity:.4;transform:translateX(-700px) scale(.75) rotateY(-45deg) translateZ(-200px);z-index:1;pointer-events:auto;cursor:pointer}.carousel-card.next-2{opacity:.4;transform:translateX(700px) scale(.75) rotateY(45deg) translateZ(-200px);z-index:1;pointer-events:auto;cursor:pointer}.carousel-card.active:hover{box-shadow:0 15px 40px rgba(0,0,0,.15);transform:translateX(0) scale(1.05) rotateY(0) translateZ(20px)}.carousel-card.prev:hover{opacity:.85;transform:translateX(-420px) scale(.92) rotateY(-20deg) translateZ(-80px)}.carousel-card.next:hover{opacity:.85;transform:translateX(420px) scale(.92) rotateY(20deg) translateZ(-80px)}.carousel-card.prev-2:hover{opacity:.6;transform:translateX(-700px) scale(.78) rotateY(-40deg) translateZ(-180px)}.carousel-card.next-2:hover{opacity:.6;transform:translateX(700px) scale(.78) rotateY(40deg) translateZ(-180px)}.card-image{width:100%;height:auto;aspect-ratio:1200/630;flex:0 0 auto;overflow:hidden;position:relative}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.carousel-card:hover .card-image img{transform:scale(1.1)}.card-content{padding:25px;flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-start;position:relative}.card-link-hint{position:absolute;bottom:15px;right:20px;font-size:12px;color:var(--primary);font-weight:600;opacity:0;transition:opacity .3s ease;display:flex;align-items:center;gap:5px}.carousel-card.active:hover .card-link-hint{opacity:1}.card-title{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--dark);margin-bottom:10px;line-height:1.3;letter-spacing:-.01em}.card-description{font-family:var(--font-body);font-size:15px;color:var(--gray-600);line-height:1.6;margin:0}.carousel-arrows{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:10;padding:0 10px}.carousel-arrow{pointer-events:auto;width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.95);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px rgba(0,0,0,.15);transition:all .3s ease;font-size:20px;color:var(--primary)}.carousel-arrow:hover{background:var(--primary);color:#fff;transform:scale(1.1);box-shadow:0 6px 20px rgba(37,99,235,.3)}.carousel-arrow:active{transform:scale(.95)}.carousel-arrow.left{margin-left:-10px}.carousel-arrow.right{margin-right:-10px}.carousel-dots{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:40px}.dot{width:12px;height:12px;border-radius:50%;background:#d1d5db;border:none;cursor:pointer;transition:all .3s ease;padding:0}.dot:hover{background:#9ca3af;transform:scale(1.2)}.dot.active{background:var(--primary);width:32px;border-radius:6px}@media (max-width:1024px){.carousel-card{width:350px;height:400px}.carousel-card.prev{transform:translateX(-380px) scale(.88) rotateY(-25deg) translateZ(-100px)}.carousel-card.next{transform:translateX(380px) scale(.88) rotateY(25deg) translateZ(-100px)}.carousel-card.prev:hover{transform:translateX(-380px) scale(.92) rotateY(-20deg) translateZ(-80px)}.carousel-card.next:hover{transform:translateX(380px) scale(.92) rotateY(20deg) translateZ(-80px)}.carousel-card.prev-2{transform:translateX(-650px) scale(.75) rotateY(-45deg) translateZ(-200px)}.carousel-card.next-2{transform:translateX(650px) scale(.75) rotateY(45deg) translateZ(-200px)}.carousel-card.prev-2:hover{transform:translateX(-650px) scale(.78) rotateY(-40deg) translateZ(-180px)}.carousel-card.next-2:hover{transform:translateX(650px) scale(.78) rotateY(40deg) translateZ(-180px)}}@media (max-width:768px){.carousel-wrapper{height:430px;padding:0 15px}.carousel-card{width:300px;height:360px;border-radius:24px;background:rgba(255,255,255,.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.3);box-shadow:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.08)}.carousel-card.active{transform:translateX(0) scale(1) translateY(0);box-shadow:0 20px 60px rgba(0,0,0,.15),0 8px 24px rgba(37,99,235,.1)}.carousel-card.prev{opacity:.6;transform:translateX(-180px) scale(.85) translateY(10px);filter:brightness(.9);pointer-events:auto}.carousel-card.next{opacity:.6;transform:translateX(180px) scale(.85) translateY(10px);filter:brightness(.9);pointer-events:auto}.carousel-card.next:hover,.carousel-card.prev:hover{opacity:.8;transform:translateX(-180px) scale(.88) translateY(5px);filter:brightness(.95)}.carousel-card.next:hover{transform:translateX(180px) scale(.88) translateY(5px)}.carousel-card.next-2,.carousel-card.prev-2{display:none}.carousel-arrow{width:44px;height:44px;font-size:18px;background:rgba(255,255,255,.74);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.5);box-shadow:0 4px 14px rgba(15,23,42,.1);color:rgba(37,99,235,.92)}.carousel-arrow:hover{background:rgba(255,255,255,.9);color:var(--primary);transform:scale(1.03);box-shadow:0 6px 18px rgba(37,99,235,.16)}.carousel-arrows{padding:0 4px}.carousel-arrow.left{margin-left:-8px}.carousel-arrow.right{margin-right:-8px}.card-content{padding:22px;justify-content:flex-start;background:linear-gradient(to bottom,rgba(255,255,255,.95) 0,rgba(248,250,252,.98) 100%)}.card-title{font-size:19px;font-weight:700;background:linear-gradient(135deg,var(--dark) 0,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.card-description{font-size:14px;color:#64748b;line-height:1.6}.card-image{height:auto;aspect-ratio:1200/630;position:relative;overflow:hidden}.card-image::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(37,99,235,.1) 0,rgba(59,130,246,.05) 100%);z-index:1;opacity:0;transition:opacity .3s ease}.carousel-card:hover .card-image::before{opacity:1}}@media (max-width:480px){#proyectos-destacados .projects-header{margin-bottom:.75rem!important}#proyectos-destacados .projects-header .section-title{margin-bottom:.75rem}.carousel-container{padding:0 8px}.carousel-wrapper{height:390px;padding:0 10px}.carousel-card{width:280px;height:330px;border-radius:20px;background:rgba(255,255,255,.98);backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border:1px solid rgba(255,255,255,.4);box-shadow:0 10px 40px rgba(0,0,0,.1),0 4px 12px rgba(0,0,0,.05)}.carousel-card.active{transform:translateX(0) scale(1) translateY(0);box-shadow:0 25px 70px rgba(0,0,0,.12),0 10px 30px rgba(37,99,235,.08)}.carousel-card.prev{opacity:.5;transform:translateX(-140px) scale(.82) translateY(8px);filter:brightness(.85) saturate(.9);pointer-events:auto}.carousel-card.next{opacity:.5;transform:translateX(140px) scale(.82) translateY(8px);filter:brightness(.85) saturate(.9);pointer-events:auto}.carousel-card.next:hover,.carousel-card.prev:hover{opacity:.7;transform:translateX(-140px) scale(.86) translateY(4px);filter:brightness(.9) saturate(.95)}.carousel-card.next:hover{transform:translateX(140px) scale(.86) translateY(4px)}.card-content{padding:18px;justify-content:flex-start;background:linear-gradient(to bottom,rgba(255,255,255,.98) 0,#f9fafb 100%)}.card-title{font-size:18px;font-weight:700;background:linear-gradient(135deg,#1e293b 0,#3b82f6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px}.card-description{font-size:13px;color:#64748b;line-height:1.5;font-weight:400}.carousel-arrow{width:40px;height:40px;font-size:16px;background:rgba(255,255,255,.68);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.56);box-shadow:0 4px 12px rgba(15,23,42,.08)}.carousel-arrow:hover{background:rgba(255,255,255,.88);transform:scale(1.02);box-shadow:0 6px 16px rgba(37,99,235,.14)}.carousel-arrows{padding:0}.carousel-arrow.left{margin-left:-10px}.carousel-arrow.right{margin-right:-10px}.card-image{height:auto;aspect-ratio:1200/630;position:relative;overflow:hidden}.card-image::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(59,130,246,.12) 0,rgba(37,99,235,.06) 100%);z-index:1;opacity:0;transition:opacity .3s ease}.carousel-card:hover .card-image::before{opacity:1}.card-link-hint{font-size:11px;bottom:12px;right:15px}.carousel-card{transition:all .4s cubic-bezier(.25, .46, .45, .94)}.carousel-arrow{transition:all .3s cubic-bezier(.25, .46, .45, .94)}.carousel-dots{margin-top:30px;gap:10px}.dot{width:10px;height:10px;background:#cbd5e1}.dot.active{width:28px;height:10px;border-radius:5px;background:linear-gradient(135deg,var(--primary),var(--secondary))}.portfolio-link-cta{position:relative;z-index:20;padding-top:.75rem}}.portfolio-link-cta{position:relative;z-index:20}@font-face{font-family:'Font Awesome 6 Free';font-style:normal;font-weight:900;src:url('https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.0/webfonts/fa-solid-900.woff2') format('woff2');font-display:swap}@font-face{font-family:'Font Awesome 6 Brands';font-style:normal;font-weight:400;src:url('https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.0/webfonts/fa-brands-400.woff2') format('woff2');font-display:swap}.fab,.fas{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fas{font-family:'Font Awesome 6 Free';font-weight:900}.fab{font-family:'Font Awesome 6 Brands';font-weight:400}.fa-arrow-up:before{content:"\f062"}.fa-pen-nib:before{content:"\f5ad"}.fa-shopping-cart:before{content:"\f07a"}.fa-mobile-alt:before{content:"\f3cd"}.fa-search:before{content:"\f002"}.fa-tools:before{content:"\f7d9"}.fa-cogs:before{content:"\f085"}.fa-arrow-right:before{content:"\f061"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-external-link-alt:before{content:"\f35d"}.fa-whatsapp:before{content:"\f232"}.fa-facebook:before{content:"\f09a"}.fa-x-twitter:before{content:"\e61b"}.fa-instagram:before{content:"\f16d"}.fa-youtube:before{content:"\f167"}.fa-wordpress:before{content:"\f19a"}.section-title{position:relative;display:inline-block;padding:15px 30px;background:rgba(248,249,250,.8);border-radius:10px;box-shadow:0 4px 15px rgba(0,0,0,.08);border:1px solid rgba(0,123,255,.1);transition:transform .3s ease,box-shadow .3s ease;margin:0 auto}.section-title::after{content:'';position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);width:40px;height:2px;background:#007bff;border-radius:1px;opacity:.7;transition:width .3s ease,opacity .3s ease}.section-title:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,123,255,.15);border-color:rgba(0,123,255,.3);background:linear-gradient(135deg,#f8f9fa 0,#eef5ff 100%)}.section-title:hover::after{width:60px;opacity:1}.section-padding{padding:80px 0}.google-review-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.1);transition:all .3s ease;height:100%;min-height:220px;display:flex;flex-direction:column;border:1px solid #e8eaed}.google-review-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.15);transform:translateY(-4px)}.review-header{display:flex;align-items:center;margin-bottom:12px}.review-avatar{width:40px;height:40px;border-radius:50%;background:#4285f4;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:500;font-size:18px;margin-right:12px;flex-shrink:0}.review-author-info{flex:1}.review-author{font-weight:600;color:#202124;font-size:14px;margin-bottom:2px}.review-meta{font-size:12px;color:#5f6368}.review-rating{color:#fbbc04;font-size:16px;margin-bottom:8px;letter-spacing:2px}.review-date{font-size:12px;color:#70757a;margin-bottom:12px}.review-text{font-size:14px;color:#3c4043;line-height:1.6;flex-grow:1}.btn-luxe-outline{border:2px solid #4285f4;color:#4285f4;padding:12px 32px;border-radius:8px;font-weight:600;text-decoration:none;transition:all .3s ease;display:inline-block}.btn-luxe-outline:hover{background:#4285f4;color:#fff;text-decoration:none}#reviewsCarousel .carousel-control-next,#reviewsCarousel .carousel-control-prev{width:50px;height:50px;background:rgba(66,133,244,.9);border-radius:50%;opacity:1;top:60%}#reviewsCarousel .carousel-control-prev{left:-60px}#reviewsCarousel .carousel-control-next{right:-60px}#reviewsCarousel .carousel-control-next:hover,#reviewsCarousel .carousel-control-prev:hover{background:#4285f4}#reviewsCarousel .carousel-control-next-icon,#reviewsCarousel .carousel-control-prev-icon{width:20px;height:20px}@media (max-width:768px){#reviewsCarousel{overflow:hidden}#reviewsCarousel .carousel-inner{display:flex;overflow-x:auto;padding:0 4px 12px;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin}#reviewsCarousel .carousel-inner::-webkit-scrollbar{height:6px}#reviewsCarousel .carousel-inner::-webkit-scrollbar-thumb{background:rgba(66,133,244,.45);border-radius:999px}#reviewsCarousel .carousel-item{display:block!important;flex:0 0 auto;width:auto!important;margin-right:1rem!important;transform:none!important}#reviewsCarousel .carousel-item .row{display:flex;flex-wrap:nowrap;gap:1rem;margin:0;--bs-gutter-x:0}#reviewsCarousel .carousel-item .col-md-4{flex:0 0 min(86vw,360px);max-width:min(86vw,360px);padding:0}.google-review-card{margin-bottom:0;min-height:220px}.section-padding{padding:60px 0}#reviewsCarousel .carousel-control-next,#reviewsCarousel .carousel-control-prev{display:none}}@font-face{font-family:'Font Awesome';src:url('https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.0/webfonts/fa-solid-900.woff2') format('woff2');font-display:swap}@font-face{font-family:'Font Awesome Brands';src:url('https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.0/webfonts/fa-brands-400.woff2') format('woff2');font-display:swap}.portfolio-card-link{text-decoration:none;display:block;height:100%;color:inherit}.portfolio-card-link:hover{text-decoration:none;color:inherit}.portfolio-card{background:#fff;border:3px solid #cbd5e1;border-radius:var(--portfolio-card-radius);overflow:hidden;box-shadow:0 8px 32px rgba(37,99,235,.12),0 2px 8px rgba(0,0,0,.06);transition:transform .4s cubic-bezier(.4, 0, .2, 1),box-shadow .4s cubic-bezier(.4, 0, .2, 1);height:100%;display:flex;flex-direction:column;min-height:380px;background:linear-gradient(145deg,#fff 0,#fafbff 100%);position:relative;contain:layout style;will-change:transform}.portfolio-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:20px 20px 0 0;opacity:0;transition:opacity .3s ease}.portfolio-card-link:hover .portfolio-card{transform:translateY(-8px);box-shadow:0 16px 64px rgba(37,99,235,.2),0 4px 16px rgba(0,0,0,.1);border-color:rgba(37,99,235,.6)}.portfolio-card-link:hover .portfolio-card::before{opacity:1}.portfolio-card-image{height:200px;overflow:hidden;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);position:relative}.portfolio-card-image::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,transparent 0,rgba(0,0,0,.1) 100%);opacity:0;transition:opacity .3s ease}.portfolio-card-link:hover .portfolio-card-image::after{opacity:1}.portfolio-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.4, 0, .2, 1),opacity .3s ease}.portfolio-card-image video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease;z-index:1}.portfolio-card-link:hover .portfolio-card-image img{transform:scale(1.08)}.portfolio-card-body{padding:24px;flex-grow:1;display:flex;flex-direction:column;gap:16px}.portfolio-card-title{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0;line-height:1.4;font-family:Inter,sans-serif;letter-spacing:-.025em}.portfolio-card-text{font-size:.95rem;color:#64748b;line-height:1.6;margin:0;flex-grow:1;font-weight:400}.portfolio-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;gap:12px}.portfolio-badge{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-size:.75rem;font-weight:600;padding:8px 16px;border-radius:50px;text-transform:uppercase;letter-spacing:.8px;box-shadow:0 2px 8px rgba(37,99,235,.3);position:relative;overflow:hidden}.portfolio-badge::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .6s ease}.portfolio-card-link:hover .portfolio-badge::before{left:100%}.portfolio-btn{color:var(--primary);font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:12px;background:rgba(37,99,235,.05);transition:all .3s cubic-bezier(.4, 0, .2, 1);border:1px solid rgba(37,99,235,.1)}.portfolio-btn:hover{color:#fff;background:var(--primary);transform:translateY(-2px);box-shadow:0 4px 16px rgba(37,99,235,.3);border-color:var(--primary)}.portfolio-btn i{font-size:.85rem;transition:transform .3s ease}.portfolio-btn:hover i{transform:translateX(2px)}@media (max-width:768px){.portfolio-card{min-height:360px}.portfolio-card-image{height:160px}.portfolio-card-body{padding:20px;gap:12px}.portfolio-card-title{font-size:1.15rem}.portfolio-card-text{font-size:.9rem}.portfolio-card-footer{flex-direction:column;gap:12px;align-items:stretch;text-align:center}.portfolio-btn{justify-content:center;padding:10px 16px}.portfolio-badge{align-self:center;padding:6px 14px}}.seo-cluster-section{position:relative;padding:clamp(68px,8vw,104px) 0;background:linear-gradient(180deg,#f8fafc 0,#fff 100%);overflow:hidden}.seo-cluster-section::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(37,99,235,.07) 1px,transparent 1px),linear-gradient(180deg,rgba(37,99,235,.05) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(90deg,transparent 0%,#000 22%,#000 78%,transparent 100%);pointer-events:none}.seo-cluster-layout{position:relative;display:grid;grid-template-columns:minmax(0,0.86fr) minmax(420px,1fr);gap:clamp(32px,6vw,84px);align-items:center}.seo-cluster-copy{max-width:560px}.seo-cluster-eyebrow{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1rem;color:#2563eb;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.seo-cluster-eyebrow::before{content:"";width:28px;height:2px;background:#2563eb}.seo-cluster-copy h2{margin:0;color:#0f1419;font-family:var(--font-display);font-size:clamp(2rem, 4.2vw, 4rem);font-weight:800;line-height:1.02;letter-spacing:0}.seo-cluster-copy p{max-width:48ch;margin:1.35rem 0 0;color:#526071;font-size:clamp(1rem, 1.4vw, 1.1rem);line-height:1.75}.seo-cluster-primary{display:inline-flex;align-items:center;gap:.7rem;margin-top:2rem;padding:.88rem 1.1rem;border:1px solid rgba(37,99,235,.24);border-radius:8px;color:#0f1419;background:#fff;font-weight:800;text-decoration:none;box-shadow:0 14px 36px rgba(15,23,42,.08);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.seo-cluster-primary:hover{color:#0f1419;border-color:rgba(37,99,235,.5);transform:translateY(-2px);box-shadow:0 18px 44px rgba(37,99,235,.14)}.seo-cluster-list{display:grid;gap:1px;border:1px solid rgba(15,23,42,.1);border-radius:8px;overflow:hidden;background:rgba(15,23,42,.08);box-shadow:0 24px 64px rgba(15,23,42,.1)}.seo-cluster-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.1rem;align-items:center;min-height:128px;padding:clamp(1.15rem,2vw,1.55rem);background:rgba(255,255,255,.94);color:#0f1419;text-decoration:none;transition:background .22s ease,transform .22s ease}.seo-cluster-item:hover{color:#0f1419;background:#fff;transform:translateX(4px)}.seo-cluster-index{color:#2563eb;font-size:.82rem;font-weight:900;letter-spacing:.08em}.seo-cluster-text{display:grid;gap:.45rem}.seo-cluster-text strong{font-size:clamp(1.08rem, 1.5vw, 1.25rem);line-height:1.2}.seo-cluster-text small{color:#64748b;font-size:.96rem;line-height:1.55}.seo-cluster-item>i,.seo-cluster-primary>i{color:#2563eb}@media (max-width:991.98px){.seo-cluster-layout{grid-template-columns:1fr;gap:2rem}.seo-cluster-copy{max-width:720px}}@media (max-width:575.98px){.seo-cluster-section{padding:152px 0 128px;scroll-margin-top:88px}.seo-cluster-copy h2{font-size:1.9rem;line-height:1.1}.seo-cluster-primary{width:100%;justify-content:center}.seo-cluster-item{grid-template-columns:1fr auto;min-height:auto;padding:1.15rem}.seo-cluster-index{grid-column:1/-1}}.blog-preview-card{display:flex;flex-direction:column;height:100%;border-radius:14px;overflow:hidden;border:1px solid #e9ecef;background:#fff;text-decoration:none;color:inherit;transition:transform .22s ease,box-shadow .22s ease;box-shadow:0 4px 18px rgba(0,0,0,.05)}.blog-preview-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(37,99,235,.12);color:inherit;text-decoration:none}.blog-preview-img{aspect-ratio:16/9;overflow:hidden}.blog-preview-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.blog-preview-card:hover .blog-preview-img img{transform:scale(1.04)}.blog-preview-body{display:flex;flex-direction:column;flex:1;padding:1.35rem 1.4rem 1.4rem;gap:.5rem}.blog-preview-cat{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2563eb}.blog-preview-title{font-size:1.05rem;font-weight:700;line-height:1.4;color:#0f1419;margin:0}.blog-preview-excerpt{font-size:.93rem;color:#64748b;line-height:1.6;margin:0;flex:1}.blog-preview-read{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;font-weight:600;color:#2563eb;margin-top:.4rem;transition:gap .2s ease}.blog-preview-card:hover .blog-preview-read{gap:.65rem}@media (max-width:767.98px){.blog-preview-title{font-size:1rem}.blog-preview-body{padding:1.1rem 1.2rem 1.2rem}}#servicios .card{background:linear-gradient(145deg,#fff 0,#f8fafc 100%);border:2px solid transparent;border-radius:var(--card-border-radius);padding:20px;transition:transform var(--transition-speed-slow) cubic-bezier(.4, 0, .2, 1),box-shadow var(--transition-speed-slow) cubic-bezier(.4, 0, .2, 1);position:relative;overflow:hidden;box-shadow:0 10px 40px rgba(37,99,235,.08),0 2px 8px rgba(0,0,0,.04);contain:layout style;will-change:transform}#servicios .card::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:24px;padding:2px;background:linear-gradient(135deg,rgba(37,99,235,.3),rgba(59,130,246,.1),rgba(147,197,253,.2));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0;transition:opacity .5s ease}#servicios .card::after{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(37,99,235,.03) 0,transparent 70%);opacity:0;transition:opacity .5s ease}#servicios .card:hover{transform:translateY(-12px) scale(1.02);box-shadow:0 20px 60px rgba(37,99,235,.15),0 8px 24px rgba(0,0,0,.08)}#servicios .card:hover::before{opacity:1}#servicios .card:hover::after{opacity:1}#servicios .card-body{position:relative;z-index:1}#servicios .card-body i{width:80px;height:80px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(37,99,235,.1),rgba(59,130,246,.05));border-radius:20px;margin-bottom:24px;transition:all .5s cubic-bezier(.4, 0, .2, 1);font-size:2.5rem}#servicios .card:hover .card-body i{transform:rotateY(360deg) scale(1.1);background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff!important;box-shadow:0 8px 24px rgba(37,99,235,.3)}#servicios .card-title{font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:var(--dark);margin-bottom:16px;letter-spacing:-.02em;transition:all .3s var(--ease-out-expo)}#servicios .card:hover .card-title{color:var(--accent);transform:translateY(-2px)}#servicios .card-text{font-family:var(--font-body);font-size:1rem;line-height:1.7;color:var(--gray-600);transition:color .3s ease}#servicios .card:hover .card-text{color:var(--gray-800)}#scrollToTop,#whatsappBtn{position:fixed;bottom:30px;border-radius:50%;color:#fff;text-align:center;cursor:pointer;transition:all .3s var(--ease-out-expo);z-index:1000;box-shadow:0 4px 16px rgba(0,0,0,.15);backdrop-filter:blur(10px)}#scrollToTop{right:30px;width:52px;height:52px;background:linear-gradient(135deg,var(--accent) 0,var(--accent-hover) 100%);line-height:52px;display:none;font-size:18px;color:#0a1628}#scrollToTop:hover{transform:translateY(-4px) scale(1.08);box-shadow:0 8px 24px rgba(0,212,255,.5)}#whatsappBtn{left:30px;width:62px;height:62px;background:linear-gradient(135deg,#25d366 0,#20ba5a 100%);line-height:62px;font-size:32px;text-decoration:none}#whatsappBtn:hover{transform:translateY(-4px) scale(1.08) rotate(5deg);box-shadow:0 8px 24px rgba(37,211,102,.35)}.social-links a{transition:color .3s ease;text-decoration:none}.social-links a:hover{color:var(--secondary)!important}.btn-primary{background:linear-gradient(135deg,var(--accent) 0,var(--accent-hover) 100%);border:none;border-radius:var(--btn-border-radius);font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;color:#0a1628;box-shadow:0 4px 16px rgba(0,212,255,.35),inset 0 1px 0 rgba(255,255,255,.3);transition:all .35s var(--ease-out-expo)}.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 28px rgba(0,212,255,.5),inset 0 1px 0 rgba(255,255,255,.4);color:#0a1628}.form-control{border:1px solid #dee2e6;padding:.8rem;transition:all .3s ease;background-color:#fff}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 .15rem rgba(37,99,235,.1)}@media (max-width:768px){.navbar-nav{text-align:center}.hero-section{padding:var(--section-padding-mobile) 0 var(--hero-padding-bottom-mobile);min-height:var(--hero-min-height-mobile)}#whatsappBtn{width:44px;height:44px;line-height:44px;font-size:22px;left:16px;bottom:16px;padding:0}.navbar-collapse{max-height:70vh;overflow-y:auto}#scrollToTop{width:44px;height:44px;line-height:44px;right:16px;bottom:16px;font-size:22px}}@media (max-width:576px){.hero-section{padding:var(--section-padding-small) 0 var(--hero-padding-bottom-small);min-height:var(--hero-min-height-small)}.hero-title{margin-bottom:1.5rem}.hero-subtitle{margin:.8rem 0}}