/* ============================================================
   Meridian Magazine · Enhance layer (a11y + menú móvil + pulidos)
   Se carga DESPUÉS del <style> de cada página para poder
   sobrescribir sin tocar los archivos grandes.
   ============================================================ */

/* ——— utilidades de accesibilidad ——— */
.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* skip-link (oculto hasta que recibe foco con Tab) */
.skip-link{
  position:absolute;top:-40px;left:12px;z-index:100;
  background:var(--red);color:var(--paper);
  padding:10px 16px;
  font-family:"Inter",sans-serif;font-size:12px;letter-spacing:.26em;text-transform:uppercase;font-weight:500;
  border-radius:2px;
  transition:top .15s ease-out;
}
.skip-link:focus{top:12px;outline:2px solid var(--paper);outline-offset:2px;}

/* focus-visible global — discreto pero visible */
:focus{outline:none;}
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--red);
  outline-offset:3px;
  border-radius:1px;
}
.nav-cta:focus-visible,
.btn:focus-visible,
.promo-cta:focus-visible,
.video-cta:focus-visible{
  outline-color:var(--paper);
  outline-offset:2px;
  box-shadow:0 0 0 4px var(--red-2);
}

/* ——— placeholders de enlaces que aún no existen ——— */
a.is-pending{
  opacity:.55;
  cursor:not-allowed;
  position:relative;
}
a.is-pending::after{
  content:" · próximamente";
  font-family:"Inter",sans-serif;
  font-size:.72em;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-3);
  opacity:.8;
  font-weight:400;
}
/* Dentro del nav y del dropdown no metemos el "· próximamente" porque rompe el layout */
.nav-links a.is-pending::after,
.nav-drop-menu a.is-pending::after,
.footer-col a.is-pending::after{content:"";}
.nav-drop-menu a.is-pending,
.nav-links a.is-pending,
.footer-col a.is-pending{text-decoration:line-through;text-decoration-color:rgba(139,45,26,.5);text-decoration-thickness:1px;}

/* ——— nav unificado: hover siempre rojo (corrige corrientes.html) ——— */
.nav-links a:hover{color:var(--red) !important;border-color:var(--red) !important;}

/* aria-current en sub-navs y nav */
.nav-links a[aria-current="page"]{color:var(--red);border-bottom:1px solid var(--red);}
.fuentes a[aria-current="page"]{color:var(--red);}

/* ——— menú móvil (hamburguesa) ——— */
.nav-toggle{
  display:none;
  background:transparent;border:none;padding:8px;cursor:pointer;
  width:40px;height:40px;
  align-items:center;justify-content:center;
}
.nav-toggle-bar{
  position:relative;width:22px;height:1.5px;background:var(--ink);display:block;
  transition:.2s ease;
}
.nav-toggle-bar::before,
.nav-toggle-bar::after{
  content:"";position:absolute;left:0;width:22px;height:1.5px;background:var(--ink);
  transition:.2s ease;
}
.nav-toggle-bar::before{top:-7px;}
.nav-toggle-bar::after{top:7px;}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar{background:transparent;}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar::before{top:0;transform:rotate(45deg);}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar::after{top:0;transform:rotate(-45deg);}

