/* ============================================================
   Herón Entidades. Estilos propios de entidades.php, prefijo .ent-
   Reutiliza lo que ya hay en estilos.css (variables, .contenedor, .eyebrow,
   .btn, .seccion, .seccion-papiro, .seccion-grafito, .bloque-cabecera,
   .grid-2, .lista-incluye, .etiqueta-lista, .nota-mono, .hero-botones).
   Nada inline en scripts, sin recursos externos.
   Reglas del manual: bronce #8F5A0F para texto pequeño, #BA7517 solo para
   gráficos y titulares grandes, Outfit 400 como mínimo en lectura, máximo
   dos acentos (bronce y teal) además de grafito y papiro.
   ============================================================ */

.ent { --ent-teal-texto: #0F6B50; --ent-tinte: #FBF3E4; }
.ent p, .ent li, .ent td, .ent th { font-weight: 400; }
.ent-solo-lector {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* La rejilla de dos columnas del sitio exige 340px de mínimo y a 320px se sale de la pantalla. Aquí se acota al ancho disponible. */
.ent .grid-2 { grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); }

/* ---------- Titulares ---------- */
.ent-h2 {
  font-family: var(--serif); font-weight: 600; color: var(--grafito);
  font-size: clamp(28px, 3.3vw, 42px); line-height: 1.18; margin: 14px 0 16px;
}
.ent-h3 { font-family: var(--serif); font-weight: 600; font-size: 22px; line-height: 1.25; margin-bottom: 10px; color: var(--grafito); }
.ent-texto { font-size: 17px; color: var(--grafito-suave); margin-bottom: 14px; }
.ent-texto-menor { font-size: 15.5px; color: var(--gris); }
.ent-fuente {
  font-family: var(--mono); font-size: 12.5px; line-height: 1.5; color: var(--gris);
  margin-top: 10px; letter-spacing: .2px;
}
.ent-seccion { padding: 72px 0; }
.ent-seccion .bloque-cabecera { margin-bottom: 40px; }
.ent-seccion .bloque-cabecera p { font-size: 18px; max-width: 760px; }

/* ============================================================
   Cabecera
   ============================================================ */
.ent-hero { background: var(--papiro); padding: 64px 0 0; }
.ent-hero-grid {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: 64px; align-items: center;
}
h1.ent-h1 {
  font-family: var(--serif); font-weight: 600; color: var(--grafito);
  font-size: clamp(40px, 5.6vw, 72px); line-height: 1.04; margin: 22px 0 26px;
  letter-spacing: -.5px;
}
.ent-h1-marca { display: block; }
.ent-h1-desc {
  display: block; margin-top: 22px; max-width: 18em;
  font-family: var(--serif); font-weight: 400; font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.22; letter-spacing: 0; color: var(--grafito-suave);
}
.ent-intro { font-size: 19px; line-height: 1.6; color: var(--grafito-suave); max-width: 40em; margin-bottom: 32px; }

/* Ficha «Qué miramos contigo»: columna derecha de la cabecera. Solo nombres de temas y su ancla. */
.ent-intro-enlace { margin-top: 24px; font-size: 16.5px; }
.ent-intro-enlace a { font-weight: 500; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.ent-ficha {
  position: relative; background: #FFFFFF; border: 2px solid var(--grafito); border-radius: 20px;
  padding: 34px 30px 14px; box-shadow: 10px 10px 0 #E9D3A8; justify-self: center; width: 100%; max-width: 440px;
}
.ent-ficha-turbina { position: absolute; top: -34px; right: -26px; width: 84px; height: 84px; background: var(--papiro); border-radius: 50%; padding: 4px; }
.ent-ficha-turbina .ent-turbina { width: 100%; height: 100%; }
.ent-ficha-titulo { font-family: var(--serif); font-weight: 600; font-size: 28px; line-height: 1.2; color: var(--grafito); margin: 0 0 20px; padding-right: 56px; }
.ent-ficha-lista { list-style: none; margin: 0; padding: 0; }
.ent-ficha-lista li { border-top: 1px solid var(--borde-linea); }
.ent-ficha-lista a {
  display: flex; align-items: center; gap: 16px; min-height: 72px; padding: 12px 8px; margin: 0 -8px;
  text-decoration: none; color: var(--grafito); border-radius: 12px; transition: background .2s ease;
}
.ent-ficha-lista a:hover { background: var(--ent-tinte); color: var(--grafito); }
.ent-ficha-lista a:focus-visible { outline: 3px solid var(--grafito); outline-offset: 2px; box-shadow: 0 0 0 6px var(--bronce-luz); }
.ent-ficha-icono {
  flex: 0 0 46px; width: 46px; height: 46px; border-radius: 50%; background: var(--ent-tinte);
  border: 1.5px solid var(--grafito); display: flex; align-items: center; justify-content: center;
}
.ent-ficha-icono svg, .ent-ficha-flecha {
  fill: none; stroke: var(--grafito); stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
}
.ent-ficha-icono svg { width: 24px; height: 24px; }
.ent-ficha-nombre { flex: 1 1 auto; font-family: var(--serif); font-weight: 600; font-size: 21px; line-height: 1.2; }
.ent-ficha-flecha { flex: 0 0 22px; width: 22px; height: 22px; stroke: var(--bronce); transition: transform .2s ease; }
.ent-ficha-lista a:hover .ent-ficha-flecha { transform: translateX(4px); }

/* ---------- Línea del tiempo ---------- */
.ent-tiempo { padding-top: 72px; padding-bottom: 72px; }
.ent-tiempo-cab { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 56px; align-items: start; margin-bottom: 44px; }
.ent-tiempo-cab p { font-size: 18px; color: var(--grafito-suave); }
.ent-tiempo-nota { background: var(--ent-tinte); border-left: 4px solid var(--bronce-grafico); border-radius: 0 12px 12px 0; padding: 22px 24px; margin-top: 8px; }
.ent-tiempo-nota p { font-size: 16px; line-height: 1.6; color: var(--grafito); }
.ent-tiempo-pista { position: relative; }
.ent-tiempo-lista {
  list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px; position: relative; z-index: 1;
}
.ent-linea-h { position: absolute; left: 0; top: 17px; width: 100%; height: 14px; z-index: 0; overflow: visible; }
.ent-linea-v { display: none; }
.ent-hito { position: relative; padding-top: 72px; }
.ent-nodo {
  position: absolute; top: 0; left: 0; width: 48px; height: 48px;
  background: var(--papiro); border-radius: 50%; padding: 3px;
}
.ent-turbina { width: 100%; height: 100%; display: block; overflow: visible; }
.ent-hito-tag {
  display: inline-block; font-family: var(--mono); font-size: 12px; letter-spacing: 2px; text-transform: uppercase;
  font-weight: 500; padding: 3px 10px; border-radius: 999px; border: 1.5px solid currentColor; margin-bottom: 12px;
}
.ent-hito-verifactu .ent-hito-tag { color: var(--bronce); }
.ent-hito-patronato .ent-hito-tag { color: var(--ent-teal-texto); }
.ent-hito-fecha { font-family: var(--mono); font-size: 14px; font-weight: 500; color: var(--grafito); margin-bottom: 6px; }
.ent-hito h3 { font-family: var(--serif); font-weight: 600; font-size: 24px; line-height: 1.2; margin-bottom: 10px; }
.ent-hito p { font-size: 16px; color: var(--grafito-suave); }
.ent-hito .ent-hito-fecha { font-size: 14px; color: var(--grafito); }
.ent-hito p.ent-fuente { color: var(--gris); font-size: 12.5px; }

/* ============================================================
   Tabla "qué te toca"
   ============================================================ */
.ent-resumen {
  background: var(--ent-tinte); border-left: 4px solid var(--bronce-grafico);
  border-radius: 0 10px 10px 0; padding: 14px 18px; margin-bottom: 20px;
  font-size: 16px; color: var(--grafito);
}
.ent-resumen[hidden] { display: none; }
.ent-tabla {
  width: 100%; border-collapse: separate; border-spacing: 0; background: #FFFFFF;
  border: 1px solid var(--borde); border-radius: 16px; overflow: hidden;
}
.ent-tabla thead th {
  font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase;
  color: var(--gris); background: var(--papiro); text-align: left; padding: 14px 24px;
}
.ent-tabla th[scope="row"] { text-align: left; font-weight: 400; }
.ent-tabla tbody th, .ent-tabla tbody td {
  vertical-align: top; padding: 26px 24px; border-top: 1px solid var(--borde-linea);
  font-size: 16px; line-height: 1.55; color: var(--grafito-suave);
  transition: background .2s ease;
}
.ent-tabla thead th:nth-child(1), .ent-tabla tbody th { width: 31%; }
.ent-tabla thead th:nth-child(3), .ent-tabla tbody td:nth-child(3) { width: 24%; }
.ent-tabla td strong { font-weight: 600; color: var(--grafito); }
.ent-tabla td p + p { margin-top: 8px; }
.ent-fila { position: relative; }
.ent-fila.ent-activa th, .ent-fila.ent-activa td { background: var(--ent-tinte); }
.ent-fila.ent-activa th { box-shadow: inset 5px 0 0 var(--bronce-grafico); }

/* Casillas: solo existen con JavaScript. Sin él, la tabla se lee entera. */
.ent-marca { display: block; cursor: default; }
.ent-check { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ent-marca-caja { display: none; }
.ent-estado { display: none; }
.ent-estado:empty { display: none !important; }
.ent-js .ent-marca { display: flex; gap: 14px; align-items: flex-start; cursor: pointer; }
.ent-js .ent-marca-caja {
  display: block; flex: 0 0 26px; width: 26px; height: 26px; margin-top: 1px;
  border: 2px solid var(--grafito); border-radius: 6px; background: #FFFFFF; position: relative;
}
.ent-js .ent-check:checked + .ent-marca-caja { background: var(--grafito); }
.ent-js .ent-check:checked + .ent-marca-caja::after {
  content: ""; position: absolute; left: 7px; top: 2px; width: 7px; height: 13px;
  border: solid #FFFFFF; border-width: 0 3px 3px 0; transform: rotate(45deg);
}
.ent-js .ent-check:focus-visible + .ent-marca-caja { outline: 3px solid var(--grafito); outline-offset: 2px; box-shadow: 0 0 0 6px var(--bronce-luz); }
.ent-js .ent-marca:hover .ent-marca-caja { border-color: var(--bronce-grafico); }
.ent-js .ent-estado {
  display: inline-block; margin: 14px 0 0 40px; font-family: var(--mono); font-size: 12px; font-weight: 500;
  letter-spacing: 1.5px; text-transform: uppercase; color: var(--gris);
}
.ent-js .ent-activa .ent-estado { color: var(--bronce); }

/* ============================================================
   Verifactu: tres comprobaciones
   ============================================================ */
.ent-pasos { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin-bottom: 56px; }
.ent-pasos li { border-top: 3px solid var(--grafito); padding-top: 22px; }
.ent-paso-num {
  display: block; font-family: var(--serif); font-weight: 600; font-size: 64px; line-height: 1;
  color: var(--bronce-grafico); margin-bottom: 12px;
}
.ent-pasos h3 { font-family: var(--serif); font-weight: 600; font-size: 23px; line-height: 1.22; margin-bottom: 10px; }
.ent-pasos p { font-size: 16.5px; color: var(--grafito-suave); }
.ent-pasos p.ent-fuente { font-size: 12.5px; color: var(--gris); }
.ent-v-pie { align-items: start; border-top: 1px solid var(--borde-linea); padding-top: 44px; }
.ent-v-pie .hero-botones { margin-top: 20px; }

/* ============================================================
   Canal y transparencia
   ============================================================ */
.ent-bloque {
  background: #FFFFFF; border: 1px solid var(--borde); border-radius: 16px; padding: 34px 32px;
}
.ent-umbrales { list-style: none; margin: 18px 0 18px; }
.ent-umbrales li {
  padding: 16px 0; border-top: 1px solid var(--borde-linea); font-size: 16.5px; color: var(--grafito-suave);
}
.ent-umbrales li:first-child { border-top: 0; padding-top: 0; }
.ent-umbral-dato {
  display: inline; font-family: var(--serif); font-weight: 600; font-size: 1.08em; color: var(--grafito);
  background: linear-gradient(transparent 62%, #F5E0BC 62%);
  padding: 0 2px;
}
.ent-aviso { font-size: 15px; color: var(--gris); border-left: 3px solid var(--bronce-grafico); padding-left: 14px; margin-top: 6px; }
.ent-doble { gap: 32px; align-items: stretch; }

/* ============================================================
   Paquetes (banda grafito)
   ============================================================ */
.ent-paquetes .ent-h2, .ent-paquetes .ent-h3 { color: #FFFFFF; }
.ent-paquetes .ent-texto { color: #D9D4C8; }
.ent-regla { margin: 8px 0 64px; }
.ent-regla-barra { position: relative; height: 58px; margin-bottom: 22px; }
.ent-regla-tramo { position: absolute; top: 22px; height: 14px; border-radius: 7px; }
.ent-regla-menor { left: 0; width: 62%; background: var(--bronce-luz); }
.ent-regla-mayor { left: 62%; right: 0; background: transparent; border: 2px dashed #8A8378; border-left: 0; border-radius: 0 7px 7px 0; height: 14px; }
.ent-regla-etiqueta {
  position: absolute; left: 62%; top: -2px; margin-left: 14px; font-family: var(--mono); font-size: 13px; font-weight: 500;
  letter-spacing: 1px; color: #FFFFFF; white-space: nowrap;
}
.ent-regla-marca {
  position: absolute; left: 62%; top: 0; width: 4px; height: 58px; margin-left: -2px; border-radius: 2px;
  background: #FFFFFF;
}
.ent-regla-textos {
  list-style: none; display: grid; grid-template-columns: 62fr 38fr; gap: 0;
}
.ent-regla-textos li { font-size: 16.5px; color: #D9D4C8; padding-right: 28px; }
.ent-regla-textos li + li { padding-left: 28px; padding-right: 0; border-left: 2px solid #FFFFFF; }
.ent-regla-textos strong { display: block; font-family: var(--serif); font-weight: 600; font-size: 24px; color: #FFFFFF; margin-bottom: 6px; }
.ent-regla figcaption { font-family: var(--mono); font-size: 12.5px; color: #C9C4B8; margin-top: 26px; }
.ent-p-pie { gap: 56px; }

/* ============================================================
   Preguntas frecuentes
   ============================================================ */
.ent-faq-caja { max-width: 900px; }
.ent-faq { border-bottom: 1px solid var(--borde-linea); }
.ent-pregunta { border-top: 1px solid var(--borde-linea); }
.ent-pregunta summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 24px;
  min-height: 64px; padding: 18px 4px; font-family: var(--serif); font-weight: 600; font-size: 20px; line-height: 1.3;
  color: var(--grafito);
}
.ent-pregunta summary::-webkit-details-marker { display: none; }
.ent-pregunta summary::after {
  content: ""; flex: 0 0 22px; width: 22px; height: 22px;
  background:
    linear-gradient(var(--bronce-grafico), var(--bronce-grafico)) center / 100% 3px no-repeat,
    linear-gradient(var(--bronce-grafico), var(--bronce-grafico)) center / 3px 100% no-repeat;
  transition: transform .2s ease;
}
.ent-pregunta[open] summary::after {
  background: linear-gradient(var(--bronce-grafico), var(--bronce-grafico)) center / 100% 3px no-repeat;
}
.ent-pregunta summary:hover { color: var(--bronce); }
.ent-pregunta summary:focus-visible { outline: 3px solid var(--grafito); outline-offset: 2px; box-shadow: 0 0 0 6px var(--bronce-luz); border-radius: 4px; }
.ent-respuesta { padding: 0 4px 26px; max-width: 760px; }
.ent-respuesta p { font-size: 17px; color: var(--grafito-suave); }

/* ============================================================
   Llamada a la acción
   ============================================================ */
.ent-cta { background: var(--papiro); padding: 80px 0; border-top: 1px solid var(--borde-linea); }
.ent-cta-grid { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 56px; align-items: center; max-width: 980px; }
.ent-cta-turbina { width: 168px; height: 168px; }
.ent-cta-texto .ent-h2 { font-size: clamp(30px, 3.8vw, 48px); }
.ent-cta-texto p { font-size: 18px; color: var(--grafito-suave); max-width: 38em; margin-bottom: 28px; }

/* ============================================================
   Fuentes
   ============================================================ */
.ent-fuentes { padding: 48px 0 56px; }
.ent-fuentes-lista { list-style: none; margin: 18px 0 18px; display: grid; gap: 4px; }
.ent-fuentes-lista li { font-size: 15px; color: var(--gris); padding: 4px 0; }
.ent-fuentes-lista a { color: var(--bronce); text-underline-offset: 3px; }
.ent-fuentes-lista a:hover { color: var(--bronce-hover); }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 960px) {
  .ent-hero { padding-top: 44px; }
  .ent-hero-grid { grid-template-columns: 1fr; gap: 44px; }
  .ent-ficha { max-width: 560px; }
  .ent-tiempo-cab { grid-template-columns: 1fr; gap: 24px; }
  .ent-ens-grid { grid-template-columns: 1fr; gap: 36px; }
  .ent-pasos { grid-template-columns: 1fr; gap: 32px; }
  .ent-cta-grid { grid-template-columns: 1fr; gap: 28px; }
  .ent-cta-turbina { width: 110px; height: 110px; }
}

@media (max-width: 860px) {
  /* La línea del tiempo pasa a vertical */
  .ent-tiempo-lista { grid-template-columns: 1fr; gap: 40px; }
  .ent-linea-h { display: none; }
  .ent-linea-v { display: block; position: absolute; left: 17px; top: 24px; bottom: 24px; width: 14px; height: calc(100% - 48px); z-index: 0; overflow: visible; }
  .ent-hito { padding-top: 0; padding-left: 72px; }
  .ent-hito-tag { margin-top: 2px; }

  /* La tabla pasa a bloques apilados, con los roles ARIA ya escritos en el HTML */
  .ent-tabla, .ent-tabla tbody, .ent-tabla tr, .ent-tabla th, .ent-tabla td { display: block; width: auto; }
  .ent-tabla thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ent-tabla { border: 0; background: transparent; border-radius: 0; overflow: visible; }
  .ent-fila {
    background: #FFFFFF; border: 1px solid var(--borde); border-radius: 14px; margin-bottom: 18px; overflow: hidden;
  }
  .ent-tabla tbody th, .ent-tabla tbody td { border-top: 0; padding: 20px 20px 4px; width: auto !important; }
  .ent-tabla tbody td { padding-top: 14px; border-top: 1px solid var(--borde-linea); }
  .ent-tabla tbody td:last-child { padding-bottom: 22px; }
  .ent-tabla td::before {
    content: attr(data-etiqueta); display: block; font-family: var(--mono); font-size: 11.5px; font-weight: 500;
    letter-spacing: 2px; text-transform: uppercase; color: var(--gris); margin-bottom: 6px;
  }
  .ent-tabla tbody th { padding-bottom: 20px; }
  .ent-js .ent-estado { margin-left: 40px; margin-top: 10px; }
  .ent-fila.ent-activa th { box-shadow: none; }
  .ent-fila.ent-activa { border-color: var(--bronce-grafico); border-width: 2px; }
}

@media (max-width: 640px) {
  .ent-seccion { padding: 52px 0; }
  .ent-hero { padding-top: 32px; }
  .ent-tiempo { padding-top: 48px; padding-bottom: 52px; }
  .ent-intro { font-size: 17.5px; }
  h1.ent-h1 { font-size: clamp(30px, 10.2vw, 56px); }
  .ent-bloque { padding: 26px 22px; }
  .ent-cta { padding: 56px 0; }
  .ent-regla-textos { grid-template-columns: 1fr; gap: 18px; }
  .ent-regla-textos li { padding-right: 0; }
  .ent-regla-textos li + li { padding-left: 0; border-left: 0; border-top: 2px solid #FFFFFF; padding-top: 18px; }
  .ent-pregunta summary { font-size: 18px; }
  .ent-regla-etiqueta { font-size: 12px; margin-left: 0; left: auto; right: calc(38% + 12px); }
  .ent-h1-desc { max-width: none; }
  .ent .hero-botones .btn { width: 100%; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .ent *, .ent *::before, .ent *::after { transition: none !important; animation: none !important; }
}

/* 07-10-2026: sección ENS a una columna (sin oferta) y enlaces dentro de párrafos */
.ent-ens-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.ent-ens-una { max-width: 640px; }
.ent-norma {
  background: var(--papiro); border: 1px solid var(--borde-linea); border-left: 6px solid var(--bronce-grafico);
  border-radius: 6px 18px 18px 6px; padding: 34px 34px 30px;
}
.ent-norma-cab { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 20px; margin-bottom: 18px; }
.ent-norma-titulo { font-family: var(--serif); font-weight: 600; font-size: 26px; line-height: 1.2; color: var(--grafito); }
.ent-norma-art { font-family: var(--mono); font-size: 12.5px; color: var(--gris); letter-spacing: .2px; }
.ent-norma-intro { font-size: 16px; color: var(--gris); margin-bottom: 8px; }
.ent-norma-lista { list-style: none; counter-reset: norma; margin: 0; padding: 0; }
.ent-norma-lista li {
  counter-increment: norma; position: relative; padding: 18px 0 18px 56px; border-top: 1px solid var(--borde-linea);
  font-size: 16.5px; line-height: 1.55; color: var(--grafito-suave);
}
.ent-norma-lista li::before {
  content: counter(norma); position: absolute; left: 0; top: 10px; width: 40px; text-align: center;
  font-family: var(--serif); font-weight: 600; font-size: 40px; line-height: 1; color: var(--bronce-grafico);
}
.ent-norma-lista strong { display: block; font-family: var(--serif); font-weight: 600; font-size: 19px; color: var(--grafito); margin-bottom: 2px; }

/* Accesibilidad: columna derecha en tarjeta, con los cuatro criterios de la norma */
.ent-lateral { background: var(--papiro); border: 1px solid var(--borde-linea); border-radius: 18px; padding: 32px 32px 34px; }
.ent-lateral .etiqueta-lista { margin-top: 0; }
.ent-lateral .ent-criterios + .etiqueta-lista { margin-top: 30px; }
.ent-criterios { list-style: none; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ent-criterios li {
  font-family: var(--serif); font-weight: 600; font-size: 19px; color: var(--grafito); background: #FFFFFF;
  border: 1.5px solid var(--grafito); border-radius: 999px; padding: 10px 18px; text-align: center;
}
.ent-lateral .btn { margin-top: 22px; }

/* Canal y transparencia: columnas desiguales para que las dos tarjetas lleguen casi a la misma altura */
@media (min-width: 901px) {
  .ent .ent-doble { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
}
.ent-doble .ent-bloque { display: flex; flex-direction: column; }
.ent-doble .ent-aviso { margin-top: auto; }
.ent-doble .ent-umbrales { margin-bottom: 26px; }

.ent p a:not(.btn) { color: var(--bronce); text-underline-offset: 3px; }
.ent p a:not(.btn):hover { color: var(--bronce-hover); }
.ent-ens-una .ent-texto-menor { margin-top: 14px; }

/* ============================================================
   07-10-2026, ronda 2: ancho completo sin alargar las líneas.
   Contenedor más ancho, cabeceras de apartado en dos columnas
   (título a la izquierda, texto a la derecha) y preguntas en dos columnas.
   La medida de línea de los párrafos se queda entre 55 y 85 caracteres.
   ============================================================ */
.ent .contenedor { max-width: 1320px; }

@media (min-width: 961px) {
  .ent-hero-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 80px; }
  .ent-ficha { max-width: 520px; justify-self: end; padding: 38px 36px 16px; }
  .ent-intro { font-size: 20px; max-width: 32em; }
}

@media (min-width: 901px) {
  /* Cabecera de apartado: título a la izquierda, texto a la derecha */
  .ent-seccion .bloque-cabecera {
    display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); column-gap: 80px; align-items: end;
  }
  .ent-seccion .bloque-cabecera .eyebrow { grid-column: 1; grid-row: 1; }
  .ent-seccion .bloque-cabecera .ent-h2 { grid-column: 1; grid-row: 2; margin-bottom: 0; }
  .ent-seccion .bloque-cabecera p { grid-column: 2; grid-row: 1 / span 2; max-width: none; align-self: end; font-size: 18.5px; line-height: 1.6; }
  .ent-fuentes-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 56px; }
}

/* Preguntas frecuentes: título fijo a la izquierda, preguntas a la derecha */
.ent-faq-caja { max-width: 1320px; }
@media (min-width: 901px) {
  .ent-faq-caja { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.9fr); column-gap: 80px; align-items: start; }
  .ent-faq-caja .bloque-cabecera { display: block; position: sticky; top: 104px; margin-bottom: 0; }
  .ent-faq-caja .bloque-cabecera .ent-h2 { margin-bottom: 0; }
  .ent-respuesta { max-width: none; }
}

/* Llamada a la acción a todo el ancho */
.ent-cta-grid { max-width: none; grid-template-columns: auto minmax(0, 1fr); gap: 72px; }
.ent-cta-turbina { width: 200px; height: 200px; }
.ent-cta-texto p { max-width: 42em; font-size: 19px; }
@media (max-width: 960px) {
  .ent-cta-turbina { width: 110px; height: 110px; }
}

/* Accesibilidad: la columna del texto un poco más ancha que la tarjeta */
@media (min-width: 901px) {
  #accesibilidad .grid-2 { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 72px; }
  .ent-ens-una { max-width: none; }
}

/* Móvil: nada se sale del ancho */
@media (max-width: 960px) {
  .ent-hero-grid { grid-template-columns: minmax(0, 1fr); }
  .ent-ficha { justify-self: stretch; max-width: 560px; }
  .ent-ficha-turbina { right: 14px; top: -30px; width: 68px; height: 68px; }
}
@media (max-width: 640px) {
  .ent-ficha { padding: 30px 20px 10px; box-shadow: 6px 6px 0 #E9D3A8; }
  .ent-ficha-titulo { font-size: 24px; padding-right: 64px; }
  .ent-ficha-nombre { font-size: 19px; }
  .ent-norma { padding: 26px 20px 22px; }
  .ent-lateral { padding: 26px 20px 28px; }
  .ent-criterios { grid-template-columns: 1fr; }
}

/* Fuentes: dos columnas de texto que fluyen (sin filas con huecos) */
@media (min-width: 901px) {
  .ent-fuentes-lista { display: block; column-count: 2; column-gap: 56px; }
  .ent-fuentes-lista li { break-inside: avoid; }
}

@media (min-width: 901px) and (max-width: 1279px) {
  .ent .ent-doble { align-items: start; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
}

/* Tableta: la ficha ocupa todo el ancho, con los temas en dos columnas */
@media (min-width: 641px) and (max-width: 960px) {
  .ent-ficha { max-width: none; }
  .ent-ficha-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .ent-ficha-lista li:nth-child(2) { border-top: 1px solid var(--borde-linea); }
  .ent-ficha-turbina { right: 28px; }
}

@media (max-width: 420px) {
  .ent .eyebrow { letter-spacing: 1.6px; font-size: 11.5px; }
}

@media (max-width: 900px) {
  .ent-ens-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; align-items: start; }
  .ent-ens-una { max-width: none; }
}

@media (max-width: 960px) {
  .ent-cta-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}

/* Tope de medida de línea: unos 90 caracteres como máximo */
.ent-tiempo-cab-texto p { max-width: 36em; }
.ent-fuentes-lista li { max-width: 34em; }

/* ============================================================
   14-10-2026 (Alma). Versión nueva de entidades.php: necesidad,
   solución y siguiente paso. Todo bajo .ent-nueva para no tocar
   entidades-normas.php, que conserva el diseño anterior.
   Texto de lectura a 16 px como mínimo. Contraste AA medido.
   ============================================================ */
.ent-nueva .btn { font-size: 16px; }
.ent-nueva .bloque-cabecera p { color: var(--grafito-suave); }

/* Cabecera: sin línea del tiempo */
.ent-hero-nueva { padding-bottom: 72px; }

/* Te suena: ocho tarjetas */
.ent-situaciones {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px;
}
.ent-situacion {
  background: #FFFFFF; border: 1px solid var(--borde); border-top: 3px solid var(--grafito);
  border-radius: 4px 4px 14px 14px; padding: 22px 22px 24px; display: flex; flex-direction: column;
}
.ent-situacion-num { font-family: var(--mono); font-size: 16px; font-weight: 500; color: var(--bronce); margin-bottom: 10px; }
.ent-situacion h3 {
  font-family: var(--serif); font-weight: 600; font-size: 21px; line-height: 1.25; color: var(--grafito); margin-bottom: 10px;
}
.ent-situacion p { font-size: 16px; line-height: 1.55; color: var(--grafito-suave); }
.ent-situacion .ent-situacion-enlace { margin-top: auto; padding-top: 14px; }
.ent-situacion-enlace a { font-weight: 500; color: var(--bronce); text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
.ent-situacion-enlace a:hover { color: var(--bronce-hover); }
.ent-pie-apartado {
  display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px;
  margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--borde-linea);
}
.ent-pie-apartado p { font-size: 18px; color: var(--grafito); }

/* Cómo trabajamos: banda grafito */
.ent-trabajo .ent-h2, .ent-trabajo h3 { color: #FFFFFF; }
.ent-trabajo-pasos {
  list-style: none; margin: 0 0 48px; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px;
}
.ent-trabajo-pasos li { border-top: 2px solid #8A8378; padding-top: 18px; }
.ent-trabajo-num { display: block; font-family: var(--mono); font-size: 16px; font-weight: 500; color: var(--bronce-luz); margin-bottom: 8px; }
.ent-trabajo-pasos h3 { font-family: var(--serif); font-weight: 600; font-size: 22px; line-height: 1.2; margin-bottom: 8px; }
.ent-trabajo-pasos p { font-size: 16px; line-height: 1.55; color: #E4DFD3; }
.ent-trabajo-pie { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 32px; align-items: start; }
.ent-presupuesto { background: var(--grafito-suave); border: 1px solid #4A463D; border-radius: 14px; padding: 28px 28px 10px; }
.ent-presupuesto h3, .ent-calendario h3 { font-family: var(--serif); font-weight: 600; font-size: 24px; line-height: 1.2; margin-bottom: 12px; }
.ent-presupuesto p { font-size: 17px; color: #F2EFE9; margin-bottom: 14px; }
.ent-trabajo .lista-incluye li { color: #F2EFE9; border-bottom-color: #4A463D; font-size: 16px; }
.ent-trabajo .lista-incluye li::before { color: var(--bronce-luz); }
.ent-calendario p { font-size: 17px; color: #E4DFD3; }

.ent-btn-claro { border: 1.5px solid #FFFFFF; color: #FFFFFF; background: transparent; }
.ent-btn-claro:hover { background: #FFFFFF; color: var(--grafito); }

.ent-nota-16 { font-size: 16px; color: var(--gris); margin-top: 18px; }
.ent-todas { margin-top: 10px; font-size: 17px; }
.ent-todas a { font-weight: 500; text-underline-offset: 4px; text-decoration-thickness: 2px; }

/* Cierre */
.ent-nueva .ent-cta-texto .ent-correo { margin: 22px 0 0; font-size: 17px; }
.ent-nueva .ent-cta-texto .ent-idea {
  margin: 28px 0 0; padding-top: 22px; border-top: 1px solid var(--borde-linea); font-size: 17px; color: var(--grafito);
}

/* entidades-normas.php: cabecera propia */
.ent-volver { font-size: 16px; margin-bottom: 22px; }
.ent-volver a { font-weight: 500; text-underline-offset: 4px; }
h1.ent-h1-normas { font-size: clamp(36px, 4.6vw, 60px); line-height: 1.08; }

@media (max-width: 1199px) {
  .ent-situaciones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ent-trabajo-pasos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
}
@media (max-width: 860px) {
  .ent-trabajo-pie { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  /* En móvil la ficha repite las tarjetas que vienen justo debajo: se oculta
     para que el siguiente botón no quede a más de tres pantallas. */
  .ent-hero-nueva .ent-ficha { display: none; }
  .ent-hero-nueva { padding-bottom: 44px; }
  .ent-situaciones { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .ent-situacion { padding: 18px 18px 20px; }
  .ent-situacion h3 { font-size: 20px; }
  .ent-trabajo-pasos { grid-template-columns: minmax(0, 1fr); gap: 22px; margin-bottom: 36px; }
  .ent-presupuesto { padding: 22px 20px 6px; }

  .ent-pie-apartado .btn, .ent-calendario .btn { width: 100%; text-align: center; }
  .ent-nueva .ent-cta .btn { width: 100%; text-align: center; }
}

/* 14-10-2026, Irene: sin subrayados a mano y un solo color de letra por titular. */
.ent-h1-desc { color: var(--grafito); }

/* Móvil: número en línea con el título de la tarjeta, para acortar el apartado */
@media (max-width: 640px) {
  .ent-situacion { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; align-items: baseline; }
  .ent-situacion-num { margin-bottom: 0; }
  .ent-situacion > p { grid-column: 1 / -1; }
  .ent-situacion p { line-height: 1.5; }
  .ent-situacion .ent-situacion-enlace { padding-top: 10px; }
  .ent-nueva .ent-seccion .bloque-cabecera { margin-bottom: 26px; }
  .ent-todas .btn { width: 100%; text-align: center; }
}
.ent-todas { margin-top: 22px; }

/* 14-10-2026, cambio de Irene: normativa en un bloque corto */
.ent-normas-corto .contenedor > p { font-size: 18px; color: var(--grafito-suave); max-width: 46em; }
.ent-normas-corto .ent-h2 { margin-bottom: 12px; }
.ent-normas-corto .ent-nota-16 { margin-top: 10px; }
.ent-normas-corto.ent-seccion { padding: 56px 0; }
@media (max-width: 640px) {
  .ent-nueva .ent-seccion { padding: 44px 0; }
  .ent-hero-nueva { padding-bottom: 36px; }
  .ent-situaciones { gap: 12px; }
  .ent-pie-apartado { margin-top: 24px; padding-top: 20px; }
}

/* Octava casilla de «Te suena»: tu caso no está en la lista (14-10-2026) */
.ent-situacion-otra { background: var(--papiro); border-top-color: var(--bronce); justify-content: center; }
.ent-situacion-otra .ent-situacion-enlace a.btn { color: inherit; text-decoration: none; }
@media (max-width: 600px) { .ent-situacion-otra .btn { width: 100%; text-align: center; } }

/* ---------- 14-10-2026 (Irene): más aire y ancho completo ---------- */
/* «Cómo trabajamos»: las dos cajas iguales, con aire, y el botón separado del texto */
.ent-trabajo-pie { gap: 40px; align-items: stretch; margin-top: 16px; }
.ent-presupuesto { padding: 36px 36px 22px; }
.ent-trabajo .ent-calendario {
  background: var(--grafito-suave); border: 1px solid #4A463D; border-radius: 14px;
  padding: 36px; display: flex; flex-direction: column; justify-content: center; gap: 18px;
}
.ent-trabajo .ent-calendario h3 { margin-bottom: 0; }
.ent-trabajo .ent-calendario p { margin: 0; font-size: 17px; line-height: 1.65; max-width: 34em; }
.ent-trabajo .ent-calendario .btn { align-self: flex-start; margin-top: 10px; }

/* Normativa en corto: texto a la izquierda, las seis normas a la derecha */
.ent-normas-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.ent-normas-corto .ent-normas-texto > p { font-size: 18px; color: var(--grafito-suave); max-width: 46em; }
.ent-normas-lista { background: #FFFFFF; border: 1px solid var(--borde); border-top: 3px solid var(--grafito); border-radius: 4px 4px 14px 14px; padding: 10px 28px; }
.ent-normas-lista ul { list-style: none; margin: 0; padding: 0; }
.ent-normas-lista li + li { border-top: 1px solid var(--borde); }
.ent-normas-lista a {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 16px 0; font-size: 18px; font-weight: 500; color: var(--grafito); text-decoration: none;
}
.ent-normas-lista a::after { content: "→"; color: var(--bronce); font-weight: 400; }
.ent-normas-lista a:hover, .ent-normas-lista a:focus-visible { color: var(--bronce); }
.ent-normas-lista a:hover::after { transform: translateX(3px); }
@media (max-width: 960px) {
  .ent-normas-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .ent-trabajo-pie { gap: 24px; }
}
@media (max-width: 640px) {
  .ent-presupuesto, .ent-trabajo .ent-calendario { padding: 26px 22px; }
  .ent-trabajo .ent-calendario .btn { align-self: stretch; text-align: center; }
  .ent-normas-lista { padding: 4px 20px; }
}

/* ============================================================
   15-10-2026 (Alma). entidades.php con la cartera de los socios.
   Todo bajo .ent-cartera: no toca entidades-normas.php.
   Texto de lectura a 16 px como mínimo, alineado a la izquierda, sin
   cursiva. Un color por titular. Contrastes medidos (ver la maqueta del 15-10):
   #E4DFD3 sobre #3A3730 8,93:1, #EF9F27 sobre #3A3730 5,46:1,
   #EF9F27 sobre #26241F 7,13:1, #3A3730 sobre papiro 10,54:1.
   ============================================================ */
.ent-cartera .eyebrow { font-size: 16px; letter-spacing: 1.5px; }
.ent-cartera .ent-lista-check { list-style: none; margin: 0 0 14px; padding: 0; }
.ent-cartera .ent-lista-check li {
  display: flex; gap: 10px; align-items: flex-start; padding: 6px 0; font-size: 16px; line-height: 1.5;
  color: var(--grafito-suave); border-bottom: 1px solid var(--borde-linea);
}
.ent-cartera .ent-lista-check li:last-child { border-bottom: 0; }
.ent-cartera .ent-lista-check svg {
  flex: 0 0 18px; width: 18px; height: 18px; margin-top: 3px;
  fill: none; stroke: var(--bronce); stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round;
}

/* Cabecera de apartado con uno o varios párrafos a la derecha */
.ent-cartera .ent-cab-texto p { font-size: 18px; line-height: 1.6; color: var(--grafito-suave); max-width: 40em; }
.ent-cartera .ent-cab-texto p + p { margin-top: 12px; }
@media (min-width: 901px) {
  .ent-cartera .ent-seccion .bloque-cabecera .ent-cab-texto { grid-column: 2; grid-row: 1 / span 2; align-self: end; }
  .ent-cartera .ent-seccion .bloque-cabecera .ent-cab-texto p { font-size: 18.5px; max-width: none; }
}
@media (max-width: 900px) {
  .ent-cartera .ent-cab-texto { margin-top: 4px; }
}

/* Cabecera: la ficha (6 enlaces) se ve en todos los anchos */
.ent-cartera .ent-ficha-lista a { min-height: 60px; padding-top: 8px; padding-bottom: 8px; }
.ent-cartera .ent-ficha-nombre { font-size: 20px; }
@media (max-width: 640px) {
  .ent-cartera .ent-hero-nueva .ent-ficha { display: block; }
  .ent-cartera .ent-ficha-lista a { min-height: 52px; gap: 12px; }
  .ent-cartera .ent-ficha-icono { flex-basis: 40px; width: 40px; height: 40px; }
  .ent-cartera .ent-ficha-nombre { font-size: 18px; }
}

/* ---------- Qué hacemos: 3 + 3, 2 + 2 + 2, 1 ---------- */
.ent-servicios {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px;
}
.ent-cartera .ent-servicio { padding: 24px; }
.ent-servicio-num {
  display: flex; align-items: center; gap: 10px; margin-bottom: 12px;
  font-family: var(--mono); font-size: 16px; font-weight: 500; color: var(--bronce);
}
.ent-servicio-icono { flex: 0 0 24px; width: 24px; height: 24px; }
.ent-servicio-icono svg, .ent-seg-icono svg, .ent-app-icono svg {
  display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
}
.ent-cartera .ent-servicio h3 { font-size: 22px; }
.ent-cartera .ent-servicio > p { margin-bottom: 14px; }
.ent-cartera .ent-lema {
  font-family: var(--serif); font-weight: 600; font-size: 18px; line-height: 1.35; color: var(--grafito);
  border-left: 3px solid var(--bronce-grafico); padding-left: 12px; margin: 2px 0 16px;
}
.ent-incluye { border-top: 1px solid var(--borde-linea); margin-bottom: 4px; }
.ent-incluye summary, .ent-app-detalle summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 48px; padding: 10px 0; font-size: 16px; font-weight: 500;
}
.ent-incluye summary { color: var(--grafito); }
.ent-incluye summary::-webkit-details-marker, .ent-app-detalle summary::-webkit-details-marker { display: none; }
.ent-incluye summary::after, .ent-app-detalle summary::after {
  content: ""; flex: 0 0 16px; width: 16px; height: 16px;
  background:
    linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat,
    linear-gradient(currentColor, currentColor) center / 2px 100% no-repeat;
}
.ent-incluye[open] summary::after, .ent-app-detalle[open] summary::after {
  background: linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat;
}
.ent-incluye summary:hover { color: var(--bronce); }
.ent-incluye summary:focus-visible, .ent-app-detalle summary:focus-visible {
  outline: 3px solid currentColor; outline-offset: 2px; border-radius: 4px;
}
.ent-incluye-cuerpo { padding: 2px 0 8px; }
.ent-cartera .ent-incluye-cuerpo > p { font-size: 16px; line-height: 1.55; color: var(--grafito-suave); margin-bottom: 12px; }
.ent-cartera .ent-incluye-cuerpo .ent-incluye-titulo {
  font-family: var(--serif); font-weight: 600; font-size: 18px; color: var(--grafito); margin: 14px 0 4px;
}
.ent-cartera .ent-servicio .ent-situacion-enlace { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.ent-cartera .ent-situacion-otra { padding: 24px; }

@media (max-width: 960px) {
  .ent-servicios { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .ent-servicios { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ent-cartera .ent-servicio { display: flex; padding: 18px 18px 20px; }
  .ent-cartera .ent-servicio h3 { font-size: 20px; }
}

/* ---------- MicroApps: banda grafito, 3 columnas + celda doble ---------- */
.ent-microapps .ent-h2, .ent-microapps h3 { color: #FFFFFF; }
.ent-cartera .seccion-grafito .ent-cab-texto p { color: #E4DFD3; }
.ent-cartera .ent-cab-texto .ent-precio-linea { margin-top: 18px; }
.ent-precio {
  display: inline-block; font-family: var(--mono); font-size: 18px; font-weight: 500; color: var(--bronce-luz);
  border: 1.5px solid var(--bronce-luz); border-radius: 6px; padding: 6px 14px;
}
.ent-apps {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px;
}
.ent-app {
  background: var(--grafito-suave); border: 1px solid #534F49; border-radius: 8px;
  padding: 22px 22px 20px; display: flex; flex-direction: column;
}
.ent-app-cab { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.ent-app-icono { flex: 0 0 28px; width: 28px; height: 28px; color: var(--bronce-luz); }
.ent-app-cod { font-family: var(--mono); font-size: 16px; color: #E4DFD3; }
.ent-cartera h3.ent-app-nombre { font-family: var(--serif); font-weight: 600; font-size: 24px; line-height: 1.2; margin-bottom: 6px; }
.ent-cartera .ent-app-lema { font-size: 17px; line-height: 1.5; color: #F6F1E7; margin-bottom: 10px; }
.ent-app-detalle { border-top: 1px solid #534F49; margin-top: auto; }
.ent-app-detalle summary { color: #FFFFFF; }
.ent-app-detalle summary:hover { color: var(--bronce-luz); }
.ent-app-detalle-cuerpo { padding: 0 0 6px; }
.ent-cartera .ent-app-detalle-cuerpo > p { font-size: 16px; line-height: 1.55; color: #E4DFD3; margin-bottom: 10px; }
.ent-cartera .ent-app .ent-lista-check li { color: #E4DFD3; border-bottom-color: #534F49; }
.ent-cartera .ent-app .ent-lista-check svg { stroke: var(--bronce-luz); }
.ent-cartera .ent-app-precio {
  font-family: var(--mono); font-size: 16px; font-weight: 500; color: var(--bronce-luz);
  border-top: 1px solid #534F49; padding-top: 12px;
}
/* 16-10-2026: el precio pasa a «Consultar precio» y enlaza a contacto. Mismo bronce claro, subrayado visible (contraste 7,1:1 sobre grafito) */
.ent-cartera .ent-app-precio a { color: var(--bronce-luz); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ent-cartera .ent-app-precio a:hover, .ent-cartera .ent-app-precio a:focus-visible { text-decoration-thickness: 2px; }
.ent-cartera .ent-app-llamada {
  grid-column: span 2; background: var(--grafito); border: 2px solid var(--bronce-luz);
  justify-content: center; gap: 14px; padding: 30px 32px;
}
.ent-cartera .ent-app-llamada p { font-size: 17px; line-height: 1.6; color: #E4DFD3; max-width: 40em; }
.ent-cartera .ent-app-llamada .ent-app-llamada-boton { margin-top: 6px; }
.ent-cartera .ent-app-llamada .btn { color: #FFFFFF; }

@media (max-width: 960px) {
  .ent-apps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .ent-apps { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ent-cartera .ent-app-llamada { grid-column: auto; padding: 24px 20px; }
  .ent-app { padding: 16px 18px 14px; }
  .ent-app-cab { margin-bottom: 6px; }
  .ent-cartera h3.ent-app-nombre { font-size: 22px; }
  .ent-cartera .ent-app-lema { font-size: 16px; }
  .ent-cartera .ent-app-llamada .btn { width: 100%; text-align: center; }
}

/* ---------- Seguridad y normas ---------- */
.ent-cartera .ent-seg-grid { align-items: start; }
.ent-cartera .ent-normas-texto > p { font-size: 18px; color: var(--grafito-suave); max-width: 40em; margin-bottom: 14px; }
.ent-seg-lista { list-style: none; margin: 26px 0 0; padding: 0; }
.ent-seg-lista li {
  display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; align-items: start;
  padding: 16px 0; border-top: 1px solid var(--borde-linea);
}
.ent-seg-icono {
  display: block; width: 44px; height: 44px; padding: 9px; border-radius: 50%; background: #FFFFFF;
  border: 1.5px solid var(--grafito); color: var(--grafito);
}
.ent-seg-lista h3 { font-family: var(--serif); font-weight: 600; font-size: 20px; line-height: 1.25; color: var(--grafito); margin-bottom: 4px; }
.ent-seg-lista p { font-size: 16px; line-height: 1.55; color: var(--grafito-suave); }
.ent-cartera .ent-normas-lista { padding: 24px 28px 10px; }
.ent-cartera .ent-normas-lista h3 { font-family: var(--serif); font-weight: 600; font-size: 22px; line-height: 1.25; color: var(--grafito); margin-bottom: 10px; }
.ent-cartera .ent-normas-lista > p { font-size: 16px; line-height: 1.55; color: var(--grafito-suave); margin-bottom: 8px; }
.ent-cartera .ent-normas-lista a { font-size: 17px; }
.ent-cartera .ent-normas-col .ent-nota-16 { margin-top: 18px; }
@media (max-width: 640px) {
  .ent-cartera .ent-normas-lista { padding: 20px 20px 6px; }
}

/* ---------- Por qué Herón ---------- */
.ent-cartera .ent-trabajo-pasos { margin-bottom: 28px; }
.ent-nohacemos {
  list-style: none; margin: 0 0 40px; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px;
}
.ent-nohacemos li { border: 1px solid #4A463D; border-radius: 10px; padding: 20px 22px; }
.ent-cartera .ent-nohacemos h3 { font-family: var(--serif); font-weight: 600; font-size: 20px; line-height: 1.25; color: #FFFFFF; margin-bottom: 6px; }
.ent-cartera .ent-nohacemos p { font-size: 16px; line-height: 1.55; color: #E4DFD3; }
.ent-cartera .ent-pie-uno { grid-template-columns: minmax(0, 1fr); margin-top: 0; }
.ent-cartera .ent-pie-uno .ent-calendario { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 40px; }
.ent-cartera .ent-pie-uno .ent-calendario h3 { flex: 1 0 100%; }
.ent-cartera .ent-pie-uno .ent-calendario p { flex: 1 1 28em; max-width: 46em; }
.ent-cartera .ent-pie-uno .ent-calendario .btn { margin-top: 0; align-self: center; }
@media (max-width: 640px) {
  .ent-nohacemos { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-bottom: 28px; }
  .ent-cartera .ent-pie-uno .ent-calendario .btn { flex: 1 1 100%; }
}

/* ---------- Cierre ---------- */
.ent-cartera .ent-cta-texto p { margin-bottom: 18px; }
.ent-cartera .ent-cta-texto .btn { margin-top: 8px; }

/* Móvil: cada MicroApp es una fila compacta (icono, código, nombre, una línea
   y el precio), con el detalle plegado debajo. */
@media (max-width: 640px) {
  .ent-cartera .ent-app:not(.ent-app-llamada) {
    display: grid; grid-template-columns: 28px minmax(0, 1fr); column-gap: 12px; padding: 14px 16px 4px;
  }
  .ent-cartera .ent-app:not(.ent-app-llamada) .ent-app-cab { display: contents; }
  .ent-cartera .ent-app-icono { grid-column: 1; grid-row: 1 / span 2; align-self: start; margin-top: 4px; }
  .ent-cartera .ent-app-cod { grid-column: 2; }
  .ent-cartera .ent-app:not(.ent-app-llamada) h3.ent-app-nombre { grid-column: 2; margin-bottom: 2px; }
  .ent-cartera .ent-app:not(.ent-app-llamada) .ent-app-lema { grid-column: 2; margin-bottom: 4px; }
  .ent-cartera .ent-app:not(.ent-app-llamada) .ent-app-precio { grid-column: 2; grid-row: 4; border-top: 0; padding-top: 0; margin-bottom: 4px; }
  .ent-cartera .ent-app:not(.ent-app-llamada) .ent-app-detalle { grid-column: 1 / -1; grid-row: 5; }
}

/* ========== Qué hacemos: acordeón de problemas (opción C, 15-10-2026) ========== */
[hidden]:not([hidden="until-found"]) { display: none !important; }
.ent-qc .qc-lista { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--grafito); }
.ent-qc .qc-item { border-bottom: 1px solid var(--borde-linea); }
.ent-qc .qc-fila { display: grid; grid-template-columns: minmax(0, 1fr) 230px; column-gap: 28px; align-items: center; }
.ent-qc .qc-h { margin: 0; }
.ent-qc .qc-cab { display: grid; grid-template-columns: 72px minmax(0, 1fr) 16px; column-gap: 28px; align-items: center; width: 100%; padding: 28px 0; background: none; border: 0; text-align: left; font: inherit; color: var(--grafito); }
.ent-qc button.qc-cab { cursor: pointer; }
.ent-qc button.qc-cab:hover .qc-problema { color: var(--bronce); }
.ent-qc .qc-num { font-family: var(--mono); font-size: 20px; font-weight: 500; color: var(--bronce); }
.ent-qc .qc-problema { font-family: var(--serif); font-weight: 600; font-size: clamp(22px, 2.3vw, 30px); line-height: 1.2; }
.ent-qc .qc-signo { width: 16px; height: 16px; color: var(--grafito); background:
  linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat,
  linear-gradient(currentColor, currentColor) center / 2px 100% no-repeat; }
.ent-qc .qc-cab:not(button) .qc-signo { visibility: hidden; }
.ent-qc button.qc-cab[aria-expanded="true"] .qc-signo { background: linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat; }
.ent-qc .qc-nombre { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 16px; font-weight: 500; color: var(--bronce); text-underline-offset: 4px; }
.ent-qc a.qc-nombre:hover { color: var(--bronce-hover); }
.ent-qc .qc-icono { flex: 0 0 20px; width: 20px; height: 20px; }
.ent-qc .qc-icono svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.ent-qc .qc-cuerpo-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 56px; padding: 0 0 40px 100px; }
.ent-qc .qc-texto { font-size: 18px; line-height: 1.55; color: var(--grafito-suave); }
.ent-qc .ent-lema { font-family: var(--serif); font-weight: 600; font-size: 20px; line-height: 1.35; color: var(--grafito); border-left: 3px solid var(--bronce-grafico); padding-left: 14px; margin: 18px 0 20px; }
.ent-qc .qc-entidad .ent-lema { font-size: 18px; margin: 6px 0 0; }
.ent-qc .qc-etq { font-family: var(--mono); font-size: 16px; font-weight: 500; letter-spacing: 1px; text-transform: uppercase; color: var(--grafito); margin-bottom: 10px; }
.ent-qc .qc-entidad > p { font-size: 16px; line-height: 1.55; color: var(--grafito-suave); margin-bottom: 12px; }
.ent-qc .qc-enlaces { display: flex; flex-wrap: wrap; gap: 10px 28px; font-size: 17px; }
.ent-qc .qc-enlaces a { font-weight: 500; color: var(--bronce); text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
.ent-qc .ent-lista-check { list-style: none; margin: 0 0 14px; padding: 0; }
.ent-qc .ent-lista-check li { display: flex; gap: 10px; align-items: flex-start; padding: 6px 0; font-size: 16px; line-height: 1.5; color: var(--grafito-suave); border-bottom: 1px solid var(--borde-linea); }
.ent-qc .ent-lista-check li:last-child { border-bottom: 0; }
.ent-qc .ent-lista-check svg { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 3px; fill: none; stroke: var(--bronce); stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.ent-qc .qc-otra { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px 48px; align-items: center; padding: 32px 0; border-bottom: 1px solid var(--borde-linea); }
.ent-qc .qc-otra h3 { font-family: var(--serif); font-weight: 600; font-size: 22px; line-height: 1.25; margin-bottom: 6px; }
.ent-qc .qc-otra p { font-size: 17px; color: var(--grafito-suave); max-width: 42em; }
.ent-qc button.qc-cab:focus-visible, .ent-qc a:focus-visible { outline: 3px solid var(--grafito); outline-offset: 2px; box-shadow: 0 0 0 6px var(--bronce-luz); border-radius: 2px; }
@media (max-width: 900px) {
  .ent-qc .qc-fila { grid-template-columns: minmax(0, 1fr); }
  .ent-qc .qc-cab { grid-template-columns: 40px minmax(0, 1fr) 16px; column-gap: 14px; padding: 22px 0 8px; }
  .ent-qc .qc-num { font-size: 18px; }
  .ent-qc .qc-problema { font-size: 21px; }
  .ent-qc .qc-nombre { padding: 0 0 20px 54px; }
  .ent-qc .qc-cuerpo-in { grid-template-columns: minmax(0, 1fr); padding: 0 0 26px 54px; row-gap: 18px; }
  .ent-qc .qc-texto { font-size: 17px; }
  .ent-qc .qc-enlaces { font-size: 16px; gap: 8px 24px; }
}
@media (max-width: 640px) {
  .ent-qc .qc-otra { grid-template-columns: minmax(0, 1fr); }
  .ent-qc .qc-otra .btn { width: 100%; text-align: center; }
}
@media (max-width: 480px) { .ent-qc .qc-cuerpo-in { padding-left: 0; } }
