/* Institut de la Infància · diseño base "mesa de luz" aplicado a Divi 5.
   Tokens -> base -> enlaces -> botones de metacrilato -> cabecera de cristal -> contenido -> pie.
   Los selectores con #ids son necesarios para ganar a los estilos por defecto de Divi. */

:root {
  --tinta: #1B1719;
  --tinta-2: #4B4448;
  --tinta-3: #6E676C;
  --fucsia: #DC2657;
  --fucsia-hi: #F05A82;
  --fucsia-lo: #B5153F;
  --oliva: #9DA735;
  --oliva-txt: #56600F;
  --oliva-btn: #6A7416;
  --luz: #F4F5F7;
  --realizada: #8C8590;
  --linea: rgba(27, 23, 25, .1);
  --cristal: rgba(255, 255, 255, .62);
  --cristal-blur: blur(22px) saturate(170%);
  --f-titulo: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --f-texto: "Lexend", system-ui, -apple-system, "Segoe UI", sans-serif;
  --r-pill: 999px;
  --r-poster: 18px;
  --muelle: cubic-bezier(.22, 1, .36, 1);
}

/* ---------- base ---------- */
body,
body #page-container,
body #main-content {
  background: var(--luz);
}
body {
  color: var(--tinta);
  font-family: var(--f-texto);
  font-size: 16px;
  line-height: 1.6;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}
body, body p, body li, body input, body select, body textarea, body button {
  font-family: var(--f-texto);
}
h1, h2, h3, h4, h5, h6,
body .entry-title,
body .et_pb_module_header {
  font-family: var(--f-titulo);
  font-optical-sizing: auto;
  color: var(--tinta);
  font-weight: 700;
  letter-spacing: -.015em;
  line-height: 1.12;
  text-wrap: balance;
}
::selection { background: rgba(220, 38, 87, .18); }
:focus-visible { outline: 3px solid var(--fucsia); outline-offset: 3px; }

/* ---------- enlaces ---------- */
body #page-container a { color: var(--fucsia-lo); }
body .entry-content a,
body .et_pb_text a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
body .entry-content a:hover,
body .et_pb_text a:hover { color: var(--fucsia); text-decoration-thickness: 2px; }

/* ---------- botones: piezas de metacrilato ---------- */
body .wp-block-button__link,
body .wp-element-button,
body #page-container .et_pb_button,
body .woocommerce a.button,
body .woocommerce button.button,
body .woocommerce input.button,
body .woocommerce #respond input#submit,
body .woocommerce .button.alt,
body .wc-block-components-button:not(.is-link),
.idi-btn {
  --b1: var(--fucsia-hi); --b2: var(--fucsia); --b3: var(--fucsia-lo); --bs: rgba(220, 38, 87, .7);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  min-height: 50px;
  padding: 0 1.4em;
  border: 1px solid rgba(140, 10, 45, .35);
  border-radius: var(--r-pill);
  background: linear-gradient(180deg, var(--b1) 0%, var(--b2) 52%, var(--b3) 100%);
  color: #fff !important;
  font: 600 1rem/1 var(--f-texto);
  letter-spacing: 0;
  text-decoration: none !important;
  text-shadow: 0 1px 0 rgba(120, 0, 30, .3);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), inset 0 -3px 8px rgba(0, 0, 0, .12), 0 12px 26px -12px var(--bs);
  cursor: pointer;
  transition: transform 120ms ease-out, box-shadow 200ms ease, filter 200ms ease;
  -webkit-tap-highlight-color: transparent;
}
/* la flecha que Divi añade a sus botones (también a los de WooCommerce) al pasar el ratón */
body #page-container .et_pb_button::after,
body .woocommerce :is(a.button, button.button, input.button, #respond input#submit)::after,
body .woocommerce :is(a.button, button.button, input.button, #respond input#submit)::before { display: none !important; content: none !important; }
body .wp-block-button__link:hover,
body #page-container .et_pb_button:hover,
body .woocommerce :is(a.button, button.button, input.button, #respond input#submit, .button.alt):hover,
.idi-btn:hover {
  filter: brightness(1.05) saturate(1.05);
  background: linear-gradient(180deg, var(--b1) 0%, var(--b2) 52%, var(--b3) 100%);
  border: 1px solid rgba(140, 10, 45, .35); /* Divi lo pone de 2 px y el botón "encoge" */
  padding: 0 1.4em;
}
body .wp-block-button__link:active,
body #page-container .et_pb_button:active,
body .woocommerce a.button:active,
.idi-btn:active {
  transform: scale(.97) translateY(1px);
  transition-duration: 60ms;
}
.idi-btn--registro { --b1: #9AA62C; --b2: var(--oliva-btn); --b3: #545D10; --bs: rgba(106, 116, 22, .7); border-color: rgba(60, 66, 8, .35); }
.idi-btn--info { --b1: #4A4247; --b2: #2A2428; --b3: #151113; --bs: rgba(27, 23, 25, .55); border-color: rgba(0, 0, 0, .4); }
.idi-btn--cristal {
  background: rgba(255, 255, 255, .6) !important;
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  backdrop-filter: blur(16px) saturate(160%);
  border-color: rgba(255, 255, 255, .85);
  color: var(--tinta) !important;
  text-shadow: none;
  box-shadow: inset 0 1px 0 #fff, 0 10px 24px -14px rgba(27, 23, 25, .35);
}

/* ---------- cabecera de cristal ---------- */
body #main-header {
  background: var(--cristal) !important;
  -webkit-backdrop-filter: var(--cristal-blur);
  backdrop-filter: var(--cristal-blur);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .6), 0 10px 30px -24px rgba(27, 23, 25, .35);
}
body #main-header .container { width: min(1280px, 100% - 2 * clamp(16px, 4vw, 48px)); max-width: none; }
/* las filas del constructor, al mismo ancho que la cabecera: Divi 5 lo toma de estas variables (cada fila puede cambiarlo en el constructor) */
body { --content-width: min(1280px, 100% - 2 * clamp(16px, 4vw, 48px)); --content-max-width: none; }
body #logo { max-height: 80%; } /* como en la maqueta: el logo manuscrito se tiene que leer */
body #top-menu li a,
body .et_mobile_menu li a {
  font-family: var(--f-texto);
  font-weight: 600;
  font-size: 15px;
  color: var(--tinta-2) !important;
  letter-spacing: 0;
}
body #top-menu li.current-menu-item > a,
body #top-menu li a:hover { color: var(--tinta) !important; opacity: 1; }
/* el menú como en la maqueta: cada opción, una pastilla; la página actual, en blanco (Divi alinea el menú con
   relleno inferior, así que la pastilla es un ::before del tamaño del texto) */
body #top-menu > li > a { position: relative; }
body #top-menu > li:not(.idi-idiomas):not(.idi-club) > a::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -9px;
  left: -14px;
  right: -14px;
  height: calc(1em + 18px);
  border-radius: var(--r-pill);
  transition: background 150ms;
}
body #top-menu > li:not(.idi-idiomas):not(.idi-club) > a:hover::before { background: rgba(27, 23, 25, .05); }
body #top-menu > li.current-menu-item:not(.menu-item-type-custom) > a::before,
body #top-menu > li.current-page-ancestor > a::before { background: rgba(255, 255, 255, .85); box-shadow: inset 0 0 0 1px var(--linea); }
body #top-menu > li { padding-right: 16px; } /* las 8 opciones de la web original, el idioma y la búsqueda en una sola línea */
body #et-top-navigation .et-cart-info { display: none; } /* la tienda no es pública */
body .et_search_outer input { font-family: var(--f-texto); }

/* selector de idioma: una pastilla al final del menú */
body #top-menu li.idi-idiomas { padding-right: 0; vertical-align: top; margin-top: -8px; }
.idi-idiomas__in { display: inline-flex; padding: 3px; border-radius: var(--r-pill); background: rgba(27, 23, 25, .06); }
body #top-menu li.idi-idiomas a,
body .et_mobile_menu li.idi-idiomas a {
  display: inline-block;
  padding: 6px 11px !important;
  border: 0 !important;
  border-radius: var(--r-pill);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--tinta-3) !important;
}
body #top-menu li.idi-idiomas a[aria-current="true"],
body .et_mobile_menu li.idi-idiomas a[aria-current="true"] { background: #fff; color: var(--tinta) !important; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
body .et_mobile_menu li.idi-idiomas { padding: 12px 5%; }

/* "Club de Amigos" y "Newsletter": botones dentro del menú, como en la web original (clase idi-boton en el menú) */
body #top-menu li.idi-boton { padding-right: 8px; vertical-align: top; margin-top: -9px; }
body #top-menu li.idi-boton > a {
  display: inline-block;
  padding: 8px 13px !important;
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .7);
  border: 1px solid rgba(255, 255, 255, .85);
  box-shadow: inset 0 1px 0 #fff, 0 8px 20px -12px rgba(27, 23, 25, .35);
  color: var(--tinta) !important;
  font-weight: 700;
  line-height: 1.2;
}
body #top-menu li.idi-boton--club > a {
  background: linear-gradient(180deg, var(--fucsia-hi) 0%, var(--fucsia) 52%, var(--fucsia-lo) 100%);
  border-color: rgba(140, 10, 45, .35);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 8px 20px -10px rgba(220, 38, 87, .7);
  color: #fff !important;
}
body #top-menu li.idi-boton > a::before { display: none; }
body #top-menu li.idi-boton > a:active { transform: scale(.97); }
body #top-menu li.idi-donar > a { color: var(--fucsia-lo) !important; }
body .et_mobile_menu li.idi-boton > a, body .et_mobile_menu li.idi-donar > a { font-weight: 700; color: var(--fucsia-lo) !important; }
body #top-menu li a { font-size: 14.5px; }
/* submenús: cada opción en una sola línea (Divi les da 200 px fijos y las parte); la caja se ensancha lo que haga falta */
body #top-menu .sub-menu { width: max-content; min-width: 220px; }
body #top-menu li li { display: block; }
body #top-menu li li a { width: auto; white-space: nowrap; }
/* pantallas medianas (portátiles): todo más compacto para que quepa en una línea */
@media (max-width: 1500px) {
  body #top-menu > li { padding-right: 11px; }
  body #top-menu li a { font-size: 13.5px; }
  body #top-menu li.idi-boton { padding-right: 6px; }
  body #top-menu li.idi-boton > a { padding: 7px 11px !important; }
  body.et_pb_svg_logo #logo { height: 66%; }
  body #et-top-navigation { padding-left: 16px !important; }
}
/* por debajo de 1280 px no cabe en una línea: el menú pasa al botón de menú (como en el móvil) en lugar de partirse */
@media (max-width: 1279px) {
  body #top-menu-nav { display: none; }
  body #et_mobile_nav_menu { display: block; }
}
/* (antiguo botón del Club añadido por código: ya no se usa) */
body #top-menu li.idi-club { padding-right: 0; padding-left: 14px; vertical-align: top; margin-top: -11px; }
body #top-menu li.idi-club a {
  display: inline-block;
  padding: 10px 16px !important;
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .7);
  border: 1px solid rgba(255, 255, 255, .85);
  box-shadow: inset 0 1px 0 #fff, 0 8px 20px -12px rgba(27, 23, 25, .35);
  color: var(--tinta) !important;
  font-weight: 700;
  line-height: 1.2;
}
body #top-menu li.idi-club a::before { display: none; }
body .et_mobile_menu li.idi-club a { font-weight: 700; color: var(--fucsia-lo) !important; }

