/*
  Styles for the blog article pages.
  Sits on top of styles.css. Covers the article body, the meta row,
  the sticky sidebar, and a couple of one-off bits used in individual posts.
*/

/* article body */
.blog-content { max-width: 800px; }
.blog-content h2 { margin-top: 40px; margin-bottom: 16px; font-size: 1.6rem; }
.blog-content h3 { margin-top: 32px; margin-bottom: 12px; font-size: 1.25rem; }
.blog-content p { line-height: 1.8; margin-bottom: 18px; }
.blog-content ul { margin: 16px 0 24px 0; }
.blog-content ul li { padding: 6px 0; color: var(--text-body); padding-left: 24px; position: relative; }
.blog-content ul li::before { content: ''; position: absolute; left: 0; top: 14px; width: 8px; height: 8px; background: var(--blue); border-radius: 50%; }

/* date / read-time / tag line under the title */
.blog-meta { display: flex; gap: 24px; align-items: center; margin-bottom: 32px; flex-wrap: wrap; }
.blog-meta span { font-size: 0.88rem; color: var(--text-muted); }
.blog-meta .blog-tag { background: var(--blue-pale); color: var(--blue-dark); padding: 4px 12px; border-radius: 50px; font-family: var(--font-display); font-weight: 600; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; }

/* sidebar - sticks while you scroll the article, drops below on narrow screens */
.blog-sidebar { position: sticky; top: 100px; }
.blog-sidebar-card { background: var(--white); border-radius: 10px; border: 1px solid var(--silver-light); padding: 28px; margin-bottom: 24px; }
.blog-sidebar-card h3 { margin-bottom: 16px; font-size: 1rem; }
.blog-sidebar-card p { font-size: 0.9rem; margin-bottom: 16px; }
.blog-sidebar-card a.card-link { font-family: var(--font-display); font-weight: 600; font-size: 0.82rem; color: var(--blue); text-transform: uppercase; letter-spacing: 0.06em; }
.blog-layout { display: grid; grid-template-columns: 1fr 320px; gap: 48px; align-items: start; }
@media (max-width: 1024px) { .blog-layout { grid-template-columns: 1fr; } .blog-sidebar { position: static; } }

/* pricing table on the cost post */
.cost-table { width: 100%; border-collapse: collapse; margin: 24px 0; font-size: 0.92rem; }
.cost-table th, .cost-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--silver-light); }
.cost-table th { background: var(--blue-pale); color: var(--blue-dark); font-family: var(--font-display); font-weight: 600; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.04em; }
.cost-table td { color: var(--text-body); }
.cost-table tr:hover td { background: rgba(59,130,196,0.03); }

/* hidden JSON-LD wrapper for article schema */
.blog-article-schema { display: none; }

/* numbered circles used in the "how to choose" post */
.factor-number { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: var(--blue); color: var(--white); border-radius: 50%; font-family: var(--font-display); font-weight: 800; font-size: 0.95rem; margin-right: 12px; flex-shrink: 0; vertical-align: middle; }

/* blog index - the grid of post cards on /blog/ */
.blog-index-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 28px; }
.blog-card { display: flex; flex-direction: column; background: var(--white); border-radius: 10px; border: 1px solid var(--silver-light); overflow: hidden; transition: var(--transition); }
.blog-card:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(59,130,196,0.1); }
.blog-card-img { aspect-ratio: 16 / 9; background-size: cover; background-position: center; }
.blog-card-body { padding: 28px; display: flex; flex-direction: column; flex: 1; }
.blog-card-tag { align-self: flex-start; background: var(--blue-pale); color: var(--blue-dark); padding: 4px 12px; border-radius: 50px; font-family: var(--font-display); font-weight: 600; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 14px; }
.blog-card h3 { margin-bottom: 10px; }
.blog-card p { font-size: 0.95rem; color: var(--text-muted); margin-bottom: 18px; flex: 1; }
.blog-card-date { font-size: 0.82rem; color: var(--text-muted); margin-bottom: 16px; }
.blog-card .card-link { font-family: var(--font-display); font-weight: 600; font-size: 0.85rem; color: var(--blue); text-transform: uppercase; letter-spacing: 0.06em; }
