/* ═══════════════════════════════════════════════════════════
   DE VELAS — Diseño editorial estilo revista femenina
   Inspirado en Elle / Telva / Mujer Hoy
   ═══════════════════════════════════════════════════════════ */

/* ─── Variables ─────────────────────────────────────────── */
:root {
  --blanco:        oklch(98.5% 0.005 75);
  --crema:         #F8F4EF;
  --borde:         #E2DAD0;
  --texto:         oklch(20% 0.012 60);
  --texto-medio:   #555049;
  --texto-suave:   #9A8F85;
  --oro:           oklch(64% 0.075 78);
  --terracota:     #C0583C;
  --ciruela:       #3D1F32;
  --negro:         oklch(15% 0.008 55);

  --serif:         'Bodoni Moda', 'Playfair Display', 'Georgia', serif;
  --serif-texto:   'Source Serif 4', 'Georgia', serif;
  --sans:          'Inter', 'Helvetica Neue', sans-serif;

  --ancho:         1200px;
  --ancho-texto:   740px;
  --radio:         2px;

  --ease-editorial: cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* ─── Reset ─────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  background: var(--blanco);
  color: var(--texto);
  font-family: var(--sans);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }

/* ─── Google Fonts ──────────────────────────────────────── */
/* Cargadas en el <head> del template */

/* ─── Utilidades ─────────────────────────────────────────── */
.container {
  max-width: var(--ancho);
  margin: 0 auto;
  padding: 0 1.5rem;
}
.sr-only {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap;
}

/* ════════════════════════════════════════════════════════════
   CABECERA
   ════════════════════════════════════════════════════════════ */

/* Franja superior con fecha/tagline */
.topbar {
  background: var(--negro);
  color: rgba(255,255,255,0.6);
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  text-align: center;
  padding: 0.45rem 1rem;
}
.topbar-sep { color: rgba(255,255,255,0.3); margin: 0 0.6rem; }
.topbar-fecha { color: rgba(255,255,255,0.85); }
.topbar-eyebrow { color: rgba(255,255,255,0.5); }

/* Masthead — el corazón de la revista */
.masthead {
  border-bottom: 1px solid var(--borde);
  padding: 1.5rem 0 1.25rem;
  text-align: center;
}
.masthead-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--ancho);
  margin: 0 auto;
  padding: 0 1.5rem;
}
.masthead-logo {
  flex: 1;
  text-align: center;
}
.masthead-logo a {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--negro);
  text-transform: uppercase;
  line-height: 1;
}
.masthead-logo a span {
  display: block;
  font-family: var(--sans);
  font-size: 0.65rem;
  font-weight: 400;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--texto-suave);
  margin-top: 0.3rem;
}
.masthead-side {
  flex: 1;
  display: flex;
  align-items: center;
}
.masthead-side:last-child { justify-content: flex-end; }
.masthead-search {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.25rem;
  color: var(--texto-medio);
  font-size: 1.1rem;
}

/* Navegación principal */
.nav-wrap {
  border-bottom: 2px solid var(--negro);
  border-top: 1px solid var(--borde);
}
.nav-principal {
  max-width: var(--ancho);
  margin: 0 auto;
  padding: 0 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}
.nav-principal .nav-link {
  display: block;
  font-family: var(--sans);
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--texto);
  padding: 0.85rem 0.75rem;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color 0.15s, border-color 0.15s;
  white-space: nowrap;
}
.nav-principal .nav-link:hover,
.nav-item:hover .nav-link,
.nav-principal .nav-link.activo {
  color: var(--terracota);
  border-bottom-color: var(--terracota);
}
.nav-toggle {
  display: none;
  margin-left: auto;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  font-size: 1.25rem;
}

/* ════════════════════════════════════════════════════════════
   HOME — LAYOUT EDITORIAL
   ════════════════════════════════════════════════════════════ */

/* ─── Hero monumental ────────────────────────────────────── */
.hero-mono {
  max-width: var(--ancho);
  margin: 3.5rem auto 4.5rem;
  padding: 0 1.5rem;
}
.hero-mono-inner {
  max-width: 1100px;
  margin: 0 auto;
}
.hero-mono-kicker {
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--texto-medio);
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
  margin-bottom: 1.6rem;
}
.hero-mono-kicker .hero-mono-seccion { color: var(--terracota); }
.hero-mono-kicker .hero-mono-sep    { color: var(--borde); }
.hero-mono-kicker .hero-mono-fecha  { color: var(--texto-suave); }
.hero-mono-kicker .hero-mono-firma  { color: var(--texto-medio); text-transform: none; letter-spacing: 0.05em; font-style: italic; }

.hero-mono-titular {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-variation-settings: "opsz" 96, "wght" 500;
  font-size: clamp(2.6rem, 7.5vw, 7.5rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--negro);
  margin: 0 0 1.6rem;
  max-width: 16ch;
  text-wrap: balance;
}
.hero-mono-titular a { color: inherit; transition: color 0.2s; }
.hero-mono-titular a:hover { color: var(--terracota); }

.hero-mono-bajada {
  font-family: var(--serif-texto);
  font-size: clamp(1.05rem, 1.4vw, 1.3rem);
  line-height: 1.55;
  color: var(--texto-medio);
  max-width: 60ch;
  margin: 0 0 2.5rem;
}

.hero-mono-figura {
  margin: 0 0 0 auto;
  width: min(100%, 80%);
}
.hero-mono-img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  display: block;
}

/* Tres piezas secundarias en franja inferior */
.hero-mono-secundarias {
  max-width: 1100px;
  margin: 3rem auto 0;
  padding-top: 1.75rem;
  border-top: 1px solid var(--borde);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
}
.hero-mono-sec-eyebrow {
  display: block;
  font-family: var(--sans);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 0.5rem;
}
.hero-mono-sec-titulo {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: 1.08rem;
  line-height: 1.3;
  color: var(--negro);
}
.hero-mono-sec-titulo a:hover { color: var(--terracota); }

@media (max-width: 960px) {
  .hero-mono { margin: 2rem auto 2.5rem; }
  .hero-mono-figura { width: 100%; }
  .hero-mono-secundarias { grid-template-columns: 1fr; gap: 1.25rem; margin-top: 2rem; }
  .hero-mono-sec { padding-bottom: 1.25rem; border-bottom: 1px solid var(--borde); }
  .hero-mono-sec:last-child { border-bottom: none; padding-bottom: 0; }
}
@media (max-width: 640px) {
  .hero-mono-titular { font-size: clamp(2.1rem, 11vw, 3.6rem); max-width: none; }
  .hero-mono-bajada { font-size: 1rem; margin-bottom: 1.75rem; }
}

/* ─── Marquee tipográfico de secciones ───────────────────── */
.secciones-marquee {
  margin: 0 0 1rem;
  padding: 1.25rem 0;
  background: var(--crema);
  border-top: 1px solid var(--borde);
  border-bottom: 1px solid var(--borde);
  overflow: hidden;
  position: relative;
}
.secciones-marquee-track {
  display: flex;
  width: max-content;
  animation: secciones-marquee-scroll 50s linear infinite;
}
.secciones-marquee:hover .secciones-marquee-track { animation-play-state: paused; }
.secciones-marquee-grupo {
  display: flex;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
.secciones-marquee-grupo li {
  flex-shrink: 0;
  padding: 0 2.5rem;
  position: relative;
}
.secciones-marquee-grupo li + li::before {
  content: '·';
  position: absolute;
  left: -0.35rem;
  top: 50%;
  transform: translateY(-58%);
  color: var(--oro);
  font-size: 2rem;
  line-height: 1;
}
.secciones-marquee-grupo a {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-variation-settings: "opsz" 96, "wght" 500;
  font-size: clamp(4.5rem, 9vw, 9.5rem);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--terracota);
  white-space: nowrap;
  text-decoration: none;
  transition: color 0.2s;
  border-bottom: 2px solid transparent;
  padding-bottom: 0.05em;
}
.secciones-marquee-grupo a:hover {
  color: var(--ciruela);
  border-bottom-color: var(--ciruela);
}
@keyframes secciones-marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .secciones-marquee-track { animation: none; }
}
@media (max-width: 768px) {
  .secciones-marquee { padding: 0.85rem 0; }
  .secciones-marquee-grupo li { padding: 0 1.5rem; }
  .secciones-marquee-grupo a { font-size: clamp(3rem, 13vw, 5rem); }
}

/* ─── Separador de sección ───────────────────────────────── */
.seccion-header {
  max-width: var(--ancho);
  margin: 2.5rem auto 1.5rem;
  padding: 0 1.5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
}
.seccion-header h2 {
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--negro);
  white-space: nowrap;
}
.seccion-header::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--borde);
}
.seccion-header a {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--terracota);
  white-space: nowrap;
}
.seccion-header a:hover { text-decoration: underline; }

/* ─── Grid de posts ──────────────────────────────────────── */
.posts-grid {
  max-width: var(--ancho);
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem 1.5rem;
  margin-bottom: 3rem;
}
.posts-grid-4 { grid-template-columns: repeat(4, 1fr); }

/* Decoración: 1 hero + 2 medianas, asimétrico editorial */
.posts-grid--editorial-deco {
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 1.5rem;
}
.post-card--hero { grid-row: span 1; }
.post-card--hero .post-card-img { aspect-ratio: 5/4; }
.post-card--hero h3 { font-size: 1.45rem; }
.post-card--hero p { font-size: 0.95rem; color: var(--texto-medio); margin-top: 0.4rem; line-height: 1.55; }
@media (max-width: 960px) {
  .posts-grid--editorial-deco { grid-template-columns: 1fr 1fr; }
  .post-card--hero { grid-column: 1 / -1; }
}