/* ---------- entradas: una columna centrada, sin barra lateral ---------- */
body.single-post #sidebar { display: none; }
body.single-post #main-content .container::before { display: none; }
body.single-post #left-area { width: 100%; padding: 0; float: none; }
body.single-post #main-content .container { width: min(1280px, 100% - 2 * clamp(16px, 4vw, 48px)); max-width: none; padding-top: clamp(28px, 5vw, 56px); }
body.single-post article.et_pb_post { max-width: 760px; margin: 0 auto; }
body.single-post .entry-title { font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.028em; line-height: 1.04; margin-bottom: .55em; padding-bottom: 0; }
body.single-post .post-meta { display: none; }
body.single-post .et_post_meta_wrapper img { display: none; } /* el póster lo pinta la ficha de la actividad */
body.single-post .et_pb_post .entry-content { padding-top: 0; } /* Divi añade 30px entre el título y el texto */

/* ---------- páginas: tampoco llevan barra lateral (el diseño no tiene); el ancho lo da cada fila o bloque ---------- */
body.page #sidebar { display: none; }
body.page #main-content .container::before { display: none; }
body.page #left-area { width: 100%; padding: 0; float: none; }
body.page #main-content .container { width: min(1280px, 100% - 2 * clamp(16px, 4vw, 48px)); max-width: none; } /* el mismo ancho que la cabecera */

