/* ==========================================================================
   JOFEMESA · 60 PÁGINAS
   Servicios, Delegaciones, Contacto, Aviso legal, Privacidad, Cookies y 404.
   Traducción de src/app/(site)/{servicios,delegaciones,contacto,aviso-legal,
   privacidad,cookies}/page.tsx. La cabecera oscura es la placa (10-placa.css).
   Montaje: estructura/30-servicios.md, 50-delegaciones.md, 51-contacto.md y
   60-legales-y-404.md.
   ========================================================================== */

/* ==========================================================================
   Piezas comunes
   ========================================================================== */

/* Botón de 56 px (h-14 px-6) */
body.jm .jm-btn--h14, body.jm .jm-btn--h14 .elementor-button { min-height: 3.5rem; padding: 0 1.5rem; }
body.jm .jm-btn--h14 .elementor-button-text .jm-value,
body.jm .jm-btn--mono .elementor-button-text { font-family: var(--jm-font-mono); font-variant-numeric: tabular-nums; }

/* Fila «icono + dato» (dirección, teléfono, correo) */
body.jm .jm-fila-icono,
body.jm .e-con.jm-fila-icono { display: flex; flex-direction: row; align-items: flex-start; gap: 0.75rem; font-size: 1rem; }
body.jm .jm-fila-icono__i { flex: none; margin-top: 0.25rem; color: var(--jm-ink-3); }
body.jm .jm-fila-icono__i .elementor-icon { font-size: 1.0625rem; color: var(--jm-ink-3); }
body.jm .jm-fila-icono__i .elementor-icon svg { width: 1.0625rem; height: 1.0625rem; fill: currentColor; }
body.jm .jm-fila-icono__dd,
body.jm .e-con.jm-fila-icono__dd { display: block; min-width: 0; color: var(--jm-ink-2); }

body.jm .jm-fila-icono__dd .jm-tinta { color: var(--jm-ink); }

/* Teléfono enlazado en monoespaciada, con su hover rojo */
body.jm .jm-enlace-tel a,
body.jm a.jm-enlace-tel {
  display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.75rem;
  font-family: var(--jm-font-mono); font-variant-numeric: tabular-nums; color: var(--jm-ink);
  transition: color 200ms var(--jm-ease-ui);
}
body.jm .jm-enlace-tel a:hover, body.jm a.jm-enlace-tel:hover { color: var(--jm-accent); }
/* Correo subrayado gris */
body.jm .jm-enlace-correo a,
body.jm a.jm-enlace-correo {
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--jm-ink-2); text-decoration: underline; text-decoration-color: var(--jm-rule-strong);
  text-underline-offset: 4px; transition: color 200ms var(--jm-ease-ui);
}
body.jm .jm-enlace-correo a:hover, body.jm a.jm-enlace-correo:hover { color: var(--jm-ink); }

/* Aviso «Pendiente de completar» / «Borrador de trabajo» */
body.jm .jm-aviso-pendiente,
body.jm .e-con.jm-aviso-pendiente {
  display: block; border-left: 2px solid var(--jm-wait); background: var(--jm-sunken);
  padding: 0.75rem 1rem; font-size: 1rem; color: var(--jm-ink-2);
}
body.jm .jm-aviso-pendiente--legal,
body.jm .e-con.jm-aviso-pendiente--legal { padding: 1rem 1.25rem; color: var(--jm-ink); }
body.jm .jm-aviso-pendiente__k { color: var(--jm-ink-2); }
body.jm .jm-aviso-pendiente__texto { margin-top: 0.5rem; color: var(--jm-ink); }
body.jm .jm-aviso-pendiente__texto a {
  font-weight: 600; color: var(--jm-accent);
  text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px;
}

/* ==========================================================================
   SERVICIOS
   ========================================================================== */