/* ─── Card de post ───────────────────────────────────────── */
.post-card { display: flex; flex-direction: column; }
.post-card-img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  margin-bottom: 0.9rem;
  transition: opacity 0.2s;
}
.post-card:hover .post-card-img { opacity: 0.88; }
.post-card .tag {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 0.35rem;
  display: block;
}
.post-card h3 {
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 0.4rem;
  transition: color 0.15s;
}
.post-card:hover h3 { color: var(--terracota); }
.post-card p {
  font-size: 0.875rem;
  color: var(--texto-medio);
  line-height: 1.55;
  margin-bottom: 0.5rem;
  flex: 1;
}
.post-card time {
  font-size: 0.72rem;
  color: var(--texto-suave);
  letter-spacing: 0.05em;
}

/* ─── Strip editorial de secciones ──────────────────────── */
.secciones-strip {
  display: flex;
  flex-direction: column;
  margin: 3rem 0;
  overflow: hidden;
  gap: 2px;
  background: #e8e3dc;  /* el gap se ve como separador */
}

.secciones-fila {
  display: grid;
  gap: 2px;
}
.secciones-fila-a {
  grid-template-columns: repeat(4, 1fr);
  height: 260px;
}
.secciones-fila-b {
  grid-template-columns: repeat(5, 1fr);
  height: 175px;
}

.seccion-panel {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  text-decoration: none;
  color: #fff;
}

/* Fondo con pseudo-elemento para el zoom en hover */
.seccion-panel-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
}
.seccion-panel:hover .seccion-panel-bg { transform: scale(1.07); }

/* Overlay degradado desde abajo */
.seccion-panel::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.72) 0%,
    rgba(0,0,0,0.25) 50%,
    rgba(0,0,0,0.08) 100%
  );
  transition: background 0.4s;
}
.seccion-panel:hover::after {
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.80) 0%,
    rgba(0,0,0,0.35) 55%,
    rgba(0,0,0,0.12) 100%
  );
}

/* Fondos placeholder por sección — sustituir por fotos reales */
.seccion-rituales .seccion-panel-bg {
  background-color: #2D1B40;
  background-image:
    radial-gradient(ellipse at 30% 60%, rgba(120,60,160,0.6) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 20%, rgba(80,20,100,0.4) 0%, transparent 55%);
}
.seccion-diy .seccion-panel-bg {
  background-color: #3D1F14;
  background-image:
    radial-gradient(ellipse at 60% 70%, rgba(180,80,40,0.7) 0%, transparent 60%),
    radial-gradient(ellipse at 20% 30%, rgba(140,60,30,0.4) 0%, transparent 50%);
}
.seccion-decoracion .seccion-panel-bg {
  background-color: #2A2010;
  background-image:
    radial-gradient(ellipse at 50% 60%, rgba(180,140,60,0.65) 0%, transparent 60%),
    radial-gradient(ellipse at 85% 25%, rgba(140,100,40,0.4) 0%, transparent 50%);
}
.seccion-wellness .seccion-panel-bg {
  background-color: #1A2820;
  background-image:
    radial-gradient(ellipse at 40% 65%, rgba(70,130,90,0.6) 0%, transparent 60%),
    radial-gradient(ellipse at 75% 25%, rgba(50,100,70,0.4) 0%, transparent 50%);
}
.seccion-guias .seccion-panel-bg {
  background-color: #1A1614;
  background-image:
    radial-gradient(ellipse at 55% 55%, rgba(80,60,50,0.7) 0%, transparent 60%),
    radial-gradient(ellipse at 20% 30%, rgba(60,45,35,0.5) 0%, transparent 50%);
}

/* ── Nuevas secciones de revista ── */
.seccion-moda .seccion-panel-bg {
  background-color: #1C1218;
  background-image:
    radial-gradient(ellipse at 60% 50%, rgba(160,40,80,0.55) 0%, transparent 65%),
    radial-gradient(ellipse at 15% 80%, rgba(100,20,50,0.4) 0%, transparent 50%),
    radial-gradient(ellipse at 90% 15%, rgba(80,30,60,0.3) 0%, transparent 45%);
}
.seccion-belleza .seccion-panel-bg {
  background-color: #221416;
  background-image:
    radial-gradient(ellipse at 50% 60%, rgba(190,100,110,0.5) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 20%, rgba(140,60,70,0.35) 0%, transparent 50%),
    radial-gradient(ellipse at 10% 85%, rgba(160,80,90,0.3) 0%, transparent 45%);
}
.seccion-luceras .seccion-panel-bg {
  background-color: #161820;
  background-image:
    radial-gradient(ellipse at 45% 55%, rgba(140,150,170,0.5) 0%, transparent 65%),
    radial-gradient(ellipse at 85% 25%, rgba(100,110,130,0.35) 0%, transparent 50%),
    radial-gradient(ellipse at 10% 75%, rgba(120,130,150,0.3) 0%, transparent 45%);
}
.seccion-horoscopo .seccion-panel-bg {
  background-color: #0E1220;
  background-image:
    radial-gradient(ellipse at 55% 45%, rgba(60,80,180,0.5) 0%, transparent 60%),
    radial-gradient(ellipse at 20% 75%, rgba(40,50,140,0.4) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 20%, rgba(80,60,160,0.35) 0%, transparent 45%);
}

/* Texto sobre el panel */
.seccion-panel-body {
  position: relative;
  z-index: 1;
  padding: 1.5rem 1.75rem;
  width: 100%;
}
.seccion-label {
  display: block;
  font-family: var(--sans);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  margin-bottom: 0.4rem;
  transition: color 0.3s;
}
.seccion-panel:hover .seccion-label { color: rgba(255,255,255,0.9); }

.seccion-nombre {
  font-family: var(--serif);
  font-size: clamp(1.3rem, 2vw, 1.9rem);
  font-weight: 700;
  font-style: italic;
  line-height: 1.1;
  color: #fff;
  letter-spacing: -0.01em;
  transition: transform 0.3s;
}
.seccion-panel:hover .seccion-nombre { transform: translateY(-2px); }

/* Separadores verticales entre paneles */
.seccion-panel + .seccion-panel::before {
  content: '';
  position: absolute;
  left: 0;
  top: 15%;
  height: 70%;
  width: 1px;
  background: rgba(255,255,255,0.15);
  z-index: 2;
}

/* Responsive — strip de secciones */
@media (max-width: 768px) {
  .secciones-fila-a,
  .secciones-fila-b {
    grid-template-columns: repeat(2, 1fr);
    height: auto;
  }
  .seccion-panel { aspect-ratio: 4/3; }
  .seccion-panel-body { padding: 0.85rem 1rem; }
  .seccion-nombre { font-size: 1.3rem; }
  .seccion-label { font-size: 0.55rem; letter-spacing: 0.18em; }
}
@media (max-width: 420px) {
  .seccion-panel { aspect-ratio: 3/2; }
}

/* ════════════════════════════════════════════════════════════
   PÁGINAS DE CLUSTER (índice de sección)
   ════════════════════════════════════════════════════════════ */
.cluster-hero {
  border-bottom: 2px solid var(--negro);
  padding: 2.5rem 1.5rem;
  max-width: var(--ancho);
  margin: 0 auto;
}
.cluster-hero .tag-grande {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 0.5rem;
}
.cluster-hero h1 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
}
.cluster-hero p {
  font-size: 1.05rem;
  color: var(--texto-medio);
  max-width: 60ch;
  margin-top: 0.75rem;
}

/* ════════════════════════════════════════════════════════════
   ARTÍCULO INDIVIDUAL
   ════════════════════════════════════════════════════════════ */
.article-header {
  max-width: var(--ancho-texto);
  margin: 2.5rem auto 0;
  padding: 0 1.5rem;
}
.article-header .breadcrumb {
  font-size: 0.72rem;
  color: var(--texto-suave);
  letter-spacing: 0.05em;
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.article-header .breadcrumb a { color: var(--texto-suave); }
.article-header .breadcrumb a:hover { color: var(--terracota); }
.article-header .breadcrumb span::before { content: '/'; margin-right: 0.4rem; }
.article-header .tag {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 0.75rem;
  display: block;
}
.article-eyebrow {
  display: block;
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 1rem;
}
.article-eyebrow a { color: inherit; transition: opacity 0.15s; }
.article-eyebrow a:hover { opacity: 0.65; }
.article-eyebrow em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--texto);
  margin-left: 0.15em;
}
.article-eyebrow span[aria-hidden] {
  margin: 0 0.4em;
  color: var(--borde);
}
.article-firma a {
  color: inherit;
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
}
.article-firma a:hover { color: var(--terracota); }
.article-cover figcaption {
  font-family: var(--sans);
  font-size: 0.78rem;
  font-style: italic;
  color: var(--texto-suave);
  margin-top: 0.6rem;
  line-height: 1.5;
}
.article-cover-credito {
  display: inline-block;
  margin-left: 0.4rem;
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.65rem;
  color: var(--texto-medio);
}
.article-body figure {
  margin: 2.5rem 0;
}
.article-body figure img {
  width: 100%;
  height: auto;
  display: block;
}
.article-body figcaption {
  font-family: var(--sans);
  font-size: 0.78rem;
  font-style: italic;
  color: var(--texto-suave);
  margin-top: 0.6rem;
  line-height: 1.5;
  padding-left: 0.5rem;
  border-left: 2px solid var(--borde);
}
.article-header h1 {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1rem;
}
.article-header .intro {
  font-size: 1.15rem;
  color: var(--texto-medio);
  line-height: 1.6;
  margin-bottom: 1rem;
  font-style: italic;
  font-family: var(--serif);
}
.article-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 0.78rem;
  color: var(--texto-suave);
  padding: 1rem 0;
  border-top: 1px solid var(--borde);
  border-bottom: 1px solid var(--borde);
  margin-bottom: 1.5rem;
}

