:root{--noche:#0C2A18;--principal:#1A7A4A;--acento:#5CC98A;--suave:#D0EED9;--offwhite:#F5F7F5}*{font-family:'Plus Jakarta Sans',sans-serif}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--suave)}::-webkit-scrollbar-thumb{background:var(--principal);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--acento)}@keyframes fadeInUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(2deg)}}@keyframes pulse-glow{0%,100%{box-shadow:0 0 20px rgba(92,201,138,.3)}50%{box-shadow:0 0 40px rgba(92,201,138,.5)}}.animate-on-scroll{opacity:0;transform:translateY(40px);transition:opacity .8s ease-out,transform .8s ease-out}.animate-on-scroll.visible{opacity:1;transform:translateY(0)}.animate-on-scroll.from-left{transform:translateX(-40px)}.animate-on-scroll.from-left.visible{transform:translateX(0)}.animate-on-scroll.from-right{transform:translateX(40px)}.animate-on-scroll.from-right.visible{transform:translateX(0)}.stagger-1{transition-delay:0.1s}.stagger-2{transition-delay:0.2s}.stagger-3{transition-delay:0.3s}.stagger-4{transition-delay:0.4s}.arc-top-right{position:absolute;top:-100px;right:-100px;width:400px;height:400px;border-radius:50%;border:80px solid transparent;border-top-color:var(--principal);border-right-color:var(--principal);opacity:.15;pointer-events:none}.arc-bottom-left{position:absolute;bottom:-150px;left:-150px;width:500px;height:500px;border-radius:50%;border:60px solid transparent;border-bottom-color:var(--acento);border-left-color:var(--acento);opacity:.1;pointer-events:none}.arc-decoration{position:absolute;width:300px;height:300px;border-radius:50%;border:40px solid var(--principal);opacity:.08;pointer-events:none}.arc-hero-left{top:20%;left:-100px}.arc-hero-right{bottom:10%;right:-50px;width:200px;height:200px;border-color:var(--acento)}.arc-servicios-right{top:10%;right:-80px}.arc-servicios-left{bottom:5%;left:-60px;border-color:var(--acento)}.arc-contacto-left{top:5%;left:-80px}.arc-contacto-right{bottom:10%;right:-60px;border-color:var(--acento)}.btn-primary{background-color:var(--principal);color:var(--offwhite);padding:14px 32px;border-radius:8px;font-weight:600;transition:all .3s ease;position:relative;overflow:hidden}.btn-primary::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 .5s ease}.btn-primary:hover::before{left:100%}.btn-primary:hover{background-color:var(--acento);transform:translateY(-2px);box-shadow:0 10px 30px rgba(92,201,138,.3)}.btn-primary:focus-visible{outline:3px solid var(--acento);outline-offset:2px}.btn-outline{border:2px solid var(--acento);color:var(--acento);padding:12px 30px;border-radius:8px;font-weight:600;transition:all .3s ease;background:0 0}.btn-outline:hover{background-color:var(--acento);color:var(--noche);transform:translateY(-2px)}.btn-outline:focus-visible{outline:3px solid var(--acento);outline-offset:2px}.service-card{background:rgba(255,255,255,.85);border:1px solid rgba(92,201,138,.35);border-radius:12px;padding:24px;transition:all .4s ease;cursor:pointer;display:flex;flex-direction:column;height:100%}.service-card p.text-sm{flex:1}.service-card:hover{border-color:var(--acento);transform:translateY(-4px);box-shadow:0 12px 32px rgba(92,201,138,.18);background:rgba(255,255,255,.97)}.value-card{background:rgba(255,255,255,.85);border-radius:16px;padding:32px;transition:all .4s ease;border:1px solid rgba(92,201,138,.25)}.value-card:hover{border-color:var(--acento);transform:scale(1.02);box-shadow:0 12px 40px rgba(92,201,138,.15)}.tab-btn{padding:16px 40px;font-weight:600;font-size:1.125rem;border-radius:8px 8px 0 0;transition:all .3s ease;border:2px solid transparent;border-bottom:none;background:rgba(92,201,138,.1);color:var(--noche)}.tab-btn.active{background:rgba(255,255,255,.9);border-color:var(--acento);color:var(--principal)}.tab-btn:hover:not(.active){background:rgba(92,201,138,.2)}.tab-btn:focus-visible{outline:3px solid var(--acento);outline-offset:-3px}.accordion-header{background:rgba(255,255,255,.75);border:1px solid rgba(92,201,138,.3);border-radius:8px;padding:20px 24px;cursor:pointer;transition:all .3s ease;display:flex;justify-content:space-between;align-items:center}.accordion-header:hover{background:rgba(255,255,255,.95);border-color:var(--acento)}.accordion-header.active{background:rgba(255,255,255,.95);border-color:var(--acento);border-radius:8px 8px 0 0}.accordion-icon{transition:transform .3s ease}.accordion-header.active .accordion-icon{transform:rotate(180deg)}.accordion-content{max-height:0;overflow:hidden;transition:max-height .4s ease-out;background:rgba(255,255,255,.6);border:1px solid rgba(92,201,138,.2);border-top:none;border-radius:0 0 8px 8px}.accordion-content.open{max-height:2000px}.navbar{transition:all .3s ease;background:var(--principal)}.navbar.scrolled{background:rgba(26,122,74,.97);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 30px rgba(0,0,0,.15)}.navbar.nav-hidden{transform:translateY(-100%)}.nav-link{position:relative;color:var(--offwhite);font-weight:500;padding:8px 16px;transition:color .3s ease}.nav-link::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--acento);transition:all .3s ease;transform:translateX(-50%)}.nav-link:hover{color:var(--acento)}.nav-link:hover::after{width:80%}.nav-link:focus-visible{outline:2px solid var(--acento);outline-offset:4px;border-radius:4px}.floating-shape{animation:float 8s ease-in-out infinite}.floating-shape:nth-child(2){animation-delay:-2s}.floating-shape:nth-child(3){animation-delay:-4s}.stat-number{font-size:3.5rem;font-weight:700;color:var(--acento);line-height:1}.form-input{width:100%;padding:14px 18px;background:rgba(255,255,255,.9);border:1px solid rgba(92,201,138,.35);border-radius:8px;color:var(--noche);font-size:1rem;transition:all .3s ease}.form-input:focus{outline:0;border-color:var(--acento);box-shadow:0 0 0 3px rgba(92,201,138,.15)}.form-input::placeholder{color:rgba(12,42,24,.4)}.form-label{display:block;margin-bottom:8px;font-weight:500;color:var(--noche)}.mobile-menu{position:fixed;top:0;right:-100%;width:80%;max-width:320px;height:100vh;background:var(--noche);z-index:1000;transition:right .4s ease;box-shadow:-10px 0 30px rgba(0,0,0,.5)}.mobile-menu.open{right:0}.mobile-overlay{position:fixed;top:0;left:0;width:100%;height:100vh;background:rgba(0,0,0,.7);z-index:999;opacity:0;visibility:hidden;transition:all .4s ease}.mobile-overlay.open{opacity:1;visibility:visible}.cta-banner{background:linear-gradient(135deg,var(--principal) 0,#0f5c38 100%)}.site-footer{background:linear-gradient(160deg,var(--principal) 0,#0f5c38 100%)}.pattern-bg{background-image:radial-gradient(rgba(92,201,138,.03) 1px,transparent 1px);background-size:40px 40px}.whatsapp-fab{position:fixed;bottom:28px;right:28px;z-index:900;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(37,211,102,.45);transition:transform .25s ease,box-shadow .25s ease}.whatsapp-fab:hover{transform:scale(1.1);box-shadow:0 8px 24px rgba(37,211,102,.55)}.dev-credit{text-align:center;font-size:.75rem;margin-top:1rem;color:rgba(208,238,217,.3)}.dev-credit a{color:rgba(208,238,217,.5);transition:color .3s ease}.dev-credit a:hover{color:var(--acento)}.logo-mark{width:48px;height:48px;background:var(--principal);border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.5rem;color:var(--offwhite);position:relative}.logo-mark::after{content:'';position:absolute;bottom:8px;right:6px;width:12px;height:12px;border:2px solid var(--acento);border-radius:50%}.logo-mark::before{content:'';position:absolute;bottom:10px;right:10px;width:8px;height:2px;background:var(--acento);transform:rotate(-45deg)}