/* ================= GLOBAL STYLES ================= */
:root {
  /* Colores principales */
  --green-official: #4A8E4A;
  --green-dark:     #488348;
  --green-link:     #46AC46;
  --green-light:    #6cc04a;
  --green-hover:    #3f743f;
  --green-bg-hero:  rgba(74, 142, 74, 0.65);

  /* Fondos */
  --bg:       #f7f7f7;
  --bg-white: #ffffff;

  /* Textos */
  --text-primary:   #222222;
  --text-secondary: #555555;
  --text-muted:     #888888;
  --text-light:     #f3f7f5;
  --text-white:     #ffffff;

  /* Sombras */
  --shadow-sm:    0 6px 18px rgba(0,0,0,.06);
  --shadow-md:    0 8px 28px rgba(0,0,0,.15);
  --shadow-lg:    0 10px 26px rgba(0,0,0,.12);
  --shadow-hover: 0 18px 38px rgba(0,0,0,.25);

  /* Bordes */
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 50%;

  /* Transiciones */
  --transition-fast: .25s ease;
  --transition-base: .3s ease;
  --transition-slow: .6s ease;
}
* { 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; }
html { background: var(--green-official); }


/* ================= 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;will-change: height; backface-visibility: hidden;}
.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; transition: height .3s ease;}
.main-header.scrolled ~ .header-spacer{height:60px;}
.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; justify-content: center;}
.sobre-apalan-textos .imagenes img{height:100px;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;}
.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 var(--transition-base),opacity var(--transition-base);}
.contact-form-box button:hover{background:var(--green-dark);}
.contact-form-box button:disabled{opacity:.65;cursor:not-allowed;}
.btn-spinner{display:inline-flex;align-items:center;gap:6px;}
.btn-spinner::before{content:'';display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.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;}
/* En móvil las dos columnas dejaban cada campo en ~150px: se apilan. */
@media(max-width:600px){.form-columns{flex-direction:column;}}
.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;}

/* ================= PILL PICKERS (tipo de consulta / sede) ================= */
/* .form-group--choice no usa el patrón de label flotante: hay que resetear el
   position:absolute / pointer-events:none que .form-group label impone, o las
   opciones se apilan unas sobre otras y los radios no se pueden clicar. */
.form-group--choice {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.form-group--choice .choice-label {
  font-size: 12px;
  color: #888;
  line-height: 1.2;
}
.form-group--tipo { margin-bottom: 18px; }
.choice-picker { display: flex; gap: 10px; flex-wrap: wrap; }
.form-group--choice .choice-opt {
  position: static;
  top: auto;
  left: auto;
  padding: 0;
  background: none;
  pointer-events: auto;
  cursor: pointer;
  transition: none;
}
/* El selector de atributo mantiene la especificidad por encima de
   .contact-form-box input:not([type=checkbox]), que da ancho y borde a los inputs. */
.choice-opt input[type=radio] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
.choice-opt > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  /* 16px de padding lateral: lo justo para que las dos opciones de sede
     quepan en una línea dentro de la columna izquierda a 1280px. */
  padding: 10px 16px;
  border-radius: 12px;
  border: 1px solid #ddd;
  font-size: 14px;
  color: #555;
  background: #fff;
  transition: border-color .2s, background .2s, color .2s;
  user-select: none;
}
.choice-ico { font-size: 13px; line-height: 1; }
.choice-opt:hover > span { border-color: var(--green-official); }
/* El radio es invisible, así que el foco de teclado se dibuja sobre la píldora. */
.choice-opt input:focus-visible + span {
  outline: 2px solid var(--green-official);
  outline-offset: 2px;
}
.choice-opt input:checked + span {
  border-color: var(--green-official);
  background: var(--green-official);
  color: #fff;
  font-weight: 600;
}

/* Campos condicionales (N/S del equipo) */
.esta-oculto { display: none !important; }

/* ================= AYUDA DEL NÚMERO DE SERIE ================= */
/* Hueco a la derecha para el botón "i", que va superpuesto dentro del input; el label
   flotante se recorta para no pasar por debajo del botón.
   El texto es largo para la columna: en reposo va a 14px (como el input) para que quepa entero
   a partir de ~1366px; en columnas más estrechas se corta con puntos suspensivos. */
