/**
 * clone-overrides.css — complemento del CSS legacy de producción
 * (apps/web/public/vendor/ecija/firma-styles.css).
 *
 * 1) Variables base en :root / #temis-root (antes vivían en el root React
 *    legacy del CSS de producción). El body del layout lleva id="temis-root".
 *    Sin esto, var(--font-1), var(--spc-*) y demás no resuelven.
 * 2) Piezas interactivas que en producción resuelve el JS de React:
 *    overflow "•••" del menú, menú móvil, capa de búsqueda, tabs de
 *    Servicios y banner de cookies.
 * 3) Estilos de páginas no-home del clon (hubs, fichas, formularios).
 */

/* ————————————————————————————————————————————————————————————————
   1. Variables base TEMIS (:root + #temis-root)
   ———————————————————————————————————————————————————————————————— */
:root,
#temis-root {
  --duration-xs: 0.1s;
  --duration-sm: 0.2s;
  --duration-md: 0.3s;
  --duration-lg: 0.5s;
  --duration-xl: 0.75s;
  --easing-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955);
  --easing-cubic: cubic-bezier(0.645, 0.045, 0.355, 1);
  --easing-quart: cubic-bezier(0.77, 0, 0.175, 1);
  --easing-quint: cubic-bezier(0.86, 0, 0.07, 1);
  --easing-expo: cubic-bezier(1, 0, 0, 1);
  --border-width-xs: 16px;
  --border-width-sm: 24px;
  --border-width-md: 32px;
  --border-width-lg: 48px;
  --xs-max-width: 100%;
  --sm-max-width: 100%;
  --md-max-width: 100%;
  --lg-max-width: 1920px;
  --font-1: Manrope, "Manrope Fallback", sans-serif;
  --font-2: Inter, "Inter Fallback", sans-serif;
  --font-3: "Cormorant Garamond", "Cormorant Garamond Fallback", serif;
  --opacity-1: 0.08;
  --opacity-2: 0.3;
  --opacity-3: 0.4;
  --opacity-4: 0.56;
  --opacity-5: 0.64;
  --opacity-6: 0.72;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-full: 9999px;
  --spc-4xs: 4px;
  --spc-3xs: 8px;
  --spc-2xs: 16px;
  --spc-xs: 24px;
  --spc-sm: 32px;
  --spc-md: 40px;
  --spc-lg: 48px;
  --spc-xl: 56px;
  --spc-2xl: 64px;
  --spc-3xl: 80px;
  --spc-4xl: 96px;
  --spc-5xl: 128px;
  --size-2xs: 8px;
  --size-xs: 16px;
  --size-sm: 24px;
  --size-md: 32px;
  --size-lg: 48px;
  --size-xl: 56px;
  --size-2xl: 64px;
}

html,
body {
  margin: 0;
  min-height: 100%;
  background: #fff;
}

/* TEMIS root: tipografía base (antes en root React de prod legacy) */
#temis-root,
html,
body {
  font-family: var(--font-1);
}

.screen-read-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* usado por capas de búsqueda/equipo de producción */
.z-2 {
  z-index: 2;
}

/* prod: al hacer scroll el header pasa a "small" y el CTA reduce padding
   (su JS cambia py-2xs→py-3xs; aquí lo resolvemos por CSS) */
.styles-module--small--0287d .styles-module--button1--fa20a {
  padding-block: var(--spc-3xs);
}

/* ————————————————————————————————————————————————————————————————
   Crops de producción (art direction de sus <picture>/DAM).
   El clon sirve imágenes sencillas; igualamos el encuadre por CSS.
   ———————————————————————————————————————————————————————————————— */
/* Insights cards: 307/157 | 568/357 | 756/387 | 835/474
   NO advisory: allí prod usa object-fit:fill con el ratio de los attrs del
   <source> activo (p.ej. en /en/our-values/ una card rinde 338px, no 307). */
body:not([data-site="advisory"]) .styles-module--mediaContainer--0c719 img {
  aspect-ratio: 307 / 157;
  object-fit: cover;
  width: 100%;
  display: block;
}
@media (min-width: 700px) {
  body:not([data-site="advisory"]) .styles-module--mediaContainer--0c719 img {
    aspect-ratio: 568 / 357;
  }
}
@media (min-width: 1025px) {
  body:not([data-site="advisory"]) .styles-module--mediaContainer--0c719 img {
    aspect-ratio: 756 / 387;
  }
}
@media (min-width: 1681px) {
  body:not([data-site="advisory"]) .styles-module--mediaContainer--0c719 img {
    aspect-ratio: 835 / 474;
  }
}

/* Servicios detalle: mismos crops que insights */
.styles-module--mediaContainer--411d8 img {
  aspect-ratio: 307 / 157;
  object-fit: cover;
  width: 100%;
  display: block;
}
@media (min-width: 700px) {
  .styles-module--mediaContainer--411d8 img {
    aspect-ratio: 568 / 357;
  }
}
@media (min-width: 1025px) {
  .styles-module--mediaContainer--411d8 img {
    aspect-ratio: 756 / 387;
  }
}
@media (min-width: 1681px) {
  .styles-module--mediaContainer--411d8 img {
    aspect-ratio: 835 / 474;
  }
}

