/* Shared styles for all blog pages (blog/index.html and each post). */
:root{
  --cream: #FBF3EA;
  --coral: #B9482A;
  --coral-deep: #9D3D24;
  --pine: #1F4735;
  --pine-deep: #163326;
  --ink: #2B241F;
  --line: rgba(43,36,31,0.12);
}

*{ box-sizing: border-box; margin: 0; padding: 0; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible{
  outline: 2.5px solid var(--coral-deep);
  outline-offset: 2px;
}

/* <main> is focused programmatically by the skip link; no ring around the page. */
#main-content:focus{ outline: none; }

.skip-link{
  position: absolute;
  left: 12px;
  top: -60px;
  background: var(--pine-deep);
  color: var(--cream);
  padding: 12px 20px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  z-index: 200;
  transition: top 0.15s ease;
}
.skip-link:focus{ top: 12px; }

@media (prefers-reduced-motion: reduce){
  *{
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
  }
}

body{
  background: var(--cream);
  color: var(--ink);
  font-family: 'Manrope', sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3{
  font-family: 'Source Serif 4', serif;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--pine-deep);
}

/* Header */
.blog-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 16px;
  max-width: 980px;
  margin: 0 auto;
  padding: 20px 28px;
}
.logo{
  font-family: 'Source Serif 4', serif;
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--pine-deep);
  text-decoration: none;
}
.blog-header-links{
  display: flex;
  align-items: center;
  gap: 22px;
}
.blog-back{
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--pine-deep);
  text-decoration: none;
}
.blog-back:hover{ text-decoration: underline; }
.btn-cta{
  display: inline-block;
  background: var(--coral);
  color: #fff;
  padding: 11px 22px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.9rem;
  transition: background 0.15s ease;
}
.btn-cta:hover{ background: var(--coral-deep); }

/* Layout */
.blog-main{
  max-width: 720px;
  margin: 0 auto;
  padding: 56px 28px 80px;
}

/* Blog index */
.blog-intro h1{
  font-size: clamp(2rem, 4.5vw, 2.8rem);
  line-height: 1.15;
  margin-bottom: 12px;
}
.blog-intro p{
  color: rgba(43,36,31,0.72);
  font-size: 1.05rem;
}
.post-list{
  list-style: none;
  margin-top: 44px;
  border-top: 1px solid var(--line);
}
.post-list li{
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
}
.post-list h2{
  font-size: 1.4rem;
  line-height: 1.25;
}
.post-list h2 a{
  color: var(--pine-deep);
  text-decoration: none;
}
.post-list h2 a:hover{ text-decoration: underline; }
.post-date{
  display: block;
  margin-bottom: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--coral-deep);
}
.post-list p{
  margin-top: 8px;
  color: rgba(43,36,31,0.75);
}
.post-empty{
  margin-top: 44px;
  padding: 28px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: rgba(43,36,31,0.72);
}

/* Post */
.post-meta{
  margin-bottom: 14px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--coral-deep);
}
.post-meta a{ color: inherit; }
.post h1{
  font-size: clamp(2rem, 4.5vw, 2.8rem);
  line-height: 1.15;
  margin-bottom: 32px;
}
.post-body h2{
  font-size: 1.35rem;
  line-height: 1.3;
  margin: 2em 0 0.6em;
}
.post-body p{
  /* ch is wider than the average Manrope letter, so 54ch lands near 70 characters per line */
  max-width: 54ch;
  font-size: 1.08rem;
  line-height: 1.7;
  margin-bottom: 1.3em;
  color: rgba(43,36,31,0.9);
}
.post-cta{
  margin-top: 56px;
  padding: 32px 28px;
  border: 1px solid var(--line);
  border-radius: 12px;
  text-align: center;
}
.post-cta h2{
  font-size: 1.4rem;
  margin-bottom: 8px;
}
.post-cta p{
  margin-bottom: 20px;
  color: rgba(43,36,31,0.75);
}
.post-cta .btn-cta{
  padding: 15px 30px;
  font-size: 1rem;
}

/* Footer */
.blog-footer{
  padding: 30px 28px;
  text-align: center;
  font-size: 0.85rem;
  color: rgba(43,36,31,0.68);
}
.blog-footer a{ color: inherit; }
