/*
Theme Name: Zalach Blog
Description: Tema mínimo para el blog de Zalach (zalach.com/blog), coherente con la estética "Lujo" del sitio principal.
Author: Zalach
Version: 1.0.0
Text Domain: zalach-blog
*/

:root {
  --z-text: #6B5B4B;
  --z-muted: #9E8E80;
  --z-accent: #C2A878;
  --z-bg: #FAF8F5;
  --z-card: #FFFFFF;
  --z-border: #E8E0D5;
  --z-dark-bg: #1C1917;
  --z-dark-fg: #FAF8F5;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--z-bg);
  color: var(--z-text);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 18px;
  line-height: 1.7;
}

h1, h2, h3, h4, .zb-logo, .zb-title {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
  font-weight: 600;
  letter-spacing: -0.5px;
  color: var(--z-text);
}

a {
  color: var(--z-text);
  text-decoration: none;
}

a:hover {
  color: var(--z-accent);
}

.zb-wrap {
  max-width: 780px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Header */
.zb-header {
  background: var(--z-dark-bg);
  color: var(--z-dark-fg);
  border-bottom: 1px solid #2E2A27;
}

.zb-header-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.zb-logo {
  color: var(--z-accent) !important;
  font-size: 24px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.zb-logo-mark {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: #7A6A56;
  color: #FFFDF8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 600;
}

.zb-nav {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}

.zb-nav a {
  color: #E8E0D5;
  font-size: 15px;
}

.zb-nav a:hover {
  color: var(--z-accent);
}

.zb-nav .zb-cta {
  background: var(--z-accent);
  color: var(--z-dark-bg) !important;
  padding: 9px 18px;
  border-radius: 6px;
  font-weight: 600;
}

.zb-nav .zb-cta:hover {
  opacity: 0.9;
  color: var(--z-dark-bg) !important;
}

/* Content */
.zb-main {
  padding: 56px 0 80px;
}

.zb-breadcrumbs {
  font-size: 14px;
  color: var(--z-muted);
  margin-bottom: 24px;
}

.zb-breadcrumbs a {
  color: var(--z-muted);
}

.zb-post-title {
  font-size: 40px;
  line-height: 1.15;
  margin: 0 0 16px;
}

.zb-post-meta {
  color: var(--z-muted);
  font-size: 15px;
  margin-bottom: 32px;
}

.zb-featured-image {
  width: 100%;
  height: auto;
  border-radius: 8px;
  margin-bottom: 40px;
  border: 1px solid var(--z-border);
}

.zb-content h2 {
  font-size: 28px;
  margin-top: 48px;
}

.zb-content h3 {
  font-size: 22px;
  margin-top: 36px;
}

.zb-content p {
  margin: 0 0 20px;
}

.zb-content a {
  text-decoration: underline;
  text-decoration-color: var(--z-border);
}

.zb-content ul, .zb-content ol {
  margin: 0 0 20px;
  padding-left: 24px;
}

/* Index / archive cards */
.zb-index-title {
  font-size: 44px;
  margin: 0 0 12px;
}

.zb-index-subtitle {
  color: var(--z-muted);
  font-size: 18px;
  margin-bottom: 48px;
}

.zb-card {
  border-bottom: 1px solid var(--z-border);
  padding: 32px 0;
}

.zb-card:first-child {
  padding-top: 0;
}

.zb-card-title {
  font-size: 26px;
  margin: 0 0 8px;
}

.zb-card-excerpt {
  color: var(--z-text);
  margin: 0 0 8px;
}

.zb-card-date {
  color: var(--z-muted);
  font-size: 14px;
}

/* CTA reutilizable */
.zb-cta-block {
  margin-top: 56px;
  padding: 40px;
  background: var(--z-dark-bg);
  color: var(--z-dark-fg);
  border-radius: 12px;
  text-align: center;
}

.zb-cta-block h3 {
  color: var(--z-dark-fg);
  font-size: 26px;
  margin: 0 0 12px;
}

.zb-cta-block p {
  color: #C9C2B8;
  margin: 0 0 24px;
}

.zb-cta-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

.zb-cta-actions a {
  padding: 12px 24px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 15px;
}

.zb-cta-primary {
  background: var(--z-accent);
  color: var(--z-dark-bg) !important;
}

.zb-cta-secondary {
  border: 1px solid #4A443E;
  color: var(--z-dark-fg) !important;
}

/* Footer */
.zb-footer {
  background: var(--z-dark-bg);
  color: #A39B91;
  padding: 40px 0;
  font-size: 14px;
}

.zb-footer-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
}

.zb-footer a {
  color: #A39B91;
}

.zb-footer a:hover {
  color: var(--z-accent);
}

.zb-footer-links {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

@media (max-width: 640px) {
  .zb-post-title { font-size: 30px; }
  .zb-index-title { font-size: 32px; }
  .zb-nav { gap: 16px; }
}