/* Offices cards: 280/238 | 440/238 | 264/353 | 472/353 */
.styles-module--card--3d7e2 img {
  aspect-ratio: 280 / 238;
  object-fit: cover;
  width: 100%;
  display: block;
}
@media (min-width: 700px) {
  .styles-module--card--3d7e2 img {
    aspect-ratio: 440 / 238;
  }
}
@media (min-width: 1025px) {
  .styles-module--card--3d7e2 img {
    aspect-ratio: 264 / 353;
  }
}
@media (min-width: 1681px) {
  .styles-module--card--3d7e2 img {
    aspect-ratio: 472 / 353;
  }
}

/* Team (BasicContent): crop 4/3 + reserva de espacio (prod width/height attrs).
   NO advisory: allí prod usa object-fit:fill con el ratio de los attrs del
   <source> activo (p.ej. 640x274) y forzar 4/3 infla la altura de sección. */
body:not([data-site="advisory"]) .styles-module--mediaContainer--c3f74 img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: 100%;
  display: block;
}

/* ————————————————————————————————————————————————————————————————
   Hub Equipo: tarjetas de persona, filtros y selects
   ———————————————————————————————————————————————————————————————— */
/* Crops de la tarjeta de persona (prod art direction): 1/1 | 437/327 | 394/327 */
.styles-module--card--5eaee img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
  display: block;
  background: #e8e8e8;
}
@media (min-width: 700px) {
  .styles-module--card--5eaee img {
    aspect-ratio: 437 / 327;
  }
}
@media (min-width: 1025px) {
  .styles-module--card--5eaee img {
    aspect-ratio: 394 / 327;
  }
}
@media (min-width: 1681px) {
  .styles-module--card--5eaee img {
    aspect-ratio: 1 / 1;
  }
}

/* Variante horizontal de la tarjeta (foto 327px a la izquierda, peopleGrid de
   fichas de oficina con pocas personas): prod usa recorte cuadrado (640x640)
   en todos los breakpoints */
.styles-module--card--5eaee[style*="--cols: 327px"] img {
  aspect-ratio: 1 / 1;
}

/* letra activa del filtro alfabético */
#ecija-letters button.is-active {
  background-color: var(--button-3-bg-active);
  border-color: var(--button-3-border-active);
}

/* selects (Cargos/Servicios/Sedes): panel desplegable */
.ecija-select {
  width: 100%;
}
.ecija-select > button {
  background: none;
  cursor: pointer;
}
.ecija-select__panel {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 20;
  max-height: 300px;
  overflow-y: auto;
  margin: 0;
  padding: var(--spc-3xs) 0;
  list-style: none;
  background: var(--bg-1);
  border: 1px solid var(--border-3);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
}
.ecija-select__panel button {
  display: block;
  width: 100%;
  text-align: left;
  padding: var(--spc-3xs) var(--spc-2xs);
  background: none;
  border: 0;
  cursor: pointer;
  font-family: var(--font-2);
  font-size: 14px;
  color: var(--text-1);
}
.ecija-select__panel button:hover {
  background: var(--bg-2);
  color: var(--link-text);
}
/* Hub /abogados/: cabeceras no seleccionables, países y estado seleccionado */
.ecija-select__panel li.ecija-select__header {
  padding: var(--spc-3xs) var(--spc-2xs);
  font-family: var(--font-2);
  font-size: 14px;
  font-weight: 700;
  color: var(--text-1);
}
.ecija-select__panel li.ecija-select__group > button {
  font-weight: 700;
}
.ecija-select__panel li.is-selected > button {
  font-weight: 700;
  color: var(--link-text);
}
.ecija-select__panel li.is-selected > button::after {
  content: "✓";
  float: right;
}

/* go to top visible */
.styles-module--goToTopBtn--9746c.is-visible {
  opacity: 1;
  pointer-events: auto;
}

/* teamLayer abierto */
.styles-module--teamLayer--454d8.styles-module--teamLayerActive--275c8 {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

/* ————————————————————————————————————————————————————————————————
   Hub Insights: vídeos YouTube de fondo + crops de tarjetas
   ———————————————————————————————————————————————————————————————— */
.ecija-video-bg,
.ecija-signup-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.ecija-video-bg iframe,
.ecija-signup-bg iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100vw;
  height: 56.25vw;
  min-height: 101%;
  min-width: 177.78vh;
  transform: translate(-50%, -50%);
  border: 0;
  pointer-events: none;
}

/* crops tarjetas de noticias (prod art direction) */
/* 238c7 (cards de insights/reconocimientos): en prod rinden 4:3
   (img attrs 640x480 + object-fit:cover). */
.styles-module--imageWrapper--238c7 img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: 100%;
  display: block;
  background: #e8e8e8;
}
/* da37e (pinned del hub insights): en prod la imagen RELLENA la tarjeta pinned
   (object-fit:cover, ratio natural). No forzar aspect-ratio. */
.styles-module--imageWrapper--da37e img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
  background: #e8e8e8;
}
.ecija-team-results {
  list-style: none;
  margin: var(--spc-3xs) 0 0;
  padding: 0;
  background: var(--bg-1);
  border: 1px solid var(--border-3);
  max-height: 260px;
  overflow-y: auto;
}
.ecija-team-results a {
  display: block;
  padding: var(--spc-3xs) var(--spc-2xs);
  color: var(--text-1);
  text-decoration: none;
  font-family: var(--font-2);
  font-size: 14px;
}
.ecija-team-results a:hover {
  background: var(--bg-2);
  color: var(--link-text);
}