body .entry-content { font-size: 1.0625rem; line-height: 1.7; color: var(--tinta); }
body .entry-content > * + * { margin-top: 1em; }
body .entry-content > :first-child { margin-top: 0; }
body .entry-content h2 { font-size: clamp(1.5rem, 2.6vw, 1.9rem); margin-top: 1.6em; }
body .entry-content h3 { font-size: 1.25rem; margin-top: 1.5em; padding-bottom: 0; }
body .entry-content p { padding-bottom: 0; }
/* Divi pone a las listas "#left-area ul/ol" 23px abajo y la numeración por dentro: :is() pesa como un id */
:is(#left-area, body) .entry-content ul,
:is(#left-area, body) .entry-content ol { padding: 0 0 0 1.3em; line-height: 1.65; list-style-position: outside; }
body .entry-content li + li { margin-top: .3em; }
body .entry-content ul li::marker { color: var(--fucsia); }
body .entry-content strong { font-weight: 600; }
body .entry-content figure.wp-block-image img { border-radius: var(--r-poster); }
body .entry-content .wp-block-separator { border: 0; height: 1px; background: var(--linea); margin: 2em 0; }
body .entry-content blockquote { border-left: 3px solid var(--fucsia); padding: .2em 0 .2em 1.1em; color: var(--tinta-2); font-style: normal; }
body .entry-content .wp-block-embed { margin: 1.6em 0; }
body .entry-content .wp-block-embed iframe { border-radius: 18px; }


/* ---------- portada (página con bloques y piezas automáticas) ---------- */
body.home #main-content .container { padding-top: 0; }
body.home .main_title { display: none; } /* el título de la portada es el del banner */
body.home article.page { padding-bottom: clamp(48px, 7vw, 96px); }
body .entry-content > .idi-seccion { margin-top: clamp(56px, 8vw, 104px); font-size: 1rem; line-height: 1.6; }
body .entry-content .idi-seccion > h2 { margin: 0 0 8px; font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.06; letter-spacing: -.022em; }
body .entry-content .idi-seccion > p { max-width: 40rem; margin: 0 0 26px; color: var(--tinta-2); }
body .entry-content .idi-seccion > h3 { margin: 8px 0 14px; font-size: 1rem; color: var(--tinta-2); }
body .entry-content .idi-seccion > .wp-block-buttons { margin-top: 18px; }
/* cabecera de sección: título y texto a la izquierda, el botón a la derecha */
body .entry-content .idi-seccion__cab { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px 24px; margin: 0 0 26px; }
body .entry-content .idi-seccion__cab h2 { margin: 0 0 8px; font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.06; letter-spacing: -.022em; }
body .entry-content .idi-seccion__cab p { max-width: 40rem; margin: 0; color: var(--tinta-2); }
body .entry-content .idi-seccion__cab .wp-block-buttons { margin: 0; }
body .entry-content .idi-seccion__cab .wp-block-button__link { min-height: 40px; padding: 0 1.05em; font-size: .95rem; }

/* "Qué hacemos": cuatro áreas con su color */
body .entry-content .wp-block-columns.idi-areas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 clamp(20px, 3vw, 40px); margin: 0; }
body .entry-content .idi-areas > .wp-block-column { --c: var(--fucsia); display: grid; gap: 10px; align-content: start; margin: 0; padding-top: 18px; border-top: 3px solid var(--c); flex-basis: auto; }
body .entry-content .idi-areas > .wp-block-column:nth-child(2) { --c: #9DA735; }
body .entry-content .idi-areas > .wp-block-column:nth-child(3) { --c: #2BA6ED; }
body .entry-content .idi-areas > .wp-block-column:nth-child(4) { --c: #E5346A; }
body .entry-content .idi-areas h3 { margin: 0; font-size: 1.25rem; }
body .entry-content .idi-areas p { margin: 0; color: var(--tinta-2); }
body #page-container .idi-areas a { font-weight: 600; color: color-mix(in srgb, var(--c) 72%, black); }

/* vídeos, de dos en dos */
body .entry-content .wp-block-columns.idi-videos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2.4vw, 28px); margin: 0; }
body .entry-content .idi-videos > .wp-block-column { margin: 0; flex-basis: auto; }

/* "Confían en nosotros": los logos en color; escuelas e instituciones fijas en rejilla, editoriales en carrusel */
body .entry-content .wp-block-gallery.idi-logos { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px !important; margin: 0 0 28px; }
body .entry-content .wp-block-gallery.idi-logos > .wp-block-image {
  display: grid !important;
  place-items: center;
  width: auto !important;
  height: 92px;
  margin: 0 !important;
  padding: 14px;
  border-radius: 16px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--linea);
}
body .entry-content .wp-block-gallery.idi-logos img { width: auto !important; max-width: 100%; height: auto !important; max-height: 60px; object-fit: contain; }
/* carrusel de editoriales: una fila a todo el ancho de la pantalla que avanza sola de derecha a izquierda;
   carrusel.js repite los logos para que no se acabe y le pone .is-activo. Sin JS o con "reducir movimiento", fila desplazable */
body #main-content { overflow-x: clip; } /* lo que sale del ancho de la pantalla no crea barra de desplazamiento */
body .entry-content .idi-carrusel { width: 100vw; margin: 0 calc(50% - 50vw) 28px; overflow-x: auto; scrollbar-width: none; }
body .entry-content .idi-carrusel.is-activo { overflow: hidden; }
body .entry-content .idi-carrusel .wp-block-gallery.idi-logos { display: flex !important; flex-wrap: nowrap !important; gap: 0 !important; width: max-content; margin: 0; }
body .entry-content .idi-carrusel .wp-block-gallery.idi-logos > .wp-block-image { flex: none; width: 184px !important; margin: 0 12px 0 0 !important; } /* margen y no gap: así cada vuelta mide justo 1/copias */
body .entry-content .idi-carrusel.is-activo .idi-logos { animation: idi-carrusel var(--idi-dur, 90s) linear infinite; }
@media (hover: hover) { body .entry-content .idi-carrusel.is-activo:hover .idi-logos { animation-play-state: paused; } }
@keyframes idi-carrusel { to { transform: translateX(calc(-100% / var(--idi-copias, 2))); } }

/* "Formación con ventajas": dos tarjetas con imagen, texto y botón */
body .entry-content .idi-promos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2.4vw, 28px); }
body .entry-content .idi-promo { display: grid; grid-template-rows: auto 1fr; overflow: hidden; border-radius: 26px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea); }
body .entry-content .idi-promo__img { margin: 0; aspect-ratio: 2 / 1; overflow: hidden; background: #f0eff1; }
body .entry-content .idi-promo__img img { width: 100%; height: 100%; object-fit: cover; }
body .entry-content .idi-promo__txt { display: grid; gap: 10px; align-content: start; padding: 22px 24px 26px; }
body .entry-content .idi-promo__txt > * { margin: 0; }
body .entry-content .idi-promo__txt h3 { font-size: 1.25rem; }
body .entry-content .idi-promo__txt p { color: var(--tinta-2); }
@media (max-width: 860px) { body .entry-content .idi-promos { grid-template-columns: minmax(0, 1fr); } }

/* botón de cristal en los bloques ("Ver todas las actividades realizadas") */
body .entry-content .wp-block-button.idi-cristal .wp-block-button__link,
body .entry-content .wp-block-button.idi-cristal .wp-block-button__link:hover {
  background: rgba(255, 255, 255, .7);
  border-color: rgba(255, 255, 255, .85);
  color: var(--tinta) !important;
  text-shadow: none;
  box-shadow: inset 0 1px 0 #fff, 0 10px 24px -14px rgba(27, 23, 25, .35);
}

@media (max-width: 1080px) {
  body .entry-content .wp-block-columns.idi-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
}
@media (max-width: 860px) {
  body .entry-content .wp-block-columns.idi-videos { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  body .entry-content .wp-block-columns.idi-areas { grid-template-columns: minmax(0, 1fr); }
  body .entry-content .wp-block-gallery.idi-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .entry-content .idi-carrusel .wp-block-gallery.idi-logos > .wp-block-image { width: 150px !important; }
}


/* ---------- páginas: el texto, a un ancho cómodo de lectura; lo ancho (rejillas, galerías, listados) ocupa todo ---------- */
body.page:not(.home) .entry-content > :is(p, h2, h3, h4, ul, ol, blockquote, .wp-block-quote, .wp-block-list, .wp-block-buttons) { max-width: 760px; }
body.page:not(.home) .entry-content > .wp-block-image { max-width: 760px; }
body.page:not(.home) .entry-content > .wp-block-image img { border-radius: var(--r-poster); }
body.page:not(.home) .entry-content > h2 { margin-top: 2em; }

/* ---------- páginas con cabecera (Quiénes somos): título, entradilla y foto; una barra para saltar entre ellas; bloques ---------- */
body.page article:has(.idi-pag-cab) .main_title { display: none; } /* el título va en la cabecera (h1) */
body.page article:has(.idi-pag-cab) { padding-bottom: clamp(56px, 8vw, 104px); }
body .entry-content .idi-pag-cab {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(28px, 5vw, 80px);
  align-items: center;
  margin: clamp(4px, 2vw, 24px) 0 0;
}
body .entry-content .idi-pag-cab__txt > * { margin: 0; }
body .entry-content .idi-pag-cab h1 { margin-bottom: 20px; font-size: clamp(2.3rem, 5vw, 4rem); line-height: 1; letter-spacing: -.03em; }
body .entry-content p.idi-entradilla { max-width: 34rem; font-size: clamp(1.15rem, 1.7vw, 1.45rem); line-height: 1.45; color: var(--tinta-2); }
/* la foto, como un póster apoyado en la mesa de luz */
body .entry-content .idi-pag-cab__foto { margin: 0; transform: rotate(1.6deg); }
body .entry-content .idi-pag-cab__foto img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 24px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, .06), 0 34px 60px -30px rgba(27, 23, 25, .55);
}
/* las páginas hermanas, en pastillas; la actual, en tinta */
body .entry-content .idi-hermanas { display: flex; flex-wrap: wrap; gap: 8px; margin: clamp(32px, 4.5vw, 52px) 0 0; }
body #page-container .idi-hermanas a {
  padding: 9px 16px;
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .75);
  box-shadow: inset 0 0 0 1px var(--linea);
  color: var(--tinta);
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 150ms;
}
body #page-container .idi-hermanas a:hover { background: #fff; }
body #page-container .idi-hermanas a:active { transform: scale(.97); }
body #page-container .idi-hermanas a[aria-current="page"] { background: var(--tinta); color: #fff; box-shadow: none; }
/* tarjetas de texto (misión y visión, valores, objetivos, personas): blancas, con una marca de color como "Qué hacemos" en la portada */
body .entry-content .idi-tarjetas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 2vw, 22px); }
body .entry-content .idi-tarjetas--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body .entry-content .idi-tarjeta-txt {
  --c: var(--fucsia);
  display: grid;
  align-content: start;
  gap: 10px;
  margin: 0;
  padding: 22px 24px 26px;
  border-radius: 22px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--linea);
}
body .entry-content .idi-tarjeta-txt::before { content: ""; width: 28px; height: 4px; margin-bottom: 4px; border-radius: 2px; background: var(--c); }
body .entry-content .idi-tarjeta-txt:nth-child(3n+2) { --c: var(--oliva); }
body .entry-content .idi-tarjeta-txt:nth-child(3n) { --c: #2BA6ED; }
body .entry-content .idi-tarjeta-txt > * { margin: 0; }
body .entry-content .idi-tarjeta-txt h2 { font-size: clamp(1.4rem, 2.2vw, 1.75rem); }
body .entry-content .idi-tarjeta-txt h3 { font-size: 1.15rem; line-height: 1.25; }
body .entry-content .idi-tarjeta-txt p { color: var(--tinta-2); }
body .entry-content .idi-tarjetas--2 .idi-tarjeta-txt { padding: clamp(24px, 3vw, 34px); }
:is(#left-area, body) .entry-content .idi-personas ul[class] { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; color: var(--tinta-2); font-size: .97rem; line-height: 1.5; }
body .entry-content .idi-personas li + li { margin-top: 0; }
/* niveles de una formación (Escuelas y CRP): el nivel y la duración arriba, y el botón siempre abajo */
body .entry-content .idi-nivel { display: flex; flex-direction: column; }
body .entry-content p.idi-nivel__meta { font-size: .92rem; font-weight: 700; color: color-mix(in srgb, var(--c) 70%, black); }
body .entry-content .idi-nivel h3 { font-size: 1.25rem; }
body .entry-content p.idi-nivel__nota { padding: 12px 14px; border-radius: 14px; background: color-mix(in srgb, var(--c) 9%, white); color: var(--tinta); }
:is(#left-area, body) .entry-content .idi-nivel ul[class] { padding-left: 1.2em; color: var(--tinta-2); line-height: 1.55; }
body .entry-content .idi-nivel .wp-block-buttons { margin-top: auto; padding-top: 10px; }
/* guías de lectura: una estantería con la portada real de cada PDF, apoyada en la mesa de luz */
body .entry-content .idi-guias { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 2vw, 22px); }
body .entry-content .idi-guia { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 12px 12px 18px; border-radius: 22px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea); }
body .entry-content .idi-guia > * { margin: 0; }
body .entry-content .idi-guia > :not(.idi-guia__portada) { margin-inline: 6px; }
body .entry-content figure.idi-guia__portada { display: grid; place-items: center; aspect-ratio: 1; margin-bottom: 6px; padding: 16px; border-radius: 14px; background: var(--luz); }
body .entry-content figure.idi-guia__portada img { width: auto; max-width: 100%; height: auto; max-height: 100%; min-height: 0; border-radius: 3px; box-shadow: 0 1px 2px rgba(0, 0, 0, .08), 0 14px 26px -16px rgba(27, 23, 25, .5); }
body .entry-content p.idi-guia__meta { font-size: .85rem; font-weight: 600; color: var(--tinta-3); }
body .entry-content .idi-guia h3 { font-size: 1.05rem; line-height: 1.25; }
body .entry-content .idi-guia p:not(.idi-guia__meta) { font-size: .93rem; line-height: 1.5; color: var(--tinta-2); }
body .entry-content .idi-guia .wp-block-buttons { margin-top: auto; padding-top: 8px; }
body .entry-content .idi-guia .wp-block-button__link {
  min-height: 40px;
  padding: 0 1em !important;
  border-color: rgba(27, 23, 25, .18);
  background: #fff !important;
  box-shadow: none;
  color: var(--tinta) !important;
  font-size: .9rem;
  text-shadow: none;
}
body .entry-content .idi-guia .wp-block-button__link:hover { background: var(--luz) !important; }
/* reseñas: a todo el ancho, en dos columnas: la portada del libro (la pone el plugin) a la izquierda, acompañando
   al bajar, y el texto a la derecha a un ancho cómodo de lectura */
body.single-post article.et_pb_post:has(.idi-resena-portada) { max-width: none; }
body.single-post .entry-content:has(> .idi-resena-portada) {
  display: grid;
  grid-template-columns: minmax(0, 360px) minmax(0, 760px);
  column-gap: clamp(32px, 5vw, 80px);
  align-items: start;
}
body.single-post .entry-content:has(> .idi-resena-portada) > * { grid-column: 2; }
body.single-post .entry-content > .idi-resena-portada {
  grid-column: 1;
  grid-row: 1 / span 80;
  position: sticky;
  top: calc(110px + var(--wp-admin--admin-bar--height, 0px));
  margin: 6px 0 0;
}
body .entry-content .idi-resena-portada img { display: block; width: 100%; height: auto; border-radius: 6px; box-shadow: 0 2px 4px rgba(0, 0, 0, .08), 0 24px 40px -24px rgba(27, 23, 25, .55); }
/* contacto: el formulario y los datos lado a lado, en dos tarjetas; debajo, el mapa */
body .entry-content .idi-pag-cab--sin-foto { grid-template-columns: minmax(0, 1fr); }
body .entry-content .idi-contacto { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(18px, 3vw, 32px); align-items: start; }
body .entry-content :is(.idi-contacto__form, .idi-contacto__datos) { margin: 0; padding: clamp(22px, 3vw, 36px); border-radius: 26px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea); }
body .entry-content :is(.idi-contacto__form, .idi-contacto__datos) > * { margin: 0; }
body .entry-content :is(.idi-contacto__form, .idi-contacto__datos) > * + * { margin-top: 14px; }
body .entry-content :is(.idi-contacto__form, .idi-contacto__datos) h2 { font-size: clamp(1.4rem, 2.2vw, 1.75rem); }
body .entry-content .idi-contacto__datos h2:not(:first-child) { margin-top: 30px; }
body #page-container .idi-dato-grande { font: 700 clamp(1.05rem, 1.5vw, 1.25rem)/1.7 var(--f-titulo); color: var(--tinta); text-decoration: none; overflow-wrap: anywhere; }
body #page-container .idi-dato-grande:hover { color: var(--fucsia-lo); }
body .entry-content p.idi-sede { padding: 14px 16px; border-radius: 16px; background: var(--luz); line-height: 1.6; }
body .entry-content p.idi-contacto__nota { font-size: .92rem; color: var(--tinta-3); }
body .entry-content .idi-mapa { margin: 0; }
body .entry-content .idi-mapa iframe { display: block; width: 100%; height: clamp(300px, 38vw, 440px); border: 0; border-radius: 24px; background: #e8e6e3; box-shadow: inset 0 0 0 1px var(--linea); }
body .entry-content .idi-mapa figcaption { margin-top: 10px; font-size: .92rem; }
/* formularios (Contact Form 7) con el diseño de la web */
body .wpcf7 form > p { margin: 0 0 16px; padding: 0; }
body .wpcf7 label { display: grid; gap: 6px; font-size: .95rem; font-weight: 600; color: var(--tinta); }
body .wpcf7 label br { display: none; }
body .wpcf7 .wpcf7-form-control-wrap { display: block; }
body .wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], textarea) {
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border: 1px solid rgba(27, 23, 25, .16);
  border-radius: 14px;
  background: var(--luz);
  box-shadow: none;
  color: var(--tinta);
  font: 400 1rem/1.4 var(--f-texto); /* 16 px: en el móvil no hace zoom al escribir */
}
body .wpcf7 textarea { height: 170px; resize: vertical; }
body .wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], textarea):focus { outline: 3px solid color-mix(in srgb, var(--fucsia) 30%, transparent); outline-offset: 1px; border-color: var(--fucsia); background: #fff; }
body .wpcf7 .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
body .wpcf7 .wpcf7-acceptance label { display: flex; align-items: flex-start; gap: 10px; font-size: .93rem; font-weight: 400; line-height: 1.5; }
body .wpcf7 input[type="checkbox"] { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--fucsia); }
body .wpcf7 .wpcf7-not-valid { border-color: var(--fucsia); }
body .wpcf7 .wpcf7-not-valid-tip { margin-top: 6px; color: var(--fucsia-lo); font-size: .88rem; font-weight: 600; }
body .wpcf7 .wpcf7-spinner { margin: 0 0 0 12px; vertical-align: middle; }
body .wpcf7 form .wpcf7-response-output { margin: 18px 0 0; padding: 12px 16px; border: 0; border-radius: 14px; background: color-mix(in srgb, var(--fucsia) 9%, white); color: var(--fucsia-lo); font-weight: 600; }
body .wpcf7 form.sent .wpcf7-response-output { background: color-mix(in srgb, var(--oliva) 16%, white); color: var(--oliva-txt); }
/* newsletter: el formulario de Brevo con el diseño de la web (se le han quitado sus estilos en línea) */
body .entry-content .idi-boletin { margin: 0; padding: clamp(22px, 3vw, 36px); border-radius: 26px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea); }
body .entry-content .idi-boletin > h2 { margin: 0 0 16px; font-size: clamp(1.4rem, 2.2vw, 1.75rem); }
body .entry-content p.idi-aviso { padding: 14px 16px; border-radius: 16px; background: color-mix(in srgb, var(--fucsia) 8%, white); color: var(--tinta); font-size: .95rem; line-height: 1.55; }
body .idi-boletin .sib-form { padding: 0; background: none; font-family: var(--f-texto); text-align: left; }
body .idi-boletin #sib-container { max-width: none; padding: 0; border: 0; background: none; }
body .idi-boletin #sib-form > div { padding: 0 0 16px; }
body .idi-boletin .sib-form .sib-form-block { padding: 0; }
body .idi-boletin .sib-form .entry__choice { padding-left: 0; text-indent: 0; } /* Brevo sangra la casilla con text-indent negativo */
body .idi-boletin .sib-form .entry__label.entry__label_optin { display: inline; margin: 0; }
body .idi-boletin .sib-form .entry__label { display: block; max-width: none; margin: 0 0 6px; font-size: .95rem; font-weight: 600; color: var(--tinta); }
body .idi-boletin .sib-form .entry__field { display: flex; align-items: center; min-height: 48px; border: 1px solid rgba(27, 23, 25, .16); border-radius: 14px; background: var(--luz); box-shadow: none; }
body .idi-boletin .sib-form .entry__field:focus-within { border-color: var(--fucsia); background: #fff; box-shadow: 0 0 0 3px color-mix(in srgb, var(--fucsia) 25%, transparent); }
body .idi-boletin .sib-form .input:not(.input_replaced) { box-sizing: border-box; width: 100%; height: auto; min-height: 46px; padding: 0 16px; color: var(--tinta); font: 400 1rem/1.4 var(--f-texto); } /* 16 px: sin zoom en el móvil */
body .idi-boletin .sib-form .entry__error { max-width: none; margin-top: 6px; color: var(--fucsia-lo); font-size: .88rem; font-weight: 600; line-height: 1.4; }
body .idi-boletin #sib-form .entry__choice label { display: flex; align-items: flex-start; gap: 10px; font-size: .93rem; line-height: 1.5; cursor: pointer; }
body .idi-boletin .entry__choice p { margin: 0; padding: 0; }
body .idi-boletin .sib-form .checkbox { flex: none; width: 20px; height: 20px; margin: 2px 0 0; border: 1.5px solid rgba(27, 23, 25, .35); border-radius: 6px; vertical-align: 0; }
body .idi-boletin .sib-form .input_replaced:checked + .checkbox_tick_positive { background: var(--fucsia); border-color: var(--fucsia); }
body .idi-boletin .sib-form .input_replaced:focus-visible + .checkbox { box-shadow: 0 0 0 3px color-mix(in srgb, var(--fucsia) 30%, transparent); }
body .idi-boletin .sib-form__declaration { display: flex; align-items: flex-start; gap: 12px; }
body .idi-boletin .declaration-block-icon { flex: none; width: 34px; margin: 0; padding: 0; }
body .idi-boletin .declaration-block-icon svg { width: 34px; height: 34px; }
body .idi-boletin .sib-form__declaration p { margin: 0; padding: 0; color: var(--tinta-3); font-size: .85rem; line-height: 1.5; }
body .idi-boletin .sib-form-block__button.idi-btn { min-height: 50px; padding: 0 1.6em; border-radius: var(--r-pill); font: 600 1rem/1 var(--f-texto); }
body .idi-boletin .sib-form-message-panel { max-width: none; margin: 0 0 16px; padding: 4px 8px; border: 0; border-radius: 14px; font-family: var(--f-texto); font-size: .95rem; }
body .idi-boletin .sib-form-message-panel--active { display: block; }
body .idi-boletin #error-message { background: color-mix(in srgb, var(--fucsia) 9%, white); color: var(--fucsia-lo); }
body .idi-boletin #success-message { background: color-mix(in srgb, var(--oliva) 16%, white); color: var(--oliva-txt); }
/* ---------- «Mi cuenta» (WooCommerce): el menú en pastillas a la izquierda, el contenido a la derecha ---------- */
body.woocommerce-account #main-content .container { padding-bottom: clamp(56px, 8vw, 104px); }
body.woocommerce-account.logged-in .entry-content > .woocommerce { display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
body.woocommerce-account.logged-in .entry-content > .woocommerce > * { grid-column: 1 / -1; } /* avisos y demás, a todo el ancho */
body.woocommerce-account .woocommerce-notices-wrapper:empty { display: none; }
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; margin: 0; }
body.woocommerce-account.logged-in .entry-content > .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; }
body.woocommerce-account.logged-in .entry-content > .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; }
/* en el móvil WooCommerce esconde el número de pedido de la tabla: se muestra como una fila más */
@media (max-width: 768px) {
  body .woocommerce table.shop_table_responsive tbody th { display: block; text-align: right; }
  body .woocommerce table.shop_table_responsive tbody th::before { content: attr(data-title) ": "; float: left; font-weight: 700; }
}
:is(#left-area, body) .entry-content .woocommerce-MyAccount-navigation ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
body .entry-content .woocommerce-MyAccount-navigation li { margin: 0; }
body #page-container .woocommerce-MyAccount-navigation a {
  display: block;
  padding: 11px 16px;
  border-radius: 14px;
  color: var(--tinta);
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none;
  transition: background-color 150ms;
}
body #page-container .woocommerce-MyAccount-navigation a:hover { background: #fff; box-shadow: inset 0 0 0 1px var(--linea); }
body #page-container .woocommerce-MyAccount-navigation .is-active a { background: var(--tinta); color: #fff; box-shadow: none; }
body #page-container .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--tinta-3); font-weight: 500; }
@media (max-width: 860px) {
  body.woocommerce-account.logged-in .entry-content > .woocommerce { grid-template-columns: minmax(0, 1fr); }
  body.woocommerce-account.logged-in .entry-content > .woocommerce > :is(.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content) { grid-column: 1; }
  :is(#left-area, body) .entry-content .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; }
  body #page-container .woocommerce-MyAccount-navigation a { padding: 9px 14px; border-radius: var(--r-pill); background: rgba(255, 255, 255, .75); box-shadow: inset 0 0 0 1px var(--linea); }
}

/* ---------- tienda (WooCommerce): avisos, pago, «Gracias», acceso, Club y donativos ----------
   Divi pinta los avisos del color principal y los campos en gris sin borde (con !important): se devuelven al diseño de la web. */
body .woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
  --marca: var(--tinta-3);
  position: relative;
  margin: 0 0 18px;
  padding: 14px 18px 14px 22px !important;
  border: 0;
  border-radius: 16px;
  background: #fff !important;
  color: var(--tinta) !important;
  box-shadow: inset 0 0 0 1px var(--linea), inset 4px 0 0 var(--marca);
  font-size: .97rem;
  line-height: 1.5;
  list-style: none;
}
body .woocommerce .woocommerce-message { --marca: var(--oliva); }
body .woocommerce .woocommerce-error { --marca: var(--fucsia); }
body .woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before { display: none; }
body .woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-NoticeGroup):focus { outline: none; } /* WooCommerce les da el foco para leerlos */
body .woocommerce .woocommerce-error li { margin: 0; padding: 0; }
body .woocommerce .woocommerce-error li + li { margin-top: 4px; }
body #page-container .woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) { color: var(--fucsia-lo); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
body .woocommerce :is(.woocommerce-message, .woocommerce-info) .button { float: right; min-height: 38px; margin: -6px 0 -6px 16px; padding: 0 1.1em; border-color: var(--linea); background: var(--luz) !important; box-shadow: none; color: var(--tinta) !important; font-size: .9rem; text-shadow: none; }
body .woocommerce-notices-wrapper:empty { display: none; }

