/* The Wedding House — V30 · Blog
   Usa las variables de css/styles.css. Si algún día cambias la paleta
   del sitio, el blog la sigue sin tocar este archivo. */

.blog-container {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
}

/* ─── Índice ─────────────────────────────────────────── */
.blog-index {
  padding: 160px 32px 80px;
  text-align: center;
}
.blog-index .label {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--gold, #97825F);
  margin-bottom: 22px;
}
.blog-index h1 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 300;
  font-size: clamp(38px, 5.5vw, 66px);
  line-height: 1.08;
  color: var(--ink, #1A1A1A);
  margin: 0 0 20px;
}
.blog-intro {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 20px;
  font-style: italic;
  color: var(--muted, #7B7568);
  max-width: 620px;
  margin: 0 auto 66px;
  line-height: 1.6;
}
.blog-empty {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 19px;
  font-style: italic;
  color: var(--muted, #7B7568);
  padding: 60px 0 90px;
}

/* ─── Rejilla de tarjetas ────────────────────────────── */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
  gap: 46px 38px;
  text-align: left;
  margin-bottom: 40px;
}
/* Con 1 o 2 posts la rejilla no debe estirarlos a todo lo ancho */
.blog-grid { justify-content: center; }
.blog-grid > :only-child { max-width: 560px; margin: 0 auto; }

.blog-card {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform .45s cubic-bezier(.22,.61,.36,1);
}
.blog-card:hover { transform: translateY(-6px); }

.blog-card-media {
  aspect-ratio: 3 / 2;
  background-size: cover;
  background-position: center;
  background-color: var(--linen, #EAE2D2);
  margin-bottom: 22px;
  transition: filter .45s ease;
}
.blog-card:hover .blog-card-media { filter: brightness(1.05); }
.blog-card-media-plain {
  background: linear-gradient(135deg, var(--linen, #EAE2D2), var(--sand, #C9B79C));
}

.blog-card-date,
.blog-meta {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold, #97825F);
  margin: 0 0 10px;
}
.blog-card-date .dot, .blog-meta .dot { margin: 0 8px; opacity: .55; }

.blog-card h2 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 400;
  font-size: 25px;
  line-height: 1.3;
  color: var(--ink, #1A1A1A);
  margin: 0 0 12px;
}
.blog-card-excerpt {
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  line-height: 1.75;
  color: var(--muted, #7B7568);
  margin: 0;
}

/* ─── Ficha del artículo ─────────────────────────────── */
.blog-hero { padding: 150px 0 0; text-align: center; }
.blog-hero.has-image { padding-top: 120px; }

.blog-hero-media {
  height: clamp(260px, 42vw, 480px);
  background-size: cover;
  background-position: center;
  background-color: var(--linen, #EAE2D2);
  margin-bottom: 54px;
}

.blog-hero h1 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 300;
  font-size: clamp(32px, 4.4vw, 54px);
  line-height: 1.13;
  color: var(--ink, #1A1A1A);
  max-width: 830px;
  margin: 0 auto 18px;
}
.blog-hero .lp-breadcrumb { justify-content: center; margin-bottom: 26px; }

/* ─── Cuerpo del artículo ────────────────────────────── */
.blog-body {
  max-width: 720px;
  padding-top: 52px;
  padding-bottom: 30px;
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  line-height: 1.85;
  color: var(--ink-soft, #2B2A27);
}
.blog-body > *:first-child { margin-top: 0; }

.blog-body p { margin: 0 0 26px; }

.blog-body h2 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 400;
  font-size: 33px;
  line-height: 1.25;
  color: var(--ink, #1A1A1A);
  margin: 58px 0 20px;
}
.blog-body h3 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 500;
  font-size: 25px;
  color: var(--ink, #1A1A1A);
  margin: 44px 0 16px;
}
.blog-body h4 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--gold, #97825F);
  margin: 38px 0 14px;
}

.blog-body ul, .blog-body ol { margin: 0 0 28px; padding-left: 22px; }
.blog-body li { margin-bottom: 11px; }
.blog-body ul { list-style: none; padding-left: 0; }
.blog-body ul li { position: relative; padding-left: 26px; }
.blog-body ul li::before {
  content: '';
  position: absolute;
  left: 4px; top: 13px;
  width: 7px; height: 1px;
  background: var(--gold, #97825F);
}
.blog-body ol li::marker { color: var(--gold, #97825F); }

.blog-body a { color: var(--gold, #97825F); text-decoration: underline; text-underline-offset: 3px; }
.blog-body a:hover { color: var(--tan, #B59A75); }

.blog-body strong, .blog-body b { font-weight: 600; color: var(--ink, #1A1A1A); }

.blog-body img { max-width: 100%; height: auto; display: block; margin: 38px auto; }
.blog-body figure { margin: 38px 0; }
.blog-body figcaption {
  font-size: 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted, #7B7568);
  text-align: center;
  margin-top: 12px;
}

.blog-body blockquote {
  margin: 40px 0;
  padding: 6px 0 6px 28px;
  border-left: 2px solid var(--gold, #97825F);
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 23px;
  font-style: italic;
  line-height: 1.55;
  color: var(--ink, #1A1A1A);
}

.blog-body hr { border: 0; height: 1px; background: var(--linen, #EAE2D2); margin: 48px 0; }

/* Las tablas nunca deben desbordar el ancho de la página */
.blog-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 34px 0;
  font-size: 14px;
  display: block;
  overflow-x: auto;
}
.blog-body th, .blog-body td {
  padding: 13px 16px;
  border-bottom: 1px solid var(--linen, #EAE2D2);
  text-align: left;
}
.blog-body th {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold, #97825F);
  font-weight: 600;
}

.blog-body code {
  background: var(--ivory, #F4EFE6);
  padding: 2px 7px;
  border-radius: 3px;
  font-size: 14px;
}
.blog-body pre {
  background: var(--ink, #1A1A1A);
  color: var(--ivory, #F4EFE6);
  padding: 20px 24px;
  overflow-x: auto;
  margin: 32px 0;
}
.blog-body pre code { background: none; padding: 0; color: inherit; }

/* ─── Etiquetas y navegación ─────────────────────────── */
.blog-tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  padding: 0;
  margin: 34px auto 0;
  max-width: 720px;
}
.blog-tags li {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted, #7B7568);
  border: 1px solid var(--linen, #EAE2D2);
  padding: 7px 15px;
}

.blog-back {
  display: inline-block;
  margin: 46px 0 90px;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold, #97825F);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .3s ease;
}
.blog-back:hover { border-bottom-color: var(--gold, #97825F); }
.blog-post .blog-back { margin-left: auto; margin-right: auto; display: table; }

/* ─── CTA final ──────────────────────────────────────── */
.blog-cta {
  background: var(--ivory, #F4EFE6);
  padding: 92px 0;
  text-align: center;
}
.blog-cta h2 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 300;
  font-size: clamp(30px, 3.6vw, 44px);
  color: var(--ink, #1A1A1A);
  margin: 0 0 14px;
}
.blog-cta p {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  color: var(--muted, #7B7568);
  max-width: 480px;
  margin: 0 auto 34px;
  line-height: 1.75;
}

/* ─── Móvil ──────────────────────────────────────────── */
@media (max-width: 768px) {
  .blog-container { padding: 0 22px; }
  .blog-index { padding: 120px 22px 60px; }
  .blog-hero { padding-top: 112px; }
  .blog-hero.has-image { padding-top: 92px; }
  .blog-hero-media { margin-bottom: 38px; }
  .blog-grid { gap: 40px 26px; }
  .blog-body { font-size: 15px; padding-top: 38px; }
  .blog-body h2 { font-size: 28px; margin-top: 46px; }
  .blog-body h3 { font-size: 22px; }
  .blog-body blockquote { font-size: 20px; padding-left: 20px; }
  .blog-cta { padding: 68px 0; }
}