/* ficha persona: crop de la foto. Prod recorta en el DAM con aspecto variable
   por persona (p. ej. 1181/689, 800/448); la ficha lo fija inline con
   aspect-ratio desde person.photoWidth/photoHeight. 16/9 = fallback. */
.ecija-person-photo {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

/* ficha insight: imagen del hero a todo el velo */
.styles-module--background--d9357 img {
  width: 100%;
  height: 100%;
  object-fit: var(--crop, cover);
  object-position: var(--position, center);
  display: block;
}

/* banner insights de área: foto de fondo */
.ecija-banner-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--position, center);
}

/* tarjetas insights relacionados (ficha persona): crop 4/3 */
.styles-module--imageWrapper--41284 img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: 100%;
  display: block;
}

/* acordeón países oficinas: iconos +/- (prod: active--2aeae en el wrapper) */
.ecija-country__minus {
  display: none;
}
.ecija-country.styles-module--active--2aeae .ecija-country__minus {
  display: inline-flex;
}
.ecija-country.styles-module--active--2aeae .ecija-country__add {
  display: none;
}
.ecija-country__btn {
  border-bottom: 1px solid var(--border-3);
}
.ecija-country__btn svg {
  justify-self: end;
}

/* ————————————————————————————————————————————————————————————————
   2a. Header: overflow "•••" (prod lo hace con JS)
   ———————————————————————————————————————————————————————————————— */
/* El nav ocupa el hueco entre logo y bloque idiomas/CTA para poder medir
   qué items no caben y mandarlos al overflow. */
.styles-module--menuWrp--f2255 .styles-module--navigationWrp--34cad {
  flex: 1 1 auto;
  min-width: 0;
}
.styles-module--navigation--01f75 > li {
  flex-shrink: 0;
}
.styles-module--navigation--01f75 > li[hidden] {
  display: none;
}

#ecija-overflow-wrp {
  display: none;
}
#ecija-overflow-wrp.is-open {
  display: block;
}
@media (min-width: 1025px) {
  .styles-module--overflowNavigation--b1fac {
    top: calc(100% + 1px);
    z-index: 10;
    border-bottom: 1px solid var(--border-3);
    list-style: none;
    margin: 0;
  }
  .styles-module--overflowNavigation--b1fac > li {
    flex-shrink: 0;
  }
}
#ecija-more-btn svg {
  display: block;
}

/* ————————————————————————————————————————————————————————————————
   2b. Capa de búsqueda (prod: clase searchLayerActive--8981e en firma-styles.css;
   top/height via --header-height; cierra con la lupa o ESC)
   ———————————————————————————————————————————————————————————————— */

/* ————————————————————————————————————————————————————————————————
   2c. Menú móvil: submenús expandibles + drill-down (prod: al entrar en un
   padre se ocultan los demás y el botón pasa a ser "< Volver")
   ———————————————————————————————————————————————————————————————— */
.styles-module--mobileMenu--de1f1 ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.styles-module--mobileMenu--de1f1 .ecija-m-sub {
  display: none;
  padding: 0 0 var(--spc-2xs) var(--spc-2xs);
  background: var(--bg-2);
}
.styles-module--mobileMenu--de1f1 li.is-open > .ecija-m-sub {
  display: block;
}
/* drill-down: solo el padre activo visible en la nav superior; su botón = "< Volver" */
.styles-module--mobileMenu--de1f1.ecija-drill [class*="mobileNavigation"] .ecija-m-item:not(.ecija-drill-active),
.styles-module--mobileMenu--de1f1.ecija-drill [class*="mobileNavigation"] > ul > li:not(.ecija-m-item):not(.ecija-drill-active) {
  display: none;
}
.styles-module--mobileMenu--de1f1.ecija-drill .ecija-drill-active > button {
  justify-content: flex-start;
  gap: var(--spc-2xs);
}
.styles-module--mobileMenu--de1f1.ecija-drill .ecija-drill-active > button > i {
  order: -1;
  transform: rotate(135deg);
}
.styles-module--mobileMenu--de1f1 li.is-open > button .styles-module--icon--4cee4,
.styles-module--mobileMenu--de1f1 li.is-open > span .styles-module--icon--4cee4 {
  transform: rotate(-45deg);
}
/* en drill-down el icono vuelve a ser flecha-izq (volver), no la X */
.styles-module--mobileMenu--de1f1.ecija-drill .ecija-drill-active.is-open > button .styles-module--icon--4cee4 {
  transform: rotate(135deg);
}
.ecija-m-sub a {
  display: block;
  padding: var(--spc-3xs) var(--spc-2xs);
  color: var(--link-menu);
  text-decoration: none;
  font-family: var(--font-1);
  font-size: 16px;
  font-weight: 300;
}
.ecija-m-sub a:hover {
  color: var(--link-menu-hover);
}

/* Desktop: el header fijo es transparente y se solapa al contenido; las
   páginas sin hero legacy compensan su altura. */
@media (min-width: 1025px) {
  main > .ecija-page-hero:first-child,
  main > .ecija-ficha:first-child,
  main > .ecija-section:first-child {
    padding-top: calc(110px + 3rem);
  }
}

/* ————————————————————————————————————————————————————————————————
   2e. Banner de cookies (réplica Didomi de ecija.com)
   ———————————————————————————————————————————————————————————————— */