/* campos: como los formularios de la web */
body .woocommerce form .form-row { float: none; width: auto; margin: 0 0 16px; padding: 0; }
body .woocommerce form .form-row label { display: block; margin: 0 0 6px; color: var(--tinta); font-size: .95rem; font-weight: 600; line-height: 1.35; }
body .woocommerce form .form-row label.screen-reader-text { position: absolute; }
body .woocommerce form .form-row .required { color: var(--fucsia); text-decoration: none; }
body .woocommerce form .form-row .optional { color: var(--tinta-3); font-weight: 400; }
body .woocommerce form .form-row :is(input.input-text, textarea, select),
body .woocommerce .select2-container--default .select2-selection--single {
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 12px 16px !important;
  border: 1px solid rgba(27, 23, 25, .16) !important;
  border-radius: 14px;
  background: var(--luz);
  box-shadow: none;
  color: var(--tinta);
  font: 400 1rem/1.4 var(--f-texto); /* 16 px: en el móvil no hace zoom al escribir */
}
body .woocommerce form .form-row textarea { min-height: 110px; resize: vertical; }
body .woocommerce form .form-row :is(input.input-text, textarea, select):focus,
body .woocommerce .select2-container--open .select2-selection--single,
body .woocommerce .select2-container--focus .select2-selection--single {
  outline: 3px solid color-mix(in srgb, var(--fucsia) 30%, transparent);
  outline-offset: 1px;
  border-color: var(--fucsia) !important;
  background: #fff;
}
body .woocommerce form .form-row.woocommerce-invalid :is(input.input-text, select, .select2-selection) { border-color: var(--fucsia) !important; }
body .woocommerce form .form-row.woocommerce-validated :is(input.input-text, select, .select2-selection) { border-color: rgba(27, 23, 25, .16) !important; }
body .woocommerce form .form-row .checkout-inline-error-message { margin: 6px 0 0; color: var(--fucsia-lo); font-size: .88rem; font-weight: 600; }
body .woocommerce .select2-container--default .select2-selection--single { display: flex; align-items: center; height: auto; }
body .woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0 24px 0 0; color: var(--tinta); line-height: 1.4; }
body .woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; right: 12px; height: 20px; transform: translateY(-50%); }
body .select2-dropdown { overflow: hidden; border: 1px solid var(--linea); border-radius: 14px; box-shadow: 0 18px 40px -18px rgba(27, 23, 25, .35); font-family: var(--f-texto); }
body .select2-container--default .select2-search--dropdown .select2-search__field { min-height: 40px; padding: 6px 12px; border: 1px solid rgba(27, 23, 25, .16); border-radius: 10px; font-size: 1rem; }
body .select2-container--default .select2-results__option--highlighted[aria-selected],
body .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--fucsia); color: #fff; }
body .woocommerce :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--fucsia); }

