/* ================================================================
   Práctica Psiquiátrica — sistema visual común
   Fuente canónica. Todo producto del sitio enlaza este archivo.
   No editar copias: editar aquí y volver a copiar donde haga falta.

   REGLA RECTORA
   La serif es la voz: lo que el texto afirma.
   La sans es el aparato: procedencia, controles, metadatos, navegación.
   El lector sabe de qué plano es lo que lee antes de leerlo.
   ================================================================ */

:root{
  /* superficies y tinta */
  --bg:#fdfcfa; --card:#fff; --tint:#f5f2ec;
  --ink:#1b1f23; --text:#22262b; --muted:#5d646c; --soft:#8d949b;
  --border:#e3ded5; --border-strong:#cfc8bc;

  /* acento: única variable de marca por producto */
  --accent:#2e5e57;
  --accent-tint:#e8efed;

  /* semánticos: solo donde el color significa algo */
  --ok:#3f6f58; --warn:#a2543f;

  /* tipografía */
  --serif:"Source Serif 4","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --t-xs:12px; --t-sm:13px; --t-md:15px; --t-prose:17px;
  --t-lg:20px; --t-xl:28px; --t-display:46px;

  /* ritmo vertical: múltiplos de 4, sin excepciones */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px;
  --r:6px;
}