/* Imagen destacada del artículo */
.article-cover {
  max-width: 900px;
  margin: 0 auto 2.5rem;
  padding: 0 1.5rem;
}
.article-cover img {
  width: 100%;
  max-height: 520px;
  object-fit: cover;
}
.article-cover figcaption {
  font-size: 0.75rem;
  color: var(--texto-suave);
  margin-top: 0.5rem;
  font-style: italic;
}

/* Cuerpo del artículo */
.article-body {
  max-width: var(--ancho-texto);
  margin: 0 auto;
  padding: 0 1.5rem 3rem;
}
.article-body h2 {
  font-family: var(--serif);
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--negro);
  margin: 2.5rem 0 0.75rem;
  padding-top: 2rem;
  border-top: 1px solid var(--borde);
}
.article-body h3 {
  font-family: var(--serif);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--ciruela);
  margin: 1.75rem 0 0.5rem;
}
.article-body p { margin-bottom: 1.35rem; font-size: 1.025rem; }
.article-body ul, .article-body ol {
  padding-left: 1.5rem;
  margin-bottom: 1.35rem;
}
.article-body li { margin-bottom: 0.5rem; font-size: 1.025rem; }
.article-body strong { font-weight: 700; }
.article-body a { color: var(--terracota); text-decoration: underline; text-underline-offset: 2px; }

/* Pull quote — sin side-stripe, tipografía pura */
.article-body blockquote {
  background: var(--crema);
  margin: 2.5rem -1rem;
  padding: 2rem 2rem;
  text-align: center;
}
.article-body blockquote p {
  font-family: var(--serif);
  font-size: 1.55rem;
  font-style: italic;
  font-weight: 700;
  color: var(--negro);
  line-height: 1.3;
  margin: 0;
  max-width: 28ch;
  margin-inline: auto;
}
.article-body blockquote p::before { content: '\201C'; opacity: 0.45; margin-right: 0.1em; }
.article-body blockquote p::after  { content: '\201D'; opacity: 0.45; margin-left: 0.1em; }

/* Aviso afiliados */
.afiliado-aviso {
  background: var(--crema);
  border: 1px solid var(--borde);
  padding: 0.75rem 1rem;
  font-size: 0.8rem;
  color: var(--texto-suave);
  margin-top: 2.5rem;
  line-height: 1.5;
}

/* Posts relacionados */
.relacionados {
  background: var(--crema);
  padding: 3rem 1.5rem;
  margin-top: 3rem;
}
.relacionados-inner {
  max-width: var(--ancho);
  margin: 0 auto;
}

/* ════════════════════════════════════════════════════════════
   LANDING DE CATEGORÍA (velas-artesanales, etc.)
   ════════════════════════════════════════════════════════════ */
.landing-header {
  max-width: var(--ancho);
  margin: 0 auto;
  padding: 2.5rem 1.5rem 2rem;
  border-bottom: 1px solid var(--borde);
}
.landing-header h1 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 700;
}
.landing-body {
  max-width: var(--ancho-texto);
  margin: 2rem auto;
  padding: 0 1.5rem 3rem;
  font-size: 1.025rem;
  line-height: 1.75;
}
.landing-body h2 {
  font-family: var(--serif);
  font-size: 1.5rem;
  margin: 2rem 0 0.6rem;
}

/* ════════════════════════════════════════════════════════════
   FOOTER — compact, una línea en sobremesa
   ════════════════════════════════════════════════════════════ */
.site-footer {
  border-top: 2px solid var(--negro);
  padding: 1.75rem 1.5rem 1.25rem;
  margin-top: 4rem;
}
.footer-inner {
  max-width: var(--ancho);
  margin: 0 auto;
}

/* Fila principal: logo · nav · tagline en una línea */
.footer-line {
  display: flex;
  align-items: center;
  gap: 2rem;
  white-space: nowrap;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--borde);
}
.footer-logo {
  font-family: var(--serif);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--negro);
  line-height: 1;
  flex-shrink: 0;
}
.footer-nav {
  display: flex;
  align-items: center;
  flex: 1;
  justify-content: center;
  gap: 0;
  flex-wrap: nowrap;
  overflow: hidden;
}
.footer-nav a {
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--texto-medio);
  padding: 0 0.85rem;
  transition: color 0.15s;
}
.footer-nav a + a { border-left: 1px solid var(--borde); }
.footer-nav a:hover { color: var(--terracota); }
.footer-tagline {
  font-family: var(--serif);
  font-size: 0.85rem;
  font-style: italic;
  color: var(--texto-suave);
  flex-shrink: 0;
}

/* Fila inferior: legal · copyright */
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 0.85rem;
  font-size: 0.72rem;
  color: var(--texto-suave);
  gap: 1rem;
  flex-wrap: wrap;
}
.footer-legal { display: flex; gap: 1.25rem; }
.footer-legal a {
  font-size: 0.72rem;
  color: var(--texto-suave);
  transition: color 0.15s;
}
.footer-legal a:hover { color: var(--terracota); }
.footer-copy { font-size: 0.72rem; color: var(--texto-suave); }

/* ════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════ */
@media (max-width: 960px) {
  .posts-grid { grid-template-columns: repeat(2, 1fr); }
  .posts-grid-4 { grid-template-columns: repeat(2, 1fr); }
  /* footer ahora es flex, sin grid */
}

@media (max-width: 768px) {
  .masthead-side .masthead-link { display: none; }
  .masthead-side:first-child { display: none; }
  .masthead-side--right { flex: 0 0 auto; justify-content: flex-end; }
  .masthead-logo { text-align: center; flex: 1; }
  .nav-toggle { display: block; }
  .nav-wrap { position: relative; }
  /* Nav principal: scrollable horizontal en móvil */
  .nav-principal {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 0 1rem;
    scroll-snap-type: x proximity;
  }
  .nav-principal::-webkit-scrollbar { display: none; }
  .nav-item { flex-shrink: 0; scroll-snap-align: start; }
  .nav-megamenu { display: none !important; }  /* desactivar megamenú hover */
  .nav-link { padding: 0.85rem 0.7rem; font-size: 0.7rem; }
}
@media (max-width: 640px) {
  .posts-grid { grid-template-columns: 1fr; }
  .clusters-strip-inner { flex-wrap: wrap; }
  .cluster-pill { min-width: 45%; }
  .footer-line { flex-direction: column; gap: 0.75rem; align-items: flex-start; white-space: normal; }
  .footer-nav { flex-wrap: wrap; justify-content: flex-start; gap: 0.25rem 0; }
  .footer-nav a + a { border-left: none; }
  .footer-nav a { padding: 0.25rem 0.6rem 0.25rem 0; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* ════════════════════════════════════════════════════════════
   OVERLAY MÓVIL — menú a pantalla completa
   ════════════════════════════════════════════════════════════ */
.nav-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background:
    radial-gradient(ellipse 80% 60% at 90% 0%,  rgba(168,130,58,0.22) 0%, transparent 65%),
    radial-gradient(ellipse 70% 50% at 0% 100%, rgba(168,130,58,0.14) 0%, transparent 60%),
    rgba(252, 245, 228, 0.55);
  backdrop-filter: blur(36px) saturate(180%);
  -webkit-backdrop-filter: blur(36px) saturate(180%);
  color: var(--negro);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  visibility: hidden;
  border-left: 2px solid var(--oro);
}
.nav-overlay.open {
  transform: translateX(0);
  visibility: visible;
}

.nav-overlay-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1.25rem;
  border-bottom: 1px solid rgba(168, 130, 58, 0.28);
  flex-shrink: 0;
}
.nav-overlay-logo {
  font-family: var(--serif);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--negro);
}
.nav-overlay-close {
  background: rgba(255,255,255,0.5);
  border: 1px solid rgba(168,130,58,0.35);
  border-radius: 50%;
  width: 34px;
  height: 34px;
  color: var(--negro);
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s, border-color 0.15s;
}
.nav-overlay-close:hover { background: var(--oro); border-color: var(--oro); color: var(--blanco); }