.ecija-cookies {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  background: #fff;
  border-top: 1px solid var(--border-3, #e2e2e2);
  box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.08);
  padding: var(--spc-2xs);
  display: none;
}
.ecija-cookies.is-visible {
  display: block;
}
.ecija-cookies__inner {
  display: flex;
  flex-direction: column;
  gap: var(--spc-2xs);
  max-width: 1920px;
  margin: 0 auto;
}
@media (min-width: 1025px) {
  .ecija-cookies__inner {
    flex-direction: row;
    align-items: center;
    gap: var(--spc-lg);
  }
}
.ecija-cookies__text {
  margin: 0;
  font-family: var(--font-2);
  font-size: 13px;
  line-height: 18px;
  color: var(--text-1);
  flex: 1 1 auto;
}
.ecija-cookies__text a {
  color: var(--text-2);
  text-decoration: underline;
}
.ecija-cookies__text a:hover {
  color: var(--link-text-hover);
}
.ecija-cookies__partners {
  display: block;
  margin-top: 4px;
}
.ecija-cookies__actions {
  display: flex;
  flex-direction: column;
  gap: var(--spc-3xs);
  flex: 0 0 auto;
}
@media (min-width: 700px) {
  .ecija-cookies__actions {
    flex-direction: row;
    align-items: center;
    gap: var(--spc-2xs);
  }
}
.ecija-cookies__btn {
  appearance: none;
  border: 0;
  cursor: pointer;
  font-family: var(--font-1);
  font-size: 13px;
  font-weight: 600;
  padding: 12px 28px;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
}
.ecija-cookies__btn--info {
  background: #f1f1f1;
  color: var(--text-1);
}
.ecija-cookies__btn--info:hover {
  background: #e2e2e2;
}
.ecija-cookies__btn--red {
  background: var(--brand-1, #c9251c);
  color: #fff;
}
.ecija-cookies__btn--red:hover {
  background: #b21e16;
}

/* ————————————————————————————————————————————————————————————————
   2f. Panel de preferencias de cookies (drawer Didomi de ecija.com)
   ———————————————————————————————————————————————————————————————— */
.ecija-consent {
  position: fixed;
  inset: 0;
  z-index: 70;
}
.ecija-consent[hidden] {
  display: none;
}
.ecija-consent__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}
.ecija-consent__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  /* Más compacto: drawer estrecho y legible (antes 45%/480–760) */
  width: min(400px, 100vw);
  min-width: 0;
  max-width: 400px;
  background: #fff;
  border-left: 1px solid #e2e2e2;
  box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
  display: flex;
  flex-direction: column;
}
@media (max-width: 700px) {
  .ecija-consent__panel {
    width: 100%;
    max-width: none;
    border-left: 0;
  }
}
.ecija-consent__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px 12px;
  border-bottom: 1px solid #eee;
  flex: 0 0 auto;
}
.ecija-consent__title {
  margin: 0;
  font-family: var(--font-1);
  font-size: 16px;
  font-weight: 700;
  line-height: 22px;
  color: #222;
}
.ecija-consent__close {
  appearance: none;
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 26px;
  line-height: 1;
  color: #555;
  padding: 2px 6px;
}
.ecija-consent__close:hover {
  color: #000;
}
.ecija-consent__body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 14px 20px 16px;
  -webkit-overflow-scrolling: touch;
}
.ecija-consent__desc {
  margin: 0 0 12px;
  font-family: var(--font-2);
  font-size: 12px;
  line-height: 17px;
  color: #333;
  /* Texto largo del CMS: compacto sin cortar el sentido */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  overflow: hidden;
}
.ecija-consent__desc a {
  color: var(--brand-1, #c9251c);
  text-decoration: underline;
}
.ecija-consent__section {
  margin: 0 0 8px;
  font-family: var(--font-1);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #8a8a8a;
}
.ecija-consent__rows {
  border-top: 1px solid #eee;
}
.ecija-consent__row {
  border-bottom: 1px solid #eee;
}
.ecija-consent__rowhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 0;
}
.ecija-consent__toggle {
  appearance: none;
  background: none;
  border: 0;
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
  font-family: var(--font-1);
  font-size: 13px;
  font-weight: 700;
  line-height: 18px;
  color: #222;
  padding: 0;
}
.ecija-consent__plus {
  position: relative;
  flex: 0 0 auto;
  width: 12px;
  height: 12px;
  margin-top: 4px;
}
.ecija-consent__plus::before,
.ecija-consent__plus::after {
  content: "";
  position: absolute;
  background: #222;
}
.ecija-consent__plus::before {
  left: 0;
  top: 5px;
  width: 12px;
  height: 2px;
}
.ecija-consent__plus::after {
  left: 5px;
  top: 0;
  width: 2px;
  height: 12px;
  transition: transform 0.15s ease;
}
.ecija-consent__row.is-open .ecija-consent__plus::after {
  transform: rotate(90deg);
}
.ecija-consent__pills {
  display: flex;
  gap: 6px;
  flex: 0 0 auto;
}
.ecija-consent__pill {
  appearance: none;
  background: #fff;
  border: 1px solid #d6d6d6;
  box-shadow: 1px 1px 0 rgba(0, 0, 0, 0.08);
  color: #757575;
  cursor: pointer;
  font-family: var(--font-1);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  padding: 6px 12px;
  min-width: 72px;
  text-align: center;
}
.ecija-consent__pill--reject.is-on {
  background: #555;
  border-color: #555;
  color: #fff;
}
.ecija-consent__pill--accept.is-on {
  background: #1a7f37;
  border-color: #14632b;
  color: #fff;
}
.ecija-consent__pill--accept.is-on::before {
  content: "✓ ";
}
.ecija-consent__pills--locked .ecija-consent__pill {
  cursor: default;
}
.ecija-consent__always {
  align-self: center;
  font-size: 11px;
  color: #8a8a8a;
  margin-right: 4px;
}
.ecija-consent__detail {
  padding: 4px 0 16px 20px;
}
.ecija-consent__catdesc {
  margin: 0 0 10px;
  font-family: var(--font-2);
  font-size: 12px;
  line-height: 18px;
  color: #555;
}
.ecija-consent__table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-2);
  font-size: 12px;
  line-height: 16px;
}
.ecija-consent__table th {
  text-align: left;
  font-weight: 700;
  color: #333;
  border-bottom: 1px solid #ddd;
  padding: 6px 8px 6px 0;
}
.ecija-consent__table td {
  vertical-align: top;
  color: #555;
  border-bottom: 1px solid #f0f0f0;
  padding: 6px 8px 6px 0;
}
.ecija-consent__empty {
  margin: 0;
  font-size: 12px;
  color: #8a8a8a;
  font-style: italic;
}
.ecija-consent__partnersRow {
  display: flex;
  justify-content: flex-end;
  padding: 10px 0 0;
}
.ecija-consent__partners {
  display: inline-block;
  background: #fff;
  border: 1px solid #d6d6d6;
  color: #555;
  font-family: var(--font-1);
  font-size: 11px;
  font-weight: 700;
  padding: 7px 12px;
  text-decoration: none;
}
.ecija-consent__partners:hover {
  border-color: #999;
  color: #333;
}
.ecija-consent__foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px 14px;
  padding: 12px 16px;
  border-top: 1px solid #eee;
  flex: 0 0 auto;
}
.ecija-consent__footbtn {
  appearance: none;
  background: none;
  border: 0;
  cursor: pointer;
  font-family: var(--font-1);
  font-size: 12px;
  font-weight: 700;
  color: #555;
  text-decoration: underline;
  padding: 0;
}
.ecija-consent__footbtn:hover {
  color: #222;
}
.ecija-consent__save {
  appearance: none;
  background: #f1f1f1;
  border: 1px solid #d6d6d6;
  color: #222;
  cursor: pointer;
  font-family: var(--font-1);
  font-size: 14px;
  font-weight: 700;
  padding: 12px 32px;
}
.ecija-consent__save:hover {
  background: #e2e2e2;
}

