/*
Theme Name: Molino de Letras
Theme URI: https://molinodeletras.org
Author: Molino de Letras
Description: Tema editorial propio para Molino de Letras. Revista de literatura, pensamiento y cultura.
Version: 0.8.3
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: molino-de-letras
*/

:root{
  --papel:#ffffff;
  --papel2:#f3f3f1;
  --tinta:#171714;
  --gris:#6c675f;
  --linea:#bcb5a8;
  --ocre:#171714;
  --oscuro:#171714;
  --opinion-text:#ffffff;
  --opinion-hover:#f1e0cd;
  --acento-secundario:#171714;
  --ancho:1380px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--papel);
  color:var(--tinta);
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.5;
}
a{color:inherit;text-decoration:none}
a:hover{color:var(--ocre)}
img{display:block;max-width:100%;height:auto}
.wrap{width:min(calc(100% - 50px),var(--ancho));margin:auto}
.site-main{min-height:55vh}
.screen-reader-text{position:absolute;left:-9999px}

/* Cabecera */
.friso{
  border-bottom:0;
  font-size:11px;
}
.friso-grid{
  min-height:42px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
}
.friso-fecha{
  font-family:Georgia,"Times New Roman",serif;
  font-size:12px;
  letter-spacing:.025em;
  white-space:nowrap;
}
.sociales{display:flex;align-items:center;gap:10px}
.social-link{
  width:28px;height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  border-radius:50%;
  color:var(--tinta);
  transition:.2s ease;
}
.social-link:hover{color:var(--ocre);border-color:var(--linea)}
.social-link svg{width:16px;height:16px;fill:currentColor;display:block}
.cabecera{
  padding:28px 0 18px;
  border-bottom:0;
}
.marca{display:flex;justify-content:center;align-items:center}
.marca-logo{display:block;width:min(800px,82vw)}
.marca-logo img{
  width:100%;
  height:auto;
  max-height:155px;
  object-fit:contain;
  display:block;
}
.menu{
  border-top:0;
  border-bottom:1px solid #e6e6e2;
}
.menu .wrap{
  min-height:49px;
  display:flex;
  justify-content:center;
  align-items:center;
  overflow:auto;
  white-space:nowrap;
}
.menu ul{
  list-style:none;
  display:flex;
  gap:34px;
  padding:0;
  margin:0;
}
.menu a{
  font-size:10.5px;
  font-weight:bold;
  letter-spacing:.105em;
  text-transform:uppercase;
  position:relative;
}
.menu .current-menu-item > a,
.menu .current-menu-ancestor > a{
  color:var(--ocre);
}
.menu .current-menu-item > a::after,
.menu .current-menu-ancestor > a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-10px;
  height:2px;
  background:var(--ocre);
}