.contact-form-box .form-group--serie input { padding-right: 40px; }
.form-group--serie label { font-size: 14px; max-width: calc(100% - 50px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Ya flotando encima del borde no choca con el botón: puede usar todo el ancho. */
.form-group--serie input:focus+label,
.form-group--serie input:not(:placeholder-shown)+label { max-width: calc(100% - 20px); }
/* .contact-form-box button pinta todos los botones del formulario como el de enviar:
   aquí se deshace con la misma especificidad más la clase propia. */
.contact-form-box button.info-serie {
  position: absolute;
  top: 12px;
  right: 10px;
  width: 22px;
  height: 22px;
  padding: 0;
  border-radius: 50%;
  border: 1.5px solid var(--green-official);
  background: #fff;
  color: var(--green-official);
  font: italic 700 13px/1 Georgia, 'Times New Roman', serif;
  align-self: auto;
}
.contact-form-box button.info-serie:hover,
.contact-form-box button.info-serie[aria-expanded=true] { background: var(--green-official); color: #fff; }
.contact-form-box button.info-serie:focus-visible { outline: 2px solid var(--green-official); outline-offset: 2px; }

/* Burbuja bajo el campo, con el pico apuntando al botón "i". Va en el flujo (no flotante)
   para que en móvil no se salga de la pantalla ni tape el resto del formulario. */
.ayuda-serie {
  position: relative;
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid #cfe3cf;
  border-radius: 12px;
  background: #f4f9f4;
  font-size: 13px;
  line-height: 1.45;
  color: var(--text-secondary);
  box-shadow: var(--shadow-sm);
}
.ayuda-serie[hidden] { display: none; }
.ayuda-serie::before {
  content: '';
  position: absolute;
  top: -7px;
  right: 15px;
  width: 12px;
  height: 12px;
  background: #f4f9f4;
  border-left: 1px solid #cfe3cf;
  border-top: 1px solid #cfe3cf;
  transform: rotate(45deg);
}
.ayuda-serie p { margin: 0; }
.ayuda-serie strong { color: var(--text-primary); }
.ayuda-serie code {
  font-family: Consolas, 'Courier New', monospace;
  font-size: 12px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 1px 4px;
  word-break: break-all;
}
.ayuda-serie__lista { list-style: none; margin: 12px 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ayuda-serie__lista li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
/* Si la burbuja es estrecha (columna del formulario, móvil) la imagen pasa encima del texto. */
.ayuda-serie__lista li > span { flex: 1 1 180px; }
.ayuda-serie__lista img { flex: 0 0 auto; width: 60px; height: auto; }
.ayuda-serie__nota { font-style: italic; color: var(--text-muted); }

/* ================= VALIDACIÓN DEL FORMULARIO ================= */
.form-group.tiene-error input:not([type=radio]),
.form-group.tiene-error textarea {
  border-color: #d64545;
  background: #fffafa;
}
.form-group.tiene-error .choice-opt > span { border-color: #d64545; }
.form-group.tiene-error .choice-label     { color: #d64545; }
.checkbox.tiene-error                     { color: #d64545; }
.checkbox.tiene-error input[type=checkbox] { outline: 2px solid #d64545; outline-offset: 2px; }
.g-recaptcha.tiene-error {
  outline: 2px solid #d64545;
  outline-offset: 3px;
  border-radius: 4px;
}

.error-campo {
  display: block;
  width: 100%;
  color: #d64545;
  font-size: 12px;
  line-height: 1.3;
  margin-top: 2px;
}

.form-aviso {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid #f1b7b7;
  background: #fdecec;
  color: #a12622;
  font-size: 14px;
  line-height: 1.4;
}
.form-aviso::before { content: '⚠'; flex-shrink: 0; }

/* ================= CONSENTIMIENTOS Y AVISO RGPD ================= */
.form-consentimientos {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}
/* El texto de los checkbox ahora ocupa varias líneas: la casilla se alinea
   con la primera línea en lugar de centrarse verticalmente en todo el bloque. */
.form-bottom .checkbox {
  align-items: flex-start;
  line-height: 1.45;
  gap: 10px;
}
.form-bottom .checkbox input[type=checkbox] {
  margin-top: 3px;
  flex-shrink: 0;
}
.form-bottom .checkbox a {
  color: var(--green-official);
  text-decoration: underline;
}

/* Bloque informativo RGPD (varios párrafos dentro de .legal-text) */
.legal-text p { margin: 0 0 5px; }
.legal-text p:last-child { margin-bottom: 0; }
.legal-text strong { color: #666; }
.legal-text a {
  color: var(--green-official);
  text-decoration: underline;
}

/* ================= BOTÓN VOLVER ARRIBA ================= */
#btnTop{position:fixed;bottom:28px;right:28px;width:46px;height:46px;border-radius:50%;background:var(--green-official);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.25);opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease,background .3s ease;z-index:998;pointer-events:none;}
#btnTop.visible{opacity:1;transform:translateY(0);pointer-events:auto;}
#btnTop:hover{background:var(--green-dark);}

/* ================= 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-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);}




/* ================= COOKIE ================= */
.cookie-banner{position:fixed;bottom:0;left:0;width:100%;background:rgba(0,0,0,0.92);color:#fff;z-index:9999;padding:18px 20px;display:none;flex-direction:column;align-items:center;font-family:'Poppins',sans-serif;box-shadow:0 -5px 20px rgba(0,0,0,0.25);}
.cookie-content p{margin:0 0 12px 0;text-align:center;max-width:650px;font-size:14px;line-height:1.4;}
.cookie-buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.cookie-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.65);display:none;align-items:center;justify-content:center;z-index:10000;padding:20px;overflow:auto;}
.cookie-modal-content{background:#fff;padding:30px;border-radius:12px;max-width:750px;width:100%;max-height:90vh;overflow-y:auto;font-family:'Poppins',sans-serif;box-shadow:0 15px 45px rgba(0,0,0,0.25);animation:cookieFade .25s ease;}
.cookie-modal-content::-webkit-scrollbar{width:6px;}
.cookie-modal-content::-webkit-scrollbar-thumb{background:#ccc;border-radius:10px;}
.cookie-modal-content::-webkit-scrollbar-thumb:hover{background:#aaa;}
@keyframes cookieFade{from{opacity:0;transform:translateY(15px);}to{opacity:1;transform:translateY(0);}}
.cookie-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.cookie-header h2{margin:0;font-size:20px;}
.cookie-header button{background:none;border:none;font-size:20px;cursor:pointer;}
.cookie-intro{font-size:14px;color:#555;margin-bottom:20px;line-height:1.5;}
.cookie-section{border-top:1px solid #eee;margin-top:10px;}
.cookie-accordion{border-bottom:1px solid #eee;padding:10px 0;}
.cookie-accordion-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:10px 0;font-weight:600;}
.cookie-accordion-header h4{margin:0;font-size:16px;color:#222;}
.cookie-accordion-content{display:none;padding:10px 0 15px 0;font-size:13px;color:#666;line-height:1.5;}
.cookie-accordion-content table{width:100%;border-collapse:collapse;margin-top:10px;font-size:13px;}
.cookie-accordion-content td{padding:6px 0;border-bottom:1px solid #eee;}
.cookie-always{font-size:12px;color:#888;}
.cookie-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px;flex-wrap:wrap;}
.switch{position:relative;display:inline-block;width:50px;height:24px;margin-top:6px;}
.switch input{opacity:0;width:0;height:0;}
.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#ccc;transition:.3s;border-radius:30px;}
.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:white;transition:.3s;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,0.2);}
input:checked + .slider{background:var(--green-official);}
input:checked + .slider:before{transform:translateX(26px);}
#acceptAllCookies{background:var(--green-official);color:#fff;padding:10px 18px;margin:5px;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .25s ease;}
#acceptAllCookies:hover{background:var(--green-dark);transform:translateY(-1px);}
#onlyNecessaryCookies{background:#f5f5f5;color:#333;border:1px solid #ddd;padding:10px 18px;margin:5px;border-radius:6px;font-weight:600;cursor:pointer;transition:all .25s ease;}
#onlyNecessaryCookies:hover{background:#eaeaea;}
#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:all .25s ease;}
#configCookies:hover{background:var(--green-official);color:#fff;}
#rejectCookies{background:#f5f5f5;border:1px solid #ddd;padding:10px 18px;border-radius:6px;font-weight:600;cursor:pointer;}
#saveCookieSettings{background:#ddd;border:none;padding:10px 18px;border-radius:6px;font-weight:600;cursor:pointer;}
#acceptAllCookiesModal{background:var(--green-official);color:#fff;border:none;padding:10px 18px;border-radius:6px;font-weight:600;cursor:pointer;}
#acceptAllCookiesModal:hover{background:var(--green-dark);}


/* ================= PÁGINAS LEGALES ================= */
.productos-page{min-height:100vh;background:#f8f9fa;padding:40px 20px 60px;font-family:'Poppins',sans-serif;}
.cookies-container{max-width:860px;margin:0 auto;background:#fff;border-radius:var(--radius-md);padding:48px 60px;box-shadow:var(--shadow-sm);}
.intro{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid #eee;}
.intro h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0 0 0 0;line-height:1.2;}
.intro h1::after{content:'';display:block;width:48px;height:4px;background:var(--green-official);border-radius:2px;margin-top:12px;}
.intro .update-date{color:var(--text-muted);font-size:.9rem;margin:16px 0 0 0;}
#politica-privacidad,#aviso-legal,#politica-cookies,#proteccion-datos{color:var(--text-secondary);line-height:1.75;font-size:.97rem;}
#politica-privacidad h2,#aviso-legal h2,#politica-cookies h2,#proteccion-datos h2{font-size:1rem;font-weight:700;color:var(--text-primary);margin:32px 0 12px 0;padding-left:14px;border-left:4px solid var(--green-official);line-height:1.3;}
#politica-privacidad p,#aviso-legal p,#politica-cookies p,#proteccion-datos p{margin-bottom:14px;}
#politica-privacidad ul,#aviso-legal ul,#politica-cookies ul,#proteccion-datos ul{margin:0 0 16px 0;padding-left:24px;}
#politica-privacidad li,#aviso-legal li,#politica-cookies li,#proteccion-datos li{margin-bottom:8px;}
.cookies-container table{width:100%;border-collapse:collapse;margin:16px 0 24px;font-size:.88rem;}
.cookies-container thead th{background:var(--green-official);color:#fff;padding:10px 12px;text-align:left;font-weight:600;}
.cookies-container tbody td{padding:10px 12px;border-bottom:1px solid #eee;vertical-align:top;}
.cookies-container tbody tr:hover{background:#f9fafb;}
.nav-browsers{padding-left:24px;margin-bottom:16px;}
.nav-browsers li{margin-bottom:6px;}
.nav-browsers a{color:var(--green-link);text-decoration:none;}
.nav-browsers a:hover{text-decoration:underline;}

/* ================= ERROR 404 ================= */
.error-page-container{display:flex;flex-direction:column;min-height:100vh;background-color:#ffffff;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;}
.error-hero{display:flex;flex:1;align-items:center;justify-content:center;gap:80px;padding:40px;max-width:1200px;margin:0 auto;}
.error-visual{flex:1;display:flex;justify-content:flex-end;}
.error-img{max-width:400px;height:auto;filter:drop-shadow(0px 10px 15px rgba(0,0,0,0.05));}
.error-message{flex:1;text-align:left;}
.oops-text{font-size:120px;font-weight:800;line-height:0.9;margin:0;color:#333333;letter-spacing:-2px;}
.yoda-text-1{font-size:1.8rem;font-weight:500;margin:20px 0 5px 0;color:#444;}
.yoda-text-2{font-size:1.6rem;font-weight:400;margin:0 0 30px 0;color:#666;}
.btn-inicio{display:inline-block;background-color:#3e7e3e;color:#ffffff !important;padding:12px 40px;font-size:1.1rem;font-weight:600;text-decoration:none;border-radius:4px;transition:all 0.3s ease;box-shadow:0 4px 6px rgba(0,0,0,0.1);}
.btn-inicio:hover{background-color:#2d5a2d;transform:translateY(-2px);box-shadow:0 6px 12px rgba(0,0,0,0.15);}


/* ================= RESPONSIVE ================= */

/* 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:65%;margin:20px auto 0}}
@media(max-width:992px){.hero-images{width:85%}}
@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;}}

/* FOOTER */
@media(max-width:768px){.footer-policies{flex-direction:column;align-items:flex-start;gap:8px;}.footer-policies .separator{display:none;}}

/* PÁGINAS LEGALES */
@media(max-width:768px){.cookies-container{padding:28px 22px;border-radius:8px;}.intro h1{font-size:1.6rem;}.cookies-container table thead{display:none;}.cookies-container tbody tr{display:block;margin-bottom:16px;border:1px solid #ddd;border-radius:8px;padding:10px;background:#fafafa;}.cookies-container tbody td{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border:none;}.cookies-container tbody td::before{content:attr(data-label);font-weight:600;color:#000;flex-shrink:0;}}
@media(max-width:480px){.productos-page{padding:20px 12px 40px;}.cookies-container{padding:22px 16px;}}

/* ERROR 404 */
@media(max-width:1024px){.error-hero{gap:40px;}.oops-text{font-size:90px;}}

/* ================= LANG SWITCHER ================= */
.lang-switcher {
  display: flex;
  gap: 4px;
  align-items: center;
}

.lang-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px;
  border-radius: 3px;
  text-decoration: none;
  opacity: .6;
  border: 2px solid transparent;
  transition: opacity .2s, border-color .2s, box-shadow .2s;
}

.flag-icon {
  display: block;
  width: 28px;
  height: auto;
  border-radius: 2px;
}

.lang-btn:hover {
  opacity: 1;
  box-shadow: 0 0 0 1px rgba(255,255,255,.4);
}

.lang-btn.active {
  opacity: 1;
  border-color: rgba(255,255,255,.8);
  box-shadow: 0 1px 4px rgba(0,0,0,.3);
}
@media(max-width:768px){.error-hero{flex-direction:column;text-align:center;gap:30px;padding:30px 20px;}.error-visual{justify-content:center;}.error-message{text-align:center;}.error-img{max-width:260px;}.oops-text{font-size:70px;}.yoda-text-1{font-size:1.4rem;}.yoda-text-2{font-size:1.2rem;}.btn-inicio{padding:10px 30px;font-size:1rem;}}