/* CourseCloud blog (/blog/, blog/index.php) and the About and Contact pages (about/, contact/). */
.blog-page, .cc-info-page { background: #fff; padding: 32px 0 64px; color: #1f1a33; }
.blog-page .container, .cc-info-page .container { max-width: 1120px; }
.blog-eyebrow { text-transform: uppercase; letter-spacing: .06em; font-size: .78rem; font-weight: 700; color: #7c3aed; margin: 0 0 6px; }
.blog-hero h1, .blog-head h1 { font-size: 2.1rem; font-weight: 800; margin: 0 0 10px; line-height: 1.2; }
.blog-lead { font-size: 1.08rem; color: #475569; max-width: 720px; line-height: 1.6; }
.blog-meta { color: #64748b; font-size: .9rem; }
.blog-crumbs { font-size: .86rem; margin-bottom: 14px; }
.blog-crumbs a { color: #7c3aed; text-decoration: none; }
.blog-banner { background: #fef3c7; color: #78350f; border-radius: 10px; padding: 12px 16px; margin-bottom: 18px; font-size: .92rem; }
.blog-banner a { color: #7c3aed; margin-left: 6px; }

.blog-list-title { font-size: 1.2rem; font-weight: 700; margin: 28px 0 0; }
.blog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; margin: 16px 0 24px; }
.blog-card { display: flex; flex-direction: column; gap: 8px; border: 1px solid #e2e8f0; border-radius: 12px; padding: 20px; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s; }
.blog-card:hover { border-color: #c4b5fd; box-shadow: 0 4px 14px rgba(124, 58, 237, .08); color: inherit; text-decoration: none; }
.blog-card-title { font-weight: 700; font-size: 1.08rem; color: #1f1a33; line-height: 1.35; }
.blog-card-text { color: #475569; font-size: .93rem; line-height: 1.55; }
.blog-card-meta { color: #64748b; font-size: .8rem; margin-top: auto; padding-top: 6px; }
.blog-empty { border: 1px dashed #ddd6fe; background: #faf5ff; border-radius: 12px; padding: 22px; margin-top: 24px; }
.blog-empty a, .blog-body a { color: #6d28d9; }
.blog-pager { display: flex; gap: 14px; align-items: center; justify-content: center; margin: 8px 0 24px; color: #64748b; }
.blog-pager a { color: #7c3aed; font-weight: 600; text-decoration: none; }

.blog-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 44px; align-items: start; }
.blog-article { max-width: 760px; min-width: 0; }
.blog-body { font-size: 1.04rem; line-height: 1.75; color: #1f2937; overflow-wrap: anywhere; margin-top: 18px; }
.blog-body h2 { font-size: 1.4rem; font-weight: 700; margin: 34px 0 10px; scroll-margin-top: 90px; }
.blog-body h3 { font-size: 1.12rem; font-weight: 700; margin: 24px 0 8px; }
.blog-body p { margin: 0 0 14px; }
.blog-body ul, .blog-body ol { margin: 0 0 16px; padding-left: 1.4rem; }
.blog-body ul { list-style: disc; }
.blog-body ol { list-style: decimal; }
.blog-body li { display: list-item; margin-bottom: 5px; }
.blog-body table { width: 100%; border-collapse: collapse; margin: 10px 0 20px; font-size: .94rem; display: block; overflow-x: auto; }
.blog-body th, .blog-body td { border: 1px solid #e2e8f0; padding: 9px 11px; text-align: left; vertical-align: top; }
.blog-body th { background: #f8fafc; font-weight: 600; }
.blog-review-note { display: block; background: #fef3c7; border: 1px dashed #d97706; color: #78350f; border-radius: 8px; padding: 8px 12px; margin: 8px 0 14px; font-size: .9rem; }
.blog-updated { color: #64748b; font-size: .86rem; margin-top: 28px; border-top: 1px solid #e2e8f0; padding-top: 12px; }

.blog-side { display: flex; flex-direction: column; gap: 18px; }
.blog-dates { background: #faf5ff; border: 1px solid #e4d3ff; border-radius: 12px; padding: 18px; }
.blog-dates h2 { font-size: 1.05rem; font-weight: 700; margin: 0 0 4px; }
.blog-dates p { font-size: .88rem; color: #475569; margin: 0 0 10px; }
.blog-dates ul { list-style: none; padding: 0; margin: 0; }
.blog-dates li { margin: 0 0 8px; }
.blog-dates a { color: #6d28d9; font-weight: 600; text-decoration: none; }
.blog-dates a:hover { text-decoration: underline; }
.blog-dates small { display: block; color: #64748b; font-size: .78rem; }
.blog-toc { border-left: 1px solid #e2e8f0; padding-left: 18px; font-size: .86rem; }
.blog-toc-title { font-weight: 700; margin: 0 0 8px; }
.blog-toc ol { list-style: none; padding: 0; margin: 0; }
.blog-toc li { margin: 0 0 6px; }
.blog-toc a { color: #475569; text-decoration: none; }
.blog-toc a:hover { color: #7c3aed; }
.blog-more { margin-top: 44px; }
.blog-more h2 { font-size: 1.2rem; font-weight: 700; }

/* About and Contact */
.cc-info-hero h1 { font-size: 2.1rem; font-weight: 800; margin: 0 0 10px; line-height: 1.2; }
.cc-info-section { margin-top: 36px; max-width: 860px; }
.cc-info-section h2 { font-size: 1.35rem; font-weight: 700; margin: 0 0 10px; }
.cc-info-section p { color: #334155; line-height: 1.7; margin: 0 0 12px; }
.cc-info-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; margin-top: 14px; }
.cc-info-card { border: 1px solid #e2e8f0; border-radius: 12px; padding: 18px; display: flex; flex-direction: column; gap: 8px; }
.cc-info-card h3 { font-size: 1.02rem; font-weight: 700; margin: 0; display: flex; gap: 8px; align-items: center; }
.cc-info-card h3 i { color: #7c3aed; }
.cc-info-card p { font-size: .93rem; color: #475569; line-height: 1.55; margin: 0; }
.cc-info-links { margin-top: auto; padding-top: 4px; display: flex; flex-direction: column; gap: 6px; }
.cc-info-card a.cc-info-link { color: #6d28d9; font-weight: 600; text-decoration: none; }
.cc-info-card .cc-info-note { font-size: .86rem; }
.cc-info-card a.cc-info-link:hover { text-decoration: underline; }
.cc-info-stats { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 16px; }
.cc-info-stat { background: #faf5ff; border: 1px solid #e4d3ff; border-radius: 12px; padding: 14px 18px; min-width: 180px; }
.cc-info-stat strong { display: block; font-size: 1.6rem; font-weight: 800; color: #6d28d9; line-height: 1.1; }
.cc-info-stat span { font-size: .86rem; color: #475569; }
.cc-info-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.cc-info-chip { display: inline-flex; gap: 6px; align-items: center; border: 1px solid #e2e8f0; border-radius: 999px; padding: 5px 12px; font-size: .86rem; font-weight: 600; color: #3c325c; }
.cc-info-chip i { color: #7c3aed; }
.cc-info-company { color: #475569; font-size: .93rem; line-height: 1.7; }
.cc-info-btn { display: inline-block; background: #7c3aed; color: #fff; border-radius: 8px; padding: 9px 16px; font-weight: 600; text-decoration: none; }
.cc-info-btn:hover { background: #6d28d9; color: #fff; text-decoration: none; }

@media (max-width: 900px) {
    .blog-layout { grid-template-columns: minmax(0, 1fr); }
    .blog-toc { display: none; }
    .blog-hero h1, .blog-head h1, .cc-info-hero h1 { font-size: 1.7rem; }
}