/* pago: los datos a la izquierda; el resumen, la forma de pago y el botón a la derecha, acompañando al bajar */
body.woocommerce-checkout #main-content .container { padding-bottom: clamp(56px, 8vw, 104px); }
body.woocommerce-checkout .entry-content form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  grid-template-areas: "avisos avisos" "datos titulo" "datos resumen";
  grid-template-rows: auto auto 1fr;
  column-gap: clamp(24px, 4vw, 56px);
  align-items: start;
}
body.woocommerce-checkout form.checkout::before,
body.woocommerce-checkout form.checkout::after,
body.woocommerce-checkout #customer_details::before,
body.woocommerce-checkout #customer_details::after,
body.woocommerce-checkout form.checkout > wc-order-attribution-inputs { display: none; }
body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-area: avisos; }
body.woocommerce-checkout form.checkout > #customer_details { grid-area: datos; }
body.woocommerce-checkout form.checkout > #order_review_heading { grid-area: titulo; }
body.woocommerce-checkout form.checkout > #order_review { grid-area: resumen; position: sticky; top: 104px; }
body.woocommerce-checkout #customer_details { display: grid; gap: 20px; }
body.woocommerce-checkout #customer_details :is(.col-1, .col-2),
body.woocommerce-checkout #order_review,
body .woocommerce :is(.woocommerce-order-details, .woocommerce-customer-details, .cart_totals),
body .woocommerce :is(form.woocommerce-form-login, form.woocommerce-ResetPassword, form.lost_reset_password, form.checkout_coupon) {
  float: none;
  width: auto;
  margin: 0;
  padding: clamp(22px, 3vw, 32px);
  border: 0;
  border-radius: 26px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--linea);
}
body.woocommerce-checkout #order_review { box-shadow: inset 0 0 0 1px var(--linea), 0 28px 56px -34px rgba(27, 23, 25, .4); }
body.woocommerce-checkout #customer_details .col-2:not(:has(.woocommerce-additional-fields)) { display: none; }
body.woocommerce-checkout .woocommerce :is(h3, #order_review_heading),
body .woocommerce :is(.woocommerce-order-details, .woocommerce-customer-details, .cart_totals, .idi-transferencia) h2 {
  margin: 0 0 16px;
  padding: 0;
  font-size: clamp(1.25rem, 1.8vw, 1.45rem);
}
body.woocommerce-checkout #order_review_heading { margin-top: 4px; }
body .woocommerce :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 16px; }
body .woocommerce :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > .form-row { grid-column: 1 / -1; }
body .woocommerce :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > .form-row-first { grid-column: 1; }
body .woocommerce :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > .form-row-last { grid-column: 2; }
body.woocommerce-checkout .woocommerce-additional-fields .form-row:last-child { margin-bottom: 0; }
body.woocommerce-checkout form.woocommerce-form-login,
body.woocommerce-checkout form.checkout_coupon { margin: 0 0 18px; }

/* tablas de la tienda (resumen, pedido, carrito): sin rejilla, con una línea entre filas */
body .woocommerce table.shop_table { margin: 0; border: 0; border-collapse: collapse; border-radius: 0; background: none; }
body .woocommerce table.shop_table :is(th, td) { padding: 12px 0; border: 0; border-top: 1px solid var(--linea); background: none; color: var(--tinta); font-size: .97rem; line-height: 1.45; vertical-align: top; }
body .woocommerce table.shop_table thead th { padding-top: 0; border-top: 0; color: var(--tinta-3); font-size: .85rem; font-weight: 600; }
body .woocommerce table.shop_table :is(td, th):last-child { padding-left: 16px; text-align: right; white-space: nowrap; }
body .woocommerce table.shop_table tbody tr:first-child :is(td, th) { border-top-color: rgba(27, 23, 25, .16); }
body #page-container .woocommerce table.shop_table .product-name a { color: var(--tinta); font-weight: 600; text-decoration: none; }
body #page-container .woocommerce table.shop_table .product-name a:hover { color: var(--fucsia-lo); }
body .woocommerce table.shop_table .product-quantity { color: var(--tinta-3); font-weight: 600; }
body .woocommerce table.shop_table tfoot th { font-weight: 600; }
body .woocommerce table.shop_table .order-total :is(th, td) { padding-top: 14px; border-top-color: rgba(27, 23, 25, .16); font: 700 1.2rem/1.3 var(--f-titulo); }
body .woocommerce table.shop_table dl.variation { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 8px; margin: 8px 0 0; color: var(--tinta-2); font-size: .88rem; font-weight: 400; line-height: 1.45; }
body .woocommerce table.shop_table dl.variation :is(dt, dd) { float: none; margin: 0; padding: 0; }
body .woocommerce table.shop_table dl.variation dt { font-weight: 600; }
body .woocommerce table.shop_table dl.variation p { margin: 0; padding: 0; }
body .woocommerce table.shop_table .wc-item-meta { margin: 8px 0 0; padding: 0; color: var(--tinta-2); font-size: .88rem; list-style: none; }

