/* ============================================================
   Melissa Abad — Blog (hereda tokens y base de styles.css)
   ============================================================ */

/* ---------- Layout general del blog ---------- */
.blog-main { position: relative; z-index: 2; }

.blog-hero{
  text-align: center;
  padding: clamp(2.6rem, 6vw, 5rem) 0 clamp(1.4rem, 3vw, 2.4rem);
  position: relative;
}
.blog-hero h1{
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  margin-bottom: .5rem;
}
.blog-hero .blog-lead{
  max-width: 640px;
  margin: 1.1rem auto 0;
  color: var(--text-body);
  font-size: 1.08rem;
}

/* Breadcrumb */
.crumbs{
  display: flex; align-items: center; flex-wrap: wrap; gap: .5rem;
  font-size: .86rem; color: var(--text-muted);
  margin-bottom: 1.4rem;
}
.crumbs a{ color: var(--rose); font-weight: 500; }
.crumbs a:hover{ text-decoration: underline; }
.crumbs span.sep{ opacity: .5; }

/* Section spacing */
.blog-section{ padding: clamp(2rem, 4vw, 3.4rem) 0; position: relative; }
.blog-section.tight{ padding-top: .5rem; }

/* ---------- Grid de categorías ---------- */
.cat-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: clamp(1.2rem, 2.4vw, 2rem);
}
.cat-card{
  position: relative;
  display: flex; flex-direction: column;
  background: var(--bg-card-soft);
  border: 1px solid rgba(199,123,106,.12);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.cat-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.cat-card__media{
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--bg-cream-deep);
}
.cat-card__media img{
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s var(--ease);
}
.cat-card:hover .cat-card__media img{ transform: scale(1.06); }
.cat-card__media::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(to top, rgba(31,31,31,.28), transparent 55%);
}
.cat-card__count{
  position: absolute; top: 14px; left: 14px; z-index: 2;
  background: rgba(255,255,255,.92);
  color: var(--rose-deep);
  font-size: .76rem; font-weight: 600; letter-spacing: .04em;
  padding: .35rem .75rem; border-radius: 999px;
  box-shadow: var(--shadow-sm);
}
.cat-card__body{ padding: 1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; flex:1; }
.cat-card__body h3{ font-size: 1.45rem; margin-bottom: .5rem; }
.cat-card__body p{ color: var(--text-body); font-size: .96rem; margin-bottom: 1.1rem; flex:1; }
.cat-card__link{
  display: inline-flex; align-items: center; gap: .45rem;
  color: var(--rose); font-weight: 600; font-size: .92rem;
  align-self: flex-start;
}
.cat-card__link svg{ transition: transform .25s var(--ease); }
.cat-card:hover .cat-card__link svg{ transform: translateX(4px); }

