/* =====================================================================
   benzos.css — «Benzodiacepinas y agonistas del receptor».  [D-55]
   Todo prefijado con .psf-bz. Depende de psf-componentes, y por tanto de
   psf-tokens: el hueco declarado (.psf-gap) se define allí.
   ===================================================================== */

/* La base tipográfica del módulo. SIN esto la página hereda la del tema de
   WordPress y hay que pelear cada regla con !important, que es como estaba
   escrita la primera versión: 27 !important para compensar una base que no
   se había puesto. */
.psf-bz{
	box-sizing:border-box;
	color:var(--pf-ink,#191c1d);
	font-family:var(--pf-sans,sans-serif);
	font-size:var(--pf-fs-body,20px);
	line-height:1.65;
	/* --bz-c para trazos y bordes; --bz-tx para TEXTO, que necesita AA. Los
	   respaldos son los del área de fármacos, no los de otra sección. */
	--bz-c: var(--pf-cat-farmacos, #1a365d);
	--bz-tx: var(--pf-cat-farmacos-tx, #1a365d);
}
.psf-bz *,.psf-bz *::before,.psf-bz *::after{ box-sizing:inherit; }

/* [D-36] El hueco declarado nace con white-space:nowrap y solo .psf-gap__razon
   lo devuelve a normal. El <p> de un psf-gap--bloque hereda el nowrap y se
   pinta en una sola línea: desbordaba la página entera. Es la misma
   corrección local que lleva adversos.css. */
.psf-bz .psf-gap{ white-space:normal; }
.psf-bz .psf-gap--bloque{ max-width:min(100%,var(--pf-w-read,816px)); margin:16px 0; }

/* «En tres líneas»: el patrón viene de Principios, donde vive como
   .psf-pb .pb-tres. Aquí hay que darle cuerpo o sale como lista pelada. */
.psf-bz .bz-tres{ background:var(--pf-paper-alt,#f3f4f5); border-radius:8px;
  padding:16px 20px; margin:0 0 20px; max-width:var(--pf-w-read,816px); }
.psf-bz .bz-tres .pb-tres-t{ display:block; font-family:var(--pf-mono,monospace);
  font-size:var(--pf-fs-micro,15px); text-transform:uppercase; letter-spacing:.07em;
  color:var(--pf-ink-faint-tx,#5d6169); margin-bottom:8px; }
.psf-bz .bz-tres ul{ margin:0; padding-left:20px; }
.psf-bz .bz-tres li{ margin:0 0 7px; line-height:1.6; }
.psf-bz .bz-tres li:last-child{ margin-bottom:0; }

.psf-bz .bz-cab{ margin:0 0 22px; }
.psf-bz .bz-eyebrow{ display:inline-block; padding:4px 12px; background:rgba(70,100,93,.1); color:#46645d!important; border-radius:2px; font-weight:600; letter-spacing:.08em; font-family:var(--pf-sans); font-size:12px!important;
  text-transform:uppercase; letter-spacing:.07em; color:var(--pf-ink-faint-tx,#5d6169); margin:0 0 6px!important; }
.psf-bz h1{ font-family:var(--pf-serif); font-weight:600; color:#002045; letter-spacing:-.02em; font-size:48px!important; line-height:1.1; margin:0 0 16px!important; }
.psf-bz .bz-lead{ font-size:var(--pf-fs-lead,22px)!important; line-height:1.5!important;
  max-width:var(--pf-w-read,816px); margin:0!important; }

.psf-bz .bz-sec{ margin:34px 0 0; }
.psf-bz .bz-sec h2{ font-family:var(--pf-serif); font-weight:500; color:#002045; font-size:var(--pf-fs-h3,24px)!important; margin:0 0 8px!important; line-height:1.2; }
.psf-bz .bz-sec h3{ font-size:var(--pf-fs-h3,24px)!important; margin:20px 0 6px!important; }
.psf-bz .bz-sub,.psf-bz .bz-gsub{ max-width:var(--pf-w-read,816px); color:var(--pf-ink-soft,#43474e);
  margin:0 0 12px!important; }
.psf-bz p{ max-width:var(--pf-w-read,816px); line-height:1.65!important; }
.psf-bz .bz-grupo{ border-left:5px solid var(--bz-c); padding-left:12px; }

/* ---- tablas ---- */
.psf-bz .bz-tabla{ width:100%; border-collapse:collapse; margin:0 0 6px; font-size:var(--pf-fs-small,18px); }
.psf-bz .bz-tabla th{ text-align:left; font-family:var(--pf-mono,monospace); font-size:var(--pf-fs-micro,15px);
  text-transform:uppercase; letter-spacing:.05em; color:var(--pf-ink-faint-tx,#5d6169);
  border-bottom:2px solid var(--pf-line,#e9ecef); padding:8px 10px; }
.psf-bz .bz-tabla td{ border-bottom:1px solid var(--pf-line,#e9ecef); padding:10px; vertical-align:top;
  line-height:1.5; }
.psf-bz .bz-tabla tr.bz-lot td{ background:color-mix(in srgb, var(--pf-brand,#1a365d) 9%, var(--pf-surface,#fff)); }
.psf-bz .bz-tabla tr.bz-lot td:first-child{ box-shadow:inset 4px 0 0 var(--pf-brand,#1a365d); }

/* ---- subunidades alfa ---- */
.psf-bz ul.bz-alfa{ list-style:none!important; margin:12px 0 16px!important; padding:0!important;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; }
.psf-bz .bz-alfa li{ background:var(--pf-surface,#fff); border:1px solid var(--pf-line,#e9ecef);
  border-radius:8px; padding:13px 15px; margin:0!important; font-size:var(--pf-fs-small,18px); line-height:1.5; }
.psf-bz .bz-alfa-n{ display:block; font-size:var(--pf-fs-h4,20px); color:var(--bz-tx); margin-bottom:4px; }

/* ---- bloque de idea clave ---- */
.psf-bz .bz-clave{ background:var(--pf-paper-alt,#f3f4f5); border:1px solid var(--pf-line,#e9ecef);
  border-radius:8px; padding:16px 20px; margin:16px 0 0; max-width:var(--pf-w-read,816px); }
.psf-bz .bz-clave h3{ margin:0 0 8px!important; font-size:var(--pf-fs-h4,20px)!important; }
.psf-bz .bz-clave p{ margin:0 0 8px!important; }
.psf-bz .bz-clave p:last-child{ margin-bottom:0!important; }
.psf-bz .bz-r5{ font-size:var(--pf-fs-micro,15px)!important; color:var(--pf-ink-faint-tx,#5d6169);
  border-top:1px dotted var(--pf-line,#e9ecef); padding-top:9px; margin-top:12px!important; }

/* ---- la mnemotecnia ---- */
.psf-bz .bz-lot-t{ font-family:var(--pf-mono,monospace); color:var(--pf-brand-tx,#1a365d); }
.psf-bz .bz-mnemo{ background:var(--pf-surface,#fff); border:2px dashed var(--pf-brand,#1a365d);
  border-radius:8px; padding:18px 22px; margin:0 0 14px; max-width:var(--pf-w-read,816px); }
.psf-bz .bz-mnemo-f{ font-size:var(--pf-fs-h3,24px)!important; margin:0 0 10px!important; line-height:1.35; }
.psf-bz .bz-mnemo-f b{ color:var(--pf-brand-tx,#1a365d); }
.psf-bz .bz-mnemo-s{ font-family:var(--pf-mono,monospace); font-size:var(--pf-fs-body,20px);
  color:var(--pf-ink-faint-tx,#5d6169); }
.psf-bz .bz-mnemo-c{ font-weight:600; margin-bottom:0!important; }

/* ---- figuras ---- */
.psf-bz .bz-fig{ margin:14px 0 0; }
.psf-bz .bz-svg{ display:block; width:100%; height:auto; background:var(--pf-surface,#fff);
  border:1px solid var(--pf-line,#e9ecef); border-radius:8px; }
.psf-bz .bz-par{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px; }
.psf-bz .bz-eje{ stroke:var(--pf-ink-faint,#74777f); stroke-width:1.5; }
.psf-bz .bz-ejet{ fill:var(--pf-ink-faint-tx,#5d6169); font-family:var(--pf-sans,sans-serif);
  font-size:15px; text-anchor:middle; }
.psf-bz .bz-rot{ fill:var(--pf-ink-faint-tx,#5d6169); font-family:var(--pf-mono,monospace);
  font-size:16px; letter-spacing:.08em; text-anchor:end; }
.psf-bz .bz-c{ fill:none; stroke-width:3.2; stroke-linecap:round; stroke-linejoin:round; }
/* Trazo Y color: la curva del SNC va punteada, nunca solo de otro color [1.4.1] */
.psf-bz .bz-c--suero{ stroke:var(--pf-cat-principios,#4A5C80); }
.psf-bz .bz-c--snc{ stroke:var(--pf-brand,#1a365d); stroke-dasharray:9 6; }
.psf-bz .bz-c--dz{ stroke:var(--pf-cat-principios,#4A5C80); }
.psf-bz .bz-c--lz{ stroke:var(--pf-brand,#1a365d); stroke-dasharray:9 6; }
.psf-bz .bz-rot--dz{ fill:var(--pf-cat-principios,#4A5C80); }
.psf-bz .bz-rot--lz{ fill:var(--pf-brand-tx,#1a365d); }
.psf-bz ul.bz-leyenda{ list-style:none!important; display:flex; flex-wrap:wrap; gap:8px 22px;
  margin:10px 0 0!important; padding:0!important; font-size:var(--pf-fs-micro,15px); }
.psf-bz .bz-leyenda li{ margin:0!important; display:flex; align-items:center; gap:8px; }
.psf-bz .bz-k{ width:30px; height:0; border-top:3.2px solid; display:inline-block; }
.psf-bz .bz-k--suero{ border-color:var(--pf-cat-principios,#4A5C80); }
.psf-bz .bz-k--snc{ border-color:var(--pf-brand,#1a365d); border-top-style:dashed; }

/* ---- el árbol ---- */
.psf-bz .bz-nodo rect{ fill:var(--pf-surface,#fff); stroke:var(--pf-ink-faint,#74777f); stroke-width:2; }
.psf-bz .bz-nodo text{ fill:var(--pf-ink,#191c1d); font-family:var(--pf-sans,sans-serif);
  font-size:19px; font-weight:600; text-anchor:middle; }
.psf-bz .bz-nodo .bz-nodo-s{ font-size:14px; font-weight:400; fill:var(--pf-ink-faint-tx,#5d6169); }
.psf-bz .bz-nodo--int rect{ stroke-dasharray:5 4; }
.psf-bz .bz-nodo--clave rect{ stroke:var(--pf-cat-principios,#4A5C80); stroke-width:3; }
.psf-bz .bz-nodo--fin rect{ stroke:var(--pf-brand,#1a365d); stroke-width:4; fill:color-mix(in srgb, var(--pf-brand,#1a365d) 10%, var(--pf-surface,#fff)); }
.psf-bz .bz-nodo--fin text{ font-family:var(--pf-mono,monospace); letter-spacing:.06em; }
.psf-bz .bz-nodo--sale rect{ fill:var(--pf-paper-alt,#f3f4f5); stroke-dasharray:5 4; }
.psf-bz .bz-nodo--lot rect{ stroke:var(--pf-brand,#1a365d); stroke-width:3; }
.psf-bz .bz-fl{ fill:none; stroke:var(--pf-ink-faint,#74777f); stroke-width:2; }
.psf-bz .bz-fl--clave{ stroke:var(--pf-brand,#1a365d); stroke-width:3.5; }
.psf-bz .bz-fl--lot{ stroke:var(--pf-brand,#1a365d); stroke-width:3; stroke-dasharray:9 6; }
.psf-bz .bz-nivel text{ fill:var(--pf-ink-faint-tx,#5d6169); font-family:var(--pf-mono,monospace);
  font-size:15px; letter-spacing:.09em; }
.psf-bz .bz-nota{ fill:var(--pf-ink-faint-tx,#5d6169); font-family:var(--pf-sans,sans-serif);
  font-size:14px; font-style:italic; text-anchor:middle; }
.psf-bz .bz-nota--pie{ text-anchor:start; }

/* ---- referencias y bibliografía ---- */
.psf-bz sup.bz-ref{ display:inline-block; min-width:22px; text-align:center; cursor:pointer;
  background:var(--pf-paper-alt,#f3f4f5); border-radius:5px; padding:1px 4px; margin-left:2px;
  font-size:var(--pf-fs-micro,15px); color:var(--pf-ink-faint-tx,#5d6169); }
/* [D-15] El terracota es relleno y borde, NUNCA texto: blanco sobre él da
   3,72:1 y falla AA a este tamaño. Se tinta el fondo y el texto va con la
   variante -tx. Y el foco lleva anillo, no solo cambio de color. */
.psf-bz sup.bz-ref:hover{ background:color-mix(in srgb, var(--pf-brand,#1a365d) 18%, var(--pf-surface,#fff));
  color:var(--pf-brand-tx,#1a365d); }
.psf-bz sup.bz-ref:focus-visible{ background:color-mix(in srgb, var(--pf-brand,#1a365d) 18%, var(--pf-surface,#fff));
  color:var(--pf-brand-tx,#1a365d); outline:3px solid var(--pf-brand-tx,#1a365d); outline-offset:2px; }
.psf-bz ol.bz-biblio{ list-style:none!important; margin:12px 0 0!important; padding:0!important; }
.psf-bz .bz-biblio li{ display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--pf-line,#e9ecef);
  font-size:var(--pf-fs-small,18px); line-height:1.55; margin:0!important; }
.psf-bz .bz-bn{ flex:none; width:30px; height:30px; border-radius:50%; background:var(--pf-paper-alt,#f3f4f5);
  display:grid; place-items:center; font-family:var(--pf-mono,monospace); font-size:14px; }
.psf-bz .bz-biblio a{ word-break:break-all; font-size:var(--pf-fs-micro,15px);
  display:inline-block; padding-block:5px; }   /* 24 px de alto táctil · 2.5.8 */
.psf-bz .bz-pie{ font-size:var(--pf-fs-micro,15px)!important; font-style:italic;
  color:var(--pf-ink-faint-tx,#5d6169); margin-top:12px!important; }

@media (max-width:640px){
  .psf-bz .bz-tabla{ font-size:var(--pf-fs-micro,15px); }
  .psf-bz .bz-tabla th,.psf-bz .bz-tabla td{ padding:7px 6px; }
}
.psf-bz .bz-destaca{ background:color-mix(in srgb, var(--pf-brand,#1a365d) 14%, var(--pf-surface,#fff)); border-radius:8px; }
.psf-bz ul.bz-cifras{ list-style:none!important; margin:12px 0 14px!important; padding:0!important;
  display:flex; flex-wrap:wrap; gap:12px; }
.psf-bz .bz-cifras li{ margin:0!important; background:var(--pf-surface,#fff);
  border:1px solid var(--pf-line,#e9ecef); border-left:5px solid var(--pf-brand,#1a365d);
  border-radius:8px; padding:11px 16px; }
.psf-bz .bz-cifras b{ display:block; font-size:var(--pf-fs-h4,20px); color:var(--pf-brand-tx,#1a365d); }
.psf-bz .bz-cifras span{ font-size:var(--pf-fs-micro,15px); color:var(--pf-ink-faint-tx,#5d6169);
  font-family:var(--pf-mono,monospace); }

/* Las tablas tienen cuatro y cinco columnas con celdas largas. En un
   teléfono no caben, y encoger la letra —que era lo único que hacía la
   primera versión— las dejaba a 60 px por columna. Se les da su propio
   desplazamiento horizontal: la PÁGINA no desborda, la tabla sí se
   arrastra. Con tabindex y role=region para que también se pueda desplazar
   con el teclado, que es lo que pide el criterio 2.1.1. */
.psf-bz .bz-tblwrap{ overflow-x:auto; -webkit-overflow-scrolling:touch;
  border-radius:8px; margin:0 0 6px; }
.psf-bz .bz-tblwrap:focus-visible{ outline:3px solid var(--pf-brand-tx,#1a365d); outline-offset:2px; }
.psf-bz .bz-tblwrap table{ min-width:560px; margin:0; }
@media (max-width:640px){
  .psf-bz .bz-tblwrap::after{ content:'← se arrastra →'; display:block; text-align:center;
    font-size:var(--pf-fs-micro,15px); font-style:italic; color:var(--pf-ink-faint-tx,#5d6169);
    padding:4px 0 2px; }
}

/* La caja de advertencia clínica: lo que puede matar va con más peso visual
   que una idea clave, y con borde rojo del sistema. */
.psf-bz .bz-alerta{ background:var(--pf-surface,#fff); border:1px solid var(--pf-line,#e9ecef);
  border-left:6px solid var(--pf-danger,#a11d1d); border-radius:8px;
  padding:16px 20px; margin:0 0 18px; max-width:var(--pf-w-read,816px); }
.psf-bz .bz-alerta h3{ margin:0 0 8px; font-size:var(--pf-fs-h4,20px); color:var(--pf-danger-tx,#a11d1d); }
.psf-bz .bz-alerta p{ margin:0 0 8px; }
.psf-bz .bz-alerta p:last-child{ margin-bottom:0; }
.psf-bz .bz-clave--fuerte{ border-left:6px solid var(--pf-brand,#1a365d); }
.psf-bz .bz-alfa--dos{ grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); margin:10px 0 12px; }

/* [v9.13.0] Enlace a la carpeta hermana, bajo la entradilla. */
.psf-bz .bz-hermana{ font-size:var(--pf-fs-small,15px); color:var(--pf-ink-soft,#4a4f55); margin:.75rem 0 0; }
.psf-bz .bz-hermana a{ color:var(--pf-brand,#1a365d); text-underline-offset:3px; }