/* forma de pago: cada una, una tarjeta que se marca al elegirla */
body.woocommerce-checkout #payment { margin: 20px 0 0; border-radius: 0; background: none; }
body.woocommerce-checkout #payment ul.payment_methods { display: grid; gap: 10px; margin: 0; padding: 0 !important; border: 0; list-style: none; }
body.woocommerce-checkout #payment ul.payment_methods::before,
body.woocommerce-checkout #payment ul.payment_methods::after { display: none; }
body.woocommerce-checkout #payment ul.payment_methods li {
  margin: 0;
  padding: 14px 16px;
  border-radius: 18px;
  background: var(--luz);
  box-shadow: inset 0 0 0 1px var(--linea);
  line-height: 1.4;
  list-style: none;
  transition: box-shadow 150ms ease, background-color 150ms ease;
}
body.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { background: #fff; box-shadow: inset 0 0 0 2px var(--fucsia), 0 10px 24px -18px rgba(220, 38, 87, .7); }
body.woocommerce-checkout #payment ul.payment_methods li > input.input-radio { width: 18px; height: 18px; margin: 0 10px 0 0; vertical-align: -3px; }
body.woocommerce-checkout #payment ul.payment_methods li label { display: inline; color: var(--tinta); font-weight: 600; cursor: pointer; }
body.woocommerce-checkout #payment ul.payment_methods li label img { float: none; max-height: 22px; width: auto; margin: 0 0 0 8px; vertical-align: middle; }
body.woocommerce-checkout #payment div.payment_box { margin: 8px 0 0; padding: 0 0 0 28px !important; border-radius: 0; background: none !important; box-shadow: none; color: var(--tinta-2); font-size: .92rem; line-height: 1.5; }
body.woocommerce-checkout #payment div.payment_box::before { display: none; }
body.woocommerce-checkout #payment div.payment_box p { margin: 0; padding: 0; }
body.woocommerce-checkout #payment div.form-row.place-order { margin: 18px 0 0; padding: 0 !important; }
body.woocommerce-checkout .woocommerce-privacy-policy-text p { margin: 0 0 14px; padding: 0; color: var(--tinta-3); font-size: .85rem; line-height: 1.5; }
body.woocommerce-checkout .woocommerce-privacy-policy-text a { color: var(--tinta-2); }
body.woocommerce-checkout #payment #place_order { float: none; width: 100%; min-height: 56px; font-size: 1.05rem; }
/* el aviso de Redsys en pruebas (solo en el staging): discreto */
body.woocommerce-checkout .checkout-message { margin: 0 0 18px !important; padding: 10px 16px !important; border: 0 !important; border-radius: 14px !important; background: #FFF4DC !important; color: #6B4A00 !important; font-size: .88rem; }

/* «Gracias»: el resultado, los datos del pedido en fichas y, si es por transferencia, los datos de la cuenta bien a la vista */
body.woocommerce-order-received .woocommerce-order { display: grid; gap: 22px; max-width: 880px; }
body.woocommerce-order-received .woocommerce-order > * { margin: 0; }
body .woocommerce .woocommerce-notice.woocommerce-thankyou-order-received { margin: 0; padding: 0; background: none; color: var(--tinta); font: 700 clamp(1.4rem, 2.6vw, 1.9rem)/1.2 var(--f-titulo); letter-spacing: -.015em; text-wrap: balance; }
body .woocommerce ul.order_details { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0 !important; list-style: none; }
body .woocommerce ul.order_details::before,
body .woocommerce ul.order_details::after { display: none; }
body .woocommerce ul.order_details li { float: none; margin: 0; padding: 10px 16px; border: 0; border-radius: 16px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea); color: var(--tinta-3); font-size: .82rem; line-height: 1.4; text-transform: none; }
body .woocommerce ul.order_details li strong { display: block; margin-top: 2px; color: var(--tinta); font-size: 1rem; }
body .woocommerce .idi-transferencia { padding: clamp(22px, 3vw, 32px); border-radius: 26px; background: #fff; box-shadow: inset 0 0 0 2px var(--fucsia), 0 24px 48px -32px rgba(220, 38, 87, .6); }
body .woocommerce .idi-transferencia dl { display: grid; gap: 0; margin: 0; }
body .woocommerce .idi-transferencia dl > div { display: grid; grid-template-columns: 9em minmax(0, 1fr); gap: 12px; padding: 9px 0; border-top: 1px solid var(--linea); }
body .woocommerce .idi-transferencia :is(dt, dd) { margin: 0; padding: 0; }
body .woocommerce .idi-transferencia dt { color: var(--tinta-3); }
body .woocommerce .idi-transferencia dd { font-weight: 700; overflow-wrap: anywhere; user-select: all; }
body .woocommerce .idi-transferencia p { margin: 14px 0 0; padding: 0; color: var(--tinta-2); font-size: .93rem; }
/* datos de acceso (Zoom…) de cada actividad pagada, dentro del pedido */
body .woocommerce .idi-acceso { margin: 22px 0 0; padding: 18px 20px; border-radius: 18px; background: color-mix(in srgb, var(--oliva) 12%, white); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--oliva) 30%, transparent); }
body .woocommerce .idi-acceso h2 { margin: 0 0 10px; font-size: 1.2rem; }
body .woocommerce .idi-acceso h3 { margin: 0 0 4px; padding: 0; font-size: 1rem; }
body .woocommerce .idi-acceso p { margin: 0; padding: 0; overflow-wrap: anywhere; }
body .woocommerce .idi-acceso__item + .idi-acceso__item { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--linea); }
body .woocommerce .woocommerce-customer-details address { margin: 0; padding: 0; border: 0; font-style: normal; line-height: 1.6; }
body .woocommerce .woocommerce-customer-details .woocommerce-column__title { margin: 0 0 10px; }

/* acceso a «Mi cuenta» y contraseña olvidada: una tarjeta estrecha */
body.woocommerce-account:not(.logged-in) .entry-content > .woocommerce { max-width: 520px; }
body.woocommerce-account:not(.logged-in) .entry-content > .woocommerce > h2 { margin: 0 0 16px; font-size: clamp(1.4rem, 2.2vw, 1.75rem); }
body .woocommerce form.woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 0; margin: 4px 0 0; } /* sin hueco horizontal: los campos ocultos también cuentan */
body .woocommerce form .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 400; order: 2; }
body .woocommerce form.woocommerce-form-login .woocommerce-form-login__submit { order: 1; float: none; margin: 0 20px 0 0 !important; }
body .woocommerce :is(form.woocommerce-form-login, form.lost_reset_password) .lost_password { margin: 16px 0 0; padding: 0; font-size: .93rem; }
body #page-container .woocommerce .lost_password a { color: var(--tinta-2); }
body .woocommerce form.lost_reset_password > p:first-child { margin: 0 0 16px; color: var(--tinta-2); }
body .woocommerce .password-input { display: block; position: relative; }
body .woocommerce .show-password-input { top: 50%; right: 14px; transform: translateY(-50%); }

/* carrito (solo se ve si alguien entra a mano: las inscripciones van directas al pago) */
body.woocommerce-cart .woocommerce-cart-form { margin: 0 0 24px; padding: clamp(18px, 3vw, 28px); border-radius: 26px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea); }
body.woocommerce-cart .woocommerce-cart-form .product-thumbnail img { width: 64px; border-radius: 10px; }
body.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: auto; max-width: 480px; margin-left: auto; }
body.woocommerce-cart .wc-proceed-to-checkout { padding: 18px 0 0; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; min-height: 56px; margin: 0; font-size: 1.05rem; }
body .woocommerce .return-to-shop { margin: 0; }

/* «Mi cuenta»: el estado en el Club de Amigos */
body .woocommerce .idi-cuenta-club { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; margin: 0 0 24px; padding: 18px 20px; border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea), inset 4px 0 0 var(--oliva); }
body .woocommerce .idi-cuenta-club p { flex: 1 1 260px; margin: 0; padding: 0; }

/* Club de Amigos: el precio y el botón para unirse */
body .entry-content .idi-club-alta { display: grid; justify-items: start; gap: 16px; padding: clamp(24px, 3vw, 36px); border-radius: 26px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea), 0 28px 56px -34px rgba(27, 23, 25, .4); }
body .entry-content .idi-club-alta > p { margin: 0; padding: 0; }
body .entry-content .idi-club-alta__precio { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
body .entry-content .idi-club-alta__precio strong { color: var(--tinta); font: 700 clamp(2.6rem, 5vw, 3.4rem)/1 var(--f-titulo); letter-spacing: -.03em; }
body .entry-content .idi-club-alta__precio span { color: var(--tinta-3); }
body .entry-content .idi-club-alta__estado { padding: 10px 14px; border-radius: 14px; background: color-mix(in srgb, var(--oliva) 16%, white); color: var(--oliva-txt); font-weight: 600; }
body .entry-content .idi-club-alta .idi-btn { min-height: 56px; padding: 0 2em; font-size: 1.05rem; }
body .entry-content .idi-club-alta__nota { color: var(--tinta-3); font-size: .9rem; }

/* Donar: importes de un toque y otro importe a elección */
body .entry-content .idi-donar { display: grid; gap: 14px; margin-top: 18px; }
body .entry-content .idi-donar > p { margin: 0; padding: 0; }
body .entry-content .idi-donar__titulo { font-weight: 600; }
body .entry-content .idi-donar__importes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
body #page-container .idi-donar__importe {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  border-radius: 16px;
  background: var(--luz);
  box-shadow: inset 0 0 0 1px var(--linea);
  color: var(--tinta);
  font: 700 1.2rem/1 var(--f-titulo);
  text-decoration: none;
  transition: box-shadow 150ms ease, color 150ms ease, transform 120ms ease-out;
}
body #page-container .idi-donar__importe:hover { background: #fff; box-shadow: inset 0 0 0 2px var(--fucsia); color: var(--fucsia-lo); }
body #page-container .idi-donar__importe:active { transform: scale(.97); transition-duration: 60ms; }
body .entry-content .idi-donar__otro { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; }
body .entry-content .idi-donar__otro label { flex: 1 0 100%; font-size: .95rem; font-weight: 600; }
body .entry-content .idi-donar__campo { position: relative; flex: 1 1 140px; max-width: 220px; }
body .entry-content .idi-donar__campo input { width: 100%; min-height: 50px; padding: 0 40px 0 16px; border: 1px solid rgba(27, 23, 25, .16); border-radius: 14px; background: var(--luz); color: var(--tinta); font: 600 1.1rem/1 var(--f-texto); }
body .entry-content .idi-donar__campo input:focus { outline: 3px solid color-mix(in srgb, var(--fucsia) 30%, transparent); outline-offset: 1px; border-color: var(--fucsia); background: #fff; }
body .entry-content .idi-donar__campo > span { position: absolute; top: 50%; right: 16px; transform: translateY(-50%); color: var(--tinta-3); font-weight: 600; pointer-events: none; }
body .entry-content .idi-donar__nota { color: var(--tinta-3); font-size: .88rem; }

@media (max-width: 980px) {
  body.woocommerce-checkout .entry-content form.checkout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "avisos" "datos" "titulo" "resumen"; grid-template-rows: none; }
  body.woocommerce-checkout form.checkout > #order_review { position: static; }
  body.woocommerce-checkout #order_review_heading { margin-top: 28px; }
}
@media (max-width: 560px) {
  body .woocommerce :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) { grid-template-columns: minmax(0, 1fr); }
  body .woocommerce :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > :is(.form-row-first, .form-row-last) { grid-column: 1; }
  body .woocommerce .idi-transferencia dl > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  body .entry-content .idi-donar__importes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .woocommerce :is(.woocommerce-message, .woocommerce-info) .button { float: none; margin: 10px 0 0; }
}

