/* Bloghub: shared index and article layout. Loaded after the site's base CSS. */
.blog-intro {
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
}
.blog-intro p { max-width: 690px; margin: 0 auto; }
.blog-section { padding: 76px 0 92px; background: var(--white); }
.blog-featured {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  overflow: hidden;
  background: var(--off-white);
  border: 1px solid var(--border);
  border-radius: 24px;
  margin: 0 0 48px;
  box-shadow: var(--shadow-sm);
}
.blog-featured-media { min-height: 330px; overflow: hidden; }
.blog-featured-media img { width: 100%; height: 100%; object-fit: cover; }
.blog-featured-body { padding: clamp(30px, 4vw, 62px); display: flex; flex-direction: column; justify-content: center; }
.blog-featured h2 { font-size: clamp(2.1rem, 3.8vw, 3.4rem); margin: 18px 0; }
.blog-featured p { color: var(--text-muted); line-height: 1.75; margin-bottom: 24px; }
.blog-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; font-size: .76rem; font-weight: 600; letter-spacing: .035em; color: var(--text-muted); }
.blog-topic { display: inline-flex; align-items: center; border-radius: 999px; padding: 6px 11px; background: rgba(66,130,170,.12); color: #286385; font-size: .73rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.blog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; gap: 26px; margin: 0; }
.blog-card { display: flex; flex-direction: column; overflow: hidden; padding: 0; border: 1px solid var(--border); border-radius: 20px; background: var(--white); box-shadow: var(--shadow-sm); }
.blog-card:hover, .blog-featured:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.blog-card-media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--off-white); }
.blog-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.blog-card:hover .blog-card-media img { transform: scale(1.035); }
.blog-card-body { display: flex; flex: 1; flex-direction: column; padding: 27px 29px 30px; }
.blog-card-title { font-size: clamp(1.7rem, 2.4vw, 2.15rem); margin: 14px 0 12px; line-height: 1.16; }
.blog-card-intro { font-size: .96rem; line-height: 1.7; color: var(--text-muted); margin: 0 0 20px; }
.blog-card-link { margin-top: auto; font-size: .88rem; color: var(--primary); font-weight: 700; }

.article-section { padding: 40px 0 100px; background: var(--white); }
.article-inner { max-width: 790px; margin: 0 auto; }
.article-breadcrumb { display: flex; gap: 8px; align-items: center; color: var(--text-muted); font-size: .85rem; margin: 5px 0 32px; }
.article-breadcrumb a { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0 0 20px; }
.article-meta time, .article-meta .article-readtime { font-size: .82rem; color: var(--text-muted); letter-spacing: 0; text-transform: none; font-weight: 500; }
.article-inner h1 { font-size: clamp(2.45rem, 5vw, 4.35rem); margin: 0 0 20px; line-height: 1.08; }
.article-deck { font-size: 1.16rem; color: var(--text-muted); line-height: 1.75; margin-bottom: 30px; }
.article-hero { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 20px; margin: 0 0 34px; background: var(--off-white); }
.article-summary { background: var(--off-white); border-left: 4px solid var(--primary); border-radius: 0 14px 14px 0; padding: 25px 29px; margin: 0 0 44px; }
.article-summary strong { display: block; font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; color: var(--primary); margin-bottom: 8px; }
.article-summary p { margin: 0; font-size: 1.04rem; line-height: 1.7; }
.article-content h2 { font-size: clamp(1.85rem, 3vw, 2.45rem); margin: 48px 0 16px; scroll-margin-top: 100px; }
.article-content p, .article-content li { font-size: 1.035rem; line-height: 1.85; color: var(--text); }
.article-content p { margin: 0 0 22px; }
.article-content ol, .article-content ul { padding-left: 1.35em; margin: 0 0 25px; }
.article-content li { margin-bottom: 12px; }
.article-content a, .article-source a, .author-card a { color: var(--primary-dark); text-decoration: underline; text-underline-offset: 3px; }
.article-content a:hover, .article-source a:hover, .author-card a:hover { text-decoration-thickness: 2px; }
.article-content .article-lead { font-size: 1.16rem; line-height: 1.76; color: var(--dark); font-weight: 500; }
.article-source { border-top: 1px solid var(--border); margin: 36px 0; padding-top: 22px; color: var(--text-muted); font-size: .88rem; line-height: 1.6; }
.author-card { display: grid; grid-template-columns: 88px 1fr; gap: 22px; align-items: center; border: 1px solid var(--border); border-radius: 18px; padding: 22px; margin: 34px 0 52px; background: var(--off-white); }
.author-card img { width: 88px; height: 88px; object-fit: cover; border-radius: 50%; }
.author-card h2 { font-size: 1.5rem; margin: 0 0 6px; }
.author-card p { color: var(--text-muted); font-size: .91rem; line-height: 1.55; margin: 0; }
.related-articles { border-top: 1px solid var(--border); padding-top: 36px; margin: 0 0 48px; }
.related-articles h2 { font-size: 2rem; margin: 0 0 18px; }
.related-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.related-list a { display: block; border: 1px solid var(--border); border-radius: 14px; padding: 19px 21px; font-family: 'Cormorant Garamond', serif; font-size: 1.45rem; line-height: 1.18; font-weight: 600; background: var(--off-white); }
.related-list a:hover { color: var(--primary); border-color: var(--primary); }
.article-cta-block { background: var(--off-white); border: 1px solid var(--border); border-radius: 18px; padding: 34px; text-align: left; }
.article-cta-block h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin: 8px 0 12px; }
.article-cta-block p { max-width: 620px; margin: 0 0 22px; color: var(--text-muted); line-height: 1.7; }

body.dark-mode .blog-section, body.dark-mode .article-section { background: #0f1923; }
body.dark-mode .blog-card, body.dark-mode .blog-featured { background: #182733; }
body.dark-mode .blog-topic { background: rgba(137,189,219,.16); color: #9ccfe9; }
body.dark-mode .blog-card-link, body.dark-mode .article-breadcrumb a, body.dark-mode .article-content a,
body.dark-mode .article-source a, body.dark-mode .author-card a { color: #9ccfe9; }
body.dark-mode .article-summary, body.dark-mode .author-card, body.dark-mode .related-list a, body.dark-mode .article-cta-block { background: #182733; }
body.dark-mode .article-summary strong { color: #9ccfe9; }

@media (max-width: 800px) {
  .blog-featured { grid-template-columns: 1fr; }
  .blog-featured-media { min-height: 0; aspect-ratio: 16 / 9; }
  .blog-grid { grid-template-columns: 1fr; }
  .article-section { padding-top: 28px; }
}
@media (max-width: 560px) {
  .blog-section { padding: 48px 0 72px; }
  .blog-featured-body { padding: 26px; }
  .blog-card-body { padding: 24px; }
  .article-inner h1 { font-size: clamp(2.25rem, 11vw, 3.1rem); }
  .article-hero { border-radius: 13px; }
  .article-summary { padding: 20px; }
  .author-card { grid-template-columns: 64px 1fr; gap: 15px; padding: 16px; }
  .author-card img { width: 64px; height: 64px; }
  .related-list { grid-template-columns: 1fr; }
  .article-cta-block { padding: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .blog-card-media img { transition: none; }
}
