:root { --navy:#0f2c52; --navy2:#091f3d; --red:#a8102b; --gold:#c9a227; --ink:#12130f; --muted:#8f8f8a; --line:#e2e2df; --line2:#ececea; }
  * { box-sizing:border-box; }
  html, body { margin:0; padding:0; background:#fff; }
  body { font-family:'Libre Franklin','Helvetica Neue',sans-serif; color:var(--ink); -webkit-font-smoothing:antialiased; }
  a { color:var(--navy); text-decoration:none; }
  a:hover { color:var(--red); }
  img { display:block; max-width:100%; }

  .util { background:var(--navy); color:rgba(255,255,255,.82); font-size:12px; }
  .util .in { max-width:1180px; margin:0 auto; padding:8px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; row-gap:6px; }
  .util .clima { display:flex; align-items:center; gap:8px; }
  .util b { color:#fff; font-weight:600; }
  .util .sep { opacity:.5; }
  .util a { color:rgba(255,255,255,.82); }
  .util a:hover { color:var(--gold); }
  .util .ed { color:var(--gold); font-weight:600; letter-spacing:.08em; }

  .mast { border-bottom:1px solid var(--line); }
  .mast .in { max-width:1180px; margin:0 auto; padding:18px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
  .brand { display:flex; align-items:center; gap:16px; cursor:pointer; }
  .brand-logo { height:clamp(56px,9vw,74px); width:auto; display:block; }
  .brand .bar { width:1px; height:46px; background:#d8d8d4; }
  .brand .sub { font-size:11px; font-weight:700; letter-spacing:.16em; color:var(--red); }
  .tools { display:flex; align-items:center; gap:10px; flex:1; justify-content:flex-end; min-width:240px; }
  .search { display:flex; align-items:center; border:1px solid #d8d8d4; background:#fafaf8; padding:0 12px; height:38px; gap:8px; flex:1; max-width:280px; }
  .search input { border:none; outline:none; background:transparent; font-family:inherit; font-size:14px; width:100%; }
  .btn-red { background:var(--red); color:#fff; border:none; font-family:inherit; font-size:12px; font-weight:700; letter-spacing:.1em; padding:11px 18px; cursor:pointer; white-space:nowrap; }
  .btn-red:hover { background:#8c0d24; }

  nav.main { border-bottom:2px solid var(--navy); }
  nav.main .in { max-width:1180px; margin:0 auto; padding:0 24px; display:flex; flex-wrap:wrap; gap:2px; }
  nav.main a { font-size:13px; font-weight:600; letter-spacing:.04em; padding:13px 15px; white-space:nowrap; }
  nav.main a.active { color:#fff; background:var(--navy); font-weight:800; }

  .ticker { background:#f4f4f1; border-bottom:1px solid var(--line); overflow:hidden; }
  .ticker .in { max-width:1180px; margin:0 auto; padding:9px 24px; display:flex; align-items:center; gap:14px; }
  .ticker .tag { font-size:10px; font-weight:800; letter-spacing:.12em; color:#fff; background:var(--red); padding:4px 8px; white-space:nowrap; }
  .ticker .items { display:flex; gap:24px; overflow:hidden; white-space:nowrap; font-size:13px; }
  .ticker .items a { color:#3c3c38; }

  main.wrap { max-width:1180px; margin:0 auto; padding:24px 24px 56px 24px; display:grid; grid-template-columns:minmax(0,1fr) 316px; gap:44px; align-items:start; }
  .col { min-width:0; }
  .head-row { display:flex; align-items:center; justify-content:space-between; border-bottom:2px solid var(--navy); padding-bottom:9px; }
  .head-row h2, .head-row h1:not(.sec-title) { font-size:15px; font-weight:800; letter-spacing:.1em; color:var(--navy); margin:0; }
  .head-row .count { font-size:12px; color:var(--muted); }

  .lead { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,280px); gap:24px; padding:24px 0 26px 0; border-bottom:1px solid var(--line); cursor:pointer; }
  .lead.nophoto { grid-template-columns:minmax(0,1fr); }
  .kick { font-size:11px; font-weight:800; letter-spacing:.11em; color:var(--red); }
  .lead h1 { font-size:clamp(22px,2.6vw,30px); line-height:1.22; font-weight:700; margin:9px 0 0 0; text-wrap:pretty; }
  .lead p { font-family:'Source Serif 4',Georgia,serif; font-size:16px; line-height:1.6; color:#4b4b46; margin:12px 0 0 0; text-wrap:pretty; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  .lead .meta { font-size:12px; color:var(--muted); margin-top:14px; }
  .ph { overflow:hidden; background:#e8e8e4; }
  .ph img { width:100%; height:100%; object-fit:cover; }

  .feat-label { font-size:11px; font-weight:800; letter-spacing:.11em; color:var(--muted); margin:28px 0 14px 0; padding-top:22px; border-top:1px solid var(--line); }
  .feats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; padding-bottom:28px; margin-bottom:6px; border-bottom:1px solid var(--line); }
  .feat { display:flex; flex-direction:column; cursor:pointer; }
  .feat .ph { height:240px; margin-bottom:14px; }
  .feat .cat { font-size:10px; font-weight:800; letter-spacing:.1em; color:#fff; padding:3px 7px; }
  .feat .when { font-size:11px; color:var(--muted); }
  .feat h3 { font-size:18px; line-height:1.3; font-weight:700; margin:8px 0 0 0; text-wrap:pretty; }
  .feat p { font-family:'Source Serif 4',Georgia,serif; font-size:14px; line-height:1.55; color:#66665f; margin:6px 0 0 0; text-wrap:pretty; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }

  /* Banner publicitario de WorkLex (debajo de las destacadas en portada).
     Estilo "membrete de estudio juridico" que aprobo el anunciante, con sus
     propios colores de marca -no los del sitio. El folio superior (regla +
     etiqueta "PUBLICIDAD") es metadato del sitio, por fuera del recuadro:
     usa el dorado que el diario reserva para contenido pagado, para que se
     note a simple vista que es publicidad y no una nota mas. */
  .ad-wrap { margin:30px 0 32px 0; border-top:2px solid var(--gold); padding-top:12px; }
  .ad-meta { display:flex; justify-content:space-between; align-items:center; padding:0 2px 9px; }
  .ad-disclose { display:inline-flex; align-items:center; font-size:10px; font-weight:800; letter-spacing:.2em; color:#172c4e; background:var(--gold); padding:4px 10px; }
  .ad-domain { font-size:9.5px; font-weight:700; letter-spacing:.25em; color:var(--muted); }
  .ad-banner { display:grid; grid-template-columns:180px minmax(0,1fr); align-items:stretch; background:#fff; border:1px solid #172c4e; border-top:3px solid #172c4e; text-decoration:none; }
  .ad-left { background:#172c4e; padding:26px 22px; display:flex; flex-direction:column; justify-content:space-between; gap:22px; }
  .ad-left-top { display:flex; flex-direction:column; gap:14px; }
  .ad-mark { width:38px; height:38px; border:1px solid #7fa8cf; display:flex; align-items:center; justify-content:center; font-family:'Libre Baskerville',Georgia,serif; font-size:18px; font-weight:700; color:#7fa8cf; }
  .ad-word { font-family:'Libre Baskerville',Georgia,serif; font-size:24px; font-weight:700; color:#fff; line-height:1.1; letter-spacing:-.3px; }
  .ad-left-bottom { display:flex; flex-direction:column; gap:10px; }
  .ad-rule { width:100%; height:1px; background:rgba(127,168,207,.6); }
  .ad-tag { font-size:8.5px; font-weight:600; letter-spacing:.25em; color:#7fa8cf; line-height:1.8; }
  .ad-right { padding:24px 26px 20px; display:flex; flex-direction:column; min-width:0; }
  .ad-eyebrow { font-size:9.5px; font-weight:600; letter-spacing:.22em; color:#3d6a9c; padding-bottom:12px; }
  .ad-head { font-family:'Libre Baskerville',Georgia,serif; font-size:22px; line-height:1.28; letter-spacing:-.2px; color:#172c4e; max-width:26ch; text-wrap:pretty; }
  .ad-divider { height:1px; background:#dde3ea; margin:18px 0 14px; }
  .ad-bottom { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px; }
  .ad-services { display:flex; flex-direction:column; gap:5px; min-width:0; }
  .ad-services .lbl { font-size:9px; font-weight:600; letter-spacing:.2em; color:#56637a; }
  .ad-services .val { font-family:'Libre Baskerville',Georgia,serif; font-size:13px; line-height:1.5; color:#3a4560; }
  .ad-cta { display:inline-flex; align-items:center; gap:10px; padding:12px 18px; background:#172c4e; color:#fff; font-family:'Archivo',sans-serif; font-size:11px; font-weight:700; letter-spacing:.14em; white-space:nowrap; flex:0 0 auto; }
  .ad-cta span { font-size:14px; line-height:1; }
  .ad-banner:hover .ad-cta { background:#3d6a9c; }
  @media (max-width:640px) {
    .portada-top { display:flex; flex-direction:column; }
    .portada-top .ad-wrap { order:-1; margin:0 0 22px 0; border-top-width:3px; padding-top:10px; }
    .ad-banner { grid-template-columns:1fr; }
    .ad-meta { padding:0 1px 6px; }
    .ad-disclose { font-size:8px; letter-spacing:.16em; padding:3px 8px; }
    .ad-domain { font-size:8px; letter-spacing:.22em; }
    .ad-left { flex-direction:row; align-items:center; padding:14px 16px; }
    .ad-left-top { flex-direction:row; align-items:center; gap:9px; }
    .ad-mark { width:30px; height:30px; font-size:14px; }
    .ad-word { font-size:15px; }
    .ad-left-bottom { display:none; }
    .ad-right { padding:16px 16px 14px; }
    .ad-eyebrow { font-size:8px; letter-spacing:.16em; padding-bottom:8px; }
    .ad-head { font-size:15.5px; line-height:1.32; max-width:none; }
    .ad-divider { margin:12px 0 10px; }
    .ad-bottom { gap:12px; }
    .ad-services .lbl { font-size:7.5px; }
    .ad-services .val { font-size:11px; }
    .ad-cta { padding:9px 13px; font-size:9px; gap:7px; }
    .ad-cta span { font-size:11px; }
  }

  .row { display:grid; grid-template-columns:104px minmax(0,1fr); gap:18px; padding:18px 0; border-bottom:1px solid var(--line2); cursor:pointer; }
  .row.nophoto { grid-template-columns:minmax(0,1fr); }
  .row:hover { background:#fafaf8; }
  .row .ph { height:74px; }
  .row .cat { font-size:10px; font-weight:800; letter-spacing:.1em; color:#fff; background:var(--navy); padding:3px 7px; }
  .row .when { font-size:11px; color:var(--muted); }
  .row h3 { font-size:17px; line-height:1.32; font-weight:600; margin:8px 0 0 0; text-wrap:pretty; }
  .row p { font-family:'Source Serif 4',Georgia,serif; font-size:14px; line-height:1.55; color:#66665f; margin:6px 0 0 0; text-wrap:pretty; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }

  aside .box + .box { margin-top:34px; }
  aside h3 { font-size:13px; font-weight:800; letter-spacing:.1em; color:var(--navy); margin:0; padding-bottom:9px; border-bottom:2px solid var(--red); }
  .mr a { display:grid; grid-template-columns:26px minmax(0,1fr); gap:12px; padding:13px 0; border-bottom:1px solid var(--line2); align-items:start; }
  .mr .n { font-family:'Source Serif 4',Georgia,serif; font-size:20px; font-weight:700; color:var(--gold); line-height:1; }
  .mr span.t { font-size:14px; line-height:1.38; font-weight:500; color:var(--ink); text-wrap:pretty; }
  .rl a { padding:13px 0; border-bottom:1px solid var(--line2); display:flex; flex-direction:column; gap:5px; }
  .rl .k { font-size:10px; font-weight:800; letter-spacing:.09em; color:var(--red); }
  .rl .t { font-size:14px; line-height:1.38; font-weight:500; color:var(--ink); text-wrap:pretty; }
  .promo-ia { background:var(--navy); padding:22px 20px; display:flex; flex-direction:column; gap:12px; }
  .promo-ia .tag { font-size:10px; font-weight:800; letter-spacing:.12em; color:#fff; background:var(--red); padding:4px 9px; align-self:flex-start; }
  .promo-ia .head { display:flex; align-items:center; gap:12px; }
  .promo-ia .head img { width:52px; height:52px; border-radius:50%; object-fit:cover; flex:0 0 auto; border:2px solid var(--red); }
  .promo-ia h3 { font-family:'Source Serif 4',Georgia,serif; font-size:19px; font-weight:700; color:#fff; margin:0; line-height:1.2; }
  .promo-ia h3 span { color:#e8879a; }
  .promo-ia p { font-family:'Source Serif 4',Georgia,serif; font-size:13.5px; line-height:1.5; color:rgba(255,255,255,.85); margin:0; }
  .promo-ia p.fine { color:rgba(255,255,255,.6); font-size:12.5px; }
  .promo-ia .btn { display:block; text-align:center; background:var(--red); color:#fff; font-family:'Libre Franklin',sans-serif; font-size:12px; font-weight:800; letter-spacing:.08em; padding:11px 14px; text-decoration:none; margin-top:4px; }
  .promo-ia .btn:hover { background:#8c0d24; }
  .promo-ia .more { font-size:11.5px; font-weight:700; letter-spacing:.05em; color:#e8879a; text-decoration:none; align-self:flex-end; }
  .promo-ia .more:hover { text-decoration:underline; }

  .badge-ia { display:inline-block; font-size:10px; font-weight:800; letter-spacing:.12em; color:#fff; background:var(--red); padding:4px 9px; margin-bottom:10px; text-decoration:none; }
  .badge-ia:hover { background:#8c0d24; }

  .crumbs { display:flex; align-items:center; gap:9px; font-size:11px; letter-spacing:.06em; color:var(--muted); margin-bottom:14px; }
  .crumbs .cur { color:var(--red); font-weight:700; }
  .sec-title { font-family:'Source Serif 4',Georgia,serif; font-size:clamp(24px,4vw,32px); font-weight:700; color:var(--navy); margin:0; }
  .srow { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,200px); gap:22px; padding:22px 0; border-bottom:1px solid var(--line2); cursor:pointer; align-items:center; }
  .srow.nophoto { grid-template-columns:minmax(0,1fr); }
  .srow:hover { background:#fafaf8; }
  .srow .ph { height:126px; }
  .srow h2 { font-size:clamp(19px,3vw,21px); line-height:1.28; font-weight:700; margin:8px 0 0 0; text-wrap:pretty; }
  .srow p { font-family:'Source Serif 4',Georgia,serif; font-size:15px; line-height:1.58; color:#5b5b55; margin:9px 0 0 0; text-wrap:pretty; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  .srow .when { font-size:12px; color:var(--muted); margin-top:11px; display:block; }

  article.full h1 { font-size:clamp(24px,4.4vw,34px); line-height:1.2; font-weight:700; margin:10px 0 0 0; max-width:760px; text-wrap:pretty; }
  article.full .lede { font-family:'Source Serif 4',Georgia,serif; font-size:clamp(17px,2.4vw,19px); line-height:1.55; color:#4b4b46; margin:16px 0 0 0; max-width:720px; text-wrap:pretty; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  .byline { display:flex; align-items:center; gap:12px; margin-top:22px; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); max-width:720px; }
  .byline .av { width:38px; height:38px; background:var(--navy); color:var(--gold); display:flex; align-items:center; justify-content:center; font-family:'Source Serif 4',Georgia,serif; font-size:15px; font-weight:700; flex:none; }
  .byline b { font-size:14px; font-weight:600; display:block; }
  .byline small { font-size:12px; color:var(--muted); }
  .figure { margin-top:24px; max-width:720px; }
  .figure img { width:100%; height:auto; }
  .figure .cap { font-size:12px; color:var(--muted); margin-top:8px; font-style:italic; }
  .body { display:flex; flex-direction:column; gap:19px; margin-top:26px; max-width:680px; }
  /* Texto justificado. La particion de silabas es obligatoria aqui: sin ella,
     en columna angosta la justificacion abre rios de espacio entre palabras. */
  .body p { font-family:'Source Serif 4',Georgia,serif; font-size:17px; line-height:1.72; color:#26261f; margin:0; text-wrap:pretty; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  .tags { display:flex; gap:8px; flex-wrap:wrap; margin-top:28px; max-width:720px; }
  .tags span { font-size:10px; font-weight:800; letter-spacing:.09em; color:var(--navy); border:1px solid #d8d8d4; background:#fafaf8; padding:6px 11px; }

  .contact { max-width:720px; margin:0 auto; padding:30px 24px 64px 24px; }
  .contact h1 { font-family:'Source Serif 4',Georgia,serif; font-size:clamp(26px,5vw,34px); font-weight:700; color:var(--navy); margin:0; padding-bottom:12px; border-bottom:2px solid var(--navy); }
  .contact .intro { font-family:'Source Serif 4',Georgia,serif; font-size:17px; line-height:1.6; color:#4b4b46; margin:18px 0 0 0; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  form.cf { margin-top:26px; border:1px solid var(--line); padding:24px; display:flex; flex-direction:column; gap:18px; }
  .fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  label.f { display:flex; flex-direction:column; gap:7px; }
  label.f span { font-size:11px; font-weight:800; letter-spacing:.1em; color:var(--navy); }
  label.f input, label.f select, label.f textarea { font-family:inherit; font-size:16px; padding:11px 12px; border:1px solid #d8d8d4; background:#fafaf8; outline:none; border-radius:0; -webkit-appearance:none; appearance:none; width:100%; }
  label.f input:focus, label.f select:focus, label.f textarea:focus { border-color:var(--navy); background:#fff; }
  label.f textarea { min-height:130px; line-height:1.5; resize:vertical; }
  .facts { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
  .facts .alt { font-size:13px; color:var(--muted); }
  .facts button { font-family:inherit; font-size:11.5px; font-weight:800; letter-spacing:.09em; color:#fff; background:var(--red); border:none; padding:13px 24px; cursor:pointer; }
  .facts button:hover { background:#8d0d24; }
  .ferr { font-size:14px; color:var(--red); background:#fdf2f3; border:1px solid #eccdd2; padding:11px 14px; }
  .fok { margin-top:26px; background:#fafaf8; border:1px solid var(--line); border-top:3px solid var(--gold); padding:32px; text-align:center; }
  .fok .ck { font-size:30px; color:var(--gold); }
  .fok h2 { font-family:'Source Serif 4',Georgia,serif; font-size:21px; color:var(--navy); margin:10px 0 0 0; }
  .fok p { font-size:15px; color:#5b5b55; margin:9px 0 0 0; }
  .fok a { display:inline-block; margin-top:18px; border:1px solid var(--navy); color:var(--navy); font-size:12px; font-weight:700; letter-spacing:.1em; padding:11px 22px; }

  .temas-wrap { max-width:1180px; margin:0 auto; padding:6px 24px 18px 24px; }
  .shelf { padding:32px 0; border-bottom:1px solid var(--line); }
  .shelf:last-child { border-bottom:none; }
  .shelf-head { display:flex; align-items:baseline; justify-content:space-between; gap:14px; border-bottom:2px solid var(--navy); padding-bottom:10px; margin-bottom:22px; }
  .shelf-head h2 { font-size:16px; font-weight:800; letter-spacing:.08em; color:var(--ink); margin:0; }
  .shelf-head .vermas { font-size:11.5px; font-weight:800; letter-spacing:.06em; white-space:nowrap; }
  .shelf-head .vermas:hover { opacity:.72; }
  .shelf-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
  .shelf-card { display:flex; flex-direction:column; cursor:pointer; }
  .shelf-card .ph { height:112px; margin-bottom:11px; }
  .shelf-card .k { font-size:10px; font-weight:800; letter-spacing:.09em; }
  .shelf-card h4 { font-size:14.5px; line-height:1.32; font-weight:700; color:var(--ink); margin:6px 0 0 0; text-wrap:pretty; }
  .shelf-card.nophoto h4 { margin-top:2px; }
  .shelf-card .when { font-size:11px; color:var(--muted); margin-top:7px; display:block; }

  footer { background:var(--navy); color:rgba(255,255,255,.7); }
  footer .in { max-width:1180px; margin:0 auto; padding:28px 24px; display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; }
  .footer-logo { height:72px; width:auto; display:block; margin-bottom:8px; }
  footer .sub { font-size:11px; letter-spacing:.14em; color:var(--gold); font-weight:700; }
  footer nav { display:flex; gap:18px; font-size:13px; flex-wrap:wrap; }
  footer nav a, footer a { color:rgba(255,255,255,.7); }
  footer nav a:hover { color:var(--gold); }

  @media (max-width:1150px) {
    main.wrap { grid-template-columns:minmax(0,1fr); gap:34px; }
    aside { border-top:1px solid var(--line); padding-top:22px; }
    .lead:not(.nophoto) { grid-template-columns:minmax(0,1fr) minmax(0,240px); }
     .shelf-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  }
  @media (max-width:760px) {
    .lead:not(.nophoto) { grid-template-columns:minmax(0,1fr); }
    .lead .ph { height:210px; order:-1; }
    .srow:not(.nophoto) { grid-template-columns:minmax(0,1fr); }
    .srow .ph { height:200px; order:-1; }
    .row:not(.nophoto) { grid-template-columns:84px minmax(0,1fr); gap:14px; }
    .row .ph { height:62px; }
    .feats { grid-template-columns:minmax(0,1fr); gap:22px; }
    .feat .ph { height:190px; }
    .shelf-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
    .shelf-card .ph { height:170px; }
    .shelf-head { flex-wrap:wrap; }
    .fields { grid-template-columns:minmax(0,1fr); }
    .mast .in { flex-direction:column; align-items:stretch; gap:14px; }
    .brand { flex-wrap:wrap; }
    .tools { width:100%; flex:none; min-width:0; }
    .search { flex:1; max-width:none; min-width:0; }
    .search input { min-width:0; }
    .facts button { width:100%; }
    nav.main .in { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
    nav.main .in::-webkit-scrollbar { display:none; }
    nav.main a { padding:13px 12px; }
  }

  /* ===================================================================
     Añadidos: archivo, paginador, fuente citada, compartir, páginas
     estáticas y 404. Escritos en el mismo lenguaje del diseño:
     Libre Franklin en versalitas para rótulos, rojo para categorías,
     Source Serif 4 para texto corrido.
     =================================================================== */

  a.row, a.srow, a.lead { color:inherit; text-decoration:none; display:grid; }

  /* Fuente citada */
  .fuente { margin-top:26px; border:1px solid var(--line); border-left:3px solid var(--gold); background:#faf9f6; padding:15px 18px; }
  .fuente .lbl { font-size:11px; font-weight:800; letter-spacing:.12em; color:var(--navy); }
  .fuente .val { font-family:'Source Serif 4',Georgia,serif; font-size:15px; line-height:1.55; color:#3a3a35; margin-top:7px; }
  .fuente .val a { color:var(--red); text-decoration:underline; text-underline-offset:2px; }

  /* Compartir */
  .compartir { margin-top:24px; display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
  .compartir .lbl { font-size:11px; font-weight:800; letter-spacing:.12em; color:var(--muted); }
  .compartir a, .compartir button { font-family:inherit; font-size:11px; font-weight:700; letter-spacing:.08em; color:var(--navy); border:1px solid var(--line); background:#fff; padding:9px 14px; cursor:pointer; }
  .compartir a:hover, .compartir button:hover { border-color:var(--navy); background:#faf9f6; }

  /* Comentarios */
  .comentarios { margin-top:40px; border-top:3px solid var(--navy); padding-top:22px; }
  .comentarios .head-row { display:flex; align-items:baseline; gap:10px; margin-bottom:16px; }
  .comentarios .count { font-size:13px; font-weight:700; color:var(--muted); }
  .comentarios .cf { border:1px solid var(--line); background:#faf9f6; padding:18px; margin-bottom:26px; }
  .comentarios .cf .fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .comentarios .cf label.f { display:block; margin-bottom:14px; }
  .comentarios .cf label.f span { display:block; font-size:11px; font-weight:800; letter-spacing:.1em; color:var(--navy); margin-bottom:6px; }
  .comentarios .cf input, .comentarios .cf textarea { width:100%; font-family:inherit; font-size:14px; color:#222; border:1px solid var(--line2); background:#fff; padding:10px 12px; box-sizing:border-box; }
  .comentarios .cf input:focus, .comentarios .cf textarea:focus { outline:none; border-color:var(--navy); }
  .comentarios .cf textarea { min-height:100px; resize:vertical; }
  .comentarios .cf .ferr { color:var(--red); font-size:13px; font-weight:600; margin-bottom:12px; }
  .comentarios .cf .facts { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
  .comentarios .cf .alt { font-size:12px; color:var(--muted); }
  .comentarios .cf button { font-family:inherit; font-size:12px; font-weight:800; letter-spacing:.08em; color:#fff; background:var(--navy); border:1px solid var(--navy); padding:11px 20px; cursor:pointer; }
  .comentarios .cf button:hover { background:var(--red); border-color:var(--red); }
  .comentarios .fok { border:1px solid var(--line); border-left:3px solid var(--gold); background:#faf9f6; padding:16px 18px; margin-bottom:26px; }
  .comentarios .fok h2 { font-size:15px; margin:0 0 4px 0; }
  .comentarios .fok p { font-size:13px; color:#4a4a45; margin:0; }
  .lista-comentarios .com-vacio { font-size:14px; color:var(--muted); }
  .comentario { display:flex; gap:12px; padding:16px 0; border-top:1px solid var(--line); }
  .comentario:first-child { border-top:none; }
  .comentario .av { flex:0 0 auto; width:36px; height:36px; border-radius:50%; background:var(--navy); color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; }
  .comentario .cnt b { font-size:14px; color:var(--navy); }
  .comentario .cnt time { font-size:11px; color:var(--muted); margin-left:8px; }
  .comentario .cnt .txt { font-family:'Source Serif 4',Georgia,serif; font-size:15px; line-height:1.55; color:#3a3a35; margin:6px 0 0 0; white-space:pre-wrap; }
  @media (max-width:640px){ .comentarios .cf .fields { grid-template-columns:1fr; } }

  /* Paginador */
  .pager { display:flex; align-items:center; justify-content:center; gap:7px; padding:30px 0 6px 0; flex-wrap:wrap; }
  .pager a, .pager span { font-size:12px; font-weight:700; letter-spacing:.05em; padding:9px 14px; border:1px solid var(--line); color:var(--navy); background:#fff; }
  .pager a:hover { border-color:var(--navy); }
  .pager .on { background:var(--navy); color:#fff; border-color:var(--navy); }
  .pager .off { color:#c3c3bd; border-color:var(--line2); }

  /* Archivo */
  .arch-anio { font-size:13px; font-weight:800; letter-spacing:.13em; color:var(--navy); margin:30px 0 0 0; padding-bottom:8px; border-bottom:2px solid var(--navy); }
  .arch-fila { display:grid; grid-template-columns:104px 116px minmax(0,1fr); gap:16px; padding:13px 0; border-bottom:1px solid var(--line2); align-items:baseline; }
  .arch-fila .f { font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }
  .arch-fila .s { font-size:10.5px; font-weight:800; letter-spacing:.1em; color:var(--red); }
  .arch-fila .t { font-family:'Source Serif 4',Georgia,serif; font-size:16px; line-height:1.4; font-weight:600; color:var(--ink); text-wrap:pretty; }
  .arch-fila .t:hover { color:var(--red); }

  /* Buscador */
  .buscador { margin-top:18px; display:flex; gap:10px; }
  .buscador input { flex:1; font-family:inherit; font-size:16px; padding:12px 14px; border:1px solid var(--line); background:#fff; outline:none; border-radius:0; -webkit-appearance:none; }
  .buscador input:focus { border-color:var(--navy); }
  .vacio { font-family:'Source Serif 4',Georgia,serif; font-style:italic; color:var(--muted); padding:30px 0; }

  /* Páginas estáticas y 404 */
  .estatica h2 { font-size:13px; font-weight:800; letter-spacing:.12em; color:var(--navy); margin:32px 0 0 0; padding-bottom:8px; border-bottom:1px solid var(--line); }
  .estatica p, .estatica li { font-family:'Source Serif 4',Georgia,serif; font-size:17px; line-height:1.7; color:#33332e; margin:14px 0 0 0; text-wrap:pretty; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  .estatica ul { padding-left:21px; margin:0; }
  .estatica a { color:var(--red); text-decoration:underline; text-underline-offset:2px; }

  .estatica .steps { margin-top:22px; border-top:1px solid var(--line); }
  .estatica .step { display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); }
  .estatica .step .num { font-family:'Source Serif 4',Georgia,serif; font-size:20px; font-weight:700; color:var(--gold); flex:0 0 auto; width:26px; }
  .estatica .step .tt { font-weight:700; font-size:15px; margin-bottom:3px; }
  .estatica .step .dd { font-family:'Source Serif 4',Georgia,serif; font-size:15px; line-height:1.55; color:#4b4b46; text-align:left; }

  @media (max-width:760px) {
    .arch-fila { grid-template-columns:minmax(0,1fr); gap:4px; }
  }

  a.btn-red { display:inline-block; text-decoration:none; }
  a.brand { text-decoration:none; }
  .search form { display:contents; }

  /* Subsecciones dentro de una sección */
  .subnav { display:flex; gap:8px; flex-wrap:wrap; margin:14px 0 4px 0; padding-bottom:14px; border-bottom:1px solid var(--line); }
  .subnav a { font-size:11px; font-weight:800; letter-spacing:.1em; color:var(--navy); border:1px solid var(--line); background:#fff; padding:8px 13px; display:inline-flex; align-items:center; gap:7px; }
  .subnav a:hover { border-color:var(--navy); background:#faf9f6; }
  .subnav a span { font-weight:600; font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; }
  .subnav a.on { background:var(--navy); border-color:var(--navy); color:#fff; }
  .subnav a.on span { color:rgba(255,255,255,.65); }

  /* ===== Repositorio de dictámenes ===== */
  .temas-caja { margin-top:16px; padding:13px 15px; background:#fafaf8; border:1px solid var(--line); }
  .temas-caja .rot { display:block; font-size:10px; font-weight:800; letter-spacing:.13em; color:var(--muted); margin-bottom:9px; }
  .temas { display:flex; flex-wrap:wrap; gap:6px; }
  .tema-card { display:inline-flex; align-items:baseline; gap:7px; border:1px solid var(--line); background:#fff; padding:6px 10px; }
  .tema-card:hover { border-color:var(--navy); }
  .tema-card .t { font-size:10.5px; font-weight:700; letter-spacing:.07em; color:var(--navy); }
  .tema-card .n { font-size:10.5px; font-weight:600; color:var(--muted); font-variant-numeric:tabular-nums; }
  .tema-card.vacio { opacity:.5; border-style:dashed; background:transparent; }

  .grupo { margin-top:34px; }
  .grupo-cab { display:flex; align-items:baseline; justify-content:space-between; gap:14px; border-bottom:2px solid var(--navy); padding-bottom:8px; margin-bottom:4px; }
  .grupo-cab h2 { font-size:13px; font-weight:800; letter-spacing:.11em; color:var(--navy); }
  .grupo-cab a { font-size:11px; font-weight:700; letter-spacing:.07em; color:var(--red); white-space:nowrap; }

  .dic { border-bottom:1px solid var(--line2); padding:17px 0; }
  .dic .cab { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .dic .num { font-size:11.5px; font-weight:800; letter-spacing:.06em; color:#fff; background:var(--navy); padding:4px 9px; }
  .dic .fch { font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }
  .dic .tema { font-size:10.5px; font-weight:800; letter-spacing:.09em; color:var(--red); }
  .dic .recons { font-size:11px; font-style:italic; color:var(--muted); font-family:'Source Serif 4',Georgia,serif; }
  .dic h3 { font-family:'Source Serif 4',Georgia,serif; font-size:17px; line-height:1.4; font-weight:700; color:var(--ink); margin-top:9px; text-wrap:pretty; }
  .dic p { font-family:'Source Serif 4',Georgia,serif; font-size:15px; line-height:1.6; color:#4b4b46; margin-top:7px; text-wrap:pretty; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  .dic .acc { display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-top:12px; }
  .dic .descargar { font-size:11px; font-weight:800; letter-spacing:.09em; color:#fff; background:var(--red); padding:9px 15px; }
  .dic .descargar:hover { background:#8d0d24; }
  .dic .oficial { font-size:11px; font-weight:700; letter-spacing:.07em; color:var(--navy); border:1px solid var(--line); padding:9px 14px; background:#fff; }
  .dic .oficial:hover { border-color:var(--navy); background:#faf9f6; }
  .dic .pendiente { font-size:11.5px; font-style:italic; color:var(--muted); font-family:'Source Serif 4',Georgia,serif; }

  .figure .cap .cred { display:block; margin-top:4px; font-style:normal; font-size:11px; letter-spacing:.05em; color:#a5a5a0; }

  /* Caja del documento de análisis, al final de cada materia */
  .analisis { margin-top:30px; border:1px solid var(--navy); border-left:4px solid var(--red); background:#fafaf8; padding:20px 22px; display:flex; align-items:center; justify-content:space-between; gap:22px; flex-wrap:wrap; }
  .analisis .txt { flex:1; min-width:240px; }
  .analisis .k { display:block; font-size:10.5px; font-weight:800; letter-spacing:.13em; color:var(--red); }
  .analisis .t { display:block; font-family:'Source Serif 4',Georgia,serif; font-size:18px; line-height:1.35; font-weight:700; color:var(--navy); margin-top:6px; text-wrap:pretty; }
  .analisis .d { display:block; font-size:13.5px; line-height:1.55; color:#4b4b46; margin-top:7px; }
  .analisis .descargar { font-size:11.5px; font-weight:800; letter-spacing:.09em; color:#fff; background:var(--navy); padding:13px 20px; white-space:nowrap; }
  .analisis .descargar:hover { background:var(--red); }

  /* ===== Aclaración y rectificación ===== */
  .entrada { font-family:'Source Serif 4',Georgia,serif; font-size:17px; line-height:1.65; color:#33332e; margin:16px 0 0 0; max-width:660px; text-wrap:pretty; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  .marco-legal { margin-top:22px; border:1px solid var(--line); border-left:3px solid var(--navy); background:#fafaf8; padding:18px 20px; }
  .marco-legal .k { display:block; font-size:10.5px; font-weight:800; letter-spacing:.13em; color:var(--navy); }
  .marco-legal p { font-family:'Source Serif 4',Georgia,serif; font-size:15px; line-height:1.6; color:#4b4b46; margin:9px 0 0 0; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  .marco-legal ul { margin:12px 0 0 0; padding-left:19px; }
  .marco-legal li { font-size:14.5px; line-height:1.6; color:#3a3a35; margin-top:7px; }
  .marco-legal li b { color:var(--navy); }

  .paso { display:flex; align-items:center; gap:11px; margin-top:8px; padding-bottom:9px; border-bottom:1px solid var(--line); }
  .paso .n { width:22px; height:22px; background:var(--navy); color:#fff; font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center; flex:none; }
  .paso .t { font-size:11.5px; font-weight:800; letter-spacing:.11em; color:var(--navy); }
  .cf .paso:first-of-type { margin-top:0; }

  label.checkbox { display:flex; align-items:flex-start; gap:10px; cursor:pointer; }
  label.checkbox input { width:16px; height:16px; margin-top:2px; flex:none; accent-color:var(--navy); }
  label.checkbox span { font-size:14px; line-height:1.55; color:#3a3a35; }

  .aviso-rect { margin-top:22px; border:1px solid var(--red); background:#fdf7f7; padding:16px 19px; }
  .aviso-rect .k { display:block; font-size:10.5px; font-weight:800; letter-spacing:.12em; color:var(--red); }
  .aviso-rect .t { display:block; font-size:14.5px; line-height:1.6; color:#3a3a35; margin-top:7px; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  .aviso-rect a { display:inline-block; font-size:11.5px; font-weight:800; letter-spacing:.09em; color:#fff; background:var(--red); padding:9px 15px; margin-top:12px; }
  .aviso-rect a:hover { background:#8d0d24; }

  /* Explicación ampliada dentro de cada ficha de dictamen */
  .dic .bloque { margin-top:11px; }
  .dic .bloque .et { display:block; font-size:9.5px; font-weight:800; letter-spacing:.13em; color:var(--muted); }
  .dic .bloque p { font-family:'Source Serif 4',Georgia,serif; font-size:15px; line-height:1.62; color:#3a3a35; margin-top:4px; text-wrap:pretty; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  .dic .bloque:nth-of-type(2) .et { color:var(--red); }
  .dic { padding:22px 0; }

  /* Páginas legales y avisos de tratamiento de datos */
  .consentimiento { font-size:12.5px; line-height:1.6; color:var(--muted); margin:14px 0 0 0; padding-top:13px; border-top:1px solid var(--line2); text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
  .consentimiento a { color:var(--navy); text-decoration:underline; text-underline-offset:2px; }
  .boletin .nota-legal a { color:rgba(240,238,232,.85); text-decoration:underline; text-underline-offset:2px; }
  .pie-legal { font-size:12.5px; font-style:italic; color:var(--muted); margin-top:30px; padding-top:14px; border-top:1px solid var(--line); }

  .tabla-datos { margin-top:14px; border:1px solid var(--line); }
  .tabla-datos .fila { display:grid; grid-template-columns:118px 1fr 1fr 1fr; gap:14px; padding:12px 15px; border-bottom:1px solid var(--line2); align-items:start; }
  .tabla-datos .fila:last-child { border-bottom:0; }
  .tabla-datos .fila span { font-size:13.5px; line-height:1.5; color:#3a3a35; font-family:'Libre Franklin',sans-serif; }
  .tabla-datos .cab { background:#fafaf8; }
  .tabla-datos .cab span { font-size:10px; font-weight:800; letter-spacing:.11em; color:var(--navy); }
  .tabla-datos .fila span:first-child { font-weight:700; color:var(--navy); }
  @media (max-width:760px) {
    .tabla-datos .fila { grid-template-columns:minmax(0,1fr); gap:5px; }
    .tabla-datos .cab { display:none; }
    .tabla-datos .fila { border-bottom:2px solid var(--line); }
  }

  /* Página que ve el lector al abrir el RSS */
  .direccion-rss { margin-top:12px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:14px; color:var(--navy); background:#fafaf8; border:1px solid var(--line); border-left:3px solid var(--gold); padding:13px 16px; word-break:break-all; }
  .lista-rss { margin-top:6px; }
  .item-rss { padding:16px 0; border-bottom:1px solid var(--line2); }
  .item-rss .s { display:block; font-size:10.5px; font-weight:800; letter-spacing:.12em; color:var(--red); }
  .item-rss .t { display:block; font-family:'Source Serif 4',Georgia,serif; font-size:18px; line-height:1.32; font-weight:700; color:var(--blue); margin-top:5px; text-decoration:none; text-wrap:pretty; }
  .item-rss .t:hover { color:var(--gold-d); }
  .item-rss p { font-size:14.5px; line-height:1.55; color:#4b4b46; margin-top:6px; text-wrap:pretty; }

  /* ===== Subtítulos, destacados y tablas dentro de una nota ===== */
  .nota .cuerpo h2.sub { font-family:'Libre Franklin',sans-serif; font-size:13px; font-weight:800; letter-spacing:.11em; color:var(--navy); margin:16px 0 0 0; padding-bottom:9px; border-bottom:2px solid var(--navy); text-transform:uppercase; }
  .nota .cuerpo blockquote.destacado { margin:6px 0; padding:0 0 0 20px; border-left:3px solid var(--red); font-family:'Source Serif 4',Georgia,serif; font-size:20px; line-height:1.42; font-weight:600; color:var(--navy); text-wrap:pretty; }

  .nota .cuerpo figure.tabla { margin:8px 0; }
  figure.tabla .tit { font-size:11px; font-weight:800; letter-spacing:.11em; color:var(--red); margin-bottom:9px; }
  figure.tabla .scroll { overflow-x:auto; border:1px solid var(--line); }
  figure.tabla table { width:100%; border-collapse:collapse; background:#fff; }
  figure.tabla th { font-family:'Libre Franklin',sans-serif; font-size:10.5px; font-weight:800; letter-spacing:.09em; color:var(--navy); text-align:left; background:#fafaf8; padding:11px 14px; border-bottom:2px solid var(--navy); white-space:nowrap; }
  figure.tabla td { font-family:'Libre Franklin',sans-serif; font-size:14px; line-height:1.5; color:#33332e; padding:11px 14px; border-bottom:1px solid var(--line2); vertical-align:top; }
  figure.tabla tr:last-child td { border-bottom:0; }
  figure.tabla td:first-child { font-weight:600; color:var(--navy); }
  figure.tabla .pie { font-size:12.5px; font-style:italic; line-height:1.5; color:var(--muted); margin-top:9px; }