/* ---------- Grid de posts ---------- */
.post-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: clamp(1.3rem, 2.5vw, 2.2rem);
}
.post-card{
  position: relative;
  display: flex; flex-direction: column;
  background: var(--white);
  border: 1px solid rgba(199,123,106,.10);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.post-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
.post-card a.post-card__cover{
  display:block; position: relative; aspect-ratio: 16 / 9; overflow: hidden;
  background: var(--bg-cream-deep);
}
.post-card__cover img{ width:100%; height:100%; object-fit: cover; transition: transform .6s var(--ease); }
.post-card:hover .post-card__cover img{ transform: scale(1.05); }
.post-chip{
  position: absolute; top: 14px; left: 14px; z-index: 2;
  background: var(--rose); color: #fff;
  font-size: .72rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase;
  padding: .34rem .7rem; border-radius: 999px;
  box-shadow: 0 6px 16px rgba(168,91,77,.28);
}
.post-card__body{ padding: 1.25rem 1.4rem 1.4rem; display:flex; flex-direction:column; flex:1; }
.post-card__body h3{ font-size: 1.38rem; line-height: 1.18; margin-bottom: .55rem; }
.post-card__body h3 a{ transition: color .2s; }
.post-card__body h3 a:hover{ color: var(--rose); }
.post-card__excerpt{ color: var(--text-body); font-size: .95rem; margin-bottom: 1.1rem; flex:1; }
.post-meta{
  display:flex; align-items:center; gap: .8rem; flex-wrap: wrap;
  font-size: .82rem; color: var(--text-muted);
  border-top: 1px solid rgba(199,123,106,.10);
  padding-top: .85rem;
}
.post-meta .dot{ width:4px; height:4px; border-radius:50%; background: var(--rose-soft); }
.post-meta svg{ vertical-align: -2px; margin-right: 3px; opacity:.8; }

/* Featured (primer post destacado) */
.post-feature{
  display: grid; grid-template-columns: 1.05fr .95fr; gap: 0;
  background: var(--white);
  border: 1px solid rgba(199,123,106,.10);
  border-radius: var(--radius-xl);
  overflow: hidden; box-shadow: var(--shadow-md);
  margin-bottom: clamp(1.6rem, 3vw, 2.6rem);
}
.post-feature__media{ position: relative; min-height: 280px; overflow:hidden; background: var(--bg-cream-deep); }
.post-feature__media img{ width:100%; height:100%; object-fit: cover; position:absolute; inset:0; }
.post-feature__body{ padding: clamp(1.6rem, 3vw, 2.8rem); display:flex; flex-direction:column; justify-content:center; }
.post-feature__body h2{ font-size: clamp(1.7rem, 3vw, 2.4rem); margin: .6rem 0 .7rem; }
.post-feature__body p{ color: var(--text-body); font-size: 1.02rem; margin-bottom: 1.3rem; }

/* ---------- Banner de categoría ---------- */
.cat-banner{
  position: relative; overflow: hidden;
  border-radius: var(--radius-xl);
  margin: 1rem 0 2.4rem;
  min-height: 280px;
  display: flex; align-items: flex-end;
  box-shadow: var(--shadow-md);
}
.cat-banner__bg{ position:absolute; inset:0; }
.cat-banner__bg img{ width:100%; height:100%; object-fit: cover; }
.cat-banner::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(to top, rgba(31,31,31,.78), rgba(31,31,31,.15) 70%);
}
.cat-banner__inner{ position: relative; z-index:2; padding: clamp(1.6rem,3vw,2.6rem); color:#fff; max-width: 720px; }
.cat-banner__inner .eyebrow{ color: var(--rose-pale); }
.cat-banner__inner h1{ color:#fff; font-size: clamp(2.2rem,4.5vw,3.4rem); margin-bottom:.5rem; }
.cat-banner__inner p{ color: rgba(255,255,255,.9); margin:0; max-width: 600px; }
.cat-banner.no-image{
  background: linear-gradient(135deg, var(--rose) 0%, var(--rose-deep) 100%);
  min-height: 220px;
}
.cat-banner.no-image::after{ display:none; }

/* ---------- Artículo (post individual) ---------- */
.article{ max-width: 840px; margin: 0 auto; }
.article__head{ text-align: center; margin-bottom: 2rem; }
.article__head h1{ font-size: clamp(2.2rem, 4.4vw, 3.4rem); margin: .6rem 0 1rem; }
.article__meta{
  display:flex; align-items:center; justify-content:center; gap:.9rem; flex-wrap:wrap;
  color: var(--text-muted); font-size: .9rem;
}
.article__meta .author{ display:inline-flex; align-items:center; gap:.5rem; font-weight:600; color: var(--text-dark); }
.article__meta .author img,
.article__meta .author .avatar{
  width: 34px; height: 34px; border-radius:50%; object-fit:cover;
  background: var(--rose-soft); display:inline-flex; align-items:center; justify-content:center;
  color:#fff; font-family: var(--font-serif); font-size: 1rem;
}
.article__cover{
  border-radius: var(--radius-lg); overflow: hidden;
  margin: 0 0 2.4rem; box-shadow: var(--shadow-md);
  aspect-ratio: 16/8;
}
.article__cover img{ width:100%; height:100%; object-fit: cover; }

/* Tipografía del contenido enriquecido (.prose) */
.prose{ color: var(--text-body); font-size: 1.08rem; line-height: 1.8; }
.prose > *:first-child{ margin-top: 0; }
.prose h1,.prose h2,.prose h3,.prose h4{ color: var(--text-dark); margin: 2rem 0 .8rem; line-height:1.2; }
.prose h1{ font-size: 2rem; }
.prose h2{ font-size: 1.7rem; }
.prose h3{ font-size: 1.4rem; }
.prose h4{ font-size: 1.18rem; }
.prose p{ margin: 0 0 1.3rem; }
.prose a{ color: var(--rose-deep); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.prose a:hover{ color: var(--rose); }
.prose strong{ color: var(--text-dark); font-weight: 700; }
.prose ul,.prose ol{ margin: 0 0 1.3rem; padding-left: 1.5rem; counter-reset: ql; }
.prose ul{ list-style: disc; }
.prose ol{ list-style: decimal; }
.prose li{ margin-bottom: .5rem; }
.prose ul li::marker,.prose ol li::marker{ color: var(--rose); }
/* Listas del editor Quill v2 (todas dentro de <ol> con data-list) */
.prose li[data-list]{ list-style: none; position: relative; }
.prose li[data-list]::before{ position: absolute; left: -1.3em; }
.prose li[data-list="ordered"]{ counter-increment: ql; }
.prose li[data-list="ordered"]::before{ content: counter(ql) "."; color: var(--rose-deep); font-weight: 600; }
.prose li[data-list="bullet"]::before{ content: "\2022"; color: var(--rose); font-weight: 700; font-size: 1.1em; }
.prose .ql-ui{ display: none; }
.prose blockquote{
  margin: 1.6rem 0; padding: 1.1rem 1.4rem;
  border-left: 4px solid var(--rose);
  background: var(--bg-card-soft);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--text-dark); font-family: var(--font-serif);
  font-size: 1.25rem; font-style: italic;
}
.prose img{
  border-radius: var(--radius-md);
  margin: 1.6rem auto; box-shadow: var(--shadow-sm);
  max-width: 100%; height: auto;
}
.prose pre{
  background: #2b2622; color: #f6e7df; padding: 1.1rem 1.3rem;
  border-radius: var(--radius-sm); overflow-x: auto; margin: 1.4rem 0;
  font-size: .92rem; line-height: 1.5;
}
.prose code{ font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .92em; }
.prose hr{ border: none; border-top: 1px solid rgba(199,123,106,.2); margin: 2.4rem 0; }
/* Clases del editor Quill */
.prose .ql-align-center{ text-align: center; }
.prose .ql-align-right{ text-align: right; }
.prose .ql-align-justify{ text-align: justify; }
.prose .ql-size-small{ font-size: .82em; }
.prose .ql-size-large{ font-size: 1.45em; }
.prose .ql-size-huge{ font-size: 2em; }
.prose .ql-indent-1{ padding-left: 2.5em; }
.prose .ql-indent-2{ padding-left: 4.5em; }

/* ---------- Compartir ---------- */
.share-row{
  display:flex; align-items:center; gap:.7rem; flex-wrap:wrap;
  margin: 2.6rem 0 0; padding-top: 1.6rem;
  border-top: 1px solid rgba(199,123,106,.15);
}
.share-row span.share-label{ font-weight:600; color: var(--text-dark); margin-right:.3rem; }
.share-btn{
  width: 42px; height: 42px; border-radius: 50%;
  display:inline-flex; align-items:center; justify-content:center;
  background: var(--bg-card); color: var(--rose-deep);
  border: 1px solid rgba(199,123,106,.18);
  transition: all .25s var(--ease);
}
.share-btn:hover{ background: var(--rose); color:#fff; transform: translateY(-3px); box-shadow: var(--shadow-sm); }

/* ---------- Relacionados ---------- */
.related-head{ text-align:center; margin-bottom: 1.8rem; }

/* ---------- CTA del blog ---------- */
.blog-cta-card{
  background: linear-gradient(135deg, var(--rose) 0%, var(--rose-deep) 100%);
  color:#fff; border-radius: var(--radius-xl);
  padding: clamp(2rem,4vw,3.2rem); text-align:center;
  box-shadow: var(--shadow-lg); position: relative; overflow:hidden;
}
.blog-cta-card h3{ color:#fff; font-size: clamp(1.6rem,3vw,2.2rem); margin-bottom:.6rem; }
.blog-cta-card p{ color: rgba(255,255,255,.92); max-width: 520px; margin: 0 auto 1.6rem; }
.blog-cta-card .btn-light{ background:#fff; color: var(--rose-deep); }

/* ---------- Estados vacíos / carga ---------- */
.empty-state{
  text-align:center; padding: clamp(2.5rem,6vw,5rem) 1rem;
  color: var(--text-muted);
}
.empty-state .empty-ico{
  width:72px; height:72px; border-radius:50%;
  background: var(--bg-card); color: var(--rose);
  display:inline-flex; align-items:center; justify-content:center;
  margin-bottom: 1.1rem; box-shadow: var(--shadow-sm);
}
.empty-state h3{ margin-bottom:.4rem; }

.skeleton-grid{ display:grid; grid-template-columns: repeat(auto-fill,minmax(300px,1fr)); gap: 1.6rem; }
.skel-card{ border-radius: var(--radius-lg); overflow:hidden; background: var(--white); border:1px solid rgba(199,123,106,.10); }
.skel-img{ aspect-ratio:16/9; background: linear-gradient(90deg, var(--bg-cream-deep) 25%, var(--bg-card-soft) 50%, var(--bg-cream-deep) 75%); background-size: 200% 100%; animation: skel 1.3s ease-in-out infinite; }
.skel-line{ height: 14px; margin: 14px; border-radius: 7px; background: linear-gradient(90deg, var(--bg-cream-deep) 25%, var(--bg-card-soft) 50%, var(--bg-cream-deep) 75%); background-size:200% 100%; animation: skel 1.3s ease-in-out infinite; }
.skel-line.short{ width: 50%; }
@keyframes skel{ 0%{ background-position: 200% 0; } 100%{ background-position: -200% 0; } }

/* ---------- Responsivo ---------- */
@media (max-width: 820px){
  .post-feature{ grid-template-columns: 1fr; }
  .post-feature__media{ min-height: 220px; aspect-ratio: 16/9; }
}
@media (max-width: 560px){
  .cat-grid, .post-grid{ grid-template-columns: 1fr; }
  .article__cover{ aspect-ratio: 16/10; }
  .prose{ font-size: 1.02rem; }
}
