/*
 Theme Name:   LA Barba IMSA Gestión
 Theme URI:    https://imsa.es
 Description:  Tema personalizado para IMSA Gestión. Especialistas en activos industriales y operaciones que requieren criterio. Estética industrial con tema claro, tipografía Space Grotesk.
 Author:       La Barba del SEO
 Author URI:   https://labarbadelseo.com
 Version:      2.0.0
 License:      GNU General Public License v2 or later
 Text Domain:  imsa-gestion
*/

@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap');

/* =============================================
   TOKENS — TEMA CLARO (dominante)
   Oscuro sólo en secciones --ink y hero
   ============================================= */
:root {
  /* Fondos claros */
  --bg:         #f5f5f5;   /* blanco cálido — fondo principal */
  --bg-2:       #ffffff;   /* gris cálido suave — secciones alternadas */
  --bg-3:       #ffffff;   /* gris medio */
  --bg-4:       #f5f5f5;
  --bg-5:       #f9f9f9;

  /* Fondos oscuros (para secciones --ink y overlays) */
  --ink:        #0F0F0F;
  --ink-2:      #161616;
  --ink-3:      #1E1E1E;
  --ink-muted: rgba(15,15,15,.5);

  /* Textos claros (para secciones --ink) */
  --ink-text:   #F0EDE8;
  --ink-text-2: #AAAAAA;
  --ink-border: rgba(255,255,255,0.08);

  /* Textos sobre fondos claros */
  --text:       #121212;
  --text-2:     #121212;
  --muted:      #999999;

  /* Bordes sobre fondo claro */
  --border:     rgba(0,0,0,0.08);
  --border-2:   rgba(0,0,0,0.16);
  --border-light:   rgba(255,255,255,0.16);
  --border-light-2:   rgba(255,255,255,0.16);

  /* Acento dorado — se mantiene en ambos temas */
  --accent:       #0D5689;
  --accent-hover: #2c4e65;
  --accent-light: #85afc8;
  --accent-dim:   rgba(13,86,137,0.12);
  --accent-dark-dim:   rgba(13,86,137,0.3);

  /* Sistema */
  /* --font:       'Space Grotesk', system-ui, sans-serif; */
  --font:       'Bricolage Grotesque', system-ui, sans-serif;
  --font-head:  "Bricolage Grotesque", Times, Baskerville, Georgia, serif;
  --font-head-weigth: 300;
  --max-w:      1180px;
  --pad-x:      clamp(1.25rem, 5vw, 4rem);
  --section-y:  clamp(4rem, 10vw, 8rem);
  --header-h:   72px;
  --radius:     8px;
  --radius-lg:  15px;
  --transition: 0.25s ease;
  --font-size: 18px;
  --font-size-sm: 17px;
}

/* =============================================
   ADMIN BAR — icono empresa (preservado)
   ============================================= */

#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before {
  background-image: url('images/barbadelseo.png');
  content: '';
  width: 19px;
  height: 24px;
  top: 0;
  background-color: #fff;
  display: block;
  background-size: cover;
}
@media (max-width: 600px) {
  #wpadminbar {
    position: fixed;
  }
}


/* =============================================
   RESET & BASE
   ============================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font);
  background-color: var(--bg);
  color: var(--text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  padding-bottom: 56px;
  font-size: var(--font-size);
}
@media (min-width: 900px) { body { padding-bottom: 0; } }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--accent); }
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-head);
  font-weight: var(--font-head-weigth);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--text);
  margin-bottom: 1.5rem;
}
p { color: var(--text-2); line-height: 1.7; margin-bottom: 1.25rem;}
ul,ol{margin-bottom: 1.25rem;}

/* Body wrap: espacio para el header fijo */
.imsa-body-wrap { padding-top: var(--header-h); }
.home .imsa-body-wrap { padding-top: 0; } /* hero cubre el header en home */


/* =============================================
   HEADER
   Siempre con botón "Menú" a la derecha,
   igual en móvil que en escritorio (estilo Daar)
   ============================================= */
.imsa-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  height: var(--header-h);
  transition: background-color 0.35s ease, backdrop-filter 0.35s ease, border-color 0.35s ease;
  background-color: var(--ink);
  backdrop-filter: blur(14px);
}

body.customize-support .imsa-header{top: 32px;}
@media (max-width: 782px) { body.customize-support .imsa-header{top: 46px;} .wp-block-paragraph {max-width: 100% !important; min-width: 100% !important;}}

/* En home: el header arranca transparente sobre el hero */
.home .imsa-header {
  background-color: transparent;
  border-bottom-color: transparent;
}
.home .imsa-header .imsa-header__logo-text,
.home .imsa-header .imsa-menu-toggle {
  color: #fff;
}
.home .imsa-header .imsa-menu-toggle { border-color: rgba(255,255,255,0.35); }

/* Al hacer scroll en home: aparece el fondo */
.home .imsa-header.is-scrolled {
  background-color: var(--ink);
  backdrop-filter: blur(14px);
}
.home .imsa-header.is-scrolled .imsa-menu-toggle { border-color: var(--border-light-2); }

.imsa-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  max-width: var(--max-w);
  margin-inline: auto;
  max-width: 90vw;
  /* padding-inline: var(--pad-x); */
}

@media (max-width: 1180px) {
  .imsa-header__inner {
    /* padding-inline: var(--pad-x); */
  }
}

/* Logo */
.imsa-header__logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  flex-shrink: 0;
}
.imsa-header__logo-text {
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: #FFF;
  font-family: var(--font);
  transition: color var(--transition);
}
.imsa-header__logo img { height: 24px; width: auto; }

/* Botón MENÚ — siempre visible, desktop y mobile */
.imsa-menu-toggle {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  height: 40px;
  padding: 0 1rem;
  background: transparent;
  border: 1px solid var(--border-light-2);
  border-radius: var(--radius);
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #FFF;
  transition: border-color var(--transition), color var(--transition), background-color var(--transition);
  flex-shrink: 0;
}
.imsa-menu-toggle:hover {
  border-color: var(--border-light);
  background-color: rgba(255,255,255,0.03);
}
.imsa-menu-toggle__bars {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 16px;
}
.imsa-menu-toggle__bars span {
  display: block;
  height: 1.5px;
  background-color: currentColor;
  border-radius: 1px;
  transition: transform 0.28s ease, opacity 0.28s ease, width 0.28s ease;
  width: 100%;
}
.imsa-menu-toggle.is-open .imsa-menu-toggle__bars span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.imsa-menu-toggle.is-open .imsa-menu-toggle__bars span:nth-child(2) { opacity: 0; width: 0; }
.imsa-menu-toggle.is-open .imsa-menu-toggle__bars span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
.imsa-menu-toggle.is-open { border-color: transparent; }

/* Texto "Menú" → "Cerrar" cuando está abierto */
.imsa-menu-toggle__label-open  { display: inline; }
.imsa-menu-toggle__label-close { display: none;   }
.imsa-menu-toggle.is-open .imsa-menu-toggle__label-open  { display: none;   }
.imsa-menu-toggle.is-open .imsa-menu-toggle__label-close { display: inline; }


/* =============================================
   MENÚ OVERLAY — pantalla completa, entra desde arriba
   ============================================= */
.imsa-menu-overlay {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 999;
  background-color: var(--ink);
  display: flex;
  padding: calc(var(--header-h) + 3rem) var(--pad-x) 3rem;
  transform: translateY(-100%);
  transition: transform 0.55s cubic-bezier(0.4, 0, 0.15, 1);
  overflow-y: auto;
}
.imsa-menu-overlay.is-open { transform: translateY(0); }

/* Backdrop: ya no hace falta para full-page, se oculta */
.imsa-menu-backdrop { display: none; }

/* Contenedor interior: alinea al max-width */
.imsa-menu-overlay .imsa-menu-overlay__inner {
  max-width: var(--max-w);
  width: 100%;
  margin-inline: auto;
  display: flex;
  gap: 2.5rem;
}

/* Links del menú — grandes, tipografía display */
.imsa-overlay-nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.imsa-overlay-nav-list li a {
  display: block;
  font-size: 2rem;
  font-weight: 700;
  color: var(--ink-text-2);
  padding: 0.65em 0;
  letter-spacing: -0.03em;
  font-family: var(--font);
  line-height: 1.1;
  transition: color var(--transition), padding-left var(--transition);
}
.imsa-overlay-nav-list li a:hover,
.imsa-overlay-nav-list li.current-menu-item a {
  color: var(--ink-text);
  padding-left: 1.5rem;
  position: relative;
}