/* ---------- plantillas: búsqueda, página no encontrada y categoría de artículos ---------- */
body:is(.search, .error404, .archive) #main-content .container { width: min(1280px, 100% - 2 * clamp(16px, 4vw, 48px)); max-width: none; padding-top: clamp(28px, 5vw, 56px); padding-bottom: clamp(56px, 8vw, 104px); }
body:is(.search, .error404, .archive) #main-content .container::before { display: none; }
body:is(.search, .error404, .archive) #left-area { width: 100%; padding: 0; float: none; }
body:is(.search, .error404, .archive) #sidebar { display: none; }
body .idi-busqueda__form { display: flex; gap: 10px; max-width: 760px; margin: clamp(24px, 3vw, 36px) 0 0; }
body .idi-busqueda__form .idi-buscador { flex: 1 1 auto; min-width: 0; }
body .idi-busqueda__form .idi-btn { flex: none; min-height: 46px; }
:is(#left-area, body) .entry-content ul.idi-malla[class] { margin: 0; padding: 0; list-style: none; } /* tarjetas en la búsqueda */
:is(#left-area, body) .entry-content ul.idi-resultados[class] { display: grid; gap: 12px; max-width: 860px; margin: 0; padding: 0; list-style: none; }
body .entry-content .idi-resultados li { margin: 0; padding: 16px 20px; border-radius: 18px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea); }
body #page-container .idi-resultados a { color: var(--tinta); font: 700 1.1rem/1.3 var(--f-titulo); text-decoration: none; }
body #page-container .idi-resultados a:hover { color: var(--fucsia-lo); }
body .entry-content .idi-resultados small { display: block; margin-top: 2px; color: var(--tinta-3); font-size: .85rem; font-weight: 600; }
body .entry-content .idi-resultados p { margin: 6px 0 0; color: var(--tinta-2); font-size: .95rem; }
body .entry-content .idi-caminos { margin-top: clamp(40px, 6vw, 72px); }
body .entry-content .idi-caminos h2 { margin: 0; font-size: 1.4rem; }
body .entry-content .idi-caminos .idi-hermanas { margin-top: 14px; }
:is(#left-area, body) .entry-content ul.idi-articulos[class] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(22px, 3vw, 36px) clamp(16px, 2.4vw, 28px); margin: clamp(32px, 5vw, 56px) 0 0; padding: 0; list-style: none; }
body .entry-content .idi-articulos li { margin: 0; }
body #page-container a.idi-articulo-tarjeta { display: grid; gap: 8px; align-content: start; color: var(--tinta); text-decoration: none; }
body .idi-articulo-tarjeta__img { display: block; overflow: hidden; aspect-ratio: 3 / 2; border-radius: var(--r-poster); background: color-mix(in srgb, var(--oliva) 14%, white); box-shadow: inset 0 0 0 1px var(--linea); }
body .idi-articulo-tarjeta__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms var(--muelle); }
@media (hover: hover) { body .idi-articulo-tarjeta:hover .idi-articulo-tarjeta__img img { transform: scale(1.03); } }
body .idi-articulo-tarjeta b { font: 700 1.15rem/1.25 var(--f-titulo); }
body .idi-articulo-tarjeta small { color: var(--tinta-3); font-size: .88rem; font-weight: 600; }
body .idi-articulo-tarjeta__txt { color: var(--tinta-2); font-size: .95rem; line-height: 1.5; }
body .entry-content .nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
body #page-container .nav-links .page-numbers { padding: 8px 14px; border-radius: var(--r-pill); background: #fff; box-shadow: inset 0 0 0 1px var(--linea); color: var(--tinta); font-weight: 600; text-decoration: none; }
body #page-container .nav-links .page-numbers.current { background: var(--tinta); color: #fff; box-shadow: none; }
/* artículo: el texto y, al lado, la imagen y "Más para leer" (lo pone el tema) */
body.single-post article.et_pb_post:has(.idi-articulo-aside) { max-width: none; }
body.single-post .entry-content:has(> .idi-articulo-aside) { display: grid; grid-template-columns: minmax(0, 760px) minmax(0, 340px); column-gap: clamp(32px, 5vw, 80px); align-items: start; }
body.single-post .entry-content:has(> .idi-articulo-aside) > * { grid-column: 1; }
body.single-post .entry-content > .idi-articulo-aside {
  display: grid;
  gap: 12px;
  grid-column: 2;
  grid-row: 1 / span 80;
  position: sticky;
  top: calc(110px + var(--wp-admin--admin-bar--height, 0px));
  margin: 0;
  padding: 22px;
  border-radius: 22px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--linea);
}
body .idi-articulo-aside > * { margin: 0; }
body .idi-articulo-aside .idi-articulo__img img { display: block; width: 100%; height: auto; border-radius: 14px; }
body .idi-articulo-aside h2 { margin-top: 4px; font-size: 1.15rem; }
:is(#left-area, body) .entry-content .idi-articulo-aside ul[class] { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
body .entry-content .idi-articulo-aside li + li { margin-top: 0; }
body #page-container .idi-articulo-aside li a { color: var(--tinta); font-weight: 600; line-height: 1.35; text-decoration: none; }
body #page-container .idi-articulo-aside li a:hover { color: var(--fucsia-lo); }
body .idi-articulo-aside li small { display: block; margin-top: 2px; color: var(--tinta-3); font-size: .85rem; }
body .idi-articulo-aside .idi-articulo__boletin { margin-top: 8px; color: var(--tinta-2); font-size: .92rem; }
body .idi-articulo-aside .idi-btn { justify-self: start; min-height: 44px; font-size: .92rem; }
/* páginas de archivo (campañas pasadas) e informativas: el texto y, al lado, el póster que acompaña al bajar */
body .entry-content .idi-archivo-aviso { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 0 0 clamp(28px, 4vw, 44px); padding: 16px 20px; border-radius: 18px; background: color-mix(in srgb, var(--oliva) 14%, white); }
body .entry-content .idi-archivo-aviso > * { margin: 0; }
body .entry-content .idi-archivo-aviso p { color: var(--oliva-txt); font-weight: 600; }
body .entry-content .idi-archivo-aviso .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
body .entry-content .idi-archivo-aviso .wp-block-button__link { min-height: 40px; padding: 0 1.05em !important; font-size: .92rem; }
body .entry-content .idi-archivo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: clamp(28px, 5vw, 72px); align-items: start; }
body .entry-content .idi-archivo__txt > * { margin: 0; }
body .entry-content .idi-archivo__txt > * + * { margin-top: 1em; }
body .entry-content .idi-archivo__txt > :is(h2, h3) { margin-top: 1.6em; }
body .entry-content > .idi-archivo__txt { max-width: 760px; }
body .entry-content .idi-archivo__txt > .wp-block-image { max-width: 560px; }
body .entry-content .idi-archivo__txt > .wp-block-image img { border-radius: var(--r-poster); }
body .entry-content .idi-archivo__poster { position: sticky; top: calc(110px + var(--wp-admin--admin-bar--height, 0px)); margin: 0; }
body .entry-content .idi-archivo__poster img { display: block; width: 100%; height: auto; border-radius: var(--r-poster); box-shadow: 0 2px 4px rgba(0, 0, 0, .06), 0 28px 50px -30px rgba(27, 23, 25, .55); }
/* textos legales: el índice al lado, para ir a cada apartado */
body .entry-content .idi-legal { display: grid; grid-template-columns: minmax(0, 760px) minmax(0, 300px); gap: clamp(32px, 5vw, 80px); align-items: start; }
body .entry-content .idi-legal__txt > * { margin: 0; }
body .entry-content .idi-legal__txt > * + * { margin-top: 1em; }
body .entry-content .idi-legal__txt > h2 { margin-top: 1.8em; font-size: clamp(1.3rem, 2vw, 1.6rem); scroll-margin-top: 120px; }
body .entry-content .idi-legal__indice { position: sticky; top: calc(110px + var(--wp-admin--admin-bar--height, 0px)); padding: 20px 22px; border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea); }
body .entry-content .idi-legal__indice > * { margin: 0; }
body .entry-content .idi-legal__indice h2 { margin-bottom: 10px; font-size: 1.05rem; }
:is(#left-area, body) .entry-content .idi-legal__indice ul[class] { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: .93rem; line-height: 1.4; }
body .entry-content .idi-legal__indice li + li { margin-top: 0; }
body .entry-content .idi-condiciones { max-width: 760px; }
/* galería de fotos (se amplían al pulsar) y vídeos */
body .entry-content .wp-block-gallery.idi-galeria { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 10px !important; margin: 0; }
body .entry-content .wp-block-gallery.idi-galeria > .wp-block-image { width: auto !important; margin: 0 !important; }
body .entry-content .wp-block-gallery.idi-galeria img { width: 100% !important; height: 100% !important; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; }
body .entry-content .idi-videos-pag { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(22px, 3vw, 34px) clamp(16px, 2.4vw, 26px); }
body .entry-content .idi-videos-pag > * { margin: 0; }
/* entradas con cabecera de página (Club de Amigos): sin el título de la entrada, a todo el ancho */
body.single-post article.et_pb_post:has(.idi-pag-cab) { max-width: none; }
body.single-post article:has(.idi-pag-cab) .et_post_meta_wrapper { display: none; }
/* dos columnas: texto y algo al lado (lo destacado, el mosaico de fotos) */
body .entry-content .idi-dos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
body .entry-content .idi-dos__txt > * { margin: 0; }
body .entry-content .idi-dos__txt > * + * { margin-top: 1em; }
body .entry-content .idi-dos__txt h2 { font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.06; letter-spacing: -.022em; }
body .entry-content .idi-destacado {
  display: grid;
  gap: 12px;
  padding: clamp(24px, 3.5vw, 38px);
  border-radius: 26px;
  background: linear-gradient(160deg, #fff 30%, color-mix(in srgb, var(--fucsia) 9%, white) 100%);
  box-shadow: inset 0 0 0 1px var(--linea);
}
body .entry-content .idi-destacado > * { margin: 0; }
body .entry-content .idi-destacado h2 { font-size: clamp(1.5rem, 2.4vw, 1.9rem); }
body .entry-content .idi-destacado p { font-size: 1.1rem; color: var(--tinta-2); }
body .entry-content .idi-destacado .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
/* filosofía: un panel con las afirmaciones separadas por una línea */
body .entry-content .idi-filosofia { padding: clamp(24px, 4vw, 48px); border-radius: 28px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea); }
body .entry-content .idi-filosofia h2 { margin: 0 0 12px; font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.06; letter-spacing: -.022em; }
:is(#left-area, body) .entry-content .idi-filosofia ul[class] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 4vw, 56px); margin: 0; padding: 0; list-style: none; }
body .entry-content .idi-filosofia li { margin: 0; padding: 16px 0; border-top: 1px solid var(--linea); font-size: 1.08rem; line-height: 1.55; }
/* fotos: una tira de tres y el mosaico del equipo */
body .entry-content .wp-block-gallery:is(.idi-tira, .idi-mosaico) { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(10px, 1.6vw, 18px) !important; margin: 0; }
body .entry-content .wp-block-gallery.idi-mosaico { gap: 8px !important; }
body .entry-content .wp-block-gallery:is(.idi-tira, .idi-mosaico) > .wp-block-image { width: auto !important; margin: 0 !important; }
body .entry-content .wp-block-gallery:is(.idi-tira, .idi-mosaico) img { width: 100% !important; height: 100% !important; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-poster); }
body .entry-content .wp-block-gallery.idi-mosaico img { aspect-ratio: 1; border-radius: 14px; }
@media (max-width: 1080px) {
  body .entry-content .idi-tarjetas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :is(#left-area, body) .entry-content ul.idi-articulos[class], body .entry-content .idi-videos-pag { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .entry-content .idi-legal { grid-template-columns: minmax(0, 1fr); }
  body .entry-content .idi-legal__indice { position: static; order: -1; }
  body .entry-content .idi-guias { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  body .entry-content :is(.idi-pag-cab, .idi-dos) { grid-template-columns: minmax(0, 1fr); }
  body .entry-content .idi-pag-cab__foto { transform: none; }
  body .entry-content .idi-guias { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .entry-content .idi-contacto { grid-template-columns: minmax(0, 1fr); }
  body.single-post .entry-content:has(> .idi-articulo-aside) { display: block; }
  body.single-post .entry-content > .idi-articulo-aside { position: static; margin-top: 40px; }
  body .entry-content .idi-archivo { grid-template-columns: minmax(0, 1fr); }
  body .entry-content .idi-archivo__poster { position: static; order: -1; width: min(100%, 420px); }
  body.single-post .entry-content:has(> .idi-resena-portada) { display: block; }
  body.single-post .entry-content > .idi-resena-portada { position: static; width: min(70%, 280px); margin: 0 auto 24px; }
  :is(#left-area, body) .entry-content .idi-filosofia ul[class] { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  body .entry-content .idi-tarjetas, body .entry-content .idi-tarjetas--2 { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  body .entry-content .idi-tarjeta-txt { padding: 18px 20px 20px; }
  :is(#left-area, body) .entry-content ul.idi-articulos[class], body .entry-content .idi-videos-pag { grid-template-columns: minmax(0, 1fr); }
  body .idi-busqueda__form { flex-wrap: wrap; }  body .entry-content .wp-block-gallery.idi-tira { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .entry-content .wp-block-gallery.idi-tira > .wp-block-image:nth-child(3) { display: none; }
}


/* FUNDAE: las diapositivas del catálogo, como en la web original, con su texto en un desplegable */
body .entry-content .idi-diapositivas { display: grid; gap: clamp(20px, 3vw, 36px); margin: 28px 0; }
body .entry-content .idi-diapo { display: grid; gap: 10px; }
body .entry-content .idi-diapo > .wp-block-image { margin: 0; }
body .entry-content .idi-diapo img { display: block; width: 100%; height: auto; border-radius: var(--r-poster); box-shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 22px 44px -28px rgba(27, 23, 25, .45); }
body .entry-content .idi-texto-diapo { max-width: 760px; margin: 0; }
body .entry-content .idi-texto-diapo > summary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .7);
  box-shadow: inset 0 0 0 1px var(--linea);
  font-size: .9rem;
  font-weight: 600;
  color: var(--tinta-2);
  cursor: pointer;
  list-style: none;
}
body .entry-content .idi-texto-diapo > summary::-webkit-details-marker { display: none; }
body .entry-content .idi-texto-diapo > summary::after { content: "▾"; font-size: .8em; }
body .entry-content .idi-texto-diapo[open] > summary::after { content: "▴"; }
body .entry-content .idi-texto-diapo[open] { padding-bottom: 8px; }
body .entry-content .idi-texto-diapo > :not(summary) { margin-top: .8em; }
body .entry-content .idi-texto-diapo h2 { font-size: 1.4rem; }
body .entry-content .idi-texto-diapo h3 { font-size: 1.1rem; }

/* catálogo (FUNDAE): las formaciones en rejilla */
body .entry-content .idi-catalogo { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 36px 26px; margin: 26px 0 32px; }
body .entry-content .idi-ficha-catalogo { display: grid; gap: 10px; align-content: start; }
body .entry-content .idi-ficha-catalogo > * { margin: 0; }
body .entry-content .idi-ficha-catalogo .wp-block-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 16px; }
body .entry-content .idi-ficha-catalogo h3 { margin: 4px 0 0; font-size: 1.2rem; line-height: 1.2; }
body .entry-content .idi-ficha-catalogo p, body .entry-content .idi-ficha-catalogo li { font-size: .97rem; line-height: 1.6; }
body .entry-content .idi-etapas { color: var(--oliva-txt); font-weight: 600; }
body .entry-content .idi-nota { padding: 10px 14px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--linea); font-weight: 600; }

/* testimonios, de dos en dos */
body .entry-content .idi-testimonios { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 20px 0 8px; }
body .entry-content .idi-testimonio .wp-block-quote {
  height: 100%;
  margin: 0;
  padding: 22px 24px;
  border: 0;
  border-radius: 22px;
  background: #fff;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--fucsia) 55%, white);
}
body .entry-content .idi-testimonio .wp-block-quote p { margin: 0 0 12px; font-size: .98rem; font-style: normal; }
body .entry-content .idi-testimonio cite { display: block; font-size: .9rem; font-style: normal; font-weight: 700; color: var(--oliva-txt); }

/* fotos en fila */
body .entry-content .wp-block-gallery.idi-fotos { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px !important; margin: 18px 0 24px; }
body .entry-content .wp-block-gallery.idi-fotos > .wp-block-image { width: auto !important; margin: 0 !important; }
body .entry-content .wp-block-gallery.idi-fotos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; }

@media (max-width: 860px) {
  body .entry-content .idi-testimonios { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- pie ---------- */
body #main-footer { background: #fff; border-top: 1px solid var(--linea); color: var(--tinta-2); }
body #main-footer #footer-widgets { display: none; } /* el pie lo pinta el tema (idi_child_pie) */
.idi-pie { width: min(1280px, 100% - 2 * clamp(16px, 4vw, 48px)); margin: 0 auto; padding: 56px 0 24px; font-size: .97rem; line-height: 1.6; }
body #main-footer .idi-pie__pregunta { max-width: 40rem; margin: 0 0 36px; padding: 0; font: 700 clamp(1.2rem, 2.2vw, 1.6rem)/1.3 var(--f-titulo); color: var(--tinta); }
body #main-footer .idi-pie__pregunta a { color: var(--fucsia-lo); }
.idi-pie__cols { display: grid; grid-template-columns: 1.2fr repeat(4, minmax(0, 1fr)); gap: 32px; }
body #main-footer .idi-pie__legal { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 32px 0 0; padding: 0; font-size: .9rem; }
body #main-footer .idi-pie__legal a { color: var(--tinta-3); text-decoration: none; }
body #main-footer .idi-pie__legal a:hover { color: var(--fucsia-lo); text-decoration: underline; }
.idi-pie__logo { display: block; width: 150px; height: auto; margin-bottom: 14px; }
body #main-footer .idi-pie p { padding: 0; }
body #main-footer .idi-pie h3 { margin: 0 0 10px; padding: 0; font-size: 1rem; color: var(--tinta); }
body #main-footer .idi-pie ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
body #main-footer .idi-pie li { margin: 0; padding: 0; }
body #main-footer .idi-pie ul a { color: var(--tinta-2); text-decoration: none; overflow-wrap: anywhere; }
body #main-footer .idi-pie ul a:hover { color: var(--fucsia-lo); text-decoration: underline; }
body #footer-bottom { background: transparent; border-top: 1px solid var(--linea); }
body #footer-bottom .container { width: min(1280px, 100% - 2 * clamp(16px, 4vw, 48px)); max-width: none; }
body #footer-bottom .et-social-icons { display: none; } /* Instagram y Facebook ya van en el pie */
body #footer-bottom, body #footer-info, body #footer-info a { color: var(--tinta-3); font-size: 14px; }
@media (max-width: 1080px) { .idi-pie__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .idi-pie__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .idi-pie__cols { grid-template-columns: minmax(0, 1fr); } }

/* ---------- accesibilidad ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; }
}
@media (prefers-reduced-transparency: reduce) {
  body #main-header, .idi-btn--cristal { background: #fff !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
}