.nav-overlay-list {
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.nav-overlay-item {
  border-bottom: 1px solid rgba(168, 130, 58, 0.15);
}
.nav-overlay-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.55rem 1rem;
}
.nav-overlay-thumb-link { display: block; flex-shrink: 0; }
.nav-overlay-thumb {
  display: block;
  width: 52px;
  height: 52px;
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(168, 130, 58, 0.3);
  position: relative;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(70, 50, 20, 0.12);
}
.nav-overlay-thumb::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(168,130,58,0.18) 0%, transparent 55%, rgba(0,0,0,0.18) 100%);
}
.nav-overlay-link {
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--negro);
  flex: 1;
  line-height: 1.15;
}
.nav-overlay-toggle {
  background: none;
  border: none;
  color: rgba(0,0,0,0.4);
  cursor: pointer;
  padding: 0.4rem 0.5rem;
  display: flex;
  align-items: center;
  transition: transform 0.25s, color 0.15s;
}
.nav-overlay-toggle svg { width: 12px; height: 8px; display: block; }
.nav-overlay-item.expanded .nav-overlay-toggle {
  transform: rotate(180deg);
  color: var(--oro);
}
.nav-overlay-sub {
  list-style: none;
  margin: 0;
  padding: 0 1.25rem;
  background: rgba(168, 130, 58, 0.06);
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
}
.nav-overlay-item.expanded .nav-overlay-sub {
  max-height: 260px;
  padding: 0.45rem 1.25rem 0.7rem;
}
.nav-overlay-sub li { padding: 0.3rem 0; }
.nav-overlay-sub a {
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--texto-medio);
}
.nav-overlay-sub a:hover { color: var(--oro); }

.nav-overlay-features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.65rem;
  padding: 1rem 1rem 1.25rem;
  border-top: 1px solid rgba(168, 130, 58, 0.25);
  background: rgba(168, 130, 58, 0.06);
  flex-shrink: 0;
}
.nav-overlay-feature {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  background: rgba(255,255,255,0.6);
  border: 1px solid rgba(168, 130, 58, 0.2);
  padding: 1rem 1.1rem;
  border-radius: 4px;
  min-height: 84px;
  transition: background 0.15s, border-color 0.15s;
}
.nav-overlay-feature:hover { background: var(--oro); border-color: var(--oro); }
.nav-overlay-feature:hover .feat-eyebrow,
.nav-overlay-feature:hover .feat-titulo { color: var(--blanco); }
.feat-eyebrow {
  font-family: var(--sans);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--oro);
  margin-bottom: 0.35rem;
  transition: color 0.15s;
}
.feat-titulo {
  font-family: var(--serif);
  font-size: 1.05rem;
  font-style: italic;
  font-weight: 700;
  color: var(--negro);
  line-height: 1.15;
  transition: color 0.15s;
}

/* Ocultar overlay en desktop, mostrar en móvil */
@media (min-width: 769px) {
  .nav-overlay { display: none; }
}

/* ════════════════════════════════════════════════════════════
   MASTHEAD LINKS
   ════════════════════════════════════════════════════════════ */
.masthead-link {
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--texto-medio);
  transition: color 0.15s;
}
.masthead-link:hover { color: var(--terracota); }

/* ════════════════════════════════════════════════════════════
   MEGAMENÚ EDITORIAL
   ════════════════════════════════════════════════════════════ */
.nav-wrap { position: relative; }
.nav-item { position: static; }

.nav-megamenu {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 200;
  background: var(--crema);
  border-top: 1px solid rgba(0,0,0,0.08);
  border-bottom: 1px solid rgba(0,0,0,0.05);
  box-shadow: 0 14px 32px -10px rgba(0,0,0,0.18);
}
.nav-item:hover .nav-megamenu,
.nav-item.open .nav-megamenu { display: block; }

.megamenu-inner {
  max-width: var(--ancho);
  margin: 0 auto;
  padding: 2rem 1.5rem;
  display: flex;
  align-items: start;
  gap: 0;
}

/* Columna izquierda: título de sección */
.megamenu-seccion {
  min-width: 190px;
  padding-right: 2.5rem;
  border-right: 1px solid var(--borde);
  margin-right: 2.5rem;
  flex-shrink: 0;
}
.megamenu-titulo {
  display: block;
  font-family: var(--serif);
  font-size: 2.2rem;
  font-weight: 700;
  font-style: italic;
  color: var(--negro);
  line-height: 1;
  margin-bottom: 0.85rem;
  letter-spacing: -0.01em;
  transition: color 0.15s;
}
.megamenu-titulo:hover { color: var(--terracota); }
.megamenu-vertodo {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--terracota);
  transition: opacity 0.15s;
}
.megamenu-vertodo:hover { opacity: 0.7; }

/* Grid de subcategorías */
.megamenu-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  flex: 1;
  gap: 0;
  column-gap: 2rem;
}
.megamenu-enlace {
  display: block;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--texto-medio);
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--borde);
  transition: color 0.14s, padding-left 0.14s;
  white-space: nowrap;
}
.megamenu-enlace:hover {
  color: var(--terracota);
  padding-left: 0.4rem;
}
/* Quitar borde inferior de la última fila */
.megamenu-grid .megamenu-enlace:nth-last-child(-n+2) { border-bottom: none; }

/* Móvil: megamenu inline como acordeón */
@media (max-width: 900px) {
  .nav-megamenu {
    position: static;
    box-shadow: none;
    border: none;
    border-top: 1px solid var(--borde);
    display: none;
  }
  .nav-item.open .nav-megamenu { display: block; }
  .megamenu-inner {
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem 0;
  }
  .megamenu-seccion {
    border-right: none;
    margin-right: 0;
    padding-right: 0;
    min-width: unset;
    display: flex;
    align-items: baseline;
    gap: 1rem;
  }
  .megamenu-titulo { font-size: 1.2rem; margin-bottom: 0; }
  .megamenu-grid { grid-template-columns: repeat(2, 1fr); column-gap: 1rem; }
  .megamenu-enlace { font-size: 0.72rem; padding: 0.5rem 0; }
}

/* ════════════════════════════════════════════════════════════
   HOME — BLOQUES DE SECCIÓN
   ════════════════════════════════════════════════════════════ */
.home-bloque { padding: 3.5rem 0; }
.home-bloque--compacto { padding: 2rem 0; }
.home-bloque--holgado  { padding: 6.5rem 0; }
.home-bloque + .home-bloque { border-top: 1px solid var(--borde); }
.home-bloque-inner {
  max-width: var(--ancho);
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* Cabecera del bloque */
.home-bloque-header {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 2rem;
  border-bottom: 2px solid var(--negro);
  padding-bottom: 0.75rem;
}
.home-bloque-titulo {
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 700;
  font-style: italic;
  color: var(--negro);
  line-height: 1;
  transition: color 0.15s;
  white-space: nowrap;
}
.home-bloque-titulo:hover { color: var(--terracota); }
.home-bloque-sub {
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  color: var(--texto-suave);
  text-transform: uppercase;
  flex: 1;
}
.home-bloque-sub--tags a {
  color: var(--texto-medio);
  font-weight: 600;
  transition: color 0.15s;
}
.home-bloque-sub--tags a:hover { color: var(--terracota); }
.home-bloque-sub--tags .sep { color: var(--borde); margin: 0 0.15rem; }
.home-bloque-ver {
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--terracota);
  white-space: nowrap;
  margin-left: auto;
}
.home-bloque-ver:hover { text-decoration: underline; }

/* Grid Silver: post grande + columna de 3 laterales */
.home-bloque-grid { display: grid; gap: 1.5rem 2rem; }
.home-bloque-grid--destacado {
  grid-template-columns: 1.4fr 1fr;
  align-items: start;
}
.luceras-laterales {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-self: start;
}

/* Card grande */
.post-card--grande .post-card-img { aspect-ratio: 4/5; }
.post-card--grande h3 { font-size: 1.4rem; }

/* Placeholders de imagen */
.post-card-placeholder {
  background-color: #D6C8BC;
  background-image:
    radial-gradient(ellipse at 40% 50%, rgba(180,155,130,0.6) 0%, transparent 70%),
    radial-gradient(ellipse at 75% 30%, rgba(200,170,140,0.3) 0%, transparent 60%);
}
.post-card-img.post-card-placeholder { aspect-ratio: 3/2; }
.post-card-img--ornament {
  background: var(--crema);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--oro);
  aspect-ratio: 3/2;
}
.post-card-img--ornament svg { width: 38%; height: 38%; opacity: 0.6; }
.post-card--grande .post-card-img.post-card-placeholder { aspect-ratio: 3/4; }
.hero-main-img.hero-placeholder {
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, #1A1614 0%, #3D1F32 50%, #2D1B40 100%);
  display: flex; align-items: center; justify-content: center;
}
.hero-main-img.hero-placeholder span {
  font-family: var(--serif);
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.1);
  text-transform: uppercase;
}

/* Layout dos columnas */
.home-bloque--dos-columnas .home-bloque-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
}

/* Lista de posts compacta */
.home-lista-posts { display: flex; flex-direction: column; }
.post-lista {
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--borde);
}
.post-lista:last-child { border-bottom: none; }
.post-lista .tag {
  display: block;
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 0.2rem;
}
.post-lista h3 {
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--texto);
  transition: color 0.15s;
}
.post-lista h3 a:hover { color: var(--terracota); }

/* ─── Slider de signos zodiacales (editorial asimétrico) ─── */
.signo-slider { position: relative; }
.signo-slider-viewport { overflow: hidden; }
.signo-slider-track {
  display: flex;
  width: 100%;
  transition: transform 0.55s cubic-bezier(0.65, 0, 0.35, 1);
  will-change: transform;
}
.signo-slide {
  flex: 0 0 100%;
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 3.5rem;
  align-items: start;
  padding: 2.5rem 0.5rem;
}
.signo-slide-img {
  background-color: #EFE0E2;
  background-size: cover;
  background-position: center;
  aspect-ratio: 4/5;
  width: 100%;
}
.signo-slide-body {
  display: flex;
  flex-direction: column;
  max-width: 60ch;
  padding-top: 0.5rem;
}
.signo-slide-eyebrow {
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 0.85rem;
}
.signo-slide-nombre {
  font-family: var(--serif);
  font-size: clamp(3rem, 5.5vw, 4.6rem);
  font-weight: 700;
  font-style: italic;
  line-height: 0.95;
  color: var(--negro);
  letter-spacing: -0.02em;
  margin-bottom: 0.5rem;
}
.signo-slide-fechas {
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--texto-suave);
  margin-bottom: 1.5rem;
}
.signo-slide-desc {
  font-family: var(--serif);
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--texto);
  margin: 0 0 2rem;
  max-width: 50ch;
}

