/* ===== Blog Article — scoped overrides for graph-studio.css conflicts ===== */

/* Restore Bootstrap card inside .blog-article */
.blog-article .card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.125);
  border-radius: .5rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}

.blog-article .card-body {
  padding: 1.25rem;
}

.blog-article .card-header {
  padding: .75rem 1.25rem;
  border-bottom: 1px solid rgba(0,0,0,.125);
}

/* Restore Bootstrap btn-primary (graph-studio overrides it with gradient) */
.blog-article .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .5rem 1.5rem;
  background: #0d6efd;
  color: #fff;
  border: 1px solid #0d6efd;
  border-radius: .375rem;
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s ease, box-shadow .15s ease;
  box-shadow: none;
}

.blog-article .btn-primary:hover {
  background: #0b5ed7;
  border-color: #0a58ca;
  color: #fff;
  transform: none;
  box-shadow: 0 2px 8px rgba(13,110,253,.3);
}

.blog-article .btn-primary.btn-lg {
  padding: .75rem 2.5rem;
  font-size: 1.1rem;
  border-radius: .5rem;
}

/* Author avatar circle */
.blog-article .author-avatar {
  width: 48px;
  height: 48px;
  min-width: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: #fff;
  font-weight: 700;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.blog-article .author-avatar-lg {
  width: 56px;
  height: 56px;
  min-width: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: #fff;
  font-weight: 700;
  font-size: 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Stat cards */
.blog-article .stat-box {
  background: #f0f4ff;
  border-radius: .5rem;
  padding: 1rem;
  text-align: center;
}

.blog-article .stat-box .stat-num {
  font-size: 1.5rem;
  font-weight: 700;
  color: #0d6efd;
  line-height: 1.2;
}

.blog-article .stat-box .stat-lbl {
  font-size: .8rem;
  color: #6c757d;
  margin-top: .25rem;
}

/* Tip number circle */
.blog-article .tip-num {
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 50%;
  background: #0d6efd;
  color: #fff;
  font-weight: 700;
  font-size: .85rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Step number circle */
.blog-article .step-circle {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 50%;
  background: #0d6efd;
  color: #fff;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Related card link */
.blog-article .related-card {
  display: block;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid rgba(0,0,0,.125);
  border-radius: .5rem;
  padding: 1.25rem;
  transition: box-shadow .15s, transform .15s;
  height: 100%;
}

.blog-article .related-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,.1);
  transform: translateY(-2px);
  color: inherit;
}

.blog-article .related-card .card-icon {
  font-size: 1.75rem;
  line-height: 1;
  margin-bottom: .5rem;
}

/* CTA gradient block */
.blog-article .cta-block {
  background: linear-gradient(135deg, rgba(102,126,234,.12), rgba(118,75,162,.12));
  border-radius: .75rem;
  padding: 2rem 1rem;
  text-align: center;
}

/* Expert insight alert */
.blog-article .expert-alert {
  border-left: 4px solid #0d6efd;
  background: #f8f9fa;
  border-radius: 0 .375rem .375rem 0;
  padding: .875rem 1rem;
}

/* TOC card */
.blog-article .toc-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.125);
  border-radius: .5rem;
  padding: 1.25rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}

/* Accordion fix */
.blog-article .accordion-button {
  font-weight: 600;
}

/* Color swatch inline */
.blog-article .color-swatch {
  display: inline-block;
  width: 16px;
  height: 16px;
  border-radius: 3px;
  vertical-align: middle;
  margin-right: .375rem;
}

/* Section h2 */
.blog-article h2 {
  font-size: 1.4rem;
  font-weight: 700;
  border-bottom: 2px solid #e9ecef;
  padding-bottom: .5rem;
  margin-bottom: 1.25rem;
}

/* Responsive: stack related cards on mobile */
@media (max-width: 576px) {
  .blog-article .btn-primary.btn-lg {
    width: 100%;
    justify-content: center;
  }
}

/* ===== FAQ custom accordion ===== */
.blog-faq {
  display: flex;
  flex-direction: column;
  gap: .625rem;
}

.blog-faq__item {
  border: 1px solid #e2e8f0;
  border-radius: .625rem;
  overflow: hidden;
  background: #fff;
}

.blog-faq__q {
  width: 100%;
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .875rem 1rem;
  background: #fff;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background .15s;
}

.blog-faq__q:hover {
  background: #f8f9fa;
}

.blog-faq__q[aria-expanded="true"] {
  background: linear-gradient(135deg, rgba(79,209,197,.08), rgba(102,126,234,.06));
  border-bottom: 1px solid #e2e8f0;
}

.blog-faq__num {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, #4FD1C5, #667EEA);
  color: #fff;
  font-size: .75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.blog-faq__text {
  flex: 1;
  font-size: .9375rem;
  font-weight: 600;
  color: #2d3748;
  line-height: 1.4;
}

.blog-faq__icon {
  flex-shrink: 0;
  color: #a0aec0;
  font-size: .75rem;
  transition: transform .2s;
}

.blog-faq__q[aria-expanded="true"] .blog-faq__icon {
  transform: rotate(180deg);
  color: #667EEA;
}

.blog-faq__a {
  padding: .875rem 1rem .875rem 3rem;
  font-size: .875rem;
  color: #718096;
  line-height: 1.7;
  background: #fff;
}