.nav-drawer{
  position:fixed;inset:0 0 0 auto;width:min(320px, 85vw);
  background:var(--paper);
  transform:translateX(100%);transition:transform .28s ease;
  z-index:60;padding:88px 32px 32px;
  box-shadow:-20px 0 40px rgba(20,17,14,.08);
  overflow-y:auto;
  visibility:hidden;
}
.nav-drawer[aria-hidden="false"]{transform:translateX(0);visibility:visible;}
.nav-drawer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;}
.nav-drawer li{border-bottom:1px solid var(--rule);}
.nav-drawer a{
  display:block;padding:16px 4px;
  font-family:"Inter",sans-serif;font-size:12px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ink-2);
}
.nav-drawer a:hover,.nav-drawer a:focus-visible{color:var(--red);}
.nav-drawer .drawer-sub{
  font-family:"Instrument Serif",serif;font-style:italic;font-size:18px;letter-spacing:.01em;
  text-transform:none;color:var(--ochre);padding:20px 4px 8px;display:block;border-bottom:0;
}
.nav-drawer .sub-list li{border-bottom:1px solid var(--rule);}
.nav-drawer .sub-list a{padding-left:16px;font-size:11px;color:var(--ink-3);}
.nav-drawer .drawer-cta{
  display:inline-block;margin-top:24px;
  background:var(--red);color:var(--paper);padding:12px 18px;font-weight:500;
  font-family:"Inter",sans-serif;font-size:11px;letter-spacing:.26em;text-transform:uppercase;
}
.nav-backdrop{
  position:fixed;inset:0;background:rgba(20,17,14,.45);z-index:55;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.nav-backdrop[aria-hidden="false"]{opacity:1;pointer-events:auto;}

/* ——— responsive extra: móvil real ——— */
@media (max-width:980px){
  .nav-toggle{display:inline-flex;}
  /* la nav del sitio ya oculta .nav-links; aquí sólo asegura que la hamburguesa aparece */
}
@media (max-width:720px){
  .wrap,.wrap-narrow{padding:0 18px;}
  .nav-inner{padding:12px 18px;}
  .brand .name{font-size:26px;}
  .hero-text{padding:40px 18px 28px !important;}
  .hero h1{font-size:clamp(40px, 10vw, 60px) !important;}
  .hero-dek{font-size:17px !important;}
  .section-head{flex-direction:column;align-items:flex-start;gap:12px;}
  .section-head .meta{text-align:left !important;}
  .section-head h2,.autor-body h2,.sub h2{font-size:34px !important;}
  .ensayos-grid{grid-template-columns:1fr !important;gap:36px;}
  .archivo-row{grid-template-columns:repeat(2,1fr) !important;}
  .archivo-row .num-card:nth-child(4){display:none;}
  .footer-top{grid-template-columns:1fr !important;gap:28px;}
  .editorial-body{font-size:17px !important;}
  .promo-body{padding:40px 18px !important;}
  .promo h3{font-size:40px !important;}
  /* reseñas en móvil: cover arriba, body abajo, sin aside lateral */
  .r{grid-template-columns:1fr !important;gap:16px !important;}
  .r-cover{width:140px !important;}
  .r-aside{grid-column:1/-1 !important;border-top:1px solid var(--rule);padding-top:16px;}
  /* sub-form: apila */
  .sub-form{flex-direction:column;padding:0;border:0;background:transparent;gap:8px;}
  .sub-form input{border:1px solid var(--ink);padding:16px;}
}

/* ——— hyphens en bloques de lectura larga ——— */
.editorial-body, .doc-body, .ensayo-body{hyphens:auto;word-break:break-word;}

/* ——— reduce motion ——— */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}

/* ============================================================
   Sistema de fallback «Retrato pendiente»
   Si la imagen del autor no carga, el contenedor .author-portrait
   muestra una tarjeta editorial con etiqueta ochre, silueta,
   epígrafe, nombre y fechas. Funciona por defecto: el placeholder
   vive en el fondo; la imagen lo tapa cuando carga; si la imagen
   falla (onerror="this.style.display='none'"), el placeholder se ve.
   ============================================================ */