/* Acciones: dos filas con tratamientos distintos */
.signo-acciones {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.acciones-fila {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.75rem 1.25rem;
}
.acciones-label {
  font-family: var(--sans);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--texto-suave);
  flex-shrink: 0;
  margin-right: 0.25rem;
}

/* Fila 1 — predicción: enlaces serif italic con subrayado animado */
.action-link {
  position: relative;
  font-family: var(--serif);
  font-size: 1.25rem;
  font-style: italic;
  font-weight: 500;
  color: var(--negro);
  padding-bottom: 3px;
  transition: color 0.15s;
}
.action-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: var(--negro);
  transform-origin: left;
  transform: scaleX(0.35);
  opacity: 0.4;
  transition: transform 0.3s, opacity 0.2s, background 0.2s;
}
.action-link:hover { color: var(--terracota); }
.action-link:hover::after { transform: scaleX(1); opacity: 1; background: var(--terracota); }

/* Fila 2 — áreas: pills minúsculas con punto delante */
.action-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--texto-medio);
  padding: 0.45rem 1rem;
  border: 1px solid rgba(0,0,0,0.18);
  border-radius: 999px;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.action-pill::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--terracota);
  transition: transform 0.2s;
}
.action-pill:hover {
  color: var(--negro);
  border-color: var(--negro);
  background: rgba(255,255,255,0.55);
}
.action-pill:hover::before { transform: scale(1.4); }

/* Navegación: nombres en italic serif + flechas */
.signo-slider-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(0,0,0,0.08);
}
.signo-nav-arrow {
  width: 2.2rem;
  height: 2.2rem;
  flex-shrink: 0;
  border: none;
  background: transparent;
  color: var(--texto);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  transition: color 0.15s, transform 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.signo-nav-arrow:hover { color: var(--terracota); }
.signo-nav-arrow[data-dir="-1"]:hover { transform: translateX(-2px); }
.signo-nav-arrow[data-dir="1"]:hover  { transform: translateX(2px); }

.signo-nav-glifos {
  display: flex;
  flex-wrap: wrap;
  flex: 1;
  justify-content: center;
  gap: 0 0.6rem;
}
.signo-nav-name {
  position: relative;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: var(--serif);
  font-size: 0.95rem;
  font-style: italic;
  font-weight: 400;
  color: var(--texto-suave);
  padding: 0.35rem 0.15rem;
  transition: color 0.15s;
  letter-spacing: 0.01em;
}
.signo-nav-name:hover { color: var(--negro); }
.signo-nav-name.activo {
  color: var(--terracota);
  font-weight: 700;
}
.signo-nav-name.activo::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1.2rem;
  height: 1px;
  background: var(--terracota);
}

/* ════════════════════════════════════════════════════════════
   LO MÁS LEÍDO + TENDENCIAS — fila combinada
   ════════════════════════════════════════════════════════════ */
.home-bloque-inner--dos-tercios {
  display: grid;
  grid-template-columns: 1fr 1.55fr;
  gap: 3rem;
  align-items: start;
}
.bloque-mas-leido .home-bloque-header,
.bloque-tendencias .home-bloque-header { margin-bottom: 1.25rem; }

/* Ranking numerado 1-5 */
.ranking-lista {
  list-style: none;
  counter-reset: ranking;
  display: flex;
  flex-direction: column;
}
.ranking-item {
  counter-increment: ranking;
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 1rem;
  align-items: center;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--borde);
  position: relative;
}
.ranking-item:last-child { border-bottom: none; }
.ranking-item::before {
  content: counter(ranking);
  position: absolute;
  top: 0.55rem;
  left: -0.35rem;
  font-family: var(--serif);
  font-size: 2.6rem;
  font-style: italic;
  font-weight: 700;
  color: var(--terracota);
  opacity: 0.18;
  line-height: 1;
  z-index: 0;
}
.ranking-item img {
  width: 70px;
  height: 70px;
  object-fit: cover;
  z-index: 1;
}
.ranking-item .tag {
  display: block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 0.2rem;
}
.ranking-item h3 {
  font-family: var(--serif);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.3;
}
.ranking-item h3 a:hover { color: var(--terracota); }

/* Tendencias 2x2 */
.tendencias-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem 1.25rem;
}
.tendencia-card { display: flex; flex-direction: column; }
.tendencia-card img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  margin-bottom: 0.75rem;
  transition: opacity 0.2s;
}
.tendencia-card:hover img { opacity: 0.88; }
.tendencia-card .tag {
  display: block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 0.3rem;
}
.tendencia-card h4 {
  font-family: var(--serif);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--negro);
}
.tendencia-card:hover h4 { color: var(--terracota); }

/* ════════════════════════════════════════════════════════════
   POST CARD HORIZONTAL (Silver layout sub-cards)
   ════════════════════════════════════════════════════════════ */
.post-card--horizontal {
  flex-direction: row;
  gap: 1rem;
  align-items: center;
}
.post-card--horizontal img {
  width: 130px;
  height: 100px;
  object-fit: cover;
  flex-shrink: 0;
}
.post-card--horizontal h3 { font-size: 1rem; line-height: 1.3; }

/* ════════════════════════════════════════════════════════════
   EN PORTADA — feature editorial
   ════════════════════════════════════════════════════════════ */
.portada-feature {
  background: var(--negro);
  color: var(--blanco);
  margin: 0;
}
.portada-feature-inner {
  max-width: var(--ancho);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  align-items: stretch;
  min-height: 420px;
}
.portada-feature-img {
  background-size: cover;
  background-position: center;
  position: relative;
}
.portada-feature-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 60%, rgba(13,13,13,0.4) 100%);
}
.portada-feature-body {
  padding: 3rem 3rem 3rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.portada-feature-eyebrow {
  display: block;
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--oro);
  margin-bottom: 1rem;
}
.portada-feature h2 {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 2.6vw, 2.4rem);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1rem;
}
.portada-feature p {
  font-size: 1rem;
  color: rgba(255,255,255,0.7);
  line-height: 1.6;
  margin-bottom: 1.5rem;
  max-width: 50ch;
}
.portada-feature-cta {
  font-family: var(--sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blanco);
  border-bottom: 2px solid var(--terracota);
  padding-bottom: 0.3rem;
  align-self: flex-start;
  transition: color 0.15s, border-color 0.15s;
}
.portada-feature-cta:hover { color: var(--terracota); }

/* ════════════════════════════════════════════════════════════
   SERIES — colecciones editoriales
   ════════════════════════════════════════════════════════════ */
.series-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.serie-card {
  position: relative;
  display: block;
  aspect-ratio: 3/4;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  color: var(--blanco);
}
.serie-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.25) 55%, rgba(0,0,0,0) 100%);
  transition: background 0.3s;
}
.serie-card:hover::before {
  background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.35) 60%, rgba(0,0,0,0.05) 100%);
}
.serie-card-body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.5rem 1.25rem;
  z-index: 1;
}
.serie-card-eyebrow {
  display: block;
  font-family: var(--sans);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--oro);
  margin-bottom: 0.5rem;
}
.serie-card h3 {
  font-family: var(--serif);
  font-size: 1.4rem;
  font-weight: 700;
  font-style: italic;
  line-height: 1.15;
  margin-bottom: 0.4rem;
  letter-spacing: -0.01em;
}
.serie-card p {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.78);
  line-height: 1.45;
}

/* ════════════════════════════════════════════════════════════
   BANNER NEWSLETTER
   ════════════════════════════════════════════════════════════ */