/* ————————————————————————————————————————————————————————————————
   3. Páginas no-home del clon (hubs, contacto, fichas…)
   ———————————————————————————————————————————————————————————————— */
.ecija-page-hero {
  background: #fff;
  border-bottom: 1px solid #e8e8e8;
  padding: 3rem 1.5rem 2.5rem;
}
.ecija-page-hero__inner {
  width: min(100%, 1200px);
  margin: 0 auto;
}
.ecija-page-hero h1 {
  margin: 0 0 0.5rem;
  font-family: var(--font-1);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 700;
  color: #101010;
}
.ecija-page-hero .lead {
  margin: 0;
  max-width: 40rem;
  font-family: var(--font-2);
  color: #575757;
  font-size: 1.05rem;
  line-height: 1.5;
}
.ecija-section {
  width: min(100% - 2rem, 1200px);
  margin: 0 auto;
  padding: 2.5rem 0 4rem;
}
.ecija-section > h2 {
  font-family: var(--font-1);
  margin: 0 0 1.25rem;
  font-size: 1.35rem;
}
.ecija-card-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1rem;
}
.ecija-card {
  display: block;
  height: 100%;
  padding: 1.25rem;
  border: 1px solid #e8e8e8;
  text-decoration: none;
  color: #101010;
  font-family: var(--font-1);
  background: #fff;
  transition: border-color 0.15s;
}
.ecija-card:hover {
  border-color: #c9251c;
}
.ecija-card h3 {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
  color: #c9251c;
}
.ecija-card p {
  margin: 0;
  font-size: 0.88rem;
  color: #575757;
  line-height: 1.45;
  font-family: var(--font-2);
}
.ecija-pager {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e8e8e8;
  font-family: var(--font-1);
  font-size: 0.9rem;
}
.ecija-pager a {
  color: #101010;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid #101010;
}
.ecija-pager a:hover {
  color: #c9251c;
  border-color: #c9251c;
}
.ecija-hub-error {
  color: #c9251c;
  font-family: var(--font-2);
}

