/* ================= GLOBAL STYLES ================= */
:root { --green-official:#4A8E4A; --green-dark:#488348; --green-link:#46AC46; --bg:#f7f7f7;}
* { box-sizing:border-box; }
body { margin:0; font-family:'Poppins',sans-serif; background:var(--bg); line-height:1.45; }
html, body { width:100%; overflow-x:hidden; }
::selection { background: var(--green-dark); color: #fff; }

/* =========================== PAGINA PRINCIPAL ===========================*/


/* ================= HEADER ================= */
.main-header{position:fixed;top:0;left:0;width:100%;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:var(--green-official);color:#b11e1e;z-index:200;transition:height .3s ease,padding .3s ease,background-color .3s ease,box-shadow .3s ease;}
.main-header.scrolled{height:60px;padding:0 24px;background:var(--green-dark);box-shadow:0 2px 10px rgba(0,0,0,.08);}
.logo-left img{height:52px;transition:height .3s ease;}
.main-header.scrolled .logo-left img{height:42px;}
.main-header nav{display:flex;align-items:center;gap:24px;}
.main-header nav a{color:#fff;text-decoration:none;font-size:1.05rem;font-weight:600;padding:10px 6px;border-bottom:2px solid transparent;transition:opacity .25s ease,border-color .25s ease;}
.main-header nav a:hover{opacity:.85;border-bottom-color:#fff;}
.area-privada-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border:2px solid #fff;border-radius:6px;font-weight:600;background:transparent;color:#fff;text-decoration:none;line-height:1;transition:background-color .3s ease,color .3s ease;}
.area-privada-btn:hover{background:#fff;color:var(--green-official);}
.header-spacer{height:76px;}
.burger{display:none;flex-direction:column;justify-content:center;gap:6px;background:var(--green-official);border:none;border-radius:8px;padding:8px;cursor:pointer;transition:background .3s ease;}
.burger:hover{background:var(--green-dark);}
.main-header.scrolled .burger{background:var(--green-dark);}
.main-header.scrolled .burger:hover{background:#3f743f;}
.burger span{width:26px;height:3px;background:#fff;border-radius:2px;transition:all .3s ease;}
.burger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}
.mobile-nav{position:fixed;top:76px;left:0;width:100%;background:var(--green-dark);display:flex;flex-direction:column;overflow:hidden;max-height:0;transition:max-height .4s ease,top .3s ease;z-index:199;}
.mobile-nav a{padding:16px 24px;color:#fff;text-decoration:none;font-weight:600;border-top:1px solid rgba(255,255,255,.15);transition:background .3s;}
.mobile-nav a:hover{background:rgba(255,255,255,.08);}
.mobile-nav.open{max-height:400px;}


/* ================= HERO ================= */
section, .hero { scroll-margin-top:76px; }
.hero{position:relative;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;color:#fff;padding:120px 0 140px}
.hero::before {content: "";position: absolute;top: 0; left: 0;width: 100%; height: 100%;background: var(--green-official);z-index: 1;}
#particles {position: absolute;top: 0; left: 0;width: 100%; height: 100%;z-index: 1;pointer-events: none;}
.hero-content {position: relative;z-index: 3;max-width: 600px;margin-left: 40px;padding: 40px 30px;background: rgba(74, 142, 74, 0.65);opacity: 0.85;transition: opacity 0.8s ease, transform 0.8s ease;}
.hero-content.visible {opacity: 1;transform: translateX(0);}
.hero-content h1 {margin: 0 0 18px;font-size: 3rem;line-height: 1.05;font-weight: 700;color: #fff;}
.hero-content p {margin: 0;font-size: 1.2rem;color: #f3f7f5;line-height: 1.5;}
.hero-content .area-privada-btn {margin-top: 20px;}
.hero-images {position: absolute;right: 40px;bottom: 180px;width: min(520px, 40%);z-index: 4;pointer-events: none;}
.hero-images img {width: 100%;height: auto;object-fit: contain;filter: drop-shadow(0 10px 22px rgba(0,0,0,.25));}
.hero-wave{position:absolute;left:0;bottom:0;width:100%;height:auto;z-index:4;pointer-events:none;}


/* ================= CONTADORES ================= */
.counter-bar{background:var(--green-official);color:#fff;display:flex;flex-wrap:wrap;justify-content:space-around;align-items:center;gap:18px;padding:18px 12px;}
.counter-item{text-align:center;min-width:140px;}
.counter-item span{display:block;font-size:1.8rem;font-weight:700;}
.counter-item p{margin:6px 0 0;font-size:.95rem;opacity:.95;}

/* ================= QUÉ HACEMOS ================= */
.section{max-width:1100px;margin:60px auto;padding:0 20px;text-align:center;}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.card{background:#fff;border-radius:12px;padding:22px;box-shadow:0 6px 18px rgba(0,0,0,.06);transition:transform .3s ease,box-shadow .3s ease;}
.card:hover{transform:translateY(-6px);box-shadow:0 10px 26px rgba(0,0,0,.12);}
.card .icono{width:70px;height:70px;border-radius:50%;background:#e6e6e6;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;transition:background .3s ease;}
.card .icono svg{width:40px;height:40px;color:#000;transition:color .3s ease;}
.card:hover .icono{background:var(--green-official);}
.card:hover .icono svg{color:#fff;}


/* ================= NUESTROS VALORES ================= */
.servicios{width:100%;padding:60px 0;background:#fff;text-align:center;}
.titulo-seccion{font-size:40px;font-weight:700;margin-bottom:40px;color:var(--green-official);}
.servicios-contenedor{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px;padding:0 40px;}
.servicio-box{background:#fff;border-radius:16px;padding:30px 20px;box-shadow:0 8px 28px rgba(0,0,0,.15);opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease,box-shadow .3s ease;}
.servicio-box.visible{opacity:1;transform:translateY(0);}
.servicio-box:hover{transform:translateY(-10px);box-shadow:0 18px 38px rgba(0,0,0,.25);}
.servicio-box h3,.servicio-box p{opacity:0;transition:opacity .4s ease .2s;}
.servicio-box.visible h3,.servicio-box.visible p{opacity:1;}
.servicio-box .icono{width:80px;height:80px;border-radius:50%;background:#e5e5e5;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;transition:background .3s ease;}
.servicio-box .icono svg{width:40px;height:40px;color:#000;transition:color .3s ease;}
.servicio-box:hover .icono{background:var(--green-official);}
.servicio-box:hover .icono svg{color:#fff;}


/* ================= SOBRE APALAN ================= */
.sobre-apalan-textos{max-width:1100px;margin:40px auto;padding:0 20px;text-align:left;}
.sobre-apalan-textos .textos p{opacity:0;transform:translateY(20px);animation:fadeUp 0.8s forwards;}
.sobre-apalan-textos .textos p:nth-child(1){animation-delay:0.2s;}
.sobre-apalan-textos .textos p:nth-child(2){animation-delay:0.5s;}
.sobre-apalan-textos .textos p:nth-child(3){animation-delay:0.8s;}
.sobre-apalan-textos .imagenes{display:flex;gap:20px;margin-top:20px;flex-wrap:wrap;}
.sobre-apalan-textos .imagenes img{height:60px;object-fit:contain;}
.sobre-apalan-textos .anim-text{display:block;white-space:pre-wrap;overflow:hidden;border-right:2px solid var(--green-official);opacity:1;padding-right: 10px;}
@keyframes fadeUp{to{opacity:1;transform:translateY(0);}}

/* ================= MOVES III ================= */
.moves{padding:70px 20px;}
.moves-container{max-width:1200px;margin:0 auto;padding:50px 60px;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:60px;border:1px solid #e2e6e4;border-top:4px solid var(--green-official);border-radius:14px;background:#fafbfa;}
.moves-text h2{margin:0 0 16px;font-size:30px;color:#1e1e1e;position:relative;}
.moves-text p{margin:0 0 12px;font-size:1.05rem;line-height:1.6;color:#555;}
.moves-logo{display:flex;justify-content:center;}
.moves-logo img{max-width:400px;width:100%;height:auto;filter:drop-shadow(0 8px 18px rgba(0,0,0,.12));}


/* ================= CLIENTES ================= */
.clients{padding:80px 0;background:#fff;}
.client-bg{display:flex;align-items:center;justify-content:center;width:100%;height:100%;}
.clients h2{text-align:center;margin:0 0 40px;width:100%;}
.clients-carousel{max-width:100%; padding:0 40px;margin:0 auto;position:relative;}
.clients-carousel .owl-item{display:flex;align-items:center;justify-content:center;height:140px;}
.clients-carousel .item{display:flex;align-items:center;justify-content:center;height:100%;}
.clients-carousel .item img{max-width:200px;max-height:100px;width:auto;height:auto;object-fit:contain;display:block;}
.clients-carousel .owl-nav{position:absolute;top:50%;left:2%; right:2%;transform:translateY(-50%);display:flex;justify-content:space-between;pointer-events:none;}
.clients-carousel .owl-nav button{pointer-events:auto;background:none;border:none;padding:0;margin:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;cursor:pointer;outline:none;box-shadow:none;border-radius:50%;}
.clients-carousel .owl-nav button:hover{ background:none !important; outline:none !important; box-shadow:none !important;}
.clients-carousel .owl-nav button:hover .nav-svg circle{fill:var(--green-official);}
.clients-carousel .owl-nav button:hover .nav-svg path{stroke:#fff;}
.nav-svg{width:56px;height:56px;}
.nav-svg circle{fill:#f0f0f0;stroke:#6cc04a;stroke-width:2;transition:fill .3s,stroke .3s;}
.nav-svg path{fill:none;stroke:#6cc04a;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s;}
.owl-theme .owl-nav { margin-top: 0 !important; }


/* ================= CONTACTO ================= */
.contact-section{width:100%;text-align:left;margin-bottom:60px;}
.contact-section h2{margin-bottom:25px;text-align:center;}
.contact-flex{display:flex;gap:30px;max-width:1500px;margin:0 auto;align-items:stretch;}
.contact-map {flex: 1.3;display: flex;flex-direction: column;position: relative;}
.map-tabs-container {display: flex;gap: 4px;margin-left: 10px;z-index: 1; }
.tab-btn {background: #d8d8d8;color: #777;border: 2px solid #bbb;border-bottom: none;padding: 10px 25px;font-weight: 700;cursor: pointer;border-radius: 12px 12px 0 0;transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);transform: translateY(0); }
.tab-btn.active {background: var(--green-official);color: #fff;border-color: var(--green-official);transform: translateY(8px);filter: brightness(0.9);}
.tab-btn:active {transform: translateY(8px);}
.contact-map iframe {width: 100%;height: 100%;min-height: 400px;border: 2px solid var(--green-official);border-radius: 0 16px 16px 16px;background: white;z-index: 5;}
.map-toggle{position:absolute;top:-42px;left:0;background:var(--green-official);color:#fff;border:2px solid var(--green-official);border-bottom:none;padding:10px 18px;font-weight:600;cursor:pointer;border-radius:16px 16px 0 0;transition:background .3s,color .3s;}
.map-toggle:hover{background:#fff;color:var(--green-official);}
.contact-form-box{flex:1;background:white;border-radius:18px;padding:25px;}
.contact-form-box form{display:flex;flex-direction:column;gap:20px;}
.contact-form-box button{background:var(--green-official);color:white;padding:14px;border:none;border-radius:12px;font-weight:bold;cursor:pointer;align-self:flex-start;transition:background .3s ease;}
.contact-form-box button:hover{background:var(--green-dark);}
.contact-form-box input:not([type=checkbox]),.form-group textarea{width:100%;padding:14px;font-size:14px;border-radius:12px;border:1px solid #ddd;}
.form-columns{display:flex;gap:20px;align-items:stretch;}
.form-left,.form-right{flex:1;display:flex;flex-direction:column;gap:12px;align-items:flex-start;}
.form-right textarea{height:100%;min-height:198px;resize:none;}
.form-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:15px;margin-top:20px;}
.form-bottom .legal-text,.form-bottom .g-recaptcha,.form-bottom button{width:100%;max-width:100%;}
.form-bottom .checkbox{display:flex;align-items:center;gap:8px;font-size:14px;width:auto;}
.legal-text{font-size:13px;color:#888;margin:5px 0 10px;line-height:1.4;text-align:left;}
.form-group{position:relative;width:100%;}
.form-group label{position:absolute;left:14px;top:14px;color:#999;pointer-events:none;transition:0.3s ease all;background:white;padding:0 4px;}
.form-group input:focus+label,.form-group input:not(:placeholder-shown)+label,.form-group textarea:focus+label,.form-group textarea:not(:placeholder-shown)+label{transform:translateY(-24px);font-size:12px;color:var(--green-official);}
input::placeholder,textarea::placeholder{color:transparent;}


/* ================= FOOTER ================= */
.footer{background:#111;color:#fff;padding:0;}
.footer-container{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px;align-items:flex-start;justify-content:center; padding:28px 20px;}
.footer-item{display:flex;gap:4px;}
.footer-icon{width:36px;height:36px;min-width:36px;border-radius:50%;background:#2a2a2a;display:flex;align-items:center;justify-content:center;}
.footer-icon i{font-size:16px;color:#6cc04a;line-height:1;}
.footer-text{display:flex;flex-direction:column;}
.footer-text h4{margin-bottom:8px;font-size:1.1rem;color:#fff;}
.footer-text p{margin:4px 0;font-size:.95rem;opacity:.9;}
.footer-policies{display:flex;justify-content:center;gap:16px;border-top:1px solid #444;padding:12px 20px;width:100%;}
.footer-policies a{color:var(--green-link);text-decoration:none;font-weight:600;font-size:14px;white-space:nowrap;}
.footer-bottom{border-top:1px solid #444;padding:14px 20px;text-align:center;font-size:.82rem;opacity:.8;}
.footer-socials{display:flex;gap:14px;margin-top:6px;}
.social-icon{width:24px;height:24px;fill:var(--green-official);transition:fill .3s,transform .3s;}
.footer-socials a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#1a1a1a;transition:background .3s;}
.footer-socials a:hover{background:var(--green-official);}
.footer-socials a:hover .social-icon{fill:#fff;transform:scale(1.1);}


/* ========================= MODALS ========================= */
.modal{display:none;position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.65);padding-top:60px;}
.modal-content{position:relative;margin:auto;width:70%;max-height:80vh;overflow-y:auto;background:#fff;padding:25px;border-radius:12px;}
.modal-content .close{position:sticky;top:20px;right:20px;font-size:24px;font-weight:bold;color:#333;cursor:pointer;background:none;border:none;line-height:1;z-index:999;transition:color .3s;}
.modal-content .close:hover{color:var(--green-official);}
.modal-inner{display:flex;flex-direction:column;padding:30px 60px;color:#666;}
.modal-inner h1{color:#000;font-size:2.4rem;margin:0 0 15px 0;position:relative;display:inline-block;}
.modal-inner h1::after{content:"";display:block;width:80px;height:4px;background-color:var(--green-official);margin:10px 0 25px 0;border-radius:2px;}
.modal-inner h2{color:#000;margin:30px 0 15px 0;}
.modal-inner p,.modal-inner li{color:#666;line-height:1.6;margin-bottom:15px;}
.modal-inner a{color:var(--green-link);text-decoration:none;}
.modal-inner a:hover{text-decoration:underline;}
.modal-inner ul:not(.browser-list){list-style:none;padding-left:0;margin-bottom:15px;}
.modal-inner ul:not(.browser-list)>li{position:relative;padding-left:20px;margin-bottom:8px;}
.modal-inner ul:not(.browser-list)>li::before{content:"•";position:absolute;left:0;color:#666;}
.modal-inner ul:not(.browser-list) li ul>li{position:relative;padding-left:20px;margin-bottom:5px;}
.modal-inner ul:not(.browser-list) li ul>li::before{content:"-";position:absolute;left:0;color:#666;}


/* ================= COOKIE ================= */
.cookie-banner{position:fixed;bottom:0;left:0;width:100%;background:rgba(0,0,0,0.9);color:#fff;z-index:9999;padding:15px 20px;display:none;flex-direction:column;align-items:center;font-family:'Poppins',sans-serif;}
.cookie-content p{margin:0 0 10px 0;text-align:center;max-width:600px;}
.cookie-buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
#acceptAllCookies{background:var(--green-official);color:#fff;padding:10px 18px;margin:5px;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background-color 0.3s,color 0.3s;}
#acceptAllCookies:hover{background:var(--green-dark);}
#onlyNecessaryCookies{background:var(--green-official);color:#fff;border:2px solid var(--green-official);padding:10px 18px;margin:5px;border-radius:6px;font-weight:600;cursor:pointer;transition:background-color 0.3s,color 0.3s;}
#onlyNecessaryCookies:hover{background:var(--green-dark);}
#configCookies{background:transparent;color:var(--green-official);border:2px solid var(--green-official);padding:10px 18px;margin:5px;border-radius:6px;font-weight:600;cursor:pointer;transition:background-color 0.3s,color 0.3s;}
#configCookies:hover{background:var(--green-official);color:#fff;}


/* ================= RESPONSIVE STYLES ================= */

/* HEADER */
@media(max-width:768px){.main-header .desktop-nav{display:none}.main-header .area-privada-btn{display:none}.burger{display:flex}.mobile-nav{top:68px}}

/* HERO */
@media (min-width:1400px){.hero{min-height:67vh;padding-top:40px;}.hero-content{max-width:775px;margin-left:45px;margin-top:0;}.hero-images{left:50%;width:40%;bottom:70px;}.hero-images img{transform:scale(0.9);}.hero-wave{height:180px;}}
@media(max-width:1200px){.hero{flex-direction:column;align-items:center;text-align:center}.hero-content{max-width:85%;margin:0;padding:24px 20px}.hero-content h1{font-size:2.4rem}.hero-content p{font-size:1.05rem}.hero-images{position:relative;right:auto;bottom:auto;width:45%;margin:20px auto 0}}
@media(max-width:992px){.hero-images{width:40%}}
@media (max-width: 768px) {.hero-images {display: none;}}
@media(max-width:480px){.hero-content h1{font-size:1.6rem}.hero-content p{font-size:.95rem}.logo-left img{height:42px}.header-spacer{height:64px}}

/* CONTADORES */
@media(max-width:768px){.counter-item{flex:0 0 45%}}

/* QUÉ HACEMOS */
@media(max-width:1024px){.services-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.services-grid{grid-template-columns:1fr;}}

/* NUESTROS VALORES */
@media(min-width:1025px){.servicios-contenedor{grid-template-columns: repeat(4, 1fr);}}
@media(max-width:1024px){.servicios-contenedor {grid-template-columns: repeat(2, 1fr);padding: 0 30px;}}
@media(max-width:768px){.servicios-contenedor {grid-template-columns: 1fr;padding: 0 20px;}.servicio-box {padding: 25px 15px;}.servicio-box h3, .servicio-box p {text-align: center;}}
@media(max-width:480px){.servicio-box .icono {width: 70px;height: 70px;}.servicio-box .icono svg {width: 32px;height: 32px;}}

/* SOBRE APALAN */
@media (max-width: 480px) {.sobre-apalan-textos .textos p{margin-bottom: 20px;}.sobre-apalan-textos .anim-text {padding-right: 8px;}.sobre-apalan-textos .anim-text::after {display: none;}}

/* MOVES III */
@media (max-width:768px){.moves-container{grid-template-columns:1fr;text-align:center;}}

/* CLIENTES */
@media (max-width: 1024px) {.clients-carousel .item img {max-width: 150px;max-height: 80px;}}
@media (max-width:768px){.clients-carousel .item img{max-width:120px;max-height:60px}.clients-carousel .owl-nav{top:50%}.clients-carousel .owl-nav button{width:44px;height:44px}.hero{min-height:auto;max-height:none;padding:100px 0 120px}.hero-content{margin:0 auto;padding:20px 18px}.hero-wave{height:90px}}
@media(max-width:480px){.clients-carousel .item img{max-width:200px;max-height:100px;}.clients-carousel .owl-nav {top: 50%;right: 5%;}.clients-carousel .owl-nav button {width: 36px;height: 36px;}}

/* CONTACTO */
@media(max-width:1200px){.contact-flex{flex-direction:column;gap:60px;}.contact-form-box{order:1;}.contact-map{position: relative;order:2;}.contact-map iframe{min-height:280px}.map-toggle{width:35%;left:50%;transform:translateX(-50%);text-align:center;}}

/* FOOTER */
@media(max-width:768px){.footer-policies{flex-direction:column;align-items:flex-start;gap:8px;}.footer-policies .separator{display:none;}}

/* MODALS */
@media (max-width:1280px){.modal-inner table{font-size:.9rem;}.modal-inner thead{display:none;}.modal-inner tr{display:block;margin-bottom:18px;border:1px solid #ddd;border-radius:10px;padding:10px;background:#fafafa;}.modal-inner td{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border:none;}.modal-inner td::before{content:attr(data-label);font-weight:600;color:#000;flex-shrink:0;}}