/* blog.css — blog pages (DEC-111). Our own styles, matched to the BlogHandy capture of 2026-10-17
   (measured sizes noted where they set the look). Spec: docs/design/CDT_S5_BLOG.md. */

#blog {
    font-family: "Helvetica Neue", "HelveticaNeue-Light", "Helvetica Neue Light", Helvetica, Arial, "Lucida Grande", sans-serif;
    color: #fff;
    font-size: 16px;
}
#blog h1, #blog h2, #blog h3, #blog h4, #blog h5, #blog h6 {
    font-family: inherit;
    font-weight: 500;
    color: #fff;
}

/* ── Index, category and author pages ─────────────────────────────────── */

.blog-list-title {                      /* category / author heading: 36px / 500 */
    font-size: 36px;
    line-height: 1.1;
    margin: 20px 0 10px;
}

.blog-category-bar {                    /* centred bar between two thin rules */
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    list-style: none;
    margin: 16px 0;
    padding: 8px 0;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}
.blog-category-bar a {
    display: block;
    padding: 8px 20px;
    line-height: 50px;
    color: #fff;
    opacity: 0.75;
    text-decoration: none;
}
.blog-category-bar a:hover, .blog-category-bar a:focus, .blog-category-bar a.active {
    opacity: 1;
    color: #fff;
    text-decoration: none;
}

.blog-cards {                           /* Bootstrap .row + .col-sm-6: 2 columns from 768px, 1 below */
    margin-top: 40px;
    padding-top: 10px;
}
.blog-card { margin-bottom: 51px; }
@media (min-width: 768px) {
    .blog-card-left  { padding-right: 25px; }   /* ~51px gutter, as captured */
    .blog-card-right { padding-left: 25px; }
}
.blog-card-img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 25px;
}
.blog-card-date {
    margin: 7px 0 0 10px;
    font-size: 14px;
    line-height: 20px;
    opacity: 0.75;
}
.blog-card-title {
    margin: 20px 10px 10px;
    font-size: 30px;
    line-height: 33px;
}
#blog .blog-card-title a, #blog .blog-card-title a:hover {
    color: #fff;
    text-decoration: none;
}
.blog-card-author {
    display: flex;
    align-items: center;
    margin: 0 10px;
    font-size: 14px;
    line-height: 20px;
}
.blog-avatar-sm {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    margin-right: 10px;
}
#blog .blog-card-author a { color: #fff; }
.blog-card-author-name { font-weight: 600; opacity: 0.9; }
#blog .blog-card-author-name { text-decoration: none; }
#blog .blog-card-category { text-decoration: underline; }

/* ── Post page ─────────────────────────────────────────────────────────── */

#blog-progress-bar {                    /* fixed 5px bar, width set by js/blog.js */
    position: fixed;
    top: 0;
    left: 0;
    height: 5px;
    width: 0;
    z-index: 1040;
    background: linear-gradient(120deg, #065fd4 0, #1b7fcc 100%);
}

.blog-post {                            /* single centred 760px column */
    max-width: 760px;
    margin: 0 auto;
    font-size: 16px;
    line-height: 1.6;
}
.blog-post-cover { margin: 0; }
.blog-post-cover img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 5px;
}
.blog-post-title {                      /* 36px / 500 */
    font-size: 36px;
    line-height: 1.1;
    margin: 20px 0 10px;
}
.blog-post-meta {
    display: flex;
    align-items: flex-start;
}
.blog-avatar-lg {
    width: 55px;
    height: 55px;
    border-radius: 50%;
}
.blog-post-meta-text {
    margin: 7px 0 0 10px;
    font-size: 14px;
    line-height: 20px;
}
#blog .blog-meta-author, #blog .blog-meta-category { color: #3467B2; }
.blog-meta-author { font-weight: 600; }
.blog-meta-dot { margin: 0 6px; font-size: 10px; vertical-align: 1px; }
.blog-meta-faint { opacity: 0.75; }

.blog-post-content {
    margin-top: 16px;
    padding-top: 16px;
    margin-bottom: 24px;
}
.blog-post-content p  { margin: 0 0 16px; }
.blog-post-content h2 { font-size: 30px; line-height: 1.1; margin: 20px 0 10px; }
.blog-post-content h3 { font-size: 24px; line-height: 1.1; margin: 20px 0 10px; }
.blog-post-content h4 { font-size: 18px; line-height: 1.1; margin: 10px 0 10px; }
.blog-post-content ul, .blog-post-content ol { margin: 0 0 16px 30px; padding: 0; }
.blog-post-content blockquote {
    font-size: 20.8px;
    line-height: 1.6;
    margin: 20.8px 0;
    padding: 10.4px 15.6px;
}
.blog-post-content hr { border: 0; border-top: 1px solid #eee; margin: 20px 0; }
.blog-post-content img {               /* natural size, left-aligned (inline styles centre/float some), as captured */
    max-width: 100%;
    height: auto;
    margin: 24px 0;
    border: 1px solid #eee;
    border-radius: 5px;
}
.blog-post-content li { margin: 12px 0; }
#blog .blog-post-content a { color: #3467B2; }
#blog .blog-back { color: #3467B2; }

.blog-share { margin: 28px 0; }
.blog-share a {
    display: inline-block;
    width: 32px;
    height: 31px;
    margin-right: 8px;
    border-radius: 5px;
    color: #fff;
    text-align: center;
    line-height: 31px;
    font-size: 16px;
}
.blog-share a:hover, .blog-share a:focus { color: #fff; opacity: 0.85; }
.blog-share-facebook  { background: #3b5998; }
.blog-share-x         { background: #000; }
.blog-share-linkedin  { background: #0077b5; }
.blog-share-pinterest { background: #cb2027; }
.blog-share-whatsapp  { background: #25d366; }
.blog-share-telegram  { background: #54a9eb; }
.blog-share-email     { background: #7d7d7d; }

.blog-notfound { padding: 40px 0 80px; }

/* ── Phones (below Bootstrap's 768px sm breakpoint): cards stack; .container-fluid gives the 15px side margin ── */
@media (max-width: 767px) {
    .blog-card { margin-bottom: 31px; }
}