/* Portada */
.portada{
  padding:38px 0 58px;
  border-bottom:1px solid var(--tinta);
  clear:both;
  display:flow-root;
}
.portada-grid{
  display:grid;
  grid-template-columns:1.45fr .7fr .85fr;
  gap:30px;
  align-items:start;
}
.principal,.columna,.opinion{min-width:0}
.principal .featured{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  background:var(--papel2);
  margin-bottom:20px;
  overflow:hidden;
}
.principal .featured img{width:100%;height:100%;object-fit:cover}
.etiqueta{
  color:var(--ocre);
  font-size:10px;
  font-weight:bold;
  text-transform:uppercase;
  letter-spacing:.12em;
  margin:10px 0;
}
.principal h1{
  font:normal clamp(38px,3.8vw,64px)/1 Georgia,serif;
  letter-spacing:-.035em;
  margin:8px 0 14px;
}
.principal p{
  max-width:780px;
  font:20px/1.5 Georgia,serif;
  margin:0 0 12px;
}
.firma{
  font-size:11px;
  font-weight:bold;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.columna{
  border-left:1px solid var(--linea);
  padding-left:24px;
}
.titulo-columna{
  font-size:10px;
  font-weight:bold;
  text-transform:uppercase;
  letter-spacing:.13em;
  padding-bottom:10px;
  border-bottom:2px solid var(--tinta);
}
.nota{padding:18px 0;border-bottom:1px solid var(--linea)}
.nota h2{font:normal 24px/1.07 Georgia,serif;margin:5px 0 8px}
.nota p{font:14px/1.45 Georgia,serif;color:var(--gris);margin:0 0 8px}
.opinion{
  background:var(--oscuro);
  color:var(--opinion-text);
  padding:25px;
}
.opinion-titulo{
  display:flex;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid #66645e;
  padding-bottom:12px;
  margin-bottom:6px;
}
.opinion-titulo strong{font:normal 30px/1 Georgia,serif}
.opinion-titulo span{
  color:color-mix(in srgb, var(--opinion-text) 72%, transparent);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.columna-opinion{
  padding:18px 0;
  border-bottom:1px solid color-mix(in srgb, var(--opinion-text) 24%, transparent);
}
.columna-opinion h3{font:normal 22px/1.15 Georgia,serif;margin:0 0 8px}
.columna-opinion small{
  color:color-mix(in srgb, var(--opinion-text) 72%, transparent);
  text-transform:uppercase;
  letter-spacing:.08em
}

/* Secciones */
.seccion{
  padding:68px 0 72px;
  border-bottom:1px solid var(--linea);
  clear:both;
  display:flow-root;
  position:relative;
}
.cabeza-seccion{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:20px;
  border-bottom:2px solid var(--tinta);
  margin-bottom:30px;
  padding-bottom:2px;
}
.cabeza-seccion h2{
  font:normal clamp(38px,3.6vw,58px)/1.02 Georgia,serif;
  margin:0 0 12px
}
.subtitulo-seccion{color:var(--ocre);font-size:10px;font-weight:bold;text-transform:uppercase;letter-spacing:.13em;margin:0 0 12px}
.cabeza-seccion span,.cabeza-seccion a{
  font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:14px
}
.tres{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px;
  align-items:start;
}
.articulo{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.articulo + .articulo{border-left:1px solid var(--linea);padding-left:26px}
.articulo .thumb{
  display:block;
  width:100%;
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--papel2);
  margin-bottom:15px
}
.articulo .thumb img{width:100%;height:100%;object-fit:cover}
.articulo h3{font:normal 30px/1.08 Georgia,serif;margin:5px 0 10px}
.articulo p{font:15px/1.5 Georgia,serif;color:var(--gris);margin:0 0 10px}
.articulo .firma{display:block;margin-top:2px}

/* Archivo / búsqueda */
.listado{padding:48px 0}
.listado-header{border-bottom:2px solid var(--tinta);margin-bottom:28px}
.listado-header h1{font:normal clamp(42px,5vw,72px)/1 Georgia,serif;margin:0 0 14px}
.listado-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.card{border-bottom:1px solid var(--linea);padding-bottom:24px}
.card .thumb{
  display:block;
  width:100%;
  aspect-ratio:16/10;
  background:var(--papel2);
  overflow:hidden;
  margin-bottom:12px
}
.card .thumb img{width:100%;height:100%;object-fit:cover}
.card h2{font:normal 29px/1.08 Georgia,serif;margin:5px 0 8px}
.card p{font:15px/1.5 Georgia,serif;color:var(--gris)}
.pagination{margin-top:34px}

/* Entrada */
.entrada-wrap{width:min(calc(100% - 40px),900px);margin:0 auto}
.single-head{padding:52px 0 24px}
.single-head h1{font:normal clamp(44px,6vw,82px)/.98 Georgia,serif;letter-spacing:-.03em;margin:8px 0 18px}
.single-deck{font:22px/1.45 Georgia,serif;color:var(--gris);margin:0 0 14px}
.single-meta{font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.single-hero{width:min(calc(100% - 40px),1180px);margin:0 auto 36px}
.single-hero img{width:100%;max-height:760px;object-fit:cover}
.entry-content{font:20px/1.75 Georgia,serif}
.entry-content p{margin:0 0 1.25em}
.entry-content h2,.entry-content h3{font-family:Georgia,serif;line-height:1.15}
.entry-content blockquote{
  margin:2em 0;padding-left:24px;border-left:4px solid var(--ocre);
  font-size:1.3em;line-height:1.45
}
.entry-content img{margin:1.6em auto}
.autores-box{margin:50px auto 65px;padding-top:24px;border-top:2px solid var(--tinta)}
.autor-card{display:grid;grid-template-columns:110px 1fr;gap:22px;margin:20px 0}
.autor-card img{width:110px;height:110px;border-radius:50%;object-fit:cover}
.autor-card h3{font:normal 26px/1.1 Georgia,serif;margin:0 0 8px}
.autor-card p{font:15px/1.5 Georgia,serif;color:var(--gris);margin:0}

/* Autor */
.autor-hero{padding:50px 0;border-bottom:1px solid var(--linea)}
.autor-hero-grid{display:grid;grid-template-columns:230px 1fr;gap:38px;align-items:start}
.autor-hero img{width:230px;height:230px;border-radius:50%;object-fit:cover}
.autor-hero h1{font:normal clamp(44px,5vw,72px)/1 Georgia,serif;margin:0 0 15px}
.autor-bio{font:19px/1.6 Georgia,serif}

/* Footer */
footer{
  background:var(--papel);
  color:var(--tinta);
  padding:56px 0 60px;
  border-top:1px solid #e6e6e2;
  clear:both;
  display:flow-root;
  position:relative;
}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px;align-items:start}
.footer-logo{display:block;width:min(330px,72vw);margin-bottom:16px}
.footer-logo img{
  width:100%;
  height:auto;
  display:block;
}
footer p{max-width:390px;color:var(--gris);font-family:Georgia,serif;line-height:1.5}
footer h4{font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-top:2px}
footer a{display:block;margin:9px 0;color:var(--gris);font-size:12px}
footer a:hover{color:var(--ocre)}
footer ul{list-style:none;margin:0;padding:0}

/* Responsive */
@media(max-width:950px){
  .portada-grid{grid-template-columns:1fr 1fr}
  .principal{grid-column:1/-1}
  .listado-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .wrap{width:calc(100% - 28px)}
  .friso-grid{min-height:40px}
  .friso-fecha{font-size:10.5px}
  .sociales{gap:4px}
  .social-link{width:25px;height:25px}
  .cabecera{padding:18px 0 14px}
  .marca-logo{width:min(92vw,690px)}
  .menu .wrap{justify-content:flex-start}
  .menu ul{gap:25px}
  .portada-grid,.tres,.listado-grid{grid-template-columns:1fr}
  .columna{border-left:0;padding-left:0}
  .articulo + .articulo{border-left:0;padding-left:0;border-top:1px solid var(--linea);padding-top:28px}
  .lema .wrap{grid-template-columns:auto 1fr}
  .lema-numero{display:none}
  .portadas{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr}
  .autor-hero-grid{grid-template-columns:1fr}
  .autor-hero img{width:160px;height:160px}
  .autor-card{grid-template-columns:78px 1fr}
  .autor-card img{width:78px;height:78px}
}


/* Identidad mensual: detalles secundarios */
.titulo-columna{
  border-bottom-color:var(--acento-secundario);
}
.cabeza-seccion a:hover,
footer a:hover{
  color:var(--acento-secundario);
}


/* Contrapunto: hover configurable desde Identidad mensual */
.opinion a{
  color:var(--opinion-text);
}
.opinion a:hover{
  color:var(--opinion-hover);
}
.opinion .columna-opinion h3 a:hover{
  color:var(--opinion-hover);
}




/* v0.8.0 — Sobremesa: tres conversaciones culturales */
.sobremesa-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px;
  align-items:start;
}
.sobremesa-col{
  min-width:0;
}
.sobremesa-col + .sobremesa-col{
  border-left:1px solid var(--linea);
  padding-left:26px;
}
.sobremesa-rubro{
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.14em;
  border-bottom:1px solid var(--tinta);
  padding-bottom:10px;
  margin-bottom:20px;
}
.sobremesa-rubro a:hover{
  opacity:.65;
}
.sobremesa-articulo h3{
  margin-top:4px;
}
.sobremesa-vacio{
  font:italic 16px/1.5 Georgia,serif;
  color:var(--gris);
}

@media (max-width:800px){
  .sobremesa-grid{
    grid-template-columns:1fr;
    gap:36px;
  }
  .sobremesa-col + .sobremesa-col{
    border-left:0;
    border-top:1px solid var(--linea);
    padding-left:0;
    padding-top:28px;
  }
}


/* v0.8.1 — Autores y autoras */
.autor-hero{
  padding:58px 0 48px;
  border-bottom:1px solid var(--linea);
}
.autor-hero-grid{
  display:grid;
  grid-template-columns:minmax(180px,280px) minmax(0,1fr);
  gap:42px;
  align-items:start;
}
.autor-hero-grid.sin-foto{
  grid-template-columns:minmax(0,820px);
}
.autor-foto img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  display:block;
}
.autor-hero h1{
  font:normal clamp(42px,5vw,72px)/1 Georgia,serif;
  margin:4px 0 24px;
}
.autor-bio{
  font:18px/1.65 Georgia,serif;
  max-width:780px;
}
.autor-social{
  margin-top:24px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.autor-social a{
  border-bottom:1px solid var(--tinta);
}
.autor-social a:hover{
  opacity:.6;
}
@media(max-width:760px){
  .autor-hero-grid{
    grid-template-columns:1fr;
  }
  .autor-foto{
    max-width:240px;
  }
}




/* v0.8.3 — Autoría y retratos */
.autores-box{
  width:min(calc(100% - 40px),900px);
  margin:50px auto 65px;
  padding-top:24px;
  border-top:2px solid var(--tinta);
}

.autor-card{
  display:grid;
  gap:22px;
  align-items:start;
  margin:20px 0;
}

.autor-card.con-foto{
  grid-template-columns:110px minmax(0,1fr);
}

.autor-card.sin-foto{
  grid-template-columns:minmax(0,1fr);
}

.autor-card-foto{
  width:110px;
  aspect-ratio:1 / 1;
}

.autor-card-foto img{
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  border-radius:50%;
}

.autor-card-texto{
  min-width:0;
}

.autor-card h3{
  font:normal 26px/1.1 Georgia,serif;
  margin:0 0 8px;
}

.autor-card p{
  max-width:720px;
  font:15px/1.5 Georgia,serif;
  color:var(--gris);
  margin:0;
}

/* Retrato de la ficha individual: siempre círculo real, nunca óvalo */
.autor-foto{
  width:min(230px,100%);
  aspect-ratio:1 / 1;
}

.autor-foto img,
.autor-hero .autor-foto img{
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  border-radius:50%;
}

@media(max-width:760px){
  .autor-card.con-foto{
    grid-template-columns:78px minmax(0,1fr);
  }
  .autor-card-foto{
    width:78px;
  }
  .autor-foto{
    width:min(200px,70vw);
  }
}
