@font-face{font-display:swap;font-family:'Montserrat';font-style:normal;font-weight:400;src:url(./fonts/montserrat-v31-latin-regular.woff2) format('woff2')}@font-face{font-display:swap;font-family:'Montserrat';font-style:normal;font-weight:700;src:url(./fonts/montserrat-v31-latin-700.woff2) format('woff2')}@font-face{font-display:swap;font-family:'Montserrat';font-style:normal;font-weight:800;src:url(./fonts/montserrat-v31-latin-800.woff2) format('woff2')}@font-face{font-display:swap;font-family:'Open Sans';font-style:normal;font-weight:400;src:url(./fonts/open-sans-v44-latin-regular.woff2) format('woff2')}@font-face{font-display:swap;font-family:'Open Sans';font-style:normal;font-weight:600;src:url(./fonts/open-sans-v44-latin-600.woff2) format('woff2')}:root{--primary:#00319b;--secondary:#0035bb;--accent:#f39c12;--dark:#1a1a1a;--light:#f4f7e2;--white:#e5e8ec;--gray-medium:#e0e0e0;--transition:all 0.3s ease}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:#fff0}html{scroll-behavior:smooth;scroll-padding-top:80px}body{font-family:'Open Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;line-height:1.6;background-color:#fff;color:#222;overflow-x:hidden}h1,h2,h3{font-family:'Montserrat',sans-serif;text-transform:uppercase}h1{color:var(--white)}h3{color:var(--secondary)}a{text-decoration:none;color:inherit;transition:var(--transition)}img{max-width:100%;height:auto;display:block}header{background:linear-gradient(to bottom,rgb(255 255 255 / .9),rgb(255 255 255 / .5));height:80px;display:flex;align-items:center;justify-content:flex-end;padding:0 2%;position:fixed;width:100%;top:0;z-index:1000;box-shadow:0 2px 15px rgb(0 0 0 / .1)}body.modal-open header{padding-right:calc(2% + var(--scrollbar-width, 0))}.hamburger{display:none;flex-direction:column;align-items:center;justify-content:center;width:50px;height:50px;border:none;border-radius:50%;margin-right:10px;cursor:pointer;padding:0;z-index:1001;transition:var(--transition);background-color:var(--white);gap:5px}.hamburger-line{width:25px;height:3px;background:var(--primary);border-radius:10px;transition:all 0.3s ease;transform-origin:center}.hamburger.active .hamburger-line:nth-child(1){transform:translateY(8px) rotate(45deg)}.hamburger.active .hamburger-line:nth-child(2){opacity:0;transform:translateX(-20px)}.hamburger.active .hamburger-line:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.hamburger:hover .hamburger-line{background:var(--secondary)}.hamburger:focus-visible{outline:2px solid var(--secondary);outline-offset:4px}.nav-menu{display:flex;list-style:none;gap:2rem;align-items:center}.nav-link{color:var(--primary);margin-left:10px;font-weight:600;font-size:1.1rem;padding:.5rem 0;position:relative;transition:var(--transition);display:inline-block}.nav-link::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--accent);transition:var(--transition)}.inicio{min-height:100vh;background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--light);padding:0 20px;animation:cambiarFondo 30s infinite;box-shadow:0 5px 8px var(--dark);position:relative}.logo{opacity:0;width:50%;align-self:flex-start;margin-top:100px;margin-left:10%;animation:slideInLogo 1.5s ease-in-out forwards;animation-delay:0.5s}.iconos{opacity:0;width:40%;position:absolute;top:13%;right:5%;animation:rotarIconos 1s ease-in-out forwards;animation-delay:1s}.inicio h1{font-size:4rem;margin-bottom:10px;animation:fadeInUp 1s;z-index:1}.inicio p{font-size:1.3rem;max-width:700px;margin-bottom:30px;font-weight:300}.btn-main{padding:15px 40px;background:#fff0;color:#fff;border:2px solid #fff;border-radius:10px;font-weight:700;font-size:1.1rem;cursor:pointer;transition:var(--transition);display:inline-block}section{padding:50px 10%}.section-title{text-align:center;margin-bottom:60px}.section-title h2{font-size:2.5rem;color:var(--primary);margin-bottom:10px}.section-title .underline{width:80px;height:4px;background:var(--secondary);margin:0 auto}.link-pdf{color:var(--primary);font-weight:700}.link-pdf:hover{color:var(--secondary)}.link-pdf:hover::after{content:" ↗";font-size:.9em}#servicios{background:var(--light)}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:25px}.service-card{background:var(--white);padding:60px 15px;border-radius:15px;text-align:center;transition:var(--transition);box-shadow:0 5px 15px rgb(0 0 0 / .2);border:none;position:relative;cursor:pointer}.service-card:hover{transform:translateY(-10px);box-shadow:0 15px 30px rgb(0 0 0 / .5)}.service-card h3{margin-bottom:5px;font-size:1.2rem;min-height:50px;display:flex;align-items:center;justify-content:center}.span-mas{position:absolute;right:20px;bottom:20px;color:var(--primary);font-size:1rem;font-weight:700}body.modal-open{overflow:hidden;padding-right:var(--scrollbar-width,0)}.modal{display:none;position:fixed;z-index:2000;inset:0;background:rgb(0 0 0 / .5);cursor:pointer}.modal-wrapper{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80%;max-width:500px;max-height:80vh}.close{color:var(--primary);position:absolute;background-color:var(--white);border-radius:50%;width:50px;height:50px;top:5px;right:25px;font-size:2.2rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.modal-content{background:var(--light);padding:40px 20px 20px;border-radius:10px;max-height:80vh;overflow-y:auto;text-align:center;box-shadow:0 5px 10px rgb(0 0 0 / .6);cursor:default}.close:hover{transform:scale(1.1)}.modal-content h2{font-size:1.5rem;margin-top:10px;color:var(--primary)}.modal-content p{margin:10px 0;line-height:1.5}.modal-content ul{list-style-position:inside;text-align:left;margin:15px auto;padding-left:0;display:inline-block}ul li::marker{color:var(--primary)}.modal-content li{margin:5px 0}.modal-content footer{background:var(--white);color:var(--primary);padding:10px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.project-item{position:relative;overflow:hidden;border-radius:10px;height:350px}.project-item svg{position:absolute;top:45%;left:45%}.project-item img{width:100%;height:100%;object-fit:cover;transition:var(--transition)}.project-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgb(84 154 230 / .7);display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;opacity:0;transition:var(--transition);padding:20px;text-align:center}.project-item:hover .project-overlay{opacity:1}.project-item:hover img{transform:scale(1.1)}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:50px}.contact-info p{margin-bottom:15px;display:flex;align-items:center}.contact-info i{color:var(--secondary);margin-right:15px;font-size:1.2rem}.contact-info a{color:var(--secondary);transition:var(--transition)}.contact-info a:hover{color:var(--primary);text-decoration:underline}.contact-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{position:relative}.form-group input,.form-group textarea{width:100%;padding:15px;border:2px solid var(--gray-medium);border-radius:8px;font-size:1rem;font-family:'Open Sans',sans-serif;transition:var(--transition);background:#fff}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--secondary);box-shadow:0 0 0 3px rgb(0 53 187 / .1)}.form-group input.error,.form-group textarea.error{border-color:#ff3860}.form-group input:valid:not(:placeholder-shown),.form-group textarea:valid:not(:placeholder-shown){border-color:#23d160}.form-group textarea{resize:vertical;min-height:120px}.error-message{color:#ff3860;font-size:.9rem;margin-top:5px;display:none}.btn-submit{padding:15px 40px;background:var(--primary);color:#fff;border:none;border-radius:10px;font-weight:700;font-size:1.1rem;cursor:pointer;transition:var(--transition);text-transform:uppercase;letter-spacing:1px}.btn-submit:hover{background:var(--secondary);transform:translateY(-3px);box-shadow:var(--shadow-md)}.btn-submit:active{transform:translateY(-1px)}.btn-submit:disabled{background:#ccc;cursor:not-allowed;transform:none}footer{background:var(--dark);color:#fff;padding:40px 10%}.footer-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center}.footer-content p{margin:0;font-size:1rem;color:rgb(255 255 255 / .8)}.footer-links{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;align-items:center}.footer-links a{position:relative;color:#799df8;display:inline-block}.footer-links a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--accent);transition:var(--transition)}@media (hover:hover) and (pointer:fine){.nav-link:hover{color:var(--secondary);transform:translateY(-2px)}.nav-link:hover::after{width:100%}.btn-main:hover{background:#fff;color:var(--primary);transform:translateY(-3px)}.footer-links a:hover{transform:translateY(-2px)}.footer-links a:hover::after{width:100%}}.footer-links .separator{color:rgb(255 255 255 / .5)}.img-loading{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite}@keyframes loading{0%{background-position:200% 0}100%{background-position:-200% 0}}@media (max-width:600px){.contact-content{grid-template-columns:1fr}.logo{width:60%}.inicio h1{font-size:3rem}.section-title h2{font-size:2rem}.hamburger{display:flex}.nav-menu{position:fixed;top:80px;right:-100%;width:55%;max-width:400px;height:calc(70vh - 80px);background-color:rgb(255 255 255 / .5);flex-direction:column;align-items:flex-start;padding:40px 30px;transition:right 0.3s ease;box-shadow:2px 0 10px rgb(0 0 0 / .1);z-index:999;margin:0;gap:0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-menu.active{right:0}.nav-menu li{margin:0;width:100%}.nav-link{font-size:1.2rem;padding:15px 0;width:100%;display:block;border-bottom:1px solid rgb(0 0 0 / .1)}.nav-link:last-child{border-bottom:none}}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLogo{from{transform:translateX(-100%)}to{opacity:.9;transform:translateX(0)}}@keyframes rotarIconos{from{transform:rotate(-400deg)}to{opacity:.7;transform:rotate(0deg)}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.logo{opacity:.9}.iconos{opacity:.7}}@keyframes cambiarFondo{0%{background-image:linear-gradient(rgb(0 0 0 / .5),rgb(0 0 0 / .3)),url(./images/20201129_182738.webp)}50%{background-image:linear-gradient(rgb(0 0 0 / .5),rgb(0 0 0 / .3)),url(./images/20201129_184247.webp)}100%{background-image:linear-gradient(rgb(0 0 0 / .5),rgb(0 0 0 / .3)),url(./images/20201129_182738.webp)}}