/* Contact form */
.ecija-contact__grid {
  display: grid;
  gap: 2.5rem;
}
@media (min-width: 900px) {
  .ecija-contact__grid {
    grid-template-columns: 1.4fr 0.8fr;
  }
}
.ecija-contact-form__row {
  margin-bottom: 1rem;
}
.ecija-contact-form label {
  display: block;
  font-family: var(--font-1);
  font-size: 0.85rem;
  font-weight: 600;
  margin-bottom: 0.35rem;
  color: #101010;
}
.ecija-contact-form input,
.ecija-contact-form textarea {
  width: 100%;
  box-sizing: border-box;
  border: none;
  border-bottom: 1px solid #101010;
  padding: 0.65rem 0;
  font-family: var(--font-2);
  font-size: 1rem;
  background: transparent;
  border-radius: 0;
}
.ecija-contact-form input:focus,
.ecija-contact-form textarea:focus {
  outline: 1px solid #c9251c;
  outline-offset: 2px;
}
.ecija-contact-form__hp {
  position: absolute;
  left: -9999px;
  height: 0;
  overflow: hidden;
}
.ecija-contact-form {
  position: relative;
}
.ecija-contact-form__submit {
  appearance: none;
  border: none;
  background: #c9251c;
  color: #fff;
  font-family: var(--font-1);
  font-weight: 600;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 1rem 1.5rem;
  cursor: pointer;
  margin-top: 0.5rem;
}
.ecija-contact-form__submit:hover {
  background: #b21e16;
}
.ecija-contact-form__status {
  margin-top: 1rem;
  font-family: var(--font-2);
  font-size: 0.95rem;
}
.ecija-contact-form__status.is-ok {
  color: #00610f;
}
.ecija-contact-form__status.is-error {
  color: #c9251c;
}
.ecija-contact-form__status.is-pending {
  color: #575757;
}
.ecija-contact__aside h2 {
  font-family: var(--font-1);
  font-size: 1.15rem;
  margin: 0 0 1rem;
}
.ecija-contact__aside p {
  font-family: var(--font-2);
  margin: 0 0 0.75rem;
  color: #575757;
}
.ecija-contact__aside a {
  color: #101010;
}

/* Office hub (presencia internacional) */
.ecija-office-hub {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 700px) {
  .ecija-office-hub {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1025px) {
  .ecija-office-hub {
    grid-template-columns: repeat(3, 1fr);
  }
}
.ecija-office-hub__card {
  display: grid;
  gap: 0.75rem;
  text-decoration: none;
  color: #101010;
  font-family: var(--font-1);
  position: relative;
}
.ecija-office-hub__card img,
.ecija-office-hub__ph {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  background: #e8e8e8;
  display: block;
}
.ecija-office-hub__card h2 {
  margin: 0;
  font-family: var(--font-3);
  font-style: italic;
  font-weight: 300;
  font-size: 1.75rem;
}
.ecija-office-hub__card span {
  font-size: 0.88rem;
  font-weight: 500;
}
.ecija-office-hub__card:hover span {
  color: #c9251c;
}

/* Fichas detalle (person / insight / practice) */
.ecija-ficha__eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.75rem;
  font-weight: 600;
  color: #575757;
  margin: 0 0 0.5rem;
  font-family: var(--font-1);
}
.ecija-ficha__hero {
  display: grid;
  gap: 2rem;
  align-items: start;
}
@media (min-width: 800px) {
  .ecija-ficha__hero {
    grid-template-columns: 1fr minmax(200px, 280px);
  }
}
.ecija-ficha__photo {
  width: 100%;
  max-width: 320px;
  aspect-ratio: 3/4;
  object-fit: cover;
  background: #eee;
}
.ecija-ficha__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  margin-top: 1.25rem;
}
.ecija-coverage-link {
  display: inline-flex;
  align-items: center;
  border: 1px solid #101010;
  padding: 0.7rem 1rem;
  font-family: var(--font-1);
  font-size: 0.82rem;
  text-decoration: none;
  color: #101010;
  background: #fff;
}
.ecija-ficha__meta {
  margin: 0.75rem 0 0;
  font-family: var(--font-2);
  font-size: 0.9rem;
  color: #575757;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
}
.ecija-ficha__tags {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.ecija-ficha__tags a {
  display: inline-block;
  border: 1px solid #e2e2e2;
  padding: 0.35rem 0.65rem;
  font-size: 0.78rem;
  text-decoration: none;
  color: #101010;
  font-family: var(--font-1);
}
.ecija-ficha__tags a:hover {
  border-color: #c9251c;
  color: #c9251c;
}
.ecija-prose {
  font-family: var(--font-2);
  font-size: 1.05rem;
  line-height: 1.65;
  color: #101010;
  max-width: 48rem;
}
.ecija-prose h2,
.ecija-prose h3 {
  font-family: var(--font-1);
  margin: 1.75rem 0 0.75rem;
}
.ecija-insight__cover {
  padding-top: 0;
}
.ecija-insight__cover img {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  display: block;
  background: #eee;
}

/* El atributo hidden debe ganar a las clases grid/flex del clon (paginación contactos) */
[hidden] {
  display: none !important;
}

/* Legales: el documento va envuelto en .ecija-prose (Blocks.astro) pero prod
   sirve el HTML directamente dentro de span.main--79cc7. Neutralizamos la
   tipografía propia de .ecija-prose en ese contexto y replicamos la regla de
   prod .main--79cc7 > * { margin-bottom: 56px } un nivel más abajo. */
.styles-module--main--79cc7 > .ecija-prose {
  font: inherit;
  line-height: inherit;
  color: inherit;
  max-width: none;
}
.styles-module--main--79cc7 > .ecija-prose.block {
  margin: 0; /* anula .block { margin: 1.5rem 0 } de Blocks.astro en docs legales (empate de especificidad con el scoped de Astro: subimos a 0,3,0) */
}
.styles-module--main--79cc7 > .ecija-prose > * {
  margin-bottom: 56px;
}
.styles-module--main--79cc7 > .ecija-prose > p {
  margin-bottom: var(--spc-2xs, 16px);
}
.styles-module--main--79cc7 > .ecija-prose > h2,
.styles-module--main--79cc7 > .ecija-prose > h3 {
  margin-top: 0;
  margin-bottom: 56px;
}
/* espejo de producción .main--79cc7 > :last-child { margin-bottom: 0 } un nivel dentro */
.styles-module--main--79cc7 > .ecija-prose > :last-child {
  margin-bottom: 0;
}

/* Gaming: la live sirve la imagen del intro (layout04) en crop 3:2 (720x480),
   no en el 4/3 estándar del resto de fichas. Se marca con ecija-intro-3x2. */
.ecija-intro-3x2 .styles-module--mediaContainer--c3f74 img {
  aspect-ratio: 3 / 2;
}

/* TeamLayer (header Equipo): el chunk de prod peopleCarousel--4db39 fija
   5 cards por fila en desktop (--width-lg: 18%); nuestro CSS vendored
   (hash antiguo e268d) no lo trae. */
.styles-module--peopleCarousel--4db39 {
  --width-md: 18%;
  --width-lg: 18%;
}

/* TeamLayer — alineación de cards como live (verificado en prod @1440):
   cardsWrp es flex con align-items:flex-start y gap:32px. Así cada card
   conserva su altura natural (la foto siempre arriba, imgTops iguales aunque
   el cargo ocupe 1-2 líneas) y las 5 cards caben sin scroll horizontal
   (5×230 + 4×32 = 1278 ≤ 1280). Nuestro chunk antiguo usaba stretch + 48px. */
#ecija-team-cards .styles-module--cardsWrp--d6ccb {
  align-items: flex-start;
  gap: 32px;
}

