/* ILLESLEX · estilos añadidos el 12/11/2026 (encargo del cliente del 29/10/2026).
   Reutilizan la paleta y las medidas de style.css para que no se note el añadido. */

/* 7.ª tarjeta de áreas destacadas (Inicio, Servicios, Contacto, páginas legales).
   Misma familia de color que .color01-.color06 (style.css l.86-91). */
.color07{ background:#25677d }

/* ---- Desplegables de los servicios de cada área ----
   Marcado en el contenido (CKEditor):
   <div class="ilx-acordeon">
     <h3 class="ilx-acordeon-titulo">Punto principal</h3>
     <div class="ilx-acordeon-panel"><ul><li>Subpunto</li>…</ul></div>
     …
   </div>
   Sin JavaScript se ve todo abierto, con el punto en negrita (como el contenido actual).
   js/illeslex-acordeon.js convierte cada título en un botón accesible y pliega el panel. */
.servicios-content-interior .ilx-acordeon{
  margin:30px 0 20px;
  border-top:1px solid #d6e2e6;
}
.servicios-content-interior .ilx-acordeon-titulo{
  margin:0;
  padding:12px 0;
  font-family:"Open Sans",Helvetica,Arial,sans-serif; /* misma letra que los párrafos del área */
  font-size:1.1rem;
  line-height:1.9rem;
  font-weight:700;
  color:#000;
  border-bottom:1px solid #d6e2e6;
}
.servicios-content-interior .ilx-acordeon-boton{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:100%;
  padding:12px 0;
  margin:-12px 0;
  border:0;
  background:none;
  font:inherit;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.servicios-content-interior .ilx-acordeon-boton::after{
  content:"+";
  content:"+" / "";
  flex:0 0 auto;
  font-family:"Playfair Display",Georgia,serif;
  font-size:1.6rem;
  font-weight:400;
  line-height:1;
  color:#007e91; /* .blue de style.css */
}
.servicios-content-interior .ilx-acordeon-boton[aria-expanded="true"]::after{ content:"\2212"; content:"\2212" / "" }
.servicios-content-interior .ilx-acordeon-boton:hover{ color:#2d6f85 }
.servicios-content-interior .ilx-acordeon-boton:focus-visible{ outline:2px solid #007e91; outline-offset:3px }
.servicios-content-interior .ilx-acordeon-panel{ padding:4px 0 6px }
.servicios-content-interior .ilx-acordeon-panel[hidden]{ display:none }
.servicios-content-interior .ilx-acordeon-panel ul{ margin-top:6px; margin-bottom:10px }
.servicios-content-interior .ilx-acordeon-panel + .ilx-acordeon-titulo,
.servicios-content-interior .ilx-acordeon-titulo + .ilx-acordeon-titulo{ border-top:0 }

/* Fila de 7 tarjetas: la última, centrada bajo la del medio. */
.servicios-home .row-cols-3.ilx-centrar{ justify-content:center }

/* ---- Bloque «Documentación» del formulario de contacto (12/11/2026, punto 12) ----
   Misma estética sobria del formulario: línea fina, letra del sitio, enlace en el color corporativo. */
.ilx-adjuntos{ border-top:1px solid #d6e2e6; padding-top:12px; }
.contact-form .ilx-adjuntos{ text-align:left; }
.ilx-adjuntos-titulo{ margin:0 0 4px; font-size:.9rem; font-weight:700; color:#000; }
.ilx-adjuntos-alternativa{ margin:0; font-size:.85rem; line-height:1.45rem; color:#555; }
.ilx-adjuntos-alternativa a{ color:#007e91; text-decoration:underline; text-underline-offset:3px; }
.ilx-adjuntos-alternativa a:hover{ color:#2d6f85; }

/* ---- Bloque de adjuntos con el módulo ACTIVO (punto 12; activo desde el 13/11/2026) ----
   Solo aparece si includes/adjuntos_contacto.php está activo. Maqueta contacto-preview.html adaptada
   al formulario: letra del sitio, esquinas rectas, borde de 2px como los campos, línea fina #d6e2e6, acento #007e91
   (.blue) y el marcado de error de la web (.errorform). Neutraliza las reglas generales de style.css
   (.contact-form input / .contact-form label) que afectarían al selector. */
.ilx-adjuntos-opcional{ font-weight:400; color:#555; }
.ilx-adjuntos-intro{ margin:0 0 10px; font-size:.85rem; line-height:1.45rem; color:#555; }
.contact-form .ilx-adjuntos-activo .ilx-adjuntos-input{
  position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important;
  border:0!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; clip-path:inset(50%)!important;
  white-space:nowrap!important; opacity:0;
}
.contact-form .ilx-adjuntos-activo .ilx-adjuntos-selector{
  float:none; display:flex; align-items:center; gap:14px; width:100%; margin:0; padding:14px 16px;
  font-size:inherit; text-align:left; border:2px dashed #d2d2d2; background:#fff; cursor:pointer;
  transition:border-color .2s ease, background-color .2s ease;
}
.contact-form .ilx-adjuntos-activo .ilx-adjuntos-selector:hover,
.contact-form .ilx-adjuntos-activo .ilx-adjuntos-selector.ilx-adjuntos-arrastrando{ border-color:#007e91; background:#f5f9fa; }
.ilx-adjuntos-input:focus + .ilx-adjuntos-selector{ outline:2px solid #007e91; outline-offset:3px; }
.ilx-adjuntos-input:focus:not(:focus-visible) + .ilx-adjuntos-selector{ outline:none; }
.ilx-adjuntos-input:focus-visible + .ilx-adjuntos-selector{ outline:2px solid #007e91; outline-offset:3px; }
.ilx-adjuntos-simbolo{
  flex:0 0 auto; display:flex; align-items:center; justify-content:center; width:38px; height:38px;
  border:1px solid #d6e2e6; border-radius:50%;
  font-family:"Playfair Display",Georgia,serif; font-size:1.6rem; font-weight:400; line-height:1; color:#007e91;
}
.ilx-adjuntos-selector-texto strong{ display:block; font-size:.9rem; font-weight:700; color:#000; }
.ilx-adjuntos-selector-texto small{ display:block; margin-top:2px; font-size:.8rem; line-height:1.3rem; color:#555; }
.ilx-adjuntos-ayuda{ margin:8px 0 0; font-size:.8rem; line-height:1.3rem; color:#555; }
.ilx-adjuntos-lista{ margin:8px 0 0; padding:0; list-style:none; }
.ilx-adjuntos-lista li{
  display:flex; justify-content:space-between; gap:16px; padding:6px 0; border-bottom:1px solid #d6e2e6;
  font-size:.85rem; color:#333; overflow-wrap:anywhere;
}
.ilx-adjuntos-lista li span + span{ flex:0 0 auto; color:#555; }
.ilx-adjuntos-quitar{
  margin:4px 0 0; padding:4px 0; min-height:24px; border:0; background:none; font-size:.8rem; color:#007e91;
  text-decoration:underline; text-underline-offset:3px; cursor:pointer;
}
.ilx-adjuntos-quitar:hover{ color:#2d6f85; }
.ilx-adjuntos-quitar:focus-visible{ outline:2px solid #007e91; outline-offset:3px; }
.ilx-adjuntos-error{ margin:8px 0 0; font-size:.85rem; line-height:1.4rem; color:#c00000; }
.ilx-adjuntos-quitar[hidden], .ilx-adjuntos-error[hidden]{ display:none; }
.ilx-adjuntos-activo .ilx-adjuntos-alternativa{ margin-top:12px; padding-top:10px; border-top:1px solid #d6e2e6; }
@media (prefers-reduced-motion:reduce){ .contact-form .ilx-adjuntos-activo .ilx-adjuntos-selector{ transition:none; } }
@media (max-width:575.98px){ .contact-form .ilx-adjuntos-activo .ilx-adjuntos-selector{ align-items:flex-start; padding:12px; } }

/* Responsive iPhone/iPad, 13/11/2026
   Solo móvil y tablet. Se corrigen las causas, sin ocultar overflow en body/html. */
@media (max-width:575.98px), (min-width:576px) and (max-width:991.98px) {
  /* R1. Ancho explícito: el flotante deja de depender del ancho del contenido. */
  .contact-home { width:76px; max-width:calc(100vw - 24px); right:12px; left:auto; }
  .contact-home a { display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:44px; min-height:56px; }
  .contact-home p { overflow-wrap:anywhere; }

  /* R2. El sobredimensionado de la fotografía no aporta espacio al documento. */
  .visor-top .image-wrap { left:0; top:0; width:100%; }

  /* R3. Los enlaces legales pueden pasar a otra línea, también en alemán. */
  footer .listlegal, footer .social-links { flex-wrap:wrap; }
  footer .listlegal li { min-width:0; max-width:100%; }
  footer a { overflow-wrap:anywhere; }
  footer .listlegal a, footer .list-unstyled a,
  footer .social-links a, .team .social-links a,
  .left-ficha-team .social-links a { display:inline-flex; align-items:center; min-height:44px; min-width:44px; }
  footer .social-links a, .team .social-links a,
  .left-ficha-team .social-links a { min-width:44px; justify-content:center; }
  .team .social-links, .left-ficha-team .social-links { flex-wrap:wrap; }

  /* R4. Rótulo en flujo: reserva su altura aunque el texto ocupe tres líneas. */
  .servicios-home.m-top-home .tit-ser { position:relative; display:flex; align-items:center; justify-content:center; min-height:72px; padding:14px 12px; }
  .servicios-home.m-top-home .tit-ser h3 { margin:0; overflow-wrap:anywhere; }
  .servicios-home.m-top-home .col img,
  .servicios-home.m-top-home .col:hover img { display:block; height:220px; min-height:0; object-fit:cover; }

  /* R5. Acciones táctiles; se conserva el tamaño visual de los puntos de Slick. */
  a.target-burger { min-width:44px; min-height:44px; }
  .idiomas { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding-left:0; }
  nav.main-nav.toggled { height:auto; min-height:100vh; min-height:100dvh; }
  nav.main-nav ul li a, .list-submenu li a,
  .other-servicies li a, .card-body a, .link-btn,
  .submenu.parking li a { display:inline-flex; align-items:center; min-height:44px; min-width:44px; }
  nav.main-nav ul li a { width:100%; overflow-wrap:anywhere; }
  .link-btn { max-width:100%; justify-content:center; white-space:normal; }
  .slick-dots li, .slick-dots li button { width:44px; height:44px; }
  .slick-dots li button::before { top:15px; left:15px; }
  .slick-prev, .slick-next { width:44px; height:44px; }
  .slick-prev { left:0; }
  .slick-next { right:0; }

  /* R6. Campos legibles en iOS; no se afecta al input de adjuntos oculto. */
  .contact-form input.form-control, .contact-form textarea.form-control,
  .contact-form .form-select, .newsletter input { font-size:16px; min-height:44px; min-width:44px; }
  .contact-form .btn, .newsletter button, .newsletter .btn,
  .ilx-adjuntos-quitar, .ilx-acordeon-boton { min-height:44px; min-width:44px; }
  .contact-form .form-check { display:flex; align-items:center; gap:8px; min-height:44px; min-width:44px; }
  .contact-form .form-check-label { float:none; margin:0; }
  .contact-form .form-check-input { flex-shrink:0; }
  .ilx-adjuntos-selector-texto { min-width:0; overflow-wrap:anywhere; }
  .servicios-content-interior h2 { padding-right:0; }
}

@media (max-width:575.98px) {
  /* R7. 20px de margen base y filas Bootstrap contenidas en su contenedor. */
  .container, .container-md, .container-lg { --bs-gutter-x:40px; }
  .contact-form form > .row { margin-left:0; margin-right:0; padding-left:0; padding-right:0; }
  .team { width:100%; max-width:460px; padding-left:20px; padding-right:20px; }
  /* Bootstrap .my-5 usa !important: se reduce solo esta separación en móvil. */
  .servicios-content-interior.my-5 { margin-top:32px!important; margin-bottom:32px!important; }

  /* R8. Cabeceras interiores compactas y títulos sin los 65px de reserva lateral. */
  .visor-top.visor-inter-corto, .visor-top.visor-inter-largo { height:auto; min-height:300px; padding:40px 20px; }
  .visor-top:not(.visor-home) h1 { font-size:2rem; line-height:1.25; padding:0 0 15px; margin-left:0; overflow-wrap:anywhere; }
  .visor-top:not(.visor-home) h2 { font-size:1.15rem; line-height:1.5; padding:0; margin-left:0; }
  .servicios-content-interior h2, .preshome .txt-grand,
  .content-ficha-team h1 { font-size:2rem; line-height:1.3; overflow-wrap:anywhere; }
  .visor-home .content-visor-home { left:20px; right:20px; }
  .visor-home .content-visor-home h1 { margin-right:0; font-size:2.1rem; line-height:1.25; overflow-wrap:anywhere; }
  .servicios-home.m-top-home .tit-ser h3 { font-size:1.4rem; line-height:1.25; }
  .content-ficha-team .col-3, .content-ficha-team .col-8 { min-width:0; }
  .content-ficha-team img.fot-equipo { max-width:320px; }
  .link-btn { padding:12px 24px; }
  nav.main-nav { padding:20px; }
  nav.main-nav ul { width:100%; padding-top:20px; }
  nav.main-nav ul li a { font-size:1.15rem; }

  /* R9. El pie mantiene sus bloques, con enlaces legales que envuelven.
     !important imprescindible: vence style.css:477 y los width inline del HTML. */
  footer.bd-footer .row .col-lg-4 { width:100%!important; }
}

@media (min-width:576px) and (max-width:991.98px) {
  /* R10. Títulos con espacio suficiente a 820px, sin padding de escritorio. */
  .visor-top:not(.visor-home) h1 { padding-left:24px; padding-right:24px; font-size:2.8rem; line-height:1.2; overflow-wrap:anywhere; }
  .visor-top:not(.visor-home) h2 { padding-left:24px; padding-right:24px; }
  .visor-home .content-visor-home { left:24px; right:100px; }
  .visor-home .content-visor-home h1 { font-size:2.7rem; line-height:1.2; }
  .visor-home .content-visor-home h2 { font-size:1.45rem; line-height:1.5; }
  .servicios-home.m-top-home .row-cols-3 > * { width:33.333333%; }
  .servicios-home.m-top-home .tit-ser { min-height:100px; }
  .servicios-home.m-top-home .tit-ser h3 { font-size:1.4rem; line-height:1.25; }
  .content-ficha-team .col-3 { width:30%; }
  .content-ficha-team .col-8 { width:70%; min-width:0; }
  .content-ficha-team img.fot-equipo { width:100%; margin-left:0; }
}

/* R1b (13/11/2026, revisión de Claude): en móvil y tablet el botón flotante de WhatsApp y Cita vuelve a ser una pestaña compacta
   pegada al borde, como la diseñó el tema, para no tapar títulos ni texto: iconos de 24 px y rótulo en una línea. */
@media (max-width:991.98px) {
  .contact-home { width:58px; right:0; }
  .contact-home .wassap, .contact-home .calendar { padding:6px 3px !important; } /* vence el padding del tema (style.css:502-503) */
  .contact-home a { min-height:48px; }
  .contact-home img { max-width:24px !important; margin-bottom:3px !important; } /* el tema fija 28 px con !important (style.css:493) */
  .contact-home p { font-size:.6rem; line-height:1.1; white-space:nowrap; overflow-wrap:normal; }
}

/* ---- Preguntas frecuentes (13/11/2026): desplegable en las páginas del despacho (template-firm.php) ---- */
.quienes-content-interior .ilx-acordeon{
  margin:30px 0 20px;
  border-top:1px solid #d6e2e6;
}
.quienes-content-interior .ilx-acordeon-titulo{
  margin:0;
  padding:12px 0;
  font-family:"Open Sans",Helvetica,Arial,sans-serif; /* misma letra que los párrafos del área */
  font-size:1.1rem;
  line-height:1.9rem;
  font-weight:700;
  color:#000;
  border-bottom:1px solid #d6e2e6;
}
.quienes-content-interior .ilx-acordeon-boton{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:100%;
  padding:12px 0;
  margin:-12px 0;
  border:0;
  background:none;
  font:inherit;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.quienes-content-interior .ilx-acordeon-boton::after{
  content:"+";
  content:"+" / "";
  flex:0 0 auto;
  font-family:"Playfair Display",Georgia,serif;
  font-size:1.6rem;
  font-weight:400;
  line-height:1;
  color:#007e91; /* .blue de style.css */
}
.quienes-content-interior .ilx-acordeon-boton[aria-expanded="true"]::after{ content:"\2212"; content:"\2212" / "" }
.quienes-content-interior .ilx-acordeon-boton:hover{ color:#2d6f85 }
.quienes-content-interior .ilx-acordeon-boton:focus-visible{ outline:2px solid #007e91; outline-offset:3px }
.quienes-content-interior .ilx-acordeon-panel{ padding:4px 0 6px }
.quienes-content-interior .ilx-acordeon-panel[hidden]{ display:none }
.quienes-content-interior .ilx-acordeon-panel ul{ margin-top:6px; margin-bottom:10px }
.quienes-content-interior .ilx-acordeon-panel + .ilx-acordeon-titulo,
.quienes-content-interior .ilx-acordeon-titulo + .ilx-acordeon-titulo{ border-top:0 }

.quienes-content-interior .ilx-acordeon-panel, .quienes-content-interior .ilx-acordeon-panel p{ text-align:left } /* respuestas largas: alineadas como la pregunta */
@media (min-width:576px) and (max-width:991.98px){ .submenu .list-submenu{ flex-wrap:wrap } } /* 6 páginas del despacho: la fila de la sección pasa a dos líneas en tablet */

/* Migas: punto comun antes del contenido de page.php. */
.ilx-migas { padding-top:.85rem; padding-bottom:.85rem; color:#555; font-size:.8rem; font-family:"Open Sans",sans-serif; }
.ilx-migas ol { display:flex; flex-wrap:wrap; gap:.35rem .5rem; list-style:none; margin:0; padding:0; }
.ilx-migas li { display:flex; align-items:baseline; gap:.5rem; min-width:0; max-width:100%; overflow-wrap:anywhere; }
.ilx-migas li + li::before { content:"\203a"; color:#555; flex:none; }
.ilx-migas a { color:#007e91; }
.ilx-migas a:hover { color:#2d6f85; text-decoration:underline; }
.ilx-migas a:focus-visible { outline:2px solid #007e91; outline-offset:3px; }

/* Solo FAQ 787: se vence el text-align:center!important del tema. */
.quienes-content-interior.ilx-faq { display:block; width:100%; text-align:left; }
.quienes-content-interior.ilx-faq > .container-md { width:100%; max-width:75ch; padding-right:1rem; padding-left:1rem; }
.quienes-content-interior.ilx-faq p,
.quienes-content-interior.ilx-faq li,
.quienes-content-interior.ilx-faq .ilx-acordeon-titulo,
.quienes-content-interior.ilx-faq .ilx-acordeon-panel { text-align:left!important; }
.quienes-content-interior.ilx-faq h2 { color:#25677d; margin:3.5rem 0 1.5rem; padding-top:2rem; border-top:1px solid #d6e2e6; }
.quienes-content-interior.ilx-faq h2:first-child { margin-top:0; padding-top:0; border-top:0; }
.quienes-content-interior.ilx-faq .ilx-acordeon { margin:0 0 3rem; }
.quienes-content-interior.ilx-faq .ilx-acordeon-titulo { margin:0; }
.quienes-content-interior.ilx-faq .ilx-acordeon-boton { text-align:left; padding:1.1rem 2rem 1.1rem 0; line-height:1.5; }
.quienes-content-interior.ilx-faq .ilx-acordeon-panel { padding:.5rem 0 1.25rem; }

/* Pie: cada enlace conserva sus palabras; el salto ocurre entre enlaces. */
footer .ilx-footer-links { min-width:0; }
footer .ilx-footer-links .listlegal { display:flex; flex-wrap:wrap; gap:.5rem 0; }
footer .ilx-footer-links .listlegal li { flex:0 0 auto; min-width:0; max-width:none; }
footer .ilx-footer-links .listlegal a { white-space:nowrap; overflow-wrap:normal; word-break:normal; }
/* Pie (revisión de Claude): el punto separador del tema va con posición absoluta (style.css:65) y al saltar de línea queda suelto al
   principio; se sustituye por un punto medio en línea detrás de cada enlace, igual en todos los tamaños. */
footer .ilx-footer-links .listlegal li::before{ content:none !important; }
footer .ilx-footer-links .listlegal li{ margin-right:0; padding-right:0; }
footer .ilx-footer-links .listlegal li:not(:last-child)::after{ content:"\00B7"; margin:0 .55rem; color:#999; }

/* Cabecera de noticias y fichas RSC (13/11/2026, petición del usuario): la línea «categoría / fecha» bajo el título, en letra más pequeña
   y con la categoría siempre en blanco para que se lea sobre la foto, en los 6 idiomas. */
.visor-top .list-news li{ font-size:.85rem; }
.visor-top .list-news li a{ color:#fff; }
.visor-top .list-news li a:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
/* Título de noticias y fichas RSC en móvil: el tema reserva 80 px a la derecha y usa 2,1 rem (style.css:505), lo que deja el título
   palabra por palabra en un iPhone. Se reserva solo el ancho de la pestaña flotante (58 px). */
@media (max-width:575.98px){
  .visor-top h1.hinot{ font-size:1.75rem !important; line-height:2.25rem !important; padding-right:60px !important; }
  .visor-top .container:has(> h1.hinot){ padding-left:0; padding-right:0; } /* el contenedor del tema añade 40 px por lado */
}

/* Final del pie en dos líneas (13/11/2026, petición del usuario con captura): línea 1 Newsletter · Testimonios · Preguntas frecuentes;
   línea 2 todos los enlaces legales en una sola línea en escritorio (tamaño ajustado para que quepan en los 6 idiomas); debajo, el
   copyright. En tablet y móvil los enlaces legales siguen pasando de línea entre enlaces, sin partirse. */
@media (min-width:992px){
  footer .ilx-pie-l2 .listlegal{ flex-wrap:nowrap; }
  footer .ilx-pie-l2 .listlegal li{ font-size:.78rem; }
  footer .ilx-pie-l2 .listlegal li:not(:last-child)::after{ margin:0 .4rem; }
}
@media (min-width:1200px){ footer .ilx-pie-l2 .listlegal li{ font-size:.85rem; } footer .ilx-pie-l2 .listlegal li:not(:last-child)::after{ margin:0 .55rem; } }