/* tonos por producto: se aplica en <body data-producto="…"> */
[data-producto="atlas"]        { --accent:#6b4f36; --accent-tint:#efe9de; }
[data-producto="herramientas"] { --accent:#3a5a72; --accent-tint:#e6ecf1; }
[data-producto="escritos"]     { --accent:#6b4a5e; --accent-tint:#f0e9ee; }
[data-producto="cursos"]       { --accent:#7a5a2e; --accent-tint:#f2ebdf; }

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);
  font-size:var(--t-md);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none;border-bottom:1px solid var(--border-strong)}
a:hover{border-bottom-color:var(--accent);color:var(--accent)}

/* ---------------- estructura ---------------- */
.container{max-width:960px;margin:0 auto;padding:0 var(--s5)}
.container.prosa{max-width:720px}
header.site{background:color-mix(in srgb,var(--bg) 93%,transparent);
  border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;backdrop-filter:blur(8px)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  padding:var(--s3) 0;flex-wrap:wrap}
.brand{font-family:var(--serif);font-size:var(--t-lg);color:var(--ink);letter-spacing:-.01em;border:0}
.brand:hover{color:var(--accent)}
.brand-lock{display:inline-flex;align-items:center;gap:var(--s3)}
.brand-lock .mark{width:26px;height:26px;flex:none}
/* Barra de sitio para páginas-herramienta.
   NO es pegajosa a propósito: los dashboards ya tienen sus propios elementos
   fijos en top:0 (barras de filtros, encabezados de tabla) y una segunda capa
   pegajosa se les monta encima. Aquí la barra se desplaza con la página.
   Se usa <div>, no <header>, para que no la alcancen los selectores
   `header{…}` que esas páginas ya traen. */
.barra-sitio{border-bottom:1px solid var(--border);background:var(--bg);position:static}
.barra-sitio .bar{padding:var(--s3) 0}

/* Encabezado de página interior: la marca madre siempre a la izquierda y
   siempre enlazando a la portada del sitio; el producto viene después. */
.marca-padre{display:inline-flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.marca-padre .mark{width:26px;height:26px;flex:none}
.marca-padre .sep{color:var(--border-strong)}
.marca-padre .producto{font-family:var(--serif);font-size:var(--t-lg);color:var(--muted);letter-spacing:-.01em}
.marca-padre a{border:0}
.marca-padre a:hover{color:var(--accent)}
@media(max-width:560px){.marca-padre .sep,.marca-padre .madre{display:none}}
nav.main{display:flex;gap:var(--s4);flex-wrap:wrap;align-items:baseline}
nav.main a{font-size:var(--t-sm);color:var(--muted);border-bottom:1px solid transparent;padding-bottom:1px}
nav.main a:hover{color:var(--accent);border-bottom-color:var(--accent)}
nav.main a[aria-current]{color:var(--ink);border-bottom-color:var(--accent)}
main{padding:var(--s6) 0 var(--s7)}
.backbar{margin-bottom:var(--s4)}
.backbar a{font-size:var(--t-sm);color:var(--soft);border:0}
.backbar a:hover{color:var(--accent)}
.site-foot{border-top:1px solid var(--border);margin-top:var(--s7);
  padding:var(--s5) 0 var(--s6);font-size:var(--t-xs);color:var(--soft);line-height:1.65}
.site-foot .container{max-width:72ch}

/* ---------------- marcas ---------------- */
.mark{display:block;overflow:visible}
.mark .n-f{fill:var(--ink);stroke:none}
.mark .n-o{fill:var(--bg);stroke:var(--ink);stroke-width:1.4}
.mark .e{stroke:var(--ink);fill:none;stroke-width:1.4;stroke-linecap:round}
.mark .e-dash{stroke-dasharray:3.2 3}
.mark .e-dot{stroke-dasharray:.2 3.4}

/* ---------------- frontispicio ----------------
   Patrón obligatorio de toda portada de producto:
   marca · título · bajada · epígrafe · colofón           */
.masthead{padding:var(--s6) 0 var(--s5);border-bottom:1px solid var(--border);margin-bottom:var(--s6)}
.masthead .mark{width:104px;height:84px;margin-bottom:var(--s5)}
.masthead h1{font-family:var(--serif);font-weight:400;font-size:var(--t-display);line-height:1.04;
  letter-spacing:-.022em;color:var(--ink);margin:0 0 var(--s3);max-width:15ch}
.masthead .lede{font-family:var(--serif);font-size:var(--t-lg);line-height:1.5;
  color:var(--muted);max-width:52ch;margin:0 0 var(--s5)}
.epigrafe{font-family:var(--serif);font-style:italic;font-size:var(--t-prose);line-height:1.6;
  color:var(--text);border-left:2px solid var(--accent);padding-left:var(--s4);max-width:58ch;margin:0}
.colofon{display:flex;flex-wrap:wrap;gap:var(--s1) 0;font-size:var(--t-xs);
  letter-spacing:.03em;color:var(--soft);margin-top:var(--s5)}
.colofon span{white-space:nowrap}
.colofon span+span::before{content:"·";margin:0 var(--s2);color:var(--border-strong)}
.colofon b{font-weight:400;color:var(--text);font-variant-numeric:tabular-nums}
@media(max-width:640px){.masthead h1{font-size:32px}.masthead .mark{width:80px;height:64px}}

/* ---------------- voz: serif ---------------- */
h1.title{font-family:var(--serif);font-size:var(--t-xl);line-height:1.2;letter-spacing:-.012em;
  color:var(--ink);margin:0 0 var(--s2);font-weight:400;max-width:26ch}
h2.title{font-family:var(--serif);font-size:var(--t-lg);font-weight:400;color:var(--ink);margin:0 0 var(--s2)}
.body-text{font-family:var(--serif);font-size:var(--t-prose);line-height:1.68;
  color:var(--text);max-width:68ch}
.body-text p{margin:0 0 var(--s4)}
.body-text p:last-child{margin-bottom:0}

/* ---------------- aparato: sans ---------------- */
.section{margin-top:var(--s5)}
.section h3{font-family:var(--sans);font-size:var(--t-xs);letter-spacing:.09em;text-transform:uppercase;
  color:var(--soft);margin:0 0 var(--s3);font-weight:500}
.note{font-size:var(--t-sm);color:var(--muted);border-left:2px solid var(--border-strong);
  padding:var(--s1) 0 var(--s1) var(--s3);margin-bottom:var(--s4);max-width:70ch;line-height:1.6}
.rotulo{font-family:var(--sans);font-size:var(--t-xs);letter-spacing:.09em;
  text-transform:uppercase;color:var(--soft)}
.chip-wrap{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.chip{display:inline-flex;align-items:baseline;gap:var(--s2);font-size:var(--t-sm);
  padding:6px var(--s3);border:1px solid var(--border);border-radius:var(--r);
  background:var(--card);color:var(--text)}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip .n{font-size:var(--t-xs);color:var(--soft)}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);
  padding:var(--s4) var(--s5)}
.area-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:var(--s3);margin-top:var(--s3)}
.area{display:flex;flex-direction:column;gap:var(--s1);border:1px solid var(--border);
  border-radius:var(--r);padding:var(--s4);background:var(--card)}
.area:hover{border-color:var(--accent)}
.area strong{font-family:var(--serif);font-weight:400;color:var(--ink);font-size:var(--t-prose)}
.area .sub{font-size:var(--t-sm);color:var(--muted);line-height:1.5}
.area.destacada{grid-column:1/-1;border-color:var(--border-strong);background:var(--tint);
  padding:var(--s5);gap:var(--s2)}
.area.destacada strong{font-size:24px}
.area.destacada .sub{font-size:var(--t-md);max-width:56ch}

/* listas y tablas */
.rel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s2)}
.rel-list li{font-size:var(--t-sm);line-height:1.5}
.rel-list .nota{color:var(--soft);font-style:italic;margin-left:var(--s2)}
table.datos{width:100%;border-collapse:collapse;font-size:var(--t-sm);font-variant-numeric:tabular-nums}
table.datos th{font-family:var(--sans);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;
  color:var(--soft);font-weight:500;text-align:left;padding:var(--s2) var(--s3) var(--s2) 0;
  border-bottom:1px solid var(--border-strong)}
table.datos td{padding:var(--s2) var(--s3) var(--s2) 0;border-bottom:1px solid var(--border);vertical-align:top}
table.datos tr:hover td{background:var(--tint)}

/* controles */
button,.btn{font-family:var(--sans);font-size:var(--t-sm);padding:7px var(--s4);
  border:1px solid var(--border-strong);border-radius:var(--r);background:var(--card);
  color:var(--text);cursor:pointer}
button:hover,.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn-acc{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.btn-sm{font-size:var(--t-xs);padding:4px var(--s3)}
input[type=search],input[type=text],select{font-family:var(--sans);font-size:var(--t-sm);
  padding:6px var(--s3);border:1px solid var(--border);border-radius:var(--r);
  background:var(--card);color:var(--text);outline:none}
input:focus,select:focus{border-color:var(--accent)}