/* Ficha insight (InsightsDetail): la imagen del body (image--e45dd) se sirve en
   prod con crop cover 1440x644 (srcset legacy). El clon usa la imagen original
   de Strapi; forzamos el mismo encuadre para igualar alturas. */
.styles-module--image--e45dd img {
  aspect-ratio: 1440 / 644;
  object-fit: cover;
}

/* Ficha insight — PeopleDistributor layout01 (módulo "Profesionales relacionados"
   con ≤4 personas): el chunk de prod con estas reglas no está en el CSS vendored;
   patrón idéntico a layout02/03/04, verificado contra prod (1440px: 4×296 gap 32). */
.styles-module--layout01--2bded .styles-module--peopleGrid--83217 {
  grid-gap: var(--spc-3xl);
  align-items: start;
  display: grid;
  gap: var(--spc-3xl);
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
@media (min-width: 700px) {
  .styles-module--layout01--2bded .styles-module--peopleGrid--83217 {
    grid-gap: var(--spc-lg);
    gap: var(--spc-lg);
    grid-template-columns: repeat(var(--cols-sm), minmax(0, 1fr));
  }
}
@media (min-width: 1025px) {
  .styles-module--layout01--2bded .styles-module--peopleGrid--83217 {
    grid-gap: var(--spc-sm);
    gap: var(--spc-sm);
    grid-template-columns: repeat(var(--cols-md), minmax(0, 1fr));
  }
}



/* Brandbook (hub insights): prod recorta la imagen a 16:9 en móvil (art direction),
   mientras sirve 4:3 en desktop. Nuestro JPG es 4/3: recortamos igual en <700px. */
@media (max-width: 699px) {
  #ecija-brandbook .styles-module--mediaContainer--c3f74 img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    height: auto;
  }
}

/* ————————————————————————————————————————————————————————————————
   Bitrix24 (form contacto advisory): live inyecta el tema rojo ECIJA en un
   <style> runtime con ids aleatorios por carga; el clon sirve el form estático
   (data-styles-apllied) y necesita el tema fijo. Valores exactos de live.
   ———————————————————————————————————————————————————————————————— */
.b24-form,
.b24-form #b24-0718003096808141927134805358878034,
.b24-form #b24-46811046091984197556189514813374 {
  --b24-font-family: Roboto, var(--b24-font-family-default);
  --b24-primary-color: rgba(201, 37, 28, 1);
  --b24-primary-text-color: rgba(255, 255, 255, 1);
  --b24-text-color: rgba(87, 87, 87, 1);
  --b24-background-color: rgba(255, 255, 255, 1);
  --b24-field-border-color: rgba(0, 0, 0, 0.04);
  --b24-field-background-color: rgba(0, 0, 0, 0);
  --b24-field-focus-background-color: rgba(255, 255, 255, 1);
  --b24-popup-background-color: rgba(255, 255, 255, 1);
  --b24-primary-hover-color: rgba(201, 37, 28, 0.7);
}

/* ————————————————————————————————————————————————————————————————
   prefers-reduced-motion (a11y; no cambia el diseño en reposo)
   ———————————————————————————————————————————————————————————————— */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .styles-module--marquee--4986d,
  .styles-module--marqueeGroup--6dbcc {
    animation: none !important;
  }
}