.newsletter-banner {
  background: var(--negro);
  color: var(--blanco);
  padding: 4rem 1.5rem;
  text-align: center;
}
.newsletter-inner { max-width: 560px; margin: 0 auto; }
.newsletter-eyebrow {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--oro);
  margin-bottom: 0.75rem;
}
.newsletter-banner h2 {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 0.75rem;
}
.newsletter-banner .newsletter-inner > p:not(.newsletter-eyebrow) {
  font-size: 0.95rem;
  color: rgba(255,255,255,0.6);
  margin-bottom: 1.75rem;
}
.newsletter-form {
  display: flex;
  max-width: 420px;
  margin: 0 auto;
}
.newsletter-form input {
  flex: 1;
  border: 1px solid rgba(255,255,255,0.2);
  border-right: none;
  background: rgba(255,255,255,0.08);
  color: var(--blanco);
  font-family: var(--sans);
  font-size: 0.9rem;
  padding: 0.75rem 1rem;
  outline: none;
  transition: border-color 0.15s, background 0.15s;
}
.newsletter-form input::placeholder { color: rgba(255,255,255,0.35); }
.newsletter-form input:focus { border-color: var(--oro); background: rgba(255,255,255,0.12); }
.newsletter-form button {
  background: var(--terracota);
  color: var(--blanco);
  border: none;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.75rem 1.25rem;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.newsletter-form button:hover { background: var(--ciruela); }

/* ════════════════════════════════════════════════════════════
   FONDOS PASTEL — BLOQUES DE SECCIÓN
   ════════════════════════════════════════════════════════════ */

/* Silver — lavanda blush */
.home-bloque--luceras {
  background: #F5F0F7;
  border-top: none !important;
  border-bottom: none !important;
}
.home-bloque--luceras .home-bloque-header { border-bottom-color: #C0A0C8; }
.home-bloque--luceras .home-bloque-titulo { color: #6B3E72; }
.home-bloque--luceras .home-bloque-titulo:hover { color: #4A2850; }

/* Horóscopo — blush pastel editorial */
.home-bloque--horoscopo {
  background: #F8EFEF;
  border-top: none !important;
  border-bottom: none !important;
}
.home-bloque--horoscopo .home-bloque-header { border-bottom-color: var(--negro); }
.home-bloque--horoscopo .home-bloque-titulo { color: var(--negro); }
.home-bloque--horoscopo .home-bloque-titulo:hover { color: var(--terracota); }

/* Rituales — atmosférico oscuro */
.home-bloque--rituales {
  background: #1C1525;
  color: var(--blanco);
  border-top: none !important;
  border-bottom: none !important;
}
.home-bloque--rituales .home-bloque-header { border-bottom-color: rgba(180,120,200,0.35); }
.home-bloque--rituales .home-bloque-titulo { color: #D4A8DC; }
.home-bloque--rituales .home-bloque-titulo:hover { color: #EDD0F4; }
.home-bloque--rituales .home-bloque-sub { color: rgba(255,255,255,0.4); }
.home-bloque--rituales .home-bloque-ver { color: #D4A8DC; }
.home-bloque--rituales .post-card h3 { color: var(--blanco); }
.home-bloque--rituales .post-card:hover h3 { color: #D4A8DC; }
.home-bloque--rituales .post-card p { color: rgba(255,255,255,0.55); }
.home-bloque--rituales .post-card time { color: rgba(255,255,255,0.35); }
.home-bloque--rituales .tag { color: #D4A8DC; }

/* Recetas + Bienestar — melocotón cálido */
.home-bloque--fondo-crema {
  background: #FBF5EC;
  border-top: none !important;
  border-bottom: none !important;
}
.home-bloque--fondo-crema .home-bloque-header { border-bottom-color: #CDA070; }
.home-bloque--fondo-crema .home-bloque-titulo { color: #7A4E28; }
.home-bloque--fondo-crema .home-bloque-titulo:hover { color: #5A3518; }
.home-bloque--fondo-crema .post-lista { border-bottom-color: #E8D4B8; }

/* Fondo panel Recetas (faltaba en strip) */
.seccion-recetas .seccion-panel-bg {
  background-color: #2A1A0E;
  background-image:
    radial-gradient(ellipse at 50% 60%, rgba(160,100,40,0.65) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 20%, rgba(120,70,30,0.4) 0%, transparent 50%),
    radial-gradient(ellipse at 15% 75%, rgba(140,80,35,0.35) 0%, transparent 45%);
}

/* ════════════════════════════════════════════════════════════
   RESPONSIVE — Bloques home
   ════════════════════════════════════════════════════════════ */
@media (max-width: 960px) {
  .home-bloque--dos-columnas .home-bloque-inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .home-bloque-grid--destacado { grid-template-columns: 1fr; }
  .home-bloque-grid--destacado .post-card--grande .post-card-img { aspect-ratio: 16/9; }
  .signo-slide { grid-template-columns: 240px 1fr; gap: 2rem; padding: 1.5rem 0.5rem; }
  .signo-slide-nombre { font-size: 2.6rem; }
  .action-link { font-size: 1.05rem; }
  .home-bloque-inner--dos-tercios { grid-template-columns: 1fr; gap: 2.5rem; }
  .portada-feature-inner { grid-template-columns: 1fr; }
  .portada-feature-img { aspect-ratio: 16/9; }
  .portada-feature-body { padding: 2rem 1.5rem 2.5rem; }
  .series-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .home-bloque { padding: 2.5rem 0; }
  .home-bloque-grid--destacado { grid-template-columns: 1fr; }
  .signo-slide { grid-template-columns: 1fr; }
  .signo-slide-img { aspect-ratio: 4/3; }
  .signo-slide-nombre { font-size: 2.2rem; }
  .signo-nav-name { font-size: 0.85rem; }
  .acciones-fila { flex-direction: column; align-items: flex-start; gap: 0.45rem; }
  .tendencias-grid { grid-template-columns: 1fr; }
  .post-card--horizontal { flex-direction: row; }
  .post-card--horizontal img { width: 100px; height: 80px; }
  .series-grid { grid-template-columns: 1fr; }
  .serie-card { aspect-ratio: 16/10; }
  .newsletter-form { flex-direction: column; }
  .newsletter-form input { border-right: 1px solid rgba(255,255,255,0.2); border-bottom: none; }
  .newsletter-form button { width: 100%; }

  /* ═══ Editorial Mujer Hoy: cards horizontales con alternancia ═══ */

  /* Lista compacta (Rituales, Decoración) — todos thumbnails */
  .home-bloque--rituales .posts-grid,
  .home-bloque .posts-grid-4 {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .home-bloque--rituales .posts-grid .post-card,
  .home-bloque .posts-grid-4 .post-card {
    flex-direction: row;
    gap: 1rem;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid var(--borde);
  }
  .home-bloque--rituales .posts-grid .post-card:last-child,
  .home-bloque .posts-grid-4 .post-card:last-child { border-bottom: none; }

  /* Foto comprimida a thumbnail cuadrada */
  .home-bloque--rituales .posts-grid .post-card-img,
  .home-bloque .posts-grid-4 .post-card-img,
  .home-bloque--rituales .posts-grid .post-card > a,
  .home-bloque .posts-grid-4 .post-card > a {
    flex-shrink: 0;
  }
  .home-bloque--rituales .posts-grid .post-card-img,
  .home-bloque .posts-grid-4 .post-card-img {
    width: 110px;
    height: 110px;
    aspect-ratio: 1/1;
    object-fit: cover;
    margin-bottom: 0;
  }

  /* Texto compacto: ocultar resúmenes y fechas, titular más cerrado */
  .home-bloque--rituales .posts-grid .post-card p,
  .home-bloque--rituales .posts-grid .post-card time,
  .home-bloque .posts-grid-4 .post-card p,
  .home-bloque .posts-grid-4 .post-card time { display: none; }
  .home-bloque--rituales .posts-grid .post-card h3,
  .home-bloque .posts-grid-4 .post-card h3 {
    font-size: 0.95rem;
    line-height: 1.3;
    margin-bottom: 0;
  }
  .home-bloque--rituales .posts-grid .post-card .tag,
  .home-bloque .posts-grid-4 .post-card .tag {
    font-size: 0.55rem;
    margin-bottom: 0.2rem;
  }

  /* Alternancia editorial: pares con foto a la derecha */
  .home-bloque--rituales .posts-grid .post-card:nth-child(even),
  .home-bloque .posts-grid-4 .post-card:nth-child(even) { flex-direction: row-reverse; }

  /* Borde sutil sobre fondo oscuro de Rituales */
  .home-bloque--rituales .posts-grid .post-card { border-bottom-color: rgba(255,255,255,0.1); }

  /* Tendencias: foto izquierda + titular derecha en móvil */
  .tendencia-card {
    flex-direction: row;
    gap: 1rem;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid var(--borde);
  }
  .tendencia-card:last-child { border-bottom: none; }
  .tendencia-card img {
    width: 110px;
    height: 110px;
    aspect-ratio: 1/1;
    flex-shrink: 0;
    margin-bottom: 0;
  }
  .tendencia-card:nth-child(even) { flex-direction: row-reverse; }
  .tendencia-card .tag { font-size: 0.55rem; margin-bottom: 0.2rem; }
  .tendencia-card h4 { font-size: 0.95rem; line-height: 1.3; }

  /* Luceras: card grande sigue grande, laterales ya horizontales */
  .luceras-laterales { gap: 0.5rem; margin-top: 1rem; }
  .post-card--grande .post-card-img { aspect-ratio: 4/3; }
  .post-card--grande p { display: none; }
  .post-card--horizontal:nth-child(even) { flex-direction: row-reverse; }

  /* Cabecera de bloque más compacta + acento dorado-terroso */
  .home-bloque-header {
    flex-wrap: wrap;
    gap: 0.4rem 0.85rem;
    padding-bottom: 0.6rem;
    border-bottom-width: 1px;
  }
  .home-bloque-titulo { font-size: 1.4rem; }
  .home-bloque-sub { font-size: 0.62rem; flex-basis: 100%; }
  .home-bloque-ver { font-size: 0.62rem; margin-left: 0; }

}

/* ════════════════════════════════════════════════════════════
   PÁGINA DE CLUSTER (sección/categoría)
   Patrón Vogue/Telva/Mujer Hoy adaptado a De Velas
   ════════════════════════════════════════════════════════════ */

/* ── Hero editorial ────────────────────────────────────── */
.cluster-hero--editorial {
  border-bottom: 1px solid var(--borde);
  padding: 3.5rem 1.5rem 3rem;
  max-width: var(--ancho);
  margin: 0 auto;
  text-align: left;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.9rem;
}
.cluster-hero-kicker {
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terracota);
}
.cluster-hero-kicker-sep { color: var(--texto-suave); margin: 0 0.4em; font-weight: 400; }
.cluster-hero-titulo {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(3rem, 8vw, 7rem);
  line-height: 0.95;
  letter-spacing: -0.01em;
  color: var(--negro);
  margin: 0;
}
.cluster-hero-bajada {
  font-family: var(--serif-texto);
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
  line-height: 1.5;
  color: var(--texto-medio);
  max-width: 56ch;
  margin-top: 0.5rem;
}
.cluster-hero-ancla {
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--negro);
  border-bottom: 1px solid var(--negro);
  padding-bottom: 0.25rem;
  align-self: start;
  justify-self: start;
  margin-top: 0.6rem;
  transition: color 0.15s, border-color 0.15s;
}
.cluster-hero-ancla:hover { color: var(--terracota); border-color: var(--terracota); }

/* ── Bloques generales ─────────────────────────────────── */
.cluster-bloque {
  max-width: var(--ancho);
  margin: 3.25rem auto 0;
  padding: 0;
}
.cluster-bloque .seccion-header { margin-top: 0; }
.seccion-header-spacer { flex: 1; }

/* ── Latest grid (1 hero + 6 rail) ─────────────────────── */
.cluster-latest-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 2.5rem;
  padding: 0 1.5rem 1rem;
}
.post-card--latest-hero .post-card-img,
.post-card--latest-hero .post-card-img-link img { aspect-ratio: 4/5; }
.post-card--latest-hero h3 {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  line-height: 1.15;
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.post-card--latest-hero p {
  font-family: var(--serif-texto);
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--texto-medio);
}
.cluster-latest-rail {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.75rem 1.25rem;
  align-content: start;
}
.cluster-latest-rail .post-card-img,
.cluster-latest-rail .post-card-img-link img { aspect-ratio: 3/2; }
.cluster-latest-rail .post-card h3 {
  font-family: var(--serif);
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.25;
}
.post-card-img-link { display: block; }

@media (max-width: 900px) {
  .cluster-latest-grid { grid-template-columns: 1fr; gap: 2rem; }
  .cluster-latest-rail { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
  .cluster-latest-rail { grid-template-columns: 1fr; }
}

/* ── Carrusel de productos afiliados ───────────────────── */
.cluster-shop {
  background: var(--crema);
  padding: 3.5rem 0 3rem;
  margin: 4rem 0 0;
}
.cluster-shop-cabecera {
  max-width: var(--ancho);
  margin: 0 auto 2rem;
  padding: 0 1.5rem;
  text-align: center;
}
.cluster-shop-eyebrow {
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 0.45rem;
}
.cluster-shop-cabecera h2 {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 2.8vw, 2.4rem);
  font-weight: 500;
  line-height: 1.1;
  color: var(--negro);
}
.cluster-shop-cabecera h2 em {
  font-style: italic;
  font-weight: 400;
  color: var(--ciruela);
}
.cluster-shop-disclosure {
  font-family: var(--sans);
  font-size: 0.6rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--texto-suave);
  margin: 0.5rem auto 0;
  opacity: 0.6;
}
.cluster-shop-disclosure a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(0,0,0,0.2);
  text-underline-offset: 3px;
  transition: opacity 0.15s, color 0.15s;
}
.cluster-shop-disclosure a:hover { color: var(--terracota); opacity: 1; }

.cluster-shop-carrusel {
  max-width: var(--ancho);
  margin: 0 auto;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-padding-left: 1.5rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--texto-suave) transparent;
}
.cluster-shop-carrusel:focus-visible {
  outline: 2px solid var(--terracota);
  outline-offset: 4px;
}
.cluster-shop-carrusel::-webkit-scrollbar { height: 6px; }
.cluster-shop-carrusel::-webkit-scrollbar-track { background: transparent; }
.cluster-shop-carrusel::-webkit-scrollbar-thumb {
  background: var(--borde);
  border-radius: 3px;
}
.cluster-shop-carrusel::-webkit-scrollbar-thumb:hover { background: var(--texto-suave); }

.cluster-shop-track {
  display: flex;
  gap: 1.25rem;
  list-style: none;
  padding: 0.5rem 1.5rem 1.5rem;
  margin: 0;
}
.cluster-shop-card {
  flex: 0 0 calc((100% - 2.5rem) / 4);
  min-width: 220px;
  max-width: 260px;
  scroll-snap-align: start;
  background: var(--blanco);
  border: 1px solid var(--borde);
  transition: transform 0.25s var(--ease-editorial), border-color 0.15s;
}
.cluster-shop-card:hover { transform: translateY(-2px); border-color: var(--texto-suave); }
.cluster-shop-link {
  display: block;
  padding: 0.85rem;
  color: var(--texto);
  height: 100%;
}
.cluster-shop-link:focus-visible {
  outline: 2px solid var(--terracota);
  outline-offset: -2px;
}
.cluster-shop-img-wrap {
  display: block;
  aspect-ratio: 1/1;
  overflow: hidden;
  margin-bottom: 0.85rem;
  background: var(--crema);
}
.cluster-shop-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s var(--ease-editorial);
}
.cluster-shop-card:hover .cluster-shop-img { transform: scale(1.03); }
.cluster-shop-marca {
  display: block;
  font-family: var(--sans);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--texto-suave);
  margin-bottom: 0.3rem;
}
.cluster-shop-nombre {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--negro);
  margin-bottom: 0.5rem;
  min-height: 2.6em;
}
.cluster-shop-precio {
  display: block;
  font-family: var(--sans);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--texto);
  margin-bottom: 0.5rem;
}
.cluster-shop-cta {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--terracota);
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
}
.cluster-shop-aviso {
  max-width: var(--ancho);
  margin: 0.5rem auto 0;
  padding: 0 1.5rem;
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--texto-suave);
}

@media (max-width: 1024px) {
  .cluster-shop-card { flex-basis: calc((100% - 2.5rem) / 3); }
}
@media (max-width: 720px) {
  .cluster-shop { padding: 2.5rem 0 2rem; }
  .cluster-shop-card { flex-basis: 70%; min-width: 0; }
  .cluster-shop-track { gap: 0.85rem; }
}

/* ── Bloque por subcategoría / tags ────────────────────── */
.cluster-tags-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem 1.5rem;
  padding: 0 1.5rem;
}
.cluster-tag-bloque {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--negro);
  padding-top: 0.75rem;
}
.cluster-tag-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.cluster-tag-titulo {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--negro);
  line-height: 1;
  transition: color 0.15s;
}
.cluster-tag-titulo:hover { color: var(--terracota); }
.cluster-tag-link {
  font-family: var(--sans);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--terracota);
  white-space: nowrap;
}
.cluster-tag-link:hover { text-decoration: underline; }
.cluster-tag-lista {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.cluster-tag-item a {
  display: block;
  border-top: 1px solid var(--borde);
  padding-top: 0.7rem;
  transition: color 0.15s;
}
.cluster-tag-item:first-child a { border-top: none; padding-top: 0; }
.cluster-tag-item h4 {
  font-family: var(--serif);
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--texto);
  margin-bottom: 0.25rem;
}
.cluster-tag-item a:hover h4 { color: var(--terracota); }
.cluster-tag-item time {
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  color: var(--texto-suave);
}
.cluster-tag-item--vacio span {
  font-family: var(--serif-texto);
  font-style: italic;
  font-size: 0.85rem;
  color: var(--texto-suave);
  display: block;
  padding-top: 0.4rem;
}