.imsa-overlay-nav-list li a:hover:before,
.imsa-overlay-nav-list li.current-menu-item a:before {
  content: '';
  display: inline-block;
  width: 18px;
  height: 18px;
  -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>");
  mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: center;
  mask-position: center;
  background-color: var(--ink-text);
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

/* Fila inferior: CTA + contacto lado a lado */
.imsa-overlay-bottom {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  max-width: var(--max-w);
  width: auto;
  margin-inline: auto;
  align-items: end;
}

/* CTA en el menú overlay */
.imsa-overlay-cta {
  display: inline-flex;
  align-items: center;
  background-color: var(--accent);
  color: #FFF;
  font-size: var(--font-size);
  font-weight: 600;
  padding: 1.75rem 1.75rem 1rem;
  border-radius: var(--radius);
  font-family: var(--font);
  letter-spacing: 0.03em;
  width: fit-content;
  transition: background-color var(--transition);
  margin-top: 0;
  position: relative;
}
.imsa-overlay-cta:before {position: absolute; left: 1.75rem; top: .75rem; transition: all 500ms ease-in-out; content: ''; display: inline-block; width: 15px; height: 15px; -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; background-color: #FFF;}
.imsa-overlay-cta:hover { background-color: var(--accent-hover); color: #FFF; }
.imsa-overlay-cta:hover:before {left: 50%; transform: translateX(-50%) rotate(45deg);}

/* Info de contacto en overlay */
.imsa-overlay-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.5rem;
  align-items: center;
  text-align: right;
  justify-content: end;
}
.imsa-overlay-contact-label {
  width: 100%;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent-light);
  margin-bottom: 0.25rem;
  display: block;
}
.imsa-overlay-contact a {
  font-size: 0.875rem;
  color: var(--ink-text-2);
  transition: color var(--transition);
}
.imsa-overlay-contact a:hover { color: var(--ink-text); }

@media (max-width: 640px) {

  .imsa-menu-overlay .imsa-menu-overlay__inner {
    flex-wrap: wrap;
  }

  .imsa-overlay-nav-list {
    flex-basis: 100%;
    text-align: center;
  }

  .imsa-overlay-bottom {
    justify-content: center;
    align-items: center;
  }

  .imsa-overlay-contact {
    text-align: center;
    justify-content: center;
  }

  .imsa-overlay-nav-list li a:hover::before, .imsa-overlay-nav-list li.current-menu-item a::before {
    position: relative;
    left: -10px;
    top: 0;
    transform: rotate(45deg);
  }

}


/* =============================================
   BARRA DE ACCIÓN MÓVIL (Llamar / WhatsApp / Email)
   ============================================= */
.imsa-action-bar {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 997;
  display: flex;
  background-color: var(--ink);
  border-top: 1px solid var(--border-light);
  height: 56px;
}
@media (min-width: 900px) { .imsa-action-bar { display: none; } }
.imsa-action-bar__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-text);
  font-family: var(--font);
  border-right: 1px solid var(--border-light);
  transition: background-color var(--transition), color var(--transition);
}
.imsa-action-bar__item:last-child { border-right: none; }
.imsa-action-bar__item:hover, .imsa-action-bar__item:active {
  background-color: var(--ink-3);
  color: var(--ink-text-2);
}
.imsa-action-bar__item .bar-icon { font-size: 1rem; line-height: 1; }


/* =============================================
   FOOTER — Se mantiene oscuro (contraste con la página clara)
   ============================================= */
.imsa-footer {
  background-color: var(--ink);
  font-family: var(--font);
}
.imsa-footer__container { max-width: var(--max-w); margin-inline: auto; padding-inline: var(--pad-x); }
.imsa-footer__top {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  padding-block: 3.5rem;
}
@media (min-width: 640px) { .imsa-footer__top { grid-template-columns: 2fr 1fr 1fr; gap: 3rem; } }
.imsa-footer__logo {
  font-size: 1.1rem; font-weight: 700; letter-spacing: -0.025em;
  color: var(--ink-text); display: inline-block; margin-bottom: 0.75rem;
}
.imsa-footer__logo img {
  height: 24px;
  width: auto;
}
.imsa-footer__tagline { font-size: 0.875rem; color: var(--ink-text-2); max-width: 30ch; line-height: 1.6; }
.imsa-footer__nav-label, .imsa-footer__contact-label {
  font-size: 0.68rem; font-weight: 600; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--accent-light); margin-bottom: 1rem; display: block;
}
.imsa-footer-nav-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.imsa-footer-nav-list a { font-size: 0.875rem; color: var(--ink-text-2); transition: color var(--transition); }
.imsa-footer-nav-list a:hover { color: var(--ink-text); }
.imsa-footer__contact { display: flex; flex-direction: column; gap: 0.5rem; }
.imsa-footer__contact-link { font-size: 0.875rem; color: var(--ink-text-2); transition: color var(--transition); display: inline-block; }
.imsa-footer__contact-link:hover { color: var(--accent); }
.imsa-footer__bottom {
  display: flex; flex-direction: column; gap: 0.75rem;
  padding-block: 1.5rem; align-items: flex-start;
}
@media (min-width: 640px) {
  .imsa-footer__bottom { flex-direction: row; justify-content: space-between; align-items: center; }
}
.imsa-footer__copy { font-size: 0.775rem; color: var(--ink-text-2); margin-bottom: 0; }
.imsa-footer__copy a { color: var(--ink-text-2); }
.imsa-footer__copy a:hover { color: var(--accent); }
.imsa-footer-legal-list { list-style: none; padding: 0; margin: 0; display: flex; gap: 1.25rem; flex-wrap: wrap; }
.imsa-footer-legal-list a { font-size: 0.775rem; color: var(--ink-text-2); transition: color var(--transition); }
.imsa-footer-legal-list a:hover { color: var(--ink-text); }

.imsa-footer__kit > div{background-color: var(--ink-text-2); -webkit-mask-size: contain; mask-size: contain; mask-repeat: no-repeat;}
.imsa-footer__kit > div + div{ margin-top: 20px; }
.imsa-footer__kit .imsa-footer__kit-recuperacion{width: 231px; height: 48px; -webkit-mask-image: url(images/plan-recuperacion.png); mask-image: url(images/plan-recuperacion.png); }
.imsa-footer__kit .imsa-footer__kit-union{width: 243px; height: 60px; -webkit-mask-image: url(images/financiado-union-europea.png); mask-image: url(images/financiado-union-europea.png); }


/* =============================================
   SECCIONES GENÉRICAS
   ============================================= */
.imsa-section { padding-block: var(--section-y); background-color: var(--bg);}

/* Fondo claro principal */
.imsa-section--light { background-color: var(--bg); }

/* Fondo claro alternado (gris cálido) */
.imsa-section--mid   { background-color: var(--bg-2); }

/* Compatible con nombres anteriores */
.imsa-section--dark  { background-color: var(--bg-4); }
.imsa-section--card  { background-color: var(--bg-2); }

/* Juntar bloques iguales */
.imsa-section:not(.imsa-section--mid):not(.imsa-section--dark) + .imsa-section:not(.imsa-section--mid):not(.imsa-section--dark), .imsa-section--dark + .imsa-section--dark, .imsa-section--mid:not(.imsa-page-header) + .imsa-section--mid { padding-block: 0 var(--section-y); }

.wp-block-group.imsa-section { padding-left: var(--pad-x); padding-right: var(--pad-x); }

/* Eyebrow / label */
p.imsa-label, .imsa-label {
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--accent) !important;
  margin-bottom: 1rem !important;
  display: block;
}

/* Cabecera de página interior */
.imsa-page-header {
  background-color: var(--bg);
  padding-top: calc(var(--header-h) + 2rem); /* Espacio para el menú */
  padding-bottom: 3rem; /* Padding por defecto si NO hay imagen */
  padding-inline: var(--pad-x);
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
}

.imsa-page-header:has(.imsa-header-parallax-img) {
  padding-bottom: 0;
  min-height: 100svh;
}