.author-portrait{position:relative;background:#1a120d;}
.author-portrait .portrait-placeholder{
  position:absolute;inset:0;z-index:1;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:28px 26px;
  background:
    radial-gradient(ellipse at 50% 46%, rgba(0,0,0,.55) 0%, rgba(26,18,13,0) 60%),
    linear-gradient(180deg, rgba(30,20,14,.98) 0%, rgba(22,15,10,1) 100%);
  color:var(--paper);
  text-align:center;
  overflow:hidden;
}
.author-portrait .portrait-placeholder::after{
  /* Leve textura de papel oscuro para integrarse con el fondo del sitio */
  content:"";position:absolute;inset:0;pointer-events:none;
  background:url("../img/fondo.png") center/cover no-repeat;
  opacity:.06;mix-blend-mode:overlay;
}
.author-portrait .pp-tag{
  font-family:"Inter",sans-serif;font-size:9.5px;letter-spacing:.42em;text-transform:uppercase;
  color:var(--ochre);text-align:center;
  display:flex;align-items:center;justify-content:center;gap:12px;
  position:relative;z-index:2;
}
.author-portrait .pp-tag::before,.author-portrait .pp-tag::after{
  content:"";height:1px;width:14px;background:var(--ochre);opacity:.65;
}
.author-portrait .pp-silhouette{
  flex:1;display:flex;align-items:center;justify-content:center;
  position:relative;z-index:2;
}
.author-portrait .pp-silhouette::before{
  content:"";width:58%;aspect-ratio:1/1;border-radius:50%;
  background:rgba(0,0,0,.72);
  box-shadow:inset 0 0 30px rgba(0,0,0,.4);
}
.author-portrait .pp-foot{position:relative;z-index:2;}
.author-portrait .pp-epigraph{
  font-family:"Instrument Serif",serif;font-style:italic;
  font-size:15px;color:rgba(184,133,68,.82);
  margin:0 0 14px;letter-spacing:.01em;
}
.author-portrait .pp-name{
  font-family:"Instrument Serif",serif;font-weight:400;
  font-size:26px;line-height:1.08;color:var(--paper);
  letter-spacing:-.005em;margin:0 0 10px;
}
.author-portrait .pp-name em{font-style:italic;}
.author-portrait .pp-dates{
  font-family:"Inter",sans-serif;font-size:10px;letter-spacing:.32em;text-transform:uppercase;
  color:rgba(184,133,68,.6);
}
/* La img, si carga, tapa totalmente el placeholder */
.author-portrait img{position:relative;z-index:2;}

/* ============================================================
   SUBMENÚ LATERAL ANIDADO (segundo nivel de dropdown)
   Usado en: Podcast → El Porche → [episodios]
   ============================================================ */

.nav-drop-menu .nav-drop-sub{
  position:relative;
}
.nav-drop-menu .nav-drop-sub > a{
  display:block;padding:10px 38px 10px 22px;
  font-family:"Inter",sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:#f5f2ec;cursor:pointer;position:relative;
}
.nav-drop-menu .nav-drop-sub > a::after{
  content:"";
  position:absolute;right:20px;top:50%;
  width:0;height:0;
  border-top:4px solid transparent;border-bottom:4px solid transparent;
  border-left:5px solid var(--ochre);
  transform:translateY(-50%);opacity:.75;
  transition:.15s;
}
.nav-drop-menu .nav-drop-sub:hover > a,
.nav-drop-menu .nav-drop-sub:focus-within > a,
.nav-drop-menu .nav-drop-sub.is-open > a{
  background:rgba(139,45,26,.6);
}
.nav-drop-menu .nav-drop-sub:hover > a::after,
.nav-drop-menu .nav-drop-sub:focus-within > a::after,
.nav-drop-menu .nav-drop-sub.is-open > a::after{
  opacity:1;transform:translateY(-50%) translateX(2px);
}

.nav-drop-sub-menu{
  position:absolute;left:100%;top:-1px;
  background:#14110e;border:1px solid rgba(245,242,236,.12);
  padding:12px 0;min-width:280px;
  opacity:0;pointer-events:none;visibility:hidden;
  transform:translateX(-4px);
  transition:opacity .15s, transform .15s, visibility 0s linear .15s;
  z-index:51;
}
.nav-drop-menu .nav-drop-sub:hover .nav-drop-sub-menu,
.nav-drop-menu .nav-drop-sub:focus-within .nav-drop-sub-menu,
.nav-drop-menu .nav-drop-sub.is-open .nav-drop-sub-menu{
  opacity:1;pointer-events:auto;visibility:visible;
  transform:translateX(0);
  transition:opacity .15s, transform .15s, visibility 0s;
}
.nav-drop-sub-menu a{
  display:block;padding:10px 22px;
  font-family:"Inter",sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:#f5f2ec;border:0;
}
.nav-drop-sub-menu a:hover{color:#f5f2ec;background:rgba(139,45,26,.6);}

/* Puente lateral invisible para que el hover no se pierda al moverse hacia la derecha */
.nav-drop-menu .nav-drop-sub::before{
  content:"";position:absolute;top:0;bottom:0;left:100%;width:14px;
  pointer-events:none;
}
.nav-drop-menu .nav-drop-sub:hover::before,
.nav-drop-menu .nav-drop-sub:focus-within::before,
.nav-drop-menu .nav-drop-sub.is-open::before{pointer-events:auto;}

/* En móvil: el submenú anidado se despliega hacia abajo (no lateral) con indentación */
@media (max-width:980px){
  .nav-drop-sub-menu{
    position:static;opacity:1;visibility:visible;pointer-events:auto;
    transform:none;transition:none;border:0;padding:0 0 0 16px;
    background:transparent;min-width:0;
  }
  .nav-drop-sub-menu a{padding:8px 16px;font-size:10px;color:rgba(245,242,236,.7);}
  .nav-drop-menu .nav-drop-sub > a::after{display:none;}
}


/* ============================================================
   MARCA · Monograma M en el header y en el footer
   ============================================================ */
.brand{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:12px !important;
}
.brand-mark{
  display:block;
  width:40px;height:40px;
  flex-shrink:0;
  object-fit:contain;
}
.brand-text{
  display:flex;flex-direction:column;align-items:flex-start;gap:0;
  line-height:1;
}
.brand .name{line-height:.82;margin:0;padding:0;}
.brand .sub{line-height:1;margin:0;padding:0;}

/* Footer: monograma como marca al fondo del bloque footer-brand (sutil, opacidad reducida) */
.footer-brand{position:relative;}
.footer-brand::before{
  content:"";
  position:absolute;inset:0;
  background:url("../img/meridian-monogram-256.png") right 18px bottom 18px / 96px 96px no-repeat;
  opacity:.28;
  pointer-events:none;
  z-index:0;
}
.footer-brand > *{position:relative;z-index:1;}

/* Masthead del index: sustituir el <img src="meridian-wordmark.png"> (que puede faltar)
   por el monograma M grande + texto al lado */
.masthead img{
  max-height:96px;width:auto;
  display:inline-block;vertical-align:middle;
}

@media (max-width:980px){
  .brand-mark{width:34px;height:34px;}
  .footer-brand::before{background-size:72px 72px;}
}

/* ============================================================
   RESET COMPACTO DEL NAV v3 · idéntico en portada e internas
   Calibrado para caber en 1280-1440px con 9 nav-links (23 abr 2026)
   ============================================================ */
.nav{
  position:sticky !important;
  top:0 !important;
  z-index:50 !important;
  background:rgba(245,242,236,.92) !important;
  backdrop-filter:saturate(140%) blur(6px) !important;
  border-bottom:1px solid var(--rule,#d9d2c4) !important;
}
.nav .nav-inner{
  max-width:1320px !important;
  margin:0 auto !important;
  padding:14px 28px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
}
.nav .brand{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:0 !important;
  flex-shrink:0 !important;
  padding-right:12px !important;
  line-height:1 !important;
}
.nav .brand-mark{
  display:block !important;
  width:34px !important;
  height:34px !important;
  flex-shrink:0 !important;
  object-fit:contain !important;
}
.nav .brand-text{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:0 !important;
  line-height:1 !important;
}
.nav .brand .name{
  font-family:"Instrument Serif",serif !important;
  font-size:24px !important;
  letter-spacing:0 !important;
  color:var(--ink,#1a1714) !important;
  line-height:.85 !important;
  margin:0 !important;
  padding:0 !important;
}
.nav .brand .sub{
  font-family:"Inter",sans-serif !important;
  font-size:7.5px !important;
  letter-spacing:.4em !important;
  text-transform:uppercase !important;
  color:var(--red,#8b2d1a) !important;
  font-weight:500 !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1 !important;
}
.nav .nav-links{
  display:flex !important;
  gap:16px !important;
  align-items:center !important;
  font-family:"Inter",sans-serif !important;
  font-size:10px !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
  color:var(--ink-2,#3a342e) !important;
  flex-shrink:1;
  flex-wrap:nowrap;
}
.nav .nav-links a{
  padding:6px 0 !important;
  border-bottom:1px solid transparent !important;
  transition:.15s !important;
  line-height:1 !important;
  white-space:nowrap;
}
.nav .nav-links a:hover,
.nav .nav-links a.on{
  color:var(--red,#8b2d1a) !important;
  border-color:var(--red,#8b2d1a) !important;
}
.nav .nav-cta{
  flex-shrink:0 !important;
  font-family:"Inter",sans-serif !important;
  font-size:9.5px !important;
  padding:8px 14px !important;
  background:var(--red,#8b2d1a) !important;
  color:var(--paper,#f5f2ec) !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
  font-weight:500 !important;
  white-space:nowrap;
}

/* Media queries adaptativas */
@media (max-width:1260px){
  .nav .nav-inner{gap:18px !important;padding:12px 22px !important;}
  .nav .nav-links{gap:12px !important;font-size:9.5px !important;letter-spacing:.1em !important;}
  .nav .brand .name{font-size:22px !important;}
}
@media (max-width:1120px){
  .nav .nav-links{gap:10px !important;font-size:9px !important;letter-spacing:.06em !important;}
  .nav .brand .name{font-size:20px !important;}
  .nav .brand .sub{font-size:7px !important;letter-spacing:.32em !important;}
}
@media (max-width:980px){
  .nav .nav-links{display:none !important;}
  .nav .nav-inner{padding:10px 18px !important;}
  .nav .brand .name{font-size:20px !important;}
}

/* ============================================================
   MASTHEAD · M grande como logo en portada (index.html)
   ============================================================ */
.masthead{
  padding:48px 24px 36px !important;
}
.masthead-mark{
  display:block !important;
  margin:0 auto !important;
  max-height:200px !important;
  width:auto !important;
  mix-blend-mode:multiply;
  filter:contrast(1.04);
}
@media (max-width:720px){
  .masthead-mark{max-height:140px !important;}
  .masthead{padding:32px 20px 24px !important;}
}

/* ============================================================
   FIX DESPLEGABLES · restaurar padding/display tras reset del nav
   (22 abr 22:05)
   ============================================================ */
/* Contenedor del dropdown */
.nav .nav-drop{
  position:relative !important;
  line-height:1 !important;
}
.nav .nav-drop > a{
  cursor:pointer;
  position:relative !important;
  padding-right:16px !important;
}
.nav .nav-drop > a::after{
  content:"" !important;
  position:absolute !important;
  right:0;top:50%;
  width:0;height:0;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:4px solid currentColor;
  opacity:.6;
  transform:translateY(-50%);
  margin-top:1px;
}

/* Menú desplegable */
.nav .nav-drop-menu{
  position:absolute !important;
  top:calc(100% + 8px) !important;
  left:0 !important;
  background:#14110e !important;
  border:1px solid rgba(245,242,236,.12) !important;
  padding:12px 0 !important;
  min-width:260px !important;
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transform:translateY(-4px);
  transition:opacity .15s, transform .15s, visibility 0s linear .15s;
  z-index:60 !important;
  display:block !important;
  gap:0 !important;
}

/* Estados visible (hover, focus-within, is-open) */
.nav .nav-drop:hover .nav-drop-menu,
.nav .nav-drop:focus-within .nav-drop-menu,
.nav .nav-drop.is-open .nav-drop-menu{
  opacity:1 !important;
  pointer-events:auto !important;
  visibility:visible !important;
  transform:translateY(0) !important;
  transition:opacity .15s, transform .15s, visibility 0s;
}

/* Flecha giratoria cuando está abierto */
.nav .nav-drop.is-open > a{color:var(--red,#8b2d1a) !important;}
.nav .nav-drop.is-open > a::after{
  transform:translateY(-50%) rotate(180deg) !important;
  opacity:1 !important;
}

/* ITEMS del desplegable (restaurar padding y display) */
.nav .nav-drop-menu a{
  display:block !important;
  padding:10px 22px !important;
  font-family:"Inter",sans-serif !important;
  font-size:11px !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
  color:#f5f2ec !important;
  border:0 !important;
  border-bottom:0 !important;
  line-height:1.3 !important;
  white-space:nowrap !important;
  transition:background .12s, color .12s !important;
}
.nav .nav-drop-menu a:hover,
.nav .nav-drop-menu a:focus{
  background:rgba(245,242,236,.08) !important;
  color:var(--ochre,#b88544) !important;
  border-color:transparent !important;
}

/* Sub-dropdown anidado (Podcast > El Porche > Ep. 01 / Ep. 02) */
.nav .nav-drop-sub{
  position:relative !important;
}
.nav .nav-drop-sub > a{
  position:relative !important;
  padding-right:32px !important;
}
.nav .nav-drop-sub > a::after{
  content:"›" !important;
  position:absolute !important;
  right:18px !important;top:50%;
  transform:translateY(-50%) !important;
  font-size:14px !important;
  color:currentColor !important;
  opacity:.6;
}
.nav .nav-drop-sub-menu{
  position:absolute !important;
  top:-12px !important;left:100% !important;
  background:#14110e !important;
  border:1px solid rgba(245,242,236,.12) !important;
  padding:12px 0 !important;
  min-width:260px !important;
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transform:translateX(-4px);
  transition:opacity .15s, transform .15s, visibility 0s linear .15s;
  z-index:70 !important;
}
.nav .nav-drop-sub:hover .nav-drop-sub-menu,
.nav .nav-drop-sub:focus-within .nav-drop-sub-menu,
.nav .nav-drop-sub.is-open .nav-drop-sub-menu{
  opacity:1 !important;
  pointer-events:auto !important;
  visibility:visible !important;
  transform:translateX(0) !important;
  transition:opacity .15s, transform .15s, visibility 0s;
}
.nav .nav-drop-sub-menu a{
  display:block !important;
  padding:10px 22px !important;
  font-family:"Inter",sans-serif !important;
  font-size:10.5px !important;
  letter-spacing:.2em !important;
  text-transform:uppercase !important;
  color:rgba(245,242,236,.85) !important;
  white-space:nowrap !important;
}

/* Puente invisible para que no se cierre al pasar del trigger al menú */
.nav .nav-drop::before{
  content:"" !important;
  position:absolute !important;
  left:-6px;right:-6px;top:100%;height:14px;
  pointer-events:none;
}
.nav .nav-drop:hover::before,
.nav .nav-drop:focus-within::before,
.nav .nav-drop.is-open::before{pointer-events:auto !important;}

/* En móvil (drawer), ocultar los dropdown desktop */
@media (max-width:980px){
  .nav .nav-drop-menu,
  .nav .nav-drop-sub-menu{display:none !important;}
}

/* ============================================================
   FIX RETRATOS DE ESCRITORES · definitivo (23 abr 2026)
   Las fotos de autores vienen con aspect variado (0.80 a 1.11).
   Sin este fix, .author-portrait (3/4 + cover) recorta hasta
   un 30% de las fotos más cuadradas u horizontales.
   ============================================================ */
.author-portrait{
  aspect-ratio:4/5 !important;
  overflow:hidden !important;
  background:var(--paper-2,#efe7d7) !important;
  box-shadow:0 18px 40px rgba(20,17,14,.12);
}
.author-portrait img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  filter:sepia(.08) contrast(1.02) !important;
  display:block !important;
}


/* ============================================================
   DROP CAP · Capital inicial en el primer párrafo de ensayos
   ============================================================ */
p.first::first-letter,
.editorial-body p:first-of-type::first-letter,
.ensayo-body p:first-of-type::first-letter,
.doc-body p:first-of-type::first-letter {
  font-family:"Instrument Serif", Georgia, serif;
  font-size:4.2em;
  line-height:.78;
  float:left;
  margin-right:.07em;
  margin-top:.04em;
  color:var(--ink);
  font-weight:400;
  font-style:normal;
}

/* ============================================================
   PULL-QUOTE · Cita destacada dentro de artículos
   ============================================================ */
blockquote.pull,
.pull-quote {
  margin:2.5rem 0 2.5rem 0;
  padding:0;
  border:0;
  position:relative;
  text-align:center;
}
blockquote.pull::before,
.pull-quote::before {
  content:"";
  display:block;
  width:40px;
  height:1px;
  background:var(--ochre);
  margin:0 auto 1.4rem;
}
blockquote.pull::after,
.pull-quote::after {
  content:"";
  display:block;
  width:40px;
  height:1px;
  background:var(--ochre);
  margin:1.4rem auto 0;
}
blockquote.pull p,
.pull-quote p {
  font-family:"Instrument Serif", Georgia, serif;
  font-style:italic;
  font-size:1.45em;
  line-height:1.35;
  color:var(--ink-2);
  margin:0;
  padding:0 2rem;
  letter-spacing:.005em;
}
blockquote.pull cite,
.pull-quote cite {
  display:block;
  margin-top:.9rem;
  font-family:"Inter", sans-serif;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ochre);
  font-style:normal;
}
@media (max-width:720px){
  blockquote.pull p, .pull-quote p { font-size:1.2em; padding:0 .5rem; }
}

/* ============================================================
   BREADCRUMBS · Migas de pan en páginas interiores
   ============================================================ */
.breadcrumb {
  font-family:"Inter", sans-serif;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-3);
  padding:14px 0 0;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.breadcrumb a { color:var(--ink-3); border-bottom:1px solid transparent; transition:.12s; }
.breadcrumb a:hover { color:var(--red); border-color:var(--red); }
.breadcrumb .sep { color:var(--tenue); font-size:10px; }
.breadcrumb .current { color:var(--ink-2); }

/* ============================================================
   PREV / NEXT · Navegación entre ensayos
   ============================================================ */
.article-nav {
  border-top:1px solid var(--rule);
  margin-top:4rem;
  padding-top:2rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.article-nav a {
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:20px 22px;
  border:1px solid var(--rule);
  transition:.15s;
}
.article-nav a:hover { border-color:var(--red); background:rgba(139,45,26,.03); }
.article-nav .nav-dir {
  font-family:"Inter", sans-serif;
  font-size:10px;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--ink-3);
}
.article-nav .nav-title {
  font-family:"Instrument Serif", serif;
  font-size:18px;
  font-style:italic;
  color:var(--ink);
  line-height:1.25;
}
.article-nav .nav-author {
  font-family:"Inter", sans-serif;
  font-size:11px;
  letter-spacing:.1em;
  color:var(--ink-3);
}
.article-nav a.nav-next { text-align:right; }
@media (max-width:600px){
  .article-nav { grid-template-columns:1fr; }
  .article-nav a.nav-next { text-align:left; }
}

/* ============================================================
   AUTHOR BIO · Bloque de autor al pie del artículo
   ============================================================ */
.author-bio {
  border-top:1px solid var(--rule);
  margin-top:3rem;
  padding-top:2rem;
  display:flex;
  gap:20px;
  align-items:flex-start;
}
.author-bio-avatar {
  width:54px;
  height:54px;
  border-radius:50%;
  background:var(--paper-3);
  border:1px solid var(--rule);
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:"Instrument Serif", serif;
  font-size:22px;
  color:var(--ink-3);
  font-style:italic;
  overflow:hidden;
}
.author-bio-avatar img { width:100%; height:100%; object-fit:cover; }
.author-bio-body {}
.author-bio-name {
  font-family:"Instrument Serif", serif;
  font-size:18px;
  color:var(--ink);
  margin:0 0 4px;
}
.author-bio-text {
  font-family:"EB Garamond", Georgia, serif;
  font-size:16px;
  line-height:1.55;
  color:var(--ink-2);
  margin:0;
}

/* ============================================================
   EN MERIDIAN · Cross-referencia en fichas de escritores
   ============================================================ */
.en-meridian {
  background:var(--paper-2);
  border:1px solid var(--rule);
  padding:28px 32px;
  margin-top:3rem;
}
.en-meridian .em-title {
  font-family:"Inter", sans-serif;
  font-size:10px;
  letter-spacing:.36em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:1.4rem;
  display:flex;
  align-items:center;
  gap:12px;
}
.en-meridian .em-title::before {
  content:"";
  width:24px;
  height:1px;
  background:var(--red);
  display:inline-block;
}
.en-meridian-list {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.en-meridian-list li {
  display:flex;
  align-items:baseline;
  gap:12px;
  padding-bottom:12px;
  border-bottom:1px solid var(--rule);
}
.en-meridian-list li:last-child { border-bottom:0; padding-bottom:0; }
.em-type {
  font-family:"Inter", sans-serif;
  font-size:9px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--tenue);
  flex-shrink:0;
  width:64px;
}
.en-meridian-list a {
  font-family:"EB Garamond", Georgia, serif;
  font-size:17px;
  color:var(--ink);
  border-bottom:1px solid var(--rule);
  transition:.12s;
  line-height:1.3;
}
.en-meridian-list a:hover { color:var(--red); border-color:var(--red); }

/* ============================================================
   CRONOLOGÍA · Timeline de obras en fichas de escritores
   ============================================================ */
.obra-timeline {
  margin-top:3rem;
}
.obra-timeline .ot-title {
  font-family:"Inter", sans-serif;
  font-size:10px;
  letter-spacing:.36em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:1.6rem;
  display:flex;
  align-items:center;
  gap:12px;
}
.obra-timeline .ot-title::before {
  content:"";
  width:24px;
  height:1px;
  background:var(--red);
}
.ot-list {
  list-style:none;
  margin:0;
  padding:0;
  position:relative;
}
.ot-list::before {
  content:"";
  position:absolute;
  left:52px;
  top:4px;
  bottom:4px;
  width:1px;
  background:var(--rule);
}
.ot-list li {
  display:flex;
  align-items:baseline;
  gap:0;
  padding:10px 0;
  position:relative;
}
.ot-year {
  font-family:"Inter", sans-serif;
  font-size:11px;
  letter-spacing:.08em;
  color:var(--ink-3);
  width:52px;
  flex-shrink:0;
  padding-right:18px;
  text-align:right;
}
.ot-dot {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--rule);
  border:1px solid var(--ink-3);
  flex-shrink:0;
  position:relative;
  top:1px;
  margin-right:16px;
}
.ot-list li.ot-major .ot-dot {
  background:var(--red);
  border-color:var(--red);
}
.ot-title-book {
  font-family:"Instrument Serif", Georgia, serif;
  font-style:italic;
  font-size:17px;
  color:var(--ink);
  line-height:1.2;
}
.ot-prize {
  font-family:"Inter", sans-serif;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ochre);
  margin-left:10px;
}

/* ============================================================
   NOTA EDITORIAL · En páginas de reseñas traducidas
   ============================================================ */
.nota-editorial {
  background:var(--paper-2);
  border-left:3px solid var(--ochre);
  padding:14px 20px;
  margin-bottom:2rem;
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.nota-editorial .ne-label {
  font-family:"Inter", sans-serif;
  font-size:9px;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--ochre);
  flex-shrink:0;
  padding-top:3px;
}
.nota-editorial p {
  font-family:"EB Garamond", Georgia, serif;
  font-size:15px;
  line-height:1.5;
  color:var(--ink-2);
  margin:0;
}

/* ============================================================
   LECTURA RECOMENDADA · En el footer
   ============================================================ */
.footer-lectura {
  border-top:1px solid rgba(245,242,236,.1);
  padding-top:1.5rem;
  margin-top:1.5rem;
}
.footer-lectura .fl-label {
  font-family:"Inter", sans-serif;
  font-size:9px;
  letter-spacing:.36em;
  text-transform:uppercase;
  color:var(--ochre);
  margin-bottom:10px;
}
.footer-lectura a {
  display:block;
  font-family:"Instrument Serif", Georgia, serif;
  font-style:italic;
  font-size:17px;
  color:rgba(245,242,236,.8);
  line-height:1.3;
  border-bottom:1px solid transparent;
  transition:.12s;
}
.footer-lectura a:hover { color:var(--paper); border-color:rgba(245,242,236,.3); }
.footer-lectura .fl-meta {
  font-family:"Inter", sans-serif;
  font-size:10px;
  letter-spacing:.1em;
  color:rgba(245,242,236,.4);
  margin-top:5px;
}

/* ============================================================
   TAGS DE CORRIENTE LITERARIA
   ============================================================ */
.corriente-tags {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:1.2rem 0;
}
.tag-corriente {
  font-family:"Inter", sans-serif;
  font-size:10px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--red);
  border:1px solid var(--red);
  padding:4px 12px;
  background:transparent;
  transition:.12s;
  display:inline-block;
}
.tag-corriente:hover {
  background:var(--red);
  color:var(--paper);
}

/* ============================================================
   FOOTER UNIFICADO v.02 (16 may 2026)
   Reemplaza cualquier <footer> existente cuando lleve la clase
   .site-footer-v2 — pintado con !important para sobrescribir
   los estilos inline de las páginas internas.
   ============================================================ */
.site-footer-v2{
  background:var(--ink,#1A1714) !important;
  color:rgba(245,242,236,.55) !important;
  font-family:"Inter",sans-serif !important;
  margin-top:0 !important;
  padding:0 !important;
  position:relative !important;
}
.site-footer-v2::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background-image:repeating-linear-gradient(
    -45deg,
    transparent, transparent 32px,
    rgba(184,133,68,.04) 32px, rgba(184,133,68,.04) 33px
  ) !important;
  pointer-events:none !important;
}
.site-footer-v2 > *{position:relative !important; z-index:1 !important;}

.footer-v2-grid{
  max-width:1280px !important;
  margin:0 auto !important;
  padding:64px 48px 40px !important;
  display:grid !important;
  grid-template-columns:1.4fr 1fr 1fr 1fr !important;
  gap:48px !important;
  align-items:start !important;
}

/* Columna marca */
.footer-v2-brand{display:flex !important; flex-direction:column !important;}
.footer-v2-brand .wordmark{
  font-family:"Instrument Serif",Georgia,serif !important;
  font-style:italic !important;
  font-size:56px !important;
  line-height:1 !important;
  color:var(--paper,#F5F2EC) !important;
  letter-spacing:-.01em !important;
  display:block !important;
  margin-bottom:20px !important;
}
.footer-v2-brand .rule{
  border:0 !important;
  border-top:1px solid rgba(184,133,68,.32) !important;
  width:84% !important;
  margin:0 0 20px !important;
}
.footer-v2-brand .stamp{
  font-family:"Inter",sans-serif !important;
  font-size:11px !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
  color:var(--ochre,#B88544) !important;
  display:block !important;
  margin-bottom:18px !important;
}
.footer-v2-brand .tag{
  font-family:"EB Garamond",Georgia,serif !important;
  font-size:15px !important;
  font-style:italic !important;
  line-height:1.55 !important;
  color:rgba(245,242,236,.55) !important;
  max-width:280px !important;
}

/* Columnas de enlaces */
.footer-v2-col{display:flex !important; flex-direction:column !important; gap:14px !important;}
.footer-v2-col .label{
  font-family:"Inter",sans-serif !important;
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
  color:var(--ochre,#B88544) !important;
  margin-bottom:6px !important;
}
.footer-v2-col a{
  font-family:"EB Garamond",Georgia,serif !important;
  font-size:16px !important;
  color:rgba(245,242,236,.78) !important;
  text-decoration:none !important;
  line-height:1.4 !important;
  transition:color .15s !important;
  display:inline-block !important;
}
.footer-v2-col a:hover{ color:var(--paper,#F5F2EC) !important; }
.footer-v2-col a.is-current{
  color:var(--paper,#F5F2EC) !important;
  font-weight:500 !important;
}
.footer-v2-col .sub{
  font-family:"EB Garamond",serif !important;
  font-size:13px !important;
  font-style:italic !important;
  color:rgba(245,242,236,.4) !important;
  margin-top:-10px !important;
  margin-bottom:4px !important;
}

/* Barra inferior */
.footer-v2-baseline{
  border-top:1px solid rgba(245,242,236,.08) !important;
  max-width:1280px !important;
  margin:0 auto !important;
  padding:22px 48px 36px !important;
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  font-family:"Inter",sans-serif !important;
  font-size:11px !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
  color:rgba(245,242,236,.4) !important;
  flex-wrap:wrap !important;
  gap:16px !important;
}
.footer-v2-baseline em{
  font-style:italic !important;
  text-transform:none !important;
  letter-spacing:.05em !important;
  font-family:"EB Garamond",serif !important;
  font-size:13px !important;
  color:rgba(245,242,236,.55) !important;
}

/* Responsive */
@media (max-width:1080px){
  .footer-v2-grid{
    grid-template-columns:1fr 1fr !important;
    gap:40px !important;
    padding:48px 32px 32px !important;
  }
  .footer-v2-brand{ grid-column:1 / -1 !important; }
  .footer-v2-brand .wordmark{ font-size:44px !important; }
}
@media (max-width:640px){
  .footer-v2-grid{
    grid-template-columns:1fr !important;
    gap:32px !important;
    padding:40px 24px 28px !important;
  }
  .footer-v2-baseline{
    flex-direction:column !important;
    text-align:center !important;
    padding:20px 24px 32px !important;
    gap:8px !important;
  }
}