@media (max-width: 960px) {
  .cluster-tags-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
  .cluster-tags-grid { grid-template-columns: 1fr; }
}

/* ── Sobre la sección ──────────────────────────────────── */
.cluster-about {
  background: var(--negro);
  color: var(--blanco);
  padding: 4rem 1.5rem 4.5rem;
  margin-top: 4rem;
}
.cluster-about-inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
.cluster-about-eyebrow {
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--oro);
  margin-bottom: 0.75rem;
}
.cluster-about-inner h2 {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  font-weight: 500;
  line-height: 1.15;
  margin-bottom: 1.25rem;
  color: var(--blanco);
}
.cluster-about-inner p {
  font-family: var(--serif-texto);
  font-size: 1rem;
  line-height: 1.7;
  color: rgba(255,255,255,0.78);
}
.cluster-about-firma {
  margin-top: 1.5rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--oro);
}

/* ═══════════════════════════════════════════════════════════
   PÁGINAS DE TAG (/{cluster}/{tag}/)
   ═══════════════════════════════════════════════════════════ */

.tag-breadcrumb {
  max-width: var(--ancho);
  margin: 0 auto;
  padding: 1.25rem 1.5rem 0;
  font-family: var(--sans);
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  color: var(--negro);
  opacity: 0.72;
  display: flex;
  gap: 0.55rem;
  align-items: center;
  flex-wrap: wrap;
}
.tag-breadcrumb a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s;
}
.tag-breadcrumb a:hover { border-bottom-color: var(--terracota); color: var(--terracota); }
.tag-breadcrumb-actual { color: var(--terracota); font-weight: 500; }

.tag-hero {
  max-width: 880px;
  margin: 2rem auto 3.5rem;
  padding: 2.5rem 1.5rem 2rem;
  text-align: center;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}
.tag-hero-kicker {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 1.4rem;
}
.tag-hero-kicker-sep { color: var(--oro); margin: 0 0.4rem; opacity: 0.7; }
.tag-hero-titulo {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2.6rem, 5.5vw, 4.4rem);
  line-height: 1.05;
  color: var(--negro);
  margin: 0 0 1.5rem;
  letter-spacing: -0.01em;
}
.tag-hero-bajada {
  font-family: var(--serif-texto);
  font-size: 1.08rem;
  line-height: 1.65;
  color: var(--negro);
  opacity: 0.85;
  max-width: 640px;
  margin: 0 auto;
}