.imsa-page-header .wp-block-group__inner-container {
  text-align: left;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.imsa-page-header .wp-block-heading { font-size: clamp(2rem, 5vw, 5rem) !important;}
.imsa-page-header p:not(.imsa-label) { font-size: 1.5rem !important;}

.imsa-page-header .wp-block-image.imsa-header-parallax-img {
  /* Empuja la imagen abajo */
  width: 100vw;
  margin: auto calc(50% - 50vw) 0 !important;
  height: clamp(400px, 55vh, 65vh);
  overflow: hidden;
  position: relative;
}

.imsa-page-header .wp-block-image.imsa-header-parallax-img img {
  width: 100% !important;
  height: 140% !important;
  object-fit: cover !important;
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translateY(calc((100vh - 100%) * 0.12));
  will-change: transform;
}

.imsa-page-header ~ .wp-block-group,
.imsa-page-header ~ section,
.imsa-page-header ~ div {
  position: relative;
  z-index: 2;
  background-color: var(--bg);
}

/* Corregir tema .wp-container-core-group-is-layout-fb0db77f que centra los contenidos */
.imsa-page-header > .wp-block-group__inner-container {max-width: var(--max-w); margin-inline: auto; width: 100%;}
.imsa-page-header > .wp-block-group__inner-container > :is(.wp-block-heading,p,ul,li,ol) {margin-left: 0 !important; margin-right: 0 !important;}


/* =============================================
   HERO (wp:cover) — Siempre oscuro (tiene foto)
   ============================================= */
.imsa-hero.wp-block-cover {
  min-height: 100svh !important;
  align-items: flex-end !important;
  padding-block: clamp(3rem, 8vw, 6rem) !important;
  padding-inline: var(--pad-x) !important;
  clip-path: inset(0 0 0 0);
  overflow: hidden;
}
.imsa-hero.wp-block-cover .wp-block-cover__image-background {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
  will-change: transform;
  transform: translateZ(0);
}
.imsa-hero .wp-block-cover__inner-container {
  max-width: var(--max-w);
  margin-inline: auto;
  width: 100%;
  position: relative;
  z-index: 2;
}
.imsa-hero .wp-block-cover__background {
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.90) 0%,
    rgba(0,0,0,0.50) 50%,
    rgba(0,0,0,0.10) 100%
  ) !important;
  opacity: 1 !important;
  z-index: 1;
}
.imsa-hero .wp-block-heading {
  font-size: clamp(2.8rem, 8vw, 6rem) !important;
  line-height: 0.95 !important;
  letter-spacing: -0.03em !important;
  max-width: 25ch;
  color: #fff !important;
}
.imsa-hero p.imsa-label { color: #FFF !important; }
.imsa-hero .imsa-hero-sub {
  font-size: 21px !important;
  color: rgba(255,255,255,0.65) !important;
  max-width: 50ch;
  margin-top: 1.25rem !important;
}
.imsa-hero .wp-block-button.is-style-outline .wp-block-button__link {
  color: #FFF !important;
  border-color: #FFF !important;
  background: transparent !important;
}
.imsa-hero .wp-block-button.is-style-outline .wp-block-button__link:before {
  background-color: #FFF !important;
}
.imsa-hero .wp-block-button.is-style-outline .wp-block-button__link:hover {
  border-color: var(--accent-hover) !important;
  color: #FFF !important;
  background-color: var(--accent-hover) !important;
}

@media (max-width: 640px) {
  .imsa-hero.wp-block-cover {
    align-items: center !important;
  }
}
/* =============================================
   HERO 2 (wp:cover)
   ============================================= */
.imsa-hero.hero2 .imsa-hero-sub {
  max-width: 88vw;
font-weight: 400;
font-size: 24px !important;
letter-spacing: 0;
line-height: 1.8;
color: #FFFFFF !important;

}
.imsa-hero.hero2 .wp-block-cover__background {
  background: linear-gradient(0deg, #0D5689 0%, rgba(0, 0, 0, 0.1) 75%) !important;
}

.imsa-hero.hero2 .wp-block-cover__inner-container {
  margin-inline: auto !important;
}


/*Párrafo decorado*/
.imsa-parrafodec .wp-block-group__inner-container{max-width: var(--max-w); margin-inline: auto;}
.imsa-parrafodec .wp-block-columns > .wp-block-column{padding: 0 !important;}
.imsa-parrafodec .wp-block-paragraph {max-width: unset; min-width: unset;}
@media (max-width: 768px) {
    .imsa-parrafodec .wp-block-columns{gap: 0;}
    .imsa-parrafodec .wp-block-columns > .wp-block-column:nth-child(2){padding-right: 0 !important;}
  .imsa-hero.hero2 .imsa-hero-sub{line-height: 1.2 !important;}
    
}
/*Párrafo decorado*/


/* Contenedor de las tabs */
.content-tabs__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 6px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Tab */
.content-tabs__tab {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  padding: 10px 24px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 4px 12px rgb(26 29 35 / 8%);
  color: #2d2d2d;
  font: inherit;
  font-size: 14px;
  line-height: 18px;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  transition:
    background-color 300ms ease,
    color 300ms ease,
    border-color 300ms ease,
    box-shadow 300ms ease,
    transform 300ms ease;
}

.content-tabs__tab:hover {
  border-color: rgb(14 94 138 / 28%);
  box-shadow: 0 6px 16px rgb(26 29 35 / 12%);
  transform: translateY(-1px);
}

/* Tab activa */
.content-tabs__tab:is(.is-active, [aria-selected="true"]) {
  border-color: #0e5e8a;
  background: #0e5e8a;
  box-shadow: 0 6px 16px rgb(14 94 138 / 20%);
  color: #fff;
}

.content-tabs__tab:focus-visible {
  outline: 3px solid rgb(14 94 138 / 30%);
  outline-offset: 3px;
}

@media (max-width: 600px) {
  .content-tabs__list {
    grid-template-columns: 1fr;
  }

  .content-tabs__tab {
    min-height: 48px;
    padding-inline: 18px;
  }
}

/* =============================================
   GUTENBERG TIPOGRAFÍA (tema claro)
   ============================================= */
.wp-block-heading {
  color: var(--text) !important;
  font-family: var(--font-head) !important;
  font-weight: var(--font-head-weigth) !important;
  letter-spacing: -0.025em;
}

.wp-block-heading:is(h2) {font-size: 3rem;}
.wp-block-heading:is(h3) {font-size: 2rem; color: var(--ink-muted) !important;}


.wp-block-paragraph { color: var(--text-2); font-family: var(--font) !important; max-width: 50%; min-width: 500px;}
.wp-block-list { color: var(--text-2); font-family: var(--font); padding-left: 0; list-style: none; }
.wp-block-list li {
  padding: 0.75rem 0 0.75rem 1.5rem;
  position: relative;
  font-size: 0.9375rem;
}
.wp-block-list li::before { content: '—'; color: var(--accent); position: absolute; left: 0; }
.wp-block-separator { border: none !important; border-top: 1px solid var(--border) !important; margin: 0 !important; opacity: 1 !important; }
.wp-block-quote { padding: 0.5rem 0 0.5rem 1.75rem !important; margin: 0 !important; }
.wp-block-quote p { font-size: clamp(1.05rem, 2.5vw, 1.4rem); font-weight: 500; color: var(--text) !important; font-style: normal; line-height: 1.4; }
.wp-block-quote cite { font-size: 0.7rem; color: var(--muted) !important; letter-spacing: 0.12em; text-transform: uppercase; font-style: normal; }

/* Botones */
.wp-block-button__link { font-family: var(--font) !important; font-size: var(--font-size) !important; font-weight: 500 !important; letter-spacing: 0.04em !important; border-radius: var(--radius) !important; padding: 1.65rem 1.75rem !important; transition: all var(--transition) !important; line-height: 1 !important; position: relative;}
.wp-block-button__link:before {position: absolute; top: .5rem; left: .3rem; transition: all 500ms ease-in-out; content: ''; display: inline-block; width: 13px; height: 13px; -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; background-color: #FFF;}
.wp-block-button.is-style-fill .wp-block-button__link,
.wp-block-button:not([class*="is-style"]) .wp-block-button__link { background-color: var(--accent) !important; color: #FFF !important; border: none !important; }
.wp-block-button.is-style-fill .wp-block-button__link:hover,
.wp-block-button:not([class*="is-style"]) .wp-block-button__link:hover { background-color: var(--accent-hover) !important; }
.wp-block-button.is-style-outline .wp-block-button__link { background-color: #FFF !important; color: var(--ink) !important; border: 1px solid #FFF !important; }
.wp-block-button.is-style-outline .wp-block-button__link:before { background-color: var(--ink) !important;}
.wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--accent-hover) !important; color: #FFF !important; background-color: var(--accent-hover) !important; }
.wp-block-button.is-style-outline .wp-block-button__link:hover:before { background-color: #FFF !important; }
.wp-block-button__link:hover:before {left: 50%; transform: translateX(-50%) rotate(45deg);}
.wp-block-buttons { gap: 0.75rem !important; }

.imsa-section .wp-block-button.is-style-outline .wp-block-button__link {box-shadow: 0 0 10px var(--accent-dim);}


/* =============================================
   STATS STRIP (sobre fondo claro)
   ============================================= */
.imsa-stats.wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  flex-wrap: unset !important;
  gap: 20px !important;
  margin-top: 0 !important;
  max-width: var(--max-w);
  margin-inline: auto;
}
@media (min-width: 640px) { .imsa-stats.wp-block-columns { grid-template-columns: repeat(4, 1fr) !important; } }
.imsa-stats.wp-block-columns > .wp-block-column {
  background-color: var(--accent);
  padding: 2rem 1.5rem !important;
  flex: unset !important;
  display: flex; flex-direction: column; gap: 0.35rem;
  aspect-ratio: 1 / 1;
  border-radius: var(--radius);
  justify-content: flex-end;
  position: relative;
}
.imsa-stats.wp-block-columns > .wp-block-column:last-child { border-right: none; }
.imsa-stats.wp-block-columns > .wp-block-column:before {
  position: absolute;
  top: 2rem;
  left: 1.5rem;
  content: '';
  display: inline-block;
  width: 20px;
  height: 20px;
  -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>");
  mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: center;
  mask-position: center;
  background-color: #FFF;
  rotate: 45deg;
}
.imsa-stats .wp-block-heading { font-size: clamp(1.75rem, 4vw, 2.5rem) !important; color: #FFF !important; letter-spacing: -0.03em; margin-bottom: 0; }
.imsa-stats p { font-size: 0.8rem !important; color: #FFF !important; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 0;}
.imsa-stats .wp-block-heading + p, .imsa-stats p + p { margin-top: 0.25rem; }


/* =============================================
   TARJETAS GRID (sobre fondo claro)
   ============================================= */
.imsa-cards.wp-block-columns {
  display: grid !important;
  grid-template-columns: 1fr !important;
  flex-wrap: unset !important;
  gap: 0 !important;
  background-color: var(--border);
  margin: 0 auto!important;
}
@media (min-width: 540px) { .imsa-cards.wp-block-columns { grid-template-columns: repeat(2, 1fr) !important; }  }
@media (min-width: 960px) { .imsa-cards.wp-block-columns { grid-template-columns: repeat(4, 1fr) !important; } }
.imsa-cards.wp-block-columns > .wp-block-column {
  background-color: var(--bg);
  padding: 2rem 1.75rem !important;
  flex: unset !important;
  display: flex; flex-direction: column; gap: 0.85rem;
  transition: background-color var(--transition);
}
.imsa-cards.wp-block-columns > .wp-block-column:hover { background-color: var(--bg-2); }
p.imsa-num { font-size: 1.68rem !important; font-weight: 600 !important; letter-spacing: 0em !important; text-transform: uppercase !important; color: var(--accent) !important; margin: 0 !important; text-align: right; position: relative;  }
p.imsa-num:before{ position: absolute; left: 0;  content: ''; display: inline-block; width: 20px; height: 20px; -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; background-color: var(--accent); top: 13px; }
p.imsa-num.sm { font-size: var(--font-size) !important; text-align: left; }
p.imsa-num.md { text-align: left; }
p.imsa-num.sm:before, p.imsa-num.md:before { display: none; }
.imsa-cards.wp-block-columns > .wp-block-column:nth-child(2n) {background: var(--bg-5) !important;}
.imsa-cards .wp-block-heading { font-size: 1.3rem !important; font-weight: 600 !important; margin: 0 !important; color: var(--text) !important; }
.imsa-cards .wp-block-paragraph:not(.imsa-num) { font-size: 0.875rem !important; color: var(--text-2) !important; line-height: 1.65 !important; flex: 1; }


/* ================================================
   PASOS DEL PROCESO / BLOQUES EXPLICATIVOS 3 COLS
   ============================================= */
.imsa-steps *{max-width: unset !important; min-width: unset !important;}
.imsa-steps.wp-block-columns {
  display: grid !important;
  grid-template-columns: 1fr !important;
  flex-wrap: unset !important;
  gap: 10px !important;
  margin-top: 2.5rem !important;
}
@media (min-width: 640px) { .imsa-steps.wp-block-columns { grid-template-columns: repeat(2, 1fr) !important; } }
@media (min-width: 900px) { .imsa-steps.wp-block-columns { grid-template-columns: repeat(5, 1fr) !important; } }
.imsa-steps.wp-block-columns > .wp-block-column {
  padding: 2rem 1.5rem !important;
  flex: unset !important;
  display: flex; flex-direction: column; gap: 0.75rem;
  background-color: var(--border);
  border-radius: var(--radius-lg);
}
/* .imsa-steps.wp-block-columns > .wp-block-column::before {
  content: ''; display: block; width: 2rem; height: 2px;
  background-color: var(--accent); margin-bottom: 0.25rem;
} */
.imsa-steps .wp-block-heading { font-size: 1.3rem !important; font-weight: 600 !important; color: var(--text) !important;}
.imsa-steps .wp-block-paragraph:not(.imsa-num) { font-size: 0.85rem !important; line-height: 1.65 !important; }

/*Pasos alternativos*/
.imsa-steps.wp-block-columns.alt{}
.imsa-steps.wp-block-columns.alt{}
.imsa-steps.wp-block-columns.alt{}
.imsa-steps.wp-block-columns.alt > .wp-block-column{background-color: #0D5689;    padding: 2rem 1.5rem .25rem !important;}
.imsa-steps.alt .wp-block-heading{color: #FFF !important;}
.imsa-steps.alt .wp-block-paragraph{color: #FFF !important;}
.imsa-steps.alt p.imsa-num::before {
  background-color: #fff;

  -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect width='20' height='20'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect width='20' height='20'/%3E%3C/svg%3E");}
/*Pasos alternativos*/

/*3 Pasos*/
.imsa-steps.wp-block-columns.steps3{grid-template-columns: repeat(3, 1fr) !important;}

@media (max-width: 901px){.imsa-steps.wp-block-columns.steps3{grid-template-columns: 1fr !important}}
/*3 Pasos*/

.imsa-section-3cols .wp-block-columns .wp-block-heading {color: var(--accent) !important; margin-bottom: 0;}
.imsa-section-3cols .wp-block-columns .wp-block-paragraph {margin-bottom: 0;}

/* =============================================
   PERFIL — Alejandro
   ============================================= */
.imsa-profile.wp-block-columns { gap: clamp(2.5rem, 6vw, 5rem) !important; align-items: flex-start !important; }
.imsa-profile-img.wp-block-column { flex-basis: 38% !important; }
.imsa-profile-img .wp-block-image { aspect-ratio: 3/4; overflow: hidden; }
.imsa-profile-img .wp-block-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(15%); transition: filter 0.4s ease; }
.imsa-profile-img .wp-block-image img:hover { filter: grayscale(0%); }
.imsa-diferencial-list.wp-block-list li { padding: 0.9rem 0 0.9rem 1.75rem; font-size: var(--font-size-sm) !important;}
.imsa-diferencial-list.wp-block-list li::before { content: '→'; color: var(--accent); }


/* =============================================
   INSIGHTS / VISIÓN DE MERCADO
   ============================================= */
.imsa-insights.wp-block-columns {
  display: grid !important;
  grid-template-columns: 1fr !important;
  flex-wrap: unset !important;
  gap: 0 !important;
  margin-top: 2.5rem !important;
}
@media (min-width: 640px) { .imsa-insights.wp-block-columns { grid-template-columns: repeat(3, 1fr) !important; } }
.imsa-insights.wp-block-columns > .wp-block-column {
  background-color: var(--bg-2);
  padding: 2.5rem 2rem !important;
  flex: unset !important;
  display: flex; flex-direction: column; gap: 0.9rem;
}
.imsa-insights .wp-block-heading { font-size: 1.3rem !important; font-weight: 600 !important; margin: 0 !important; color: var(--text) !important; text-align:left;}
.imsa-insights .wp-block-paragraph:not(.imsa-num) { font-size: 0.875rem !important; line-height: 1.7 !important; }


/* =============================================
   CASOS REALES
   ============================================= */
.imsa-case-wrap { border: 1px solid var(--border); margin-bottom: 1px; overflow: hidden; }
.imsa-case.wp-block-columns { gap: 0 !important; align-items: stretch !important; margin: 0 !important; flex-wrap: nowrap !important; }
@media (max-width: 599px) { .imsa-case.wp-block-columns { flex-wrap: wrap !important; } }
.imsa-case-meta.wp-block-column { background-color: var(--bg-2) !important; padding: 2rem 1.75rem !important; border-right: 1px solid var(--border); flex-basis: 32% !important; flex-shrink: 0 !important; }
.imsa-case-body.wp-block-column { background-color: var(--bg); padding: 2rem 1.75rem !important; }


/* =============================================
   CTA CENTRADO
   ============================================= */
.imsa-cta { text-align: center; }
.imsa-cta .wp-block-heading { font-size: clamp(1.8rem, 5vw, 3.25rem) !important; max-width: 22ch; margin-inline: auto; letter-spacing: -0.03em; }
.imsa-cta .wp-block-paragraph { max-width: 50ch; margin-inline: auto; margin-top: 1rem !important; }
.imsa-cta .wp-block-buttons { justify-content: center !important; margin-top: 2rem !important; }


/* =============================================
   HIGHLIGHT / QUOTE
   ============================================= */
.imsa-highlight {
  background-color: var(--accent-dim);
  padding: 2.5rem 2rem !important;
  border-radius: var(--radius-lg);
}
.imsa-highlight p { font-size: clamp(1.05rem, 2.5vw, 1.4rem) !important; font-weight: 500 !important; color: var(--text) !important; line-height: 1.4 !important; font-style: normal; }
.imsa-highlight cite { font-size: 0.7rem !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; color: var(--text-2) !important; }

/* Split 2 cols */
.imsa-split.wp-block-columns { gap: clamp(2rem, 6vw, 5rem) !important; align-items: flex-start !important; }
.imsa-split.wp-block-columns > .wp-block-column > *:last-child{ margin-bottom: 0; }

/* Split 3 cols */
.imsa-split.col3 {align-items: flex-start !important;}
.imsa-split.col3 > .wp-block-column:nth-child(1) {flex-basis: auto; flex-grow: 0;}
.imsa-split.col3 > .wp-block-column:nth-child(2) {flex-basis: auto; flex-grow: 1;}
.imsa-split.col3 > .wp-block-column:nth-child(3) {flex-basis: auto; flex-grow: 0; align-self: flex-end;}
.imsa-split.col3 > .wp-block-column :is(.imsa-label, .wp-block-button__link) {text-wrap: nowrap;}

/* =============================================
   12. PERFIL PERSONAL
   ============================================= */
.imsa-profile.wp-block-columns {
  gap: clamp(2.5rem, 6vw, 5rem) !important;
  align-items: flex-start !important;
}

.imsa-profile-img.wp-block-column {
  flex-basis: 38% !important;
  flex-grow: 0 !important;
}

.imsa-profile-img .wp-block-image {
  aspect-ratio: 3/4;
  overflow: hidden;
}

.imsa-profile-img .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: grayscale(15%);
  transition: filter 0.4s ease;
}

.imsa-profile-img .wp-block-image img:hover {
  filter: grayscale(0%);
}

/* Lista de diferenciales dentro del perfil */
.imsa-diferencial-list.wp-block-list li {
  padding: 0.9rem 0 0.9rem 1.2rem;
  font-size: var(--font-size-sm) !important;
  color: var(--text-2);
  border-bottom: none;
}

.imsa-diferencial-list.wp-block-list li::before {
  content: '';
  display: inline-block;
  width: 15px;
  height: 15px;
  -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>");
  mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: center;
  mask-position: center;
  background-color: var(--accent);
  position: absolute;
  left: 0;
  top: calc(.9rem + 6px);
}


/* =============================================
   CONTACTO
   ============================================= */
.imsa-contact.wp-block-columns {
  gap: clamp(2rem, 6vw, 5rem) !important;
  align-items: flex-start !important;
  max-width: var(--max-w);
  margin-inline: auto;
}

.imsa-contact.wp-block-columns h3 {color: var(--text) !important;}

p.imsa-contact-label {
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--accent) !important;
  margin: 0 !important;
}

p.imsa-contact-value {
  font-size: 1.05rem !important;
  font-weight: 500 !important;
  color: var(--text) !important;
  margin: 0 !important;
}

p.imsa-contact-value a:hover { color: var(--accent); }

.imsa-form-grid {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.imsa-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}

.imsa-form-grid input:not([type="submit"]),
.imsa-form-grid select,
.imsa-form-grid textarea {
  width: 100%;
  background-color: var(--bg);
  border: none;
  border-bottom: 1px solid var(--border-2);
  padding: 1rem 0;
  font-family: var(--font);
  font-size: 0.9375rem;
  color: var(--text);
  transition: border-color var(--transition);
}

.imsa-form-grid input:focus,
.imsa-form-grid select:focus,
.imsa-form-grid textarea:focus {
  outline: none;
  border-bottom-color: var(--accent);
}

.imsa-section--dark .imsa-form-grid :is(input:not([type="submit"]), select, textarea) {
  background-color: transparent;
}

.imsa-form-footer {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-top: 1.5rem;
}

.imsa-acceptance-row { width: 100%; }

.imsa-acceptance-row .wpcf7-list-item {
  display: flex !important;
  align-items: flex-start !important;
  margin: 0 !important;
}

.imsa-acceptance-row label {
  display: flex;
  align-items: flex-start;
  cursor: pointer;
}

.imsa-acceptance-row input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  max-height: 18px !important;
  border: 1px solid var(--border-2) !important;
  background-color: var(--bg) !important;
  margin: 4px 12px 0 0 !important;
  flex-shrink: 0 !important;
  border-radius: 2px;
  position: relative;
  display: block !important;
  padding: 0 !important;
  top: -3px;
}

.imsa-acceptance-row input[type="checkbox"]:checked {
  background-color: var(--accent) !important;
  border-color: var(--accent) !important;
}

.imsa-acceptance-row input[type="checkbox"]:checked::after {
  content: '✓';
  position: absolute;
  color: #000;
  font-size: 14px;
  line-height: 1;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.imsa-acceptance-row .wpcf7-list-item-label {
  font-family: var(--font) !important;
  font-size: 0.85rem !important;
  line-height: 1.5 !important;
  color: var(--text-2) !important;
}

.imsa-submit-container { align-self: flex-start; }

@media (max-width: 600px) {
  .imsa-field-row { grid-template-columns: 1fr; }

  .imsa-submit-container,
  .imsa-submit-container .wp-block-button,
  .imsa-submit-container .wp-block-button__link {
    width: 100%;
    text-align: center;
  }
}

.wpcf7-submit {padding-top: 1rem !important; padding-bottom: 1rem !important;}
.wp-block-button.is-style-fill .wp-block-button__link.wpcf7-submit[disabled] {background-color: var(--accent-dim) !important; pointer-events: none; color: var(--muted) !important;}

/* =============================================
   ARCHIVE / BLOG / SINGLE / AUTHOR
   ============================================= */
:is(.imsa-archive__header, .imsa-single__header, .imsa-archive-autor__header) { background-color: var(--bg); padding-top: calc(var(--header-h) + 2rem); padding-bottom: 3rem; padding-inline: var(--pad-x); position: sticky; top: 0; z-index: 1; display: flex; flex-direction: column;}
.imsa-archive__header:has(.imsa-archive__header-img), .imsa-single__header:has(.imsa-single__header-img) { padding-bottom: 0; min-height: 100svh;}
:is(.imsa-archive__header-text, .imsa-single__header-text) {max-width: var(--max-w); margin-inline: auto; width: 100%;}
:is(.imsa-archive__header-text, .imsa-single__header-text, .imsa-archive-autor__header-text) h1 {font-size: clamp(2rem, 5vw, 5rem);letter-spacing:-0.03em;}
:is(.imsa-archive__header-text, .imsa-single__header-text, .imsa-archive-autor__header-text) h2 {font-size:clamp(1.5rem,4vw,2rem);letter-spacing:-0.03em;}
:is(.imsa-archive__header-text, .imsa-archive-autor__header-text) p:not(.imsa-label) {font-size: 1.5rem !important;}
:is(.imsa-archive__header-img,.imsa-single__header-img) {width: 100vw; margin: auto calc(50% - 50vw) 0 !important; height: clamp(400px, 55vh, 65vh); overflow: hidden; position: relative;}
:is(.imsa-archive__header-img,.imsa-single__header-img) img { width: 100% !important; height: 140% !important; object-fit: cover !important; position: absolute; bottom: 0; left: 0; transform: translateY(calc((100vh - 100%) * 0.12)); will-change: transform;}
.imsa-posts { z-index: 2; position: relative; background: var(--bg);}
.imsa-posts__container { padding: var(--section-y) 0; max-width: var(--max-w); margin-inline: auto; }
.imsa-posts-grid {display: grid; grid-template-columns: 1fr; gap: 30px;}
.imsa-posts-grid > .imsa-post-card > .imsa-post-card__img {border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 1/1; display: block;}
.imsa-posts-grid > .imsa-post-card:nth-child(2n) > .imsa-post-card__img {aspect-ratio: 16/9;}
.imsa-posts-grid > .imsa-post-card > .imsa-post-card__img > img {width: 100%; height: 100%; object-fit: cover; transition: all var(--transition);}
.imsa-posts-grid > .imsa-post-card > .imsa-post-card__img:hover > img {transform: scale(1.1);}
.imsa-posts-grid > .imsa-post-card > .imsa-post-card__content {padding: 1rem 0 0; display: flex; flex-direction: column; gap: 0;}
.imsa-posts-grid > .imsa-post-card > .imsa-post-card__content > .imsa-post-card__date {align-self: flex-end; font-size: 1rem; color: var(--muted); margin-bottom: 0.5rem;}
.imsa-posts-grid > .imsa-post-card > .imsa-post-card__content > .imsa-post-card__title {font-size: 1.8rem; margin-bottom: 1rem;}
.imsa-posts-grid > .imsa-post-card > .imsa-post-card__content > .imsa-post-card__link {font-size: 1rem;}
.imsa-post-card__link::after { content: ' →'; }
.imsa-posts-grid > .imsa-post-card > .imsa-post-card__content > .imsa-post-card__title a, .imsa-posts-grid > .imsa-post-card > .imsa-post-card__content > .imsa-post-card__link {color: var(--accent); transition: color var(--transition);}
.imsa-posts-grid > .imsa-post-card > .imsa-post-card__content > .imsa-post-card__title a:hover, .imsa-posts-grid > .imsa-post-card > .imsa-post-card__content > .imsa-post-card__link:hover {color: var(--accent-hover);}
.imsa-pagination { display: flex; gap: 0.5rem; justify-content: center; margin-top: 3rem; flex-wrap: wrap; }
.imsa-pagination a, .imsa-pagination span { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--border); font-size: 0.875rem; color: var(--text-2); border-radius: var(--radius); transition: all var(--transition); }
.imsa-pagination a:hover { border-color: var(--accent); color: var(--accent); }
.imsa-pagination .current { background-color: var(--accent); color: #FFF; border-color: var(--accent); }
@media (min-width: 600px)  { .imsa-posts-grid { grid-template-columns: repeat(2, 1fr); }  }
@media (min-width: 1000px) { .imsa-posts-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 1180px) { .imsa-posts-grid { padding-inline: var(--pad-x);} }
@media (max-width: 599px) { .imsa-posts-grid > .imsa-post-card > .imsa-post-card__img {aspect-ratio: 16/9; display: block;} }

.imsa-single__header-meta { font-size: 1rem; color: var(--muted); display: flex; align-items: center; gap: 1rem; margin: 0 0 1rem; list-style: none;}
.imsa-single__header-meta li + li:before{ content: "·"; margin-right: 1rem; display: inline-block; }
.imsa-single__header-meta li a{ color: var(--accent); transition: color var(--transition); }
.imsa-single__header-meta li a:hover{ color: var(--accent-hover);}
.imsa-single__article {background-color: var(--bg); padding: var(--section-y) 0 0; z-index: 2; position: relative;}
.imsa-single__content {max-width: var(--max-w); margin-inline: auto; display: grid; gap: 5rem; grid-template-columns: 3fr 1fr; align-items: flex-start; }
.imsa-single__content-posts > * + * { margin-top: 1.5rem !important; }
.imsa-single__content-posts > * + :is(h1,h2,h3,h4,h5,h6) { margin-top: 2.5rem !important; }
.imsa-single__content-posts h2 { font-size: clamp(1.3rem, 3vw, 1.8rem); color: var(--text); margin: 0; }
.imsa-single__content-posts h3 { font-size: clamp(1.1rem, 2.5vw, 1.4rem); color: var(--text); margin: 0; }
.imsa-single__content-posts :is(p,ol,li,ul) { color: var(--text-2); line-height: 1.8; font-size: 1.0625rem; margin: 0;}
.imsa-single__content-posts > .wp-block-image { max-width: 85%; margin-block: 2rem; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 16/9; }
.imsa-single__content-posts > .wp-block-image > img { width: 100%; height: 100%; object-fit: cover; }
.imsa-single__content-cta {position: sticky; top: 100px;}
.customize-support .imsa-single__content-cta {top: 132px;}
.imsa-single__cta {padding: 1rem; background: var(--accent); border-radius: var(--radius-lg); display: flex; justify-content: center; align-items: center; flex-direction: column; text-align: center; gap: 1rem; }
.imsa-single__cta :is(h2,p) { margin: 0; color: var(--ink-text); }
.imsa-single__cta h2 { font-size: 1.2rem; font-weight: 400; }
.imsa-single__cta p { font-size: 1.8rem; line-height: 1;}
.imsa-single__cta a{ font-family: var(--font) !important; font-size: var(--font-size) !important; font-weight: 500 !important; letter-spacing: 0.04em !important; border-radius: var(--radius) !important; padding: 1.2rem 1rem .8rem !important; transition: all var(--transition) !important; line-height: 1 !important; position: relative; background-color: #FFF; color: var(--ink); border: 1px solid #FFF; margin-top: .5rem;}
.imsa-single__cta a:before {position: absolute; top: .2rem; left: .5rem; transition: all 500ms ease-in-out; content: ''; display: inline-block; width: 13px; height: 13px; -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; background-color: var(--ink) !important;}
.imsa-single__cta a:hover { border-color: var(--accent-hover) !important; color: #FFF !important; background-color: var(--accent-hover) !important; }
.imsa-single__cta a:hover:before { background-color: #FFF !important; left: 50%; transform: translateX(-50%) rotate(45deg);}
.imsa-single__nav {max-width: var(--max-w); margin-inline: auto; display:flex;justify-content:space-between;gap:1rem;margin-top:4rem;padding-block:2rem;border-top:1px solid var(--border); position:relative; z-index: 2; background: var(--bg);}
.imsa-single__nav > .imsa-single__nav-link {font-size:.8rem;color:var(--text-2);max-width:45%;}
.imsa-single__nav > .imsa-single__nav-link.next {text-align:right;margin-left:auto;}
.imsa-single__nav > .imsa-single__nav-link > span {display:block;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:.25rem;}

@media (max-width: 1180px) { .imsa-single__content, .imsa-single__nav{ padding-inline: var(--pad-x);} }
@media (max-width: 600px) {
  .imsa-single__content{ grid-template-columns: 1fr;}
  .imsa-single__content-posts > .wp-block-image { max-width: 100%; }
  .imsa-single__header-meta {display: block;}
}

.imsa-archive-autor__header {display: grid; grid-template-columns: 1fr 1fr; padding-bottom: 0;}
.imsa-archive-autor__header > .imsa-archive-autor__header-img {top: calc((var(--header-h) + 2rem) * -1); left: calc(var(--pad-x) * -1); position: relative; height: calc(100% + (var(--header-h) + 2rem));}
.imsa-archive-autor__header > .imsa-archive-autor__header-img img {width: 100%; height: 100%; object-fit: cover;}
.info-bio-autor-container {z-index: 2; position: relative; background: var(--bg); padding-top: 3rem;}
.info-bio-autor {padding:0; max-width: var(--max-w);margin-inline: auto; display: grid; gap: 4rem; grid-template-columns: 2fr 1fr; align-items: flex-start; }
.info-bio-autor .bio-points ul {padding: 0; margin: 0; list-style: none;}
.info-bio-autor .bio-points ul li { padding: 0.4rem 0 0.4rem 1.2rem; color: var(--text-2); position: relative; margin: 0;}
.info-bio-autor .bio-points ul li::before { content: ''; display: inline-block; width: 15px; height: 15px; -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; background-color: var(--accent); position: absolute; left: 0; top: calc(.4rem + 6px);}
.info-bio-autor .bio-points ul li + li{ margin-top: .5rem;}

@media (max-width: 1199px) { .imsa-archive-autor__header > .imsa-archive-autor__header-img img {object-fit: contain;} }
@media (max-width: 600px) {
  .imsa-archive-autor__header {display: grid; grid-template-columns: 1fr; position: unset; padding-top: 2rem;}
  .imsa-archive-autor__header > .imsa-archive-autor__header-img {left: unset; top: unset; height: auto; margin-bottom: 1rem;}
  .imsa-archive-autor__header-text p:not(.imsa-label) {font-size: 1.1rem !important;}
  .info-bio-autor-container {padding-top: 0;}
  .info-bio-autor {grid-template-columns: 1fr; padding-inline: var(--pad-x); gap: 0;}
  .imsa-posts__container {padding-inline: var(--pad-x);}
}

/* =============================================
   404
   ============================================= */
.imsa-404 { min-height: calc(100svh - var(--header-h)); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: var(--section-y) var(--pad-x); gap: 1.5rem; }
.imsa-404__code { font-size: clamp(5rem, 15vw, 10rem); font-weight: 700; letter-spacing: -0.04em; color: var(--accent); line-height: 1; }


/* =============================================
   UTILIDADES
   ============================================= */
.imsa-text-accent { color: var(--accent) !important; }
.imsa-text-muted  { color: var(--muted) !important; font-size: 0.8rem; }
.imsa-text-muted.dark  { color: var(--text-2) !important; }
@media (max-width: 599px) { .hide-mobile { display: none !important; } }
@media (min-width: 600px) { .hide-desktop { display: none !important; } }


/* =============================================
   ANIMACIONES SCROLL REVEAL
   ============================================= */
@media (prefers-reduced-motion: no-preference) {
  .imsa-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
  .imsa-reveal.is-visible { opacity: 1; transform: translateY(0); }
  .imsa-reveal-delay-1 { transition-delay: 0.1s; }
  .imsa-reveal-delay-2 { transition-delay: 0.2s; }
  .imsa-reveal-delay-3 { transition-delay: 0.3s; }
}

/* =============================================
   BLOQUE SERVICIOS CON SHORTCODE
   ============================================= */
.imsa-services .wp-block-group__inner-container {max-width: var(--max-w); margin-inline: auto;}

.imsa-services .services-container .services-tabs ul {display: flex; flex-wrap: wrap; justify-content: space-between; align-items: stretch;padding: 0; list-style: none; gap: 10px;margin: 0 0 30px;}
.imsa-services .services-container .services-tabs ul li {flex: 1;}
.imsa-services .services-container .services-tabs ul li a { font-family: var(--font); font-size: var(--font-size) ; font-weight: 500; letter-spacing: 0.04em ; border-radius: var(--radius) ; padding: 1.65rem 1.75rem; transition: all var(--transition); line-height: 1.2; position: relative; text-align: center; background-color: #FFF; color: var(--ink); border: 1px solid #FFF; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 20px 0px rgb(200 202 203 / 30%);}
.imsa-services .services-container .services-tabs ul li.active a { background-color: var(--accent); color: #FFF; border: 1px solid var(--accent); width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; pointer-events: none; cursor: default;}
.imsa-services .services-container .services-tabs ul li a:before {position: absolute; top: .5rem; left: .3rem; transition: all 500ms ease-in-out; content: ''; display: inline-block; width: 13px; height: 13px; -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; background-color: var(--ink);}
.imsa-services .services-container .services-tabs ul li.active a:before {background-color: #FFF; left: 50%; transform: translateX(-50%) rotate(45deg);}
.imsa-services .services-container .services-tabs ul li a:hover { background-color: var(--accent-hover); color: #FFF; border: 1px solid var(--accent-hover); }
.imsa-services .services-container .services-tabs ul li a:hover:before {left: 50%; transform: translateX(-50%) rotate(45deg); background-color: #FFF;}

.imsa-services .services-container .services-tab-content {display: grid; grid-template-columns: 1fr; grid-template-rows: 1fr; width: 100%;}
.imsa-services .services-container .services-tab-content .service-tab-pane {grid-column: 1; grid-row: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 400ms ease-in-out, visibility 400ms ease-in-out;width: 100%;}
.imsa-services .services-container .services-tab-content .service-tab-pane.active {opacity: 1; visibility: visible; pointer-events: auto;}

.imsa-services .services-container .services-tab-content .service-tab-pane .service-info h2 {font-size: 2.5rem;}
.imsa-services .services-container .services-tab-content .service-tab-pane .service-info .text {font-size: 1.2rem; font-weight: 500; margin-bottom: 30px;}
.imsa-services .services-container .services-tab-content .service-tab-pane .service-info .text:last-child {margin-bottom: 0;}
.imsa-services .services-container .services-tab-content .service-tab-pane .service-info h3 {font-size: 1.5rem; color: var(--muted); margin-bottom: 10px;}
.imsa-services .services-container .services-tab-content .service-tab-pane .service-info ul {margin: 0; padding: 0; list-style: none;}
.imsa-services .services-container .services-tab-content .service-tab-pane .service-info ul li { padding: 0.4rem 0 0.4rem 1.2rem; color: var(--text-2); position: relative;}
.imsa-services .services-container .services-tab-content .service-tab-pane .service-info ul li::before { content: ''; display: inline-block; width: 15px; height: 15px; -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; background-color: var(--accent); position: absolute; left: 0; transform: rotate(45deg); top: calc(.4rem + 6px);}

.imsa-services .service-images { height: 0; min-height: 100%; align-self: stretch; }
.imsa-services .service-images ul { display: grid; gap: 15px; list-style: none; padding: 0; margin: 0; height: 100%; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 1fr; max-height: 100%; }
.imsa-services .service-images ul li { width: 100%; height: 100%; overflow: hidden; border-radius: var(--radius); min-height: 0;}
.imsa-services .service-images ul li img { width: 100%; height: 100%; object-fit: cover; }
.imsa-services .service-images ul :only-child { grid-column: span 2; grid-row: span 2;}
.imsa-services .service-images ul:has(> :nth-child(2)):not(:has(> :nth-child(3))) :nth-child(1) {grid-column: 1 / 2; grid-row: 2 / 3; aspect-ratio: 1 / 1; align-self: start;}
.imsa-services .service-images ul:has(> :nth-child(2)):not(:has(> :nth-child(3))) :nth-child(2) {grid-column: 2 / 3;grid-row: 1 / span 2;}
.imsa-services .service-images ul:has(> :nth-child(3)):not(:has(> :nth-child(4))) :nth-child(1) { grid-column: 1 / 2; grid-row: 1 / 2;}
.imsa-services .service-images ul:has(> :nth-child(3)):not(:has(> :nth-child(4))) :nth-child(2) { grid-column: 1 / 2; grid-row: 2 / 3;}
.imsa-services .service-images ul:has(> :nth-child(3)):not(:has(> :nth-child(4))) :nth-child(3) { grid-column: 2 / 3; grid-row: 1 / span 2; }
.imsa-services .service-images ul:has(> :nth-child(4)) { grid-auto-rows: auto; overflow-y: auto;  max-height: 100%;padding-right: 5px;}
.imsa-services .service-images ul:has(> :nth-child(4)) li { grid-column: auto !important; grid-row: auto !important; aspect-ratio: 1 / 1 !important;}
.imsa-services .link-detail{ font-family: var(--font) !important; font-size: var(--font-size) !important; font-weight: 500 !important; letter-spacing: 0.04em !important; border-radius: var(--radius) !important; padding: 1.65rem 1.75rem !important; transition: all var(--transition) !important; line-height: 1 !important; position: relative; display: inline-block; margin-top: 1rem; background-color: var(--accent) !important; color: #FFF !important; border: none !important;}
.imsa-services .link-detail:before {position: absolute; top: .5rem; left: .3rem; transition: all 500ms ease-in-out; content: ''; display: inline-block; width: 13px; height: 13px; -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; background-color: #FFF;}
.imsa-services .link-detail:hover { background-color: var(--accent-hover) !important; }
.imsa-services .link-detail:hover:before {left: 50%; transform: translateX(-50%) rotate(45deg);}

@media (max-width: 900px) {
  .imsa-services .services-container .services-tab-content .service-tab-pane { grid-template-columns: 1fr; gap: 25px;}
  .imsa-services .service-images { height: auto; min-height: unset;}
  .imsa-services .service-images ul { grid-auto-rows: auto; height: auto; max-height: none; overflow-y: visible;}
  .imsa-services .service-images ul li { height: auto !important; grid-column: span 2 !important; grid-row: auto !important; aspect-ratio: 16 / 9 !important; }
  .imsa-services .service-images ul :only-child { aspect-ratio: 4 / 3 !important;}
}

/* =============================================
   LEGALES
   ============================================= */
#cmplz-document, .group-legal{
	max-width: 1180px;
  	margin-left: auto !important;
  	margin-right: auto !important;
	padding-block: 40px;
}

/* =============================================
   PESTAÑAS EDITABLES CON GUTENBERG
   ============================================= */

.content-tabs__list {
  display: grid !important;
  grid-template-columns: repeat(var(--tabs-count, 3), minmax(0, 1fr));
  column-gap: 10px;
  row-gap: 30px;
  align-items: stretch;
  width: 100%;
  margin: 0;
}

.content-tabs__item {
  display: contents;
}

/* Cabecera editable y botón generado por JavaScript */
.content-tabs__title,
.content-tabs__tab {
  grid-row: 1;
  position: relative;
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 72px;
  margin: 0 !important;
  padding: 1.65rem 1.75rem;
  border: 1px solid #fff;
  border-radius: var(--radius);
  background-color: #fff;
  box-shadow: 0 0 20px 0 rgb(200 202 203 / 30%);
  color: var(--ink);
  font-family: var(--font);
  font-size: var(--font-size);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-align: center;
  cursor: pointer;
  transition: all var(--transition);
}

/* Estrella decorativa */
.content-tabs__title::before,
.content-tabs__tab::before {
  content: "";
  position: absolute;
  top: 0.5rem;
  left: 0.3rem;
  display: inline-block;
  width: 13px;
  height: 13px;
  background-color: var(--ink);
  transition: all 500ms ease-in-out;

  -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>");
  mask-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 0 11 L 9.265 9.266 L 11 0 L 12.735 9.266 L 22 11 L 12.735 12.734 L 11 22 L 9.265 12.734 Z' transform='translate(1 1)'/></svg>");

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

/* Hover */
.content-tabs__title:hover,
.content-tabs__tab:hover {
  border-color: var(--accent-hover);
  background-color: var(--accent-hover);
  color: #fff;
}

.content-tabs__title:hover::before,
.content-tabs__tab:hover::before {
  left: 50%;
  background-color: #fff;
  transform: translateX(-50%) rotate(45deg);
}

/* Pestaña activa */
.content-tabs__item.is-active > :is(
  .content-tabs__title,
  .content-tabs__tab
) {
  border-color: var(--accent);
  background-color: var(--accent);
  color: #fff;
  cursor: default;
  pointer-events: none;
}

.content-tabs__item.is-active > :is(
  .content-tabs__title,
  .content-tabs__tab
)::before {
  left: 50%;
  background-color: #fff;
  transform: translateX(-50%) rotate(45deg);
}

.content-tabs__tab:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent) 35%, transparent);
  outline-offset: 3px;
}

/* =============================================
   CONTENIDOS
   ============================================= */

.content-tabs__panel {
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: start;
  width: 100%;
  margin: 0 !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 400ms ease-in-out,
    visibility 400ms ease-in-out;
}

.content-tabs__item.is-active > .content-tabs__panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* =============================================
   MÓVIL
   ============================================= */

@media (max-width: 700px) {
  .content-tabs__list {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 10px;
  }

  .content-tabs__title,
  .content-tabs__tab {
    grid-column: 1;
    grid-row: auto;
    min-height: 64px;
  }

  /*
   * Coloca todos los paneles después de la última cabecera.
   * El JavaScript calcula automáticamente cuántas pestañas existen.
   */
  .content-tabs__panel {
    grid-column: 1;
    grid-row: calc(var(--tabs-count) + 1);
    margin-top: 20px !important;
  }
}
/* =============================================
   VISTA DEL EDITOR DE GUTENBERG
   ============================================= */

.editor-styles-wrapper .content-tabs__item {
  /*
   * En la web usamos display: contents para separar cabeceras
   * y paneles. En Gutenberg recuperamos la columna normal.
   */
  display: block !important;
}

.editor-styles-wrapper .content-tabs__title {
  height: auto !important;
  min-height: 72px;
  pointer-events: auto !important;
  cursor: text !important;
}

/* Permite editar también la cabecera marcada como activa */
.editor-styles-wrapper
  .content-tabs__item.is-active
  > .content-tabs__title {
  pointer-events: auto !important;
}

/* Muestra todos los contenidos dentro del editor */
.editor-styles-wrapper .content-tabs__panel {
  display: block !important;
  grid-column: auto !important;
  grid-row: auto !important;
  width: auto;
  margin-top: 20px !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}

/* Separación visual opcional para editar mejor */
.editor-styles-wrapper .content-tabs__panel {
  padding-top: 20px;
  border-top: 1px dashed rgb(0 0 0 / 20%);
}

/* =============================================
   FAQ GUTENBERG
   ============================================= */

.imsa-faq {
  --faq-accent: var(--accent, #0d5689);
  --faq-text: var(--text, #111);
  --faq-muted: var(--ink-muted, rgba(15, 15, 15, 0.62));
  --faq-line: var(--border-2, rgba(0, 0, 0, 0.28));

  padding: clamp(4rem, 9vw, 8rem) var(--pad-x, 1.25rem);
  background: var(--bg, #f5f5f5);
}

.imsa-faq > .wp-block-heading {
  max-width: 22ch;
  margin: 0 0 clamp(2.75rem, 6vw, 5rem) !important;
  color: var(--faq-text) !important;
  font-size: clamp(2rem, 4vw, 3.5rem) !important;
  line-height: 1 !important;
  letter-spacing: -0.035em !important;
  text-wrap: balance;
}

.imsa-faq__list,
.imsa-faq__item,
.imsa-faq__question,
.imsa-faq__answer,
.imsa-faq__answer-inner {
  margin-block: 0 !important;
}

.imsa-faq__item {
  position: relative;
  border-bottom: 1px solid var(--faq-line);
}

.imsa-faq__item:first-child {
  border-top: 1px solid var(--faq-line);
}

/* Línea decorativa al abrir */

.imsa-faq__item::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -1rem;
  width: 2px;
  background: var(--faq-accent);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 420ms cubic-bezier(.22, 1, .36, 1);
}

.imsa-faq__item.is-open::before {
  transform: scaleY(1);
}

/* Los encabezados de las preguntas siguen siendo H3 reales */

.imsa-faq__question {
  margin: 0 !important;
  color: var(--faq-text) !important;
  font-family: inherit !important;
  font-size: clamp(0.95rem, 1.4vw, 1.1rem) !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: -0.015em !important;
}

/* El botón accesible se genera dentro del H3 mediante JS */

.imsa-faq__trigger {
  appearance: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1rem;
  gap: 1.5rem;
  align-items: center;
  width: 100%;
  padding: clamp(1.25rem, 2.3vw, 1.8rem) 0;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(
      90deg,
      rgba(13, 86, 137, 0.06),
      transparent 70%
    )
    no-repeat;
  background-size: 0 100%;
  color: #121212;
  font: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-align: left;
  cursor: pointer;
  transition:
    color 250ms ease,
    background-size 450ms cubic-bezier(.22, 1, .36, 1),
    padding-left 350ms cubic-bezier(.22, 1, .36, 1);
}

.imsa-faq__trigger:hover {
  padding-left: 0.4rem;
  background-size: 100% 100%;
  color: #121212;
}

.imsa-faq__trigger:focus-visible {
  outline: 2px solid #121212;
  outline-offset: 5px;
}

/* Flecha */

.imsa-faq__trigger::after {
  content: "";
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  width: 0.45rem;
  height: 0.45rem;
  border-right: 1.5px solid #121212;
  border-bottom: 1.5px solid #121212;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 420ms cubic-bezier(.22, 1, .36, 1);
}

.imsa-faq__item.is-open .imsa-faq__trigger::after {
  transform: translateY(2px) rotate(225deg);
}

/* Respuesta */

.imsa-faq__answer {
  overflow: hidden;
}

.imsa-faq__answer[hidden] {
  display: none;
}

.imsa-faq__answer-inner {
  padding: 0 4rem clamp(1.5rem, 3vw, 2.25rem) 0;
}

.imsa-faq__answer p {
  width: auto !important;
  max-width: 72ch !important;
  min-width: 0 !important;
  margin: 0 !important;
  color: var(--faq-muted) !important;
  font-size: clamp(0.95rem, 1.25vw, 1.05rem);
  line-height: 1.7;
}

/* En Gutenberg se muestran siempre las respuestas */

.editor-styles-wrapper .imsa-faq__question {
  position: relative;
  padding: 1.5rem 3rem 1.5rem 0;
}

.editor-styles-wrapper .imsa-faq__question::after {
  content: "⌄";
  position: absolute;
  top: 50%;
  right: 0.25rem;
  transform: translateY(-55%);
  color: var(--faq-accent);
  font-size: 1.25rem;
}

.editor-styles-wrapper .imsa-faq__answer {
  height: auto !important;
  overflow: visible !important;
  opacity: 1 !important;
}

@media (max-width: 640px) {
  .imsa-faq > .wp-block-heading {
    margin-bottom: 2.5rem !important;
  }

  .imsa-faq__trigger {
    gap: 1rem;
  }

  .imsa-faq__answer-inner {
    padding-right: 1.5rem;
  }

  .imsa-faq__item::before {
    left: -0.65rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .imsa-faq__item::before,
  .imsa-faq__trigger,
  .imsa-faq__trigger::after {
    transition: none;
  }
}