/* Capas dialog: ocultas hasta activación (a11y + teclado) */
#ecija-search-layer[hidden],
#ecija-team-layer[hidden] {
  display: none !important;
}
#ecija-search-layer.styles-module--searchLayerActive--8981e,
#ecija-team-layer.styles-module--teamLayerActive--275c8 {
  display: block;
}
button.ecija-search-open {
  background: none;
  border: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

/* ————————————————————————————————————————————————————————————————
   Ofertas de empleo (trabaja-con-nosotros + ficha JobPosting)
   Alineado al clon: hover de relleno del card brand, sin cajas con borde.
   ———————————————————————————————————————————————————————————————— */
.ecija-jobs__empty {
  padding: var(--spc-md, 1.5rem) 0;
}
/* Misma altura por fila del grid → CTAs alineados (Close Talent, etc.) */
.ecija-jobs__grid {
  align-items: stretch;
}
.ecija-jobs__grid > .ecija-jobs__card {
  height: 100%;
  min-height: 100%;
  align-self: stretch;
}
.ecija-jobs__card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  cursor: pointer;
  box-sizing: border-box;
}
/* Cuerpo crece; pie (hechos + Aplicar) siempre al fondo del card */
.ecija-jobs__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.ecija-jobs__footer {
  flex: 0 0 auto;
  margin-top: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  padding-top: 0.75rem;
}
.ecija-jobs__title {
  margin: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  line-height: 1.25;
  /* 2 líneas fijas → títulos de 1 línea no suben el CTA de la fila */
  min-height: calc(1.25em * 2);
  height: calc(1.25em * 2);
}
.ecija-jobs__line {
  width: 100%;
  flex: 0 0 auto;
}
.ecija-jobs__abstract {
  flex: 1 1 auto;
}
.ecija-jobs__abstract p {
  margin: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  line-height: 1.45;
  /* 3 líneas fijas en todas las cards de la fila */
  min-height: calc(1.45em * 3);
  height: calc(1.45em * 3);
}
.ecija-jobs__facts {
  list-style: none;
  margin: 0;
  padding: 0;
  /* Siempre 2 hechos (ciudad + fecha) → altura de pie estable */
  min-height: calc(1.5rem * 2 + 0.5rem);
}
.ecija-jobs__fact {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 1.5rem;
  line-height: 1.35;
}
.ecija-jobs__factIcon {
  display: inline-flex;
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  align-items: center;
  justify-content: center;
}
.ecija-jobs__factIcon svg {
  width: 1.25rem;
  height: 1.25rem;
}
.ecija-jobs__factText {
  font-variant-numeric: tabular-nums;
}
.ecija-jobs__cta {
  margin-top: 0 !important;
  min-height: 1.75rem;
}

/* Ficha individual */
.ecija-job__about--noMedia {
  grid-template-columns: 1fr !important;
}
.ecija-job__about--noMedia .ecija-job__text {
  max-width: 42rem;
}
.ecija-job__prose {
  max-width: 42rem;
}
.ecija-job__prose h3 {
  font-family: var(--font-1, Manrope, sans-serif);
  font-size: 1.05rem;
  font-weight: 700;
  margin: 1.5rem 0 0.6rem;
  letter-spacing: 0.01em;
  color: var(--color-text-1, #181818);
}
.ecija-job__prose h3:first-child {
  margin-top: 0;
}
.ecija-job__prose p {
  margin: 0 0 0.85rem;
  line-height: 1.6;
}
.ecija-job__prose ul {
  margin: 0.25rem 0 1.1rem;
  padding: 0 0 0 1.2rem;
  line-height: 1.55;
}
.ecija-job__prose li {
  margin: 0.35rem 0;
  padding-left: 0.15rem;
}
.ecija-job__prose li::marker {
  color: var(--color-ui-1, #c8102e);
}
.ecija-job__prose strong {
  font-weight: 650;
}
/* CTA de aplicar: más aire bajo el cuerpo en ficha sin imagen */
.ecija-job__about--noMedia .styles-module--ctaWrp--d3b54 {
  margin-top: 1.75rem;
}
.ecija-job__about--noMedia .styles-module--ctaWrpMobile--64b0f {
  margin-top: 1rem;
}

/* ————————————————————————————————————————————————————————————————
   Programas de prácticas (trabaja-con-nosotros): columnas alineadas
   Subtítulo / título / texto / CTA al mismo nivel entre cards.
   ———————————————————————————————————————————————————————————————— */
.ecija-programs__grid {
  align-items: stretch;
}
.ecija-programs__col {
  display: flex;
  height: 100%;
  min-height: 100%;
  align-self: stretch;
}
.ecija-programs__card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}
.ecija-programs__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.ecija-programs__subtitle {
  /* 2 líneas fijas (p. ej. «Máster…» vs «Alumnos de Grado») */
  min-height: calc(1.35em * 2);
  line-height: 1.35;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.ecija-programs__titleLink {
  display: block;
  color: inherit;
  text-decoration: none;
}
.ecija-programs__title {
  margin: 0;
  /* 2 líneas fijas para que el detalle arranque a la misma altura */
  min-height: calc(1.25em * 2 + 0.2rem + 2px);
  height: calc(1.25em * 2 + 0.2rem + 2px);
  line-height: 1.25;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  box-sizing: border-box;
}
.ecija-programs__detail {
  flex: 1 1 auto;
}
.ecija-programs__detail p {
  margin: 0;
  line-height: 1.5;
  /* Misma altura de bloque de texto entre columnas */
  min-height: calc(1.5em * 5);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  overflow: hidden;
}
.ecija-programs__footer {
  flex: 0 0 auto;
  margin-top: auto;
  padding-top: 0.75rem;
  min-height: 2rem;
  display: flex;
  align-items: center;
}
.ecija-programs__cta {
  margin-top: 0 !important;
}
.ecija-programs__ctaSpacer {
  display: block;
  height: 1.75rem;
  width: 1px;
  visibility: hidden;
}