.tag-bloque {
  max-width: var(--ancho);
  margin: 0 auto 4rem;
}

/* Estado vacío */
.tag-vacio {
  max-width: var(--ancho);
  margin: 0 auto 4rem;
  padding: 2rem 1.5rem 0;
}
.tag-vacio-mensaje {
  text-align: center;
  margin-bottom: 2.5rem;
  padding: 2rem 1rem;
  background: var(--crema);
  border-top: 1px solid var(--oro);
  border-bottom: 1px solid var(--oro);
}
.tag-vacio-eyebrow {
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terracota);
  margin: 0 0 0.6rem;
}
.tag-vacio h2 {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  margin: 0 0 0.8rem;
}
.tag-vacio-texto {
  font-family: var(--serif-texto);
  font-size: 1rem;
  color: var(--negro);
  opacity: 0.8;
  margin: 0;
}
.post-card--sugerencia .post-card-img {
  aspect-ratio: 1/1;
  background: var(--crema);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--oro);
}

/* Sugerencias relacionadas */
.tag-relacionados {
  max-width: var(--ancho);
  margin: 1.5rem auto 4rem;
  padding: 0 1.5rem;
}
.tag-relacionados-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 1.5rem;
}
.tag-relacionado-card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1.4rem 1.2rem;
  background: var(--crema);
  border: 1px solid rgba(0,0,0,0.06);
  text-decoration: none;
  color: var(--negro);
  transition: background 0.2s, border-color 0.2s;
}
.tag-relacionado-card:hover {
  background: #fff;
  border-color: var(--oro);
}
.tag-relacionado-eyebrow {
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--terracota);
}
.tag-relacionado-titulo {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.5rem;
  line-height: 1.1;
}
.tag-relacionado-link {
  font-family: var(--sans);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  color: var(--oro);
  margin-top: 0.4rem;
}
@media (max-width: 760px) {
  .tag-relacionados-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   PÁGINAS DE FIRMA (/firma/{slug}/)
   ═══════════════════════════════════════════════════════════ */

.firma-breadcrumb {
  max-width: var(--ancho);
  margin: 0 auto;
  padding: 1.25rem 1.5rem 0;
  font-family: var(--sans);
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  color: var(--negro);
  opacity: 0.72;
  display: flex;
  gap: 0.55rem;
  align-items: center;
  flex-wrap: wrap;
}
.firma-breadcrumb a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.firma-breadcrumb a:hover { border-bottom-color: var(--terracota); color: var(--terracota); }
.firma-breadcrumb-actual { color: var(--terracota); font-weight: 500; }

.firma-hero {
  max-width: var(--ancho);
  margin: 2rem auto 3rem;
  padding: 2rem 1.5rem;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 3rem;
  align-items: center;
}
.firma-hero-foto {
  margin: 0;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 50%;
  border: 2px solid var(--oro);
}
.firma-hero-foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(0.15);
}
.firma-hero-eyebrow {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 1rem;
}
.firma-hero-eyebrow-sep { color: var(--oro); margin: 0 0.5rem; opacity: 0.7; }
.firma-hero-nombre {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2.6rem, 5.2vw, 4rem);
  line-height: 1.05;
  margin: 0 0 0.8rem;
  letter-spacing: -0.01em;
}
.firma-hero-meta {
  font-family: var(--sans);
  font-size: 0.85rem;
  letter-spacing: 0.05em;
  color: var(--negro);
  opacity: 0.7;
  margin: 0 0 1.2rem;
}
.firma-hero-bio {
  font-family: var(--serif-texto);
  font-size: 1.08rem;
  line-height: 1.65;
  color: var(--negro);
  opacity: 0.9;
  margin: 0;
  max-width: 580px;
}
@media (max-width: 760px) {
  .firma-hero {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 1.5rem;
  }
  .firma-hero-foto {
    width: 200px;
    margin: 0 auto;
  }
  .firma-hero-bio { margin: 0 auto; }
}

/* Bio extendida — spread editorial */
.firma-spread {
  max-width: 1080px;
  margin: 1rem auto 4rem;
  padding: 2.5rem 1.5rem;
  background: var(--crema);
  border-top: 1px solid var(--oro);
  border-bottom: 1px solid var(--oro);
}
.firma-spread-tono {
  text-align: center;
  margin-bottom: 2.5rem;
  padding-bottom: 2rem;
  border-bottom: 1px dashed rgba(0,0,0,0.12);
}
.firma-spread-eyebrow {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 0.8rem;
}
.firma-spread-tono-texto {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1.3rem, 2.5vw, 1.8rem);
  line-height: 1.35;
  color: var(--negro);
  max-width: 700px;
  margin: 0 auto;
}
.firma-spread-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
}
.firma-spread-col-titulo {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: 1.6rem;
  margin: 0 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--oro);
}
.firma-spread-col--bien .firma-spread-col-titulo { color: var(--negro); }
.firma-spread-col--evita .firma-spread-col-titulo { color: var(--terracota); }
.firma-spread-lista {
  list-style: none;
  padding: 0;
  margin: 0;
  font-family: var(--serif-texto);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--negro);
}
.firma-spread-lista li {
  padding: 0.55rem 0 0.55rem 1.5rem;
  position: relative;
  border-bottom: 1px dotted rgba(0,0,0,0.1);
}
.firma-spread-lista li:last-child { border-bottom: none; }
.firma-spread-col--bien .firma-spread-lista li::before {
  content: "\2726";
  position: absolute;
  left: 0;
  color: var(--oro);
  font-size: 0.85rem;
  top: 0.6rem;
}
.firma-spread-col--evita .firma-spread-lista li::before {
  content: "\2014";
  position: absolute;
  left: 0;
  color: var(--terracota);
  top: 0.55rem;
}
@media (max-width: 760px) {
  .firma-spread-grid { grid-template-columns: 1fr; gap: 2rem; }
}

/* Sus secciones — chips */
.firma-secciones {
  max-width: var(--ancho);
  margin: 0 auto 3.5rem;
  padding: 0 1.5rem;
}
.firma-secciones-chips {
  display: flex;
  gap: 0.7rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}
.firma-seccion-chip {
  font-family: var(--sans);
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  padding: 0.55rem 1.2rem;
  border: 1px solid var(--negro);
  color: var(--negro);
  text-decoration: none;
  border-radius: 999px;
  transition: background 0.2s, color 0.2s;
}
.firma-seccion-chip:hover {
  background: var(--negro);
  color: var(--crema);
}

/* Sus piezas */
.firma-piezas {
  max-width: var(--ancho);
  margin: 0 auto 4rem;
}
.firma-piezas-vacio {
  max-width: var(--ancho);
  margin: 0 auto;
  padding: 0 1.5rem 2.5rem;
  font-family: var(--serif-texto);
  font-style: italic;
  font-size: 1.05rem;
  color: var(--negro);
  opacity: 0.7;
  text-align: center;
}

/* Disclaimer */
.firma-disclaimer {
  max-width: 880px;
  margin: 2rem auto 4rem;
  padding: 1.4rem 1.6rem;
  background: var(--crema);
  border-top: 2px solid var(--oro);
  font-family: var(--sans);
  font-size: 0.82rem;
  line-height: 1.55;
  color: var(--negro);
  opacity: 0.85;
}
.firma-disclaimer p { margin: 0; }
.firma-disclaimer a {
  color: var(--terracota);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ═══════════════════════════════════════════════════════════
   ÍNDICE DE FIRMAS (/firma/)
   ═══════════════════════════════════════════════════════════ */

.firmas-index-hero {
  max-width: 880px;
  margin: 2rem auto 3.5rem;
  padding: 2.5rem 1.5rem 2rem;
  text-align: center;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}
.firmas-index-eyebrow {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 1.4rem;
}
.firmas-index-titulo {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2.6rem, 5.5vw, 4.4rem);
  line-height: 1.05;
  margin: 0 0 1.5rem;
  letter-spacing: -0.01em;
}
.firmas-index-bajada {
  font-family: var(--serif-texto);
  font-size: 1.08rem;
  line-height: 1.65;
  color: var(--negro);
  opacity: 0.85;
  max-width: 640px;
  margin: 0 auto;
}

.firmas-index-grid-wrap {
  max-width: var(--ancho);
  margin: 0 auto 4rem;
  padding: 0 1.5rem;
}
.firmas-index-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem 1.5rem;
}
.firma-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--negro);
  transition: transform 0.25s ease;
}
.firma-card:hover { transform: translateY(-3px); }
.firma-card-foto {
  margin: 0 0 1rem;
  aspect-ratio: 1/1;
  overflow: hidden;
  background: var(--crema);
}
.firma-card-foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(0.15);
  transition: filter 0.3s;
}
.firma-card:hover .firma-card-foto img { filter: grayscale(0); }
.firma-card-nombre {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 1.15;
  margin: 0 0 0.3rem;
}
.firma-card-arquetipo {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--terracota);
  display: block;
  margin-bottom: 0.6rem;
}
.firma-card-bio {
  font-family: var(--serif-texto);
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--negro);
  opacity: 0.85;
  margin: 0;
}
@media (max-width: 960px) {
  .firmas-index-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 580px) {
  .firmas-index-grid { grid-template-columns: 1fr; }
}