/* Índice en tarjetas */
body.jm .jm-srv-indice-seccion,
body.jm .e-con.jm-srv-indice-seccion { border-bottom: 1px solid var(--jm-rule); background: var(--jm-sunken); }
body.jm .jm-srv-indice,
body.jm .e-con.jm-srv-indice { padding-block: 2rem; }
@media (min-width: 768px) { body.jm .jm-srv-indice, body.jm .e-con.jm-srv-indice { padding-block: 2.5rem; } }
body.jm .jm-srv-indice__rejilla,
body.jm .e-con.jm-srv-indice__rejilla {
  display: grid; grid-auto-flow: row dense; gap: 1px; overflow: hidden;
  border: 1px solid var(--jm-rule); border-radius: var(--jm-radius-2xl); background: var(--jm-rule);
}
@media (min-width: 768px) { body.jm .jm-srv-indice__rejilla, body.jm .e-con.jm-srv-indice__rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { body.jm .jm-srv-indice__rejilla, body.jm .e-con.jm-srv-indice__rejilla { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

body.jm .jm-srv-tarjeta,
body.jm .e-con.jm-srv-tarjeta {
  display: flex; flex-direction: column; height: 100%; padding: 1.25rem;
  background: var(--jm-surface); color: inherit; transition: background-color 200ms var(--jm-ease-ui);
}
@media (min-width: 768px) { body.jm .jm-srv-tarjeta, body.jm .e-con.jm-srv-tarjeta { padding: 1.5rem; } }
body.jm .jm-srv-tarjeta:hover { background: var(--jm-sunken); }
body.jm .jm-srv-tarjeta__cabeza,
body.jm .e-con.jm-srv-tarjeta__cabeza { display: flex; flex-direction: row; align-items: flex-start; justify-content: space-between; gap: 0.75rem; }
body.jm .jm-srv-tarjeta__icono { flex: none; width: 3.5rem; height: 2.75rem; color: var(--jm-accent); transition: transform 500ms var(--jm-ease-entrance); }
body.jm .jm-srv-tarjeta:hover .jm-srv-tarjeta__icono { transform: translateY(-0.125rem); }
body.jm .jm-srv-tarjeta__icono .elementor-icon,
body.jm .jm-srv__icono .elementor-icon { display: block; width: 100%; height: 100%; font-size: 0; color: var(--jm-accent); }
body.jm .jm-srv-tarjeta__icono .elementor-icon svg,
body.jm .jm-srv__icono .elementor-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; }
body.jm .jm-srv-tarjeta__num { font-family: var(--jm-font-mono); font-size: 0.875rem; color: var(--jm-rule-strong); }
body.jm .jm-srv-tarjeta__titulo { display: block; margin-top: 1.25rem; color: var(--jm-ink); transition: color 200ms var(--jm-ease-ui); }
body.jm .jm-srv-tarjeta:hover .jm-srv-tarjeta__titulo { color: var(--jm-accent); }
body.jm .jm-srv-tarjeta__resumen { margin-top: 0.5rem; flex: 1 1 auto; font-size: 0.875rem; line-height: 1.625; color: var(--jm-ink-2); }
body.jm .jm-srv-tarjeta__pie {
  margin-top: 1.25rem; display: flex; align-items: center; gap: 0.5rem;
  border-top: 1px solid var(--jm-rule); padding-top: 0.875rem;
  font-size: 0.875rem; font-weight: 600; color: var(--jm-ink-2); transition: color 200ms var(--jm-ease-ui);
}
body.jm .jm-srv-tarjeta__pie .elementor-heading-title::after {
  content: ""; display: inline-block; width: 0.9375rem; height: 0.9375rem; margin-left: 0.5rem; vertical-align: -0.15em;
  background: currentColor; transition: transform 200ms var(--jm-ease-ui);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.jm .jm-srv-tarjeta:hover .jm-srv-tarjeta__pie { color: var(--jm-accent); }
body.jm .jm-srv-tarjeta:hover .jm-srv-tarjeta__pie .elementor-heading-title::after { transform: translateX(0.125rem); }

/* Bloques de servicio */
body.jm .jm-srv { scroll-margin-top: 7rem; }
body.jm .jm-srv__rejilla,
body.jm .e-con.jm-srv__rejilla { display: grid; gap: 2rem; }
@media (min-width: 1024px) {
  body.jm .jm-srv__rejilla, body.jm .e-con.jm-srv__rejilla { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3rem; }
  body.jm .jm-srv__texto { grid-column: span 7 / span 7; }
  body.jm .jm-srv__lado { grid-column: span 5 / span 5; }
}
body.jm .jm-srv__texto,
body.jm .e-con.jm-srv__texto { display: block; }
body.jm .jm-srv__lado,
body.jm .e-con.jm-srv__lado { display: flex; flex-direction: column; gap: 1.25rem; }
body.jm .jm-srv__epigrafe,
body.jm .e-con.jm-srv__epigrafe { display: flex; flex-direction: row; align-items: center; gap: 1rem; }
body.jm .jm-srv__icono { flex: none; width: 3.25rem; height: 2.5rem; }
body.jm .jm-srv__label { color: var(--jm-ink-3); }
body.jm .jm-srv__titulo { margin-top: 1rem; max-width: 24ch; color: var(--jm-ink); }
body.jm .jm-srv__lede { margin-top: 1rem; max-width: 58ch; color: var(--jm-ink-2); }
body.jm .jm-srv__puntos { margin-top: 1.5rem; }
body.jm .jm-srv__puntos .elementor-icon-list-icon svg { width: 1.0625rem; height: 1.0625rem; }
body.jm .jm-srv__homolog,
body.jm .e-con.jm-srv__homolog {
  margin-top: 1.5rem; display: grid; gap: 1px; overflow: hidden;
  border: 1px solid var(--jm-rule); border-radius: var(--jm-radius-2xl); background: var(--jm-rule);
}
@media (min-width: 768px) { body.jm .jm-srv__homolog, body.jm .e-con.jm-srv__homolog { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
body.jm .jm-srv__homolog-item,
body.jm .e-con.jm-srv__homolog-item { display: block; background: var(--jm-surface); padding: 0.75rem 1rem; }
body.jm .jm-srv__homolog-k { font-family: var(--jm-font-mono); font-size: 0.875rem; color: var(--jm-ink); }
body.jm .jm-srv__homolog-v { margin-top: 0.25rem; font-size: 0.875rem; color: var(--jm-ink-2); }
body.jm .jm-srv__aviso { margin-top: 1.25rem; }
body.jm .jm-srv__ctas,
body.jm .e-con.jm-srv__ctas { margin-top: 2rem; display: flex; flex-direction: column; gap: 0.75rem; }
@media (min-width: 768px) { body.jm .jm-srv__ctas, body.jm .e-con.jm-srv__ctas { flex-direction: row; align-items: center; } }
body.jm .jm-srv__tel .elementor-button { font-weight: 600; }
body.jm .jm-srv__tel .elementor-button:hover { background: var(--jm-surface); }
body.jm .jm-srv__tel .elementor-button-icon { order: 0; }

/* Paneles de la columna derecha */
body.jm .jm-srv__panel,
body.jm .e-con.jm-srv__panel { display: block; border: 1px solid var(--jm-rule); background: var(--jm-surface); padding: 1.5rem; }
body.jm .jm-srv__panel-label { color: var(--jm-ink-3); }
body.jm .jm-srv__logo img { display: block; width: auto; height: 2.25rem; }
body.jm .jm-srv__panel-texto { margin-top: 1.25rem; font-size: 1rem; color: var(--jm-ink-2); }
body.jm .jm-srv__panel-titulo { margin-top: 1rem; color: var(--jm-ink); }
body.jm .jm-srv__panel-dir { margin-top: 0.5rem; font-size: 1rem; color: var(--jm-ink-2); }
body.jm .jm-srv__panel-dir--ink { margin-top: 1rem; color: var(--jm-ink); }
body.jm .jm-srv__panel-dir--ink + .jm-srv__panel-dir { margin-top: 0; }
body.jm .jm-srv__panel-tel { margin-top: 1rem; }
body.jm .jm-srv__panel-correo { margin-top: 0.25rem; font-size: 1rem; }
body.jm .jm-srv__panel-enlace .elementor-button { margin-top: 1.25rem; font-size: 1rem; }
body.jm .jm-srv__mapa { margin: 1rem auto 0; width: 100%; max-width: 17rem; }
body.jm .jm-srv__mapa .jm-mapa { max-width: 17rem; }
body.jm .jm-deleg-aside .jm-mapa { max-width: none; }
body.jm .jm-srv__talleres,
body.jm .e-con.jm-srv__talleres { margin-top: 1rem; display: flex; flex-direction: column; gap: 0.625rem; }
body.jm .jm-srv__taller,
body.jm .e-con.jm-srv__taller {
  display: flex; flex-direction: row; align-items: baseline; justify-content: space-between; gap: 0.75rem;
  border-bottom: 1px solid var(--jm-rule); padding-bottom: 0.625rem; font-size: 1rem;
}
body.jm .jm-srv__taller-nombre { font-weight: 600; color: var(--jm-ink); }
body.jm .jm-srv__taller-tel a {
  display: inline-block; padding-block: 0.25rem; font-family: var(--jm-font-mono); font-size: 0.875rem;
  color: var(--jm-ink-2); transition: color 200ms var(--jm-ease-ui);
}
body.jm .jm-srv__taller-tel a:hover { color: var(--jm-accent); }
body.jm .jm-srv__panel-nota { margin-top: 1rem; font-size: 0.875rem; color: var(--jm-ink-3); }

/* CTA final */
body.jm .e-con.jm-contenedor.jm-srv-cta__cuerpo,
body.jm .jm-srv-cta__cuerpo { max-width: 48rem; text-align: center; align-items: center; }
body.jm .jm-srv-cta__lede { margin: 1rem auto 0; max-width: 54ch; color: var(--jm-ink-2); }
body.jm .jm-srv-cta__boton .elementor-button { margin-top: 1.75rem; }

/* ==========================================================================
   DELEGACIONES
   ========================================================================== */
body.jm .jm-deleg-cifras,
body.jm .e-con.jm-deleg-cifras {
  margin-top: 1.25rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px;
  overflow: hidden; border: 1px solid var(--jm-rule-inverse); border-radius: var(--jm-radius-2xl);
  background: rgba(255, 255, 255, 0.1);
}
body.jm .jm-deleg-cifras__item,
body.jm .e-con.jm-deleg-cifras__item { display: block; background: var(--jm-inverse); padding: 0.875rem 0.75rem; text-align: center; }
body.jm .jm-deleg-cifras__v { font-family: var(--jm-font-mono); font-size: 1.25rem; font-weight: 500; line-height: 1.4; color: var(--jm-ink-inv); }
body.jm .jm-deleg-cifras__k { margin-top: 0.25rem; color: var(--jm-ink-inv-3); }

body.jm .jm-deleg-grupo__titulo { color: var(--jm-ink); }

/* Loop Grid de delegaciones: la rejilla con filetes de 1 px */
body.jm .jm-deleg-rejilla { margin-top: 1.75rem; }
body.jm .jm-deleg-rejilla .elementor-loop-container {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; overflow: hidden;
  border: 1px solid var(--jm-rule); border-radius: var(--jm-radius-2xl); background: var(--jm-rule);
}
@media (min-width: 768px) { body.jm .jm-deleg-rejilla .elementor-loop-container { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1440px) {
  body.jm .jm-deleg-rejilla .elementor-loop-container { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.jm .jm-deleg-rejilla .elementor-loop-container > .e-loop-item:last-child:nth-child(3n+2) { grid-column: span 2 / span 2; }
}
body.jm .jm-deleg-rejilla .e-loop-item { height: 100%; }

/* Tarjeta (Loop Item «Delegación · tarjeta») */
body.jm .jm-deleg,
body.jm .e-con.jm-deleg {
  display: flex; flex-direction: column; gap: 1.25rem; height: 100%;
  background: var(--jm-surface); padding: 1.25rem; transition: background-color 200ms var(--jm-ease-ui);
}
@media (min-width: 768px) { body.jm .jm-deleg, body.jm .e-con.jm-deleg { padding: 1.5rem; } }
body.jm .jm-deleg:has(.jm-deleg__ancla:target) { background: var(--jm-accent-tint); }
body.jm .jm-deleg__ancla { display: block; width: 0; height: 0; scroll-margin-top: 8rem; }
body.jm .jm-deleg__cuerpo,
body.jm .e-con.jm-deleg__cuerpo { display: block; }
body.jm .jm-deleg__cabeza,
body.jm .e-con.jm-deleg__cabeza { display: flex; flex-direction: row; align-items: flex-start; justify-content: space-between; gap: 0.75rem; }
body.jm .jm-deleg__nombre-caja,
body.jm .e-con.jm-deleg__nombre-caja { display: block; min-width: 0; }
body.jm .jm-deleg__provincia { color: var(--jm-ink-3); }
body.jm .jm-deleg__nombre { color: var(--jm-ink); }

/* Insignias */
body.jm .jm-dinsignia { display: inline-flex; align-items: center; gap: 0.375rem; flex-shrink: 0; }
body.jm .jm-dinsignia--central { border-radius: var(--jm-radius-full); background: var(--jm-accent); padding: 0.25rem 0.625rem; color: #fff; }
body.jm .jm-dinsignia--sede { border-radius: var(--jm-radius-full); background: var(--jm-ink); padding: 0.25rem 0.625rem; color: #fff; }
body.jm .jm-dinsignia--pt { background: var(--jm-wait); padding: 0.125rem 0.375rem; color: var(--jm-wait-ink); }
body.jm .jm-dinsignia--sede-suave { border-radius: var(--jm-radius-full); background: var(--jm-sunken); padding: 0.125rem 0.5rem; color: var(--jm-ink-2); }
body.jm .jm-deleg__insignias { display: flex; gap: 0.375rem; flex-shrink: 0; }

/* Filas de datos */
body.jm .jm-deleg__dl,
body.jm .e-con.jm-deleg__dl { margin-top: 1.25rem; display: flex; flex-direction: column; gap: 0.75rem; font-size: 1rem; }
body.jm .jm-deleg__direccion { color: var(--jm-ink); }
body.jm .jm-deleg__cp-loc,
body.jm .e-con.jm-deleg__cp-loc { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 0.25rem; color: var(--jm-ink-2); }
body.jm .jm-deleg__cp { font-family: var(--jm-font-mono); font-size: 0.875rem; font-variant-numeric: tabular-nums; }
body.jm .jm-deleg__llegar .elementor-button {
  margin-top: 0.25rem; display: flex; width: fit-content; align-items: center; gap: 0.375rem;
  min-height: 2rem; padding: 0; border: 0; border-radius: 0; background: none;
  font-size: 0.875rem; font-weight: 600; color: var(--jm-accent);
  text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px;
}
body.jm .jm-deleg__llegar .elementor-button:hover { background: none; color: var(--jm-accent-hover); }
body.jm .jm-deleg__llegar .elementor-button-icon { order: 0; }

/* [jm_delegacion_contacto variante="ficha"] */
body.jm .jm-deleg__datos { display: flex; flex-direction: column; gap: 0.75rem; }
body.jm .jm-deleg__fila { display: flex; align-items: flex-start; gap: 0.75rem; }
body.jm .jm-deleg__icono { flex: none; margin-top: 0.25rem; color: var(--jm-ink-3); }
body.jm .jm-deleg__dd { min-width: 0; }
body.jm .jm-deleg__tel { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--jm-ink); transition: color 200ms var(--jm-ease-ui); }
body.jm .jm-deleg__tel:hover { color: var(--jm-accent); }
body.jm .jm-deleg__email {
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--jm-ink-2);
  text-decoration: underline; text-decoration-color: var(--jm-rule-strong); text-underline-offset: 4px;
  transition: color 200ms var(--jm-ease-ui);
}
body.jm .jm-deleg__email:hover { color: var(--jm-ink); }
body.jm .jm-deleg__horario { font-size: 0.875rem; color: var(--jm-ink-3); }

/* [jm_delegacion_servicios] */
body.jm .jm-deleg__servicios {
  margin-top: 1.25rem; display: flex; flex-wrap: wrap; gap: 0.375rem; list-style: none; padding: 1rem 0 0;
  border-top: 1px solid var(--jm-rule);
}
body.jm .jm-deleg__servicios li { border: 1px solid var(--jm-rule); background: var(--jm-sunken); padding: 0.25rem 0.625rem; font-size: 0.875rem; color: var(--jm-ink-2); }

/* [jm_delegacion_boton] */
body.jm .jm-deleg__pie { margin-top: auto; }
body.jm .jm-deleg__boton { display: flex; width: 100%; box-sizing: border-box; }
body.jm .jm-deleg__boton--sede:hover { background: var(--jm-accent); color: #fff; }

/* Otros centros */
body.jm .jm-centros__intro { margin-top: 1rem; max-width: 56ch; font-size: 1rem; color: var(--jm-ink-2); }
body.jm .jm-centros,
body.jm .e-con.jm-centros {
  margin-top: 1.5rem; display: grid; gap: 1px; overflow: hidden;
  border: 1px solid var(--jm-rule); border-radius: var(--jm-radius-2xl); background: var(--jm-rule);
}
@media (min-width: 768px) { body.jm .jm-centros, body.jm .e-con.jm-centros { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body.jm .jm-centro,
body.jm .e-con.jm-centro { display: block; background: var(--jm-surface); padding: 1.25rem; }
@media (min-width: 768px) { body.jm .jm-centro, body.jm .e-con.jm-centro { padding: 1.5rem; } }
body.jm .jm-centro__titulo { color: var(--jm-ink); }
body.jm .jm-centro__dir { margin-top: 0.5rem; font-size: 1rem; color: var(--jm-ink-2); }
body.jm .jm-centro__tel { margin-top: 1rem; }
body.jm .jm-centro__correo { margin-top: 0.25rem; font-size: 1rem; }

/* ==========================================================================
   CONTACTO
   ========================================================================== */
body.jm .e-con.jm-placa__cuerpo--contacto { padding-block: 2.5rem; }
@media (min-width: 768px) { body.jm .e-con.jm-placa__cuerpo--contacto { padding-block: 3.5rem; } }
body.jm .jm-placa__titulo--22 { max-width: 22ch; }
body.jm .jm-contacto__lede { margin-top: 1.5rem; max-width: 58ch; color: var(--jm-ink-inv-2); }
body.jm .jm-contacto__botones,
body.jm .e-con.jm-contacto__botones { margin-top: 2rem; display: flex; flex-direction: column; gap: 0.75rem; }
@media (min-width: 768px) { body.jm .jm-contacto__botones, body.jm .e-con.jm-contacto__botones { flex-direction: row; } }
body.jm .jm-contacto__boton .elementor-button { gap: 0.625rem; border-color: var(--jm-rule-inverse); }
body.jm .jm-contacto__boton .elementor-button:hover { background: var(--jm-inverse-2); border-color: var(--jm-rule-inverse); }
body.jm .jm-contacto__boton .elementor-button-icon { order: 0; }

body.jm .jm-contacto__rejilla,
body.jm .e-con.jm-contacto__rejilla { display: grid; gap: 2rem; }
@media (min-width: 1024px) {
  body.jm .jm-contacto__rejilla, body.jm .e-con.jm-contacto__rejilla { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3rem; }
  body.jm .jm-contacto__col5 { grid-column: span 5 / span 5; }
  body.jm .jm-contacto__col7 { grid-column: span 7 / span 7; }
}
body.jm .jm-contacto__rejilla--centro,
body.jm .e-con.jm-contacto__rejilla--centro { align-items: center; }
body.jm .jm-contacto__col5,
body.jm .jm-contacto__col7,
body.jm .e-con.jm-contacto__col5,
body.jm .e-con.jm-contacto__col7 { display: block; min-width: 0; }
body.jm .jm-contacto__central,
body.jm .e-con.jm-contacto__central { margin-top: 1.5rem; display: block; border: 1px solid var(--jm-rule); background: var(--jm-sunken); padding: 1.5rem; }
body.jm .jm-contacto__central-titulo { color: var(--jm-ink); }
body.jm .jm-contacto__dl,
body.jm .e-con.jm-contacto__dl { margin-top: 1.25rem; display: flex; flex-direction: column; gap: 0.875rem; }
body.jm .jm-contacto__domicilio { font-size: 0.875rem; color: var(--jm-ink-3); }
body.jm .jm-contacto__domicilio .jm-value { font-size: 0.875rem; }
body.jm .jm-contacto__nota { margin-top: 1.5rem; font-size: 0.875rem; color: var(--jm-ink-3); }
body.jm .jm-contacto__intro { margin-top: 1rem; max-width: 56ch; font-size: 1rem; color: var(--jm-ink-2); }
body.jm .jm-contacto__todas .elementor-button { margin-top: 1.5rem; font-size: 1rem; }
body.jm .jm-contacto__cta-lede { margin-top: 1rem; max-width: 54ch; color: var(--jm-ink-2); }
body.jm .jm-contacto__cta-botones,
body.jm .e-con.jm-contacto__cta-botones { display: flex; flex-direction: column; gap: 0.75rem; }
body.jm .jm-contacto__cta-botones .elementor-button { padding: 0 2rem; }

/* Centralita: Loop Grid jm_delegaciones con el Loop Item «Delegación · contacto» */
body.jm .jm-centralita { margin-top: 1.5rem; }
body.jm .jm-centralita .elementor-loop-container {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; overflow: hidden;
  border: 1px solid var(--jm-rule); border-radius: var(--jm-radius-2xl); background: var(--jm-rule);
}
@media (min-width: 768px) { body.jm .jm-centralita .elementor-loop-container { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body.jm .jm-deleg-c,
body.jm .e-con.jm-deleg-c { display: block; height: 100%; background: var(--jm-surface); padding: 0.875rem 1rem; }
body.jm .jm-deleg-c__cabeza,
body.jm .e-con.jm-deleg-c__cabeza { display: flex; flex-direction: row; align-items: baseline; justify-content: space-between; gap: 0.5rem; }
body.jm .jm-deleg-c__nombre { font-family: var(--jm-font-sans); font-size: 1rem; font-weight: 600; color: var(--jm-ink); }
body.jm .jm-deleg-c__datos { display: block; }
body.jm .jm-deleg-c__tel {
  margin-top: 0.375rem; display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.75rem;
  font-size: 0.875rem; color: var(--jm-ink-2); transition: color 200ms var(--jm-ease-ui);
}
body.jm .jm-deleg-c__tel svg { flex: none; }
body.jm .jm-deleg-c__tel:hover { color: var(--jm-accent); }
body.jm .jm-deleg-c__email {
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-block: 0.25rem;
  font-size: 0.875rem; color: var(--jm-ink-3);
  text-decoration: underline; text-decoration-color: var(--jm-rule); text-underline-offset: 4px;
  transition: color 200ms var(--jm-ease-ui);
}
body.jm .jm-deleg-c__email:hover { color: var(--jm-ink-2); }

/* ==========================================================================
   LEGALES (aviso legal, privacidad, cookies)
   ========================================================================== */
body.jm .jm-legal,
body.jm .e-con.jm-legal { padding-block: 2.5rem; }
@media (min-width: 768px) { body.jm .jm-legal, body.jm .e-con.jm-legal { padding-block: 3rem; } }
body.jm .jm-legal__cuerpo,
body.jm .e-con.jm-legal__cuerpo { display: block; max-width: 70ch; }
body.jm .jm-legal__titulo { color: var(--jm-ink); }
body.jm .jm-legal__secciones,
body.jm .e-con.jm-legal__secciones { margin-top: 2.5rem; display: flex; flex-direction: column; gap: 2rem; }
body.jm .jm-legal__seccion,
body.jm .e-con.jm-legal__seccion { display: block; }
body.jm .jm-legal__h2 { color: var(--jm-ink-3); }
body.jm .jm-legal__texto { margin-top: 0.75rem; font-size: 1rem; color: var(--jm-ink-2); }
body.jm .jm-legal__texto p + p { margin-top: 0.75rem; }
body.jm .jm-legal__texto strong { font-weight: 600; color: var(--jm-ink); }
body.jm .jm-legal__texto--holgado { margin-top: 1rem; line-height: 1.625; }
body.jm .jm-legal__dl,
body.jm .e-con.jm-legal__dl { margin-top: 0.75rem; display: block; border-block: 1px solid var(--jm-rule); }
body.jm .jm-legal__dl--suelto,
body.jm .e-con.jm-legal__dl--suelto { margin-top: 1.25rem; }
body.jm .jm-legal__fila,
body.jm .e-con.jm-legal__fila { display: flex; flex-direction: column; gap: 0.25rem; padding-block: 0.75rem; }
body.jm .jm-legal__fila ~ .jm-legal__fila { border-top: 1px solid var(--jm-rule); }
@media (min-width: 768px) {
  body.jm .jm-legal__fila, body.jm .e-con.jm-legal__fila { flex-direction: row; gap: 2rem; }
  body.jm .jm-legal__fila--apilada, body.jm .e-con.jm-legal__fila--apilada { flex-direction: column; gap: 0.25rem; }
  body.jm .jm-legal__k { width: 12rem; flex-shrink: 0; }
  body.jm .jm-legal__fila--apilada .jm-legal__k { width: auto; }
}
body.jm .jm-legal__k { font-size: 1rem; color: var(--jm-ink-2); }
body.jm .jm-legal__v { font-size: 1rem; color: var(--jm-ink); }
body.jm .jm-legal__k--mono { font-family: var(--jm-font-mono); color: var(--jm-ink); }
body.jm .jm-legal__v--suave { color: var(--jm-ink-2); }

/* ==========================================================================
   404 (Theme Builder → Página 404). No existe en la web Next.
   ========================================================================== */
body.jm .jm-404,
body.jm .e-con.jm-404 { padding-block: 3rem; }
@media (min-width: 768px) { body.jm .jm-404, body.jm .e-con.jm-404 { padding-block: 4rem; } }
body.jm .jm-404__cuerpo,
body.jm .e-con.jm-404__cuerpo { display: block; max-width: 60ch; }
body.jm .jm-404__titulo { margin-top: 0.75rem; color: var(--jm-ink); }
body.jm .jm-404__lede { margin-top: 1.25rem; color: var(--jm-ink-2); }
body.jm .jm-404__botones,
body.jm .e-con.jm-404__botones { margin-top: 2rem; display: flex; flex-direction: column; gap: 0.75rem; }
@media (min-width: 768px) { body.jm .jm-404__botones, body.jm .e-con.jm-404__botones { flex-direction: row; align-items: center; gap: 1.5rem; } }
