/* ==========================================================================
   blog-content.css
   Article-body typography for /single-blog/* pages.

   WHY THIS FILE EXISTS
   --------------------
   style.css line 146 applies a global reset that the theme's nav menu depends on:

       ul,li { list-style:none; padding:0px; margin:0px; }

   Generated blog HTML is semantic and class-less (<ul>, <li>, <aside>, <table>,
   <blockquote>), so it inherited that reset and rendered with no bullets, no
   indent and no spacing between items — list items looked like broken run-on
   paragraphs. This file re-establishes normal document typography INSIDE the
   article body only.

   SCOPE
   -----
   Everything is scoped to `.blog-details .text-content`, which is the blog body
   container in singleBlog.jsp. The nav menu, sidebar, `ul.post-meta` and the FAQ
   accordion all live OUTSIDE that container and are untouched.

   The FAQ accordion is styled by singleBlog.jsp itself — do not duplicate it here.
   ========================================================================== */

/* ---------- base ---------------------------------------------------------- */

.blog-details .text-content {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.blog-details .text-content article {
    display: block;
}

.blog-details .text-content p {
    margin: 0 0 20px;
    font-size: 16px;
    line-height: 1.8;
    color: #333;
}

.blog-details .text-content strong { font-weight: 700; color: #1a1a2e; }
.blog-details .text-content em     { font-style: italic; }

.blog-details .text-content a {
    color: #0e9d63;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.blog-details .text-content a:hover { color: #0b7a4d; }

/* ---------- headings ------------------------------------------------------ */

.blog-details .text-content h2 {
    font-size: 26px;
    line-height: 1.35;
    font-weight: 700;
    color: #1a1a2e;
    margin: 42px 0 16px;
    scroll-margin-top: 110px; /* sticky header offset for #anchor jumps */
}

.blog-details .text-content h3 {
    font-size: 20px;
    line-height: 1.4;
    font-weight: 600;
    color: #1a1a2e;
    margin: 30px 0 12px;
    scroll-margin-top: 110px;
}

.blog-details .text-content > article > h2:first-of-type { margin-top: 28px; }

/* ---------- lists — THE ACTUAL FIX ---------------------------------------- */

.blog-details .text-content ul,
.blog-details .text-content ol {
    margin: 0 0 24px;
    padding-left: 26px;
}

.blog-details .text-content ul { list-style: disc outside; }
.blog-details .text-content ol { list-style: decimal outside; }

.blog-details .text-content ul ul { list-style: circle outside; }

.blog-details .text-content li {
    list-style: inherit;
    display: list-item;
    margin: 0 0 10px;
    padding: 0;
    font-size: 16px;
    line-height: 1.75;
    color: #333;
}

.blog-details .text-content li::marker { color: #0e9d63; }

.blog-details .text-content li:last-child { margin-bottom: 0; }

.blog-details .text-content li > ul,
.blog-details .text-content li > ol { margin: 10px 0 0; }

/* Lead-in label pattern: <li><strong>Thing:</strong> explanation</li> */
.blog-details .text-content li > strong:first-child { color: #1a1a2e; }

/* ---------- key takeaways box --------------------------------------------- */

.blog-details .text-content .key-takeaways {
    background: #f4fbf7;
    border: 1px solid #cdeade;
    border-left: 4px solid #0e9d63;
    border-radius: 8px;
    padding: 22px 26px;
    margin: 0 0 32px;
}

.blog-details .text-content .key-takeaways > strong {
    display: block;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #0e9d63;
    margin-bottom: 14px;
}

.blog-details .text-content .key-takeaways ul {
    margin: 0;
    padding-left: 22px;
}

.blog-details .text-content .key-takeaways li {
    margin-bottom: 10px;
    font-size: 15.5px;
    line-height: 1.7;
    color: #2c3e35;
}

.blog-details .text-content .key-takeaways li:last-child { margin-bottom: 0; }

/* ---------- author bio box ------------------------------------------------ */

.blog-details .text-content .author-bio {
    background: #fafafa;
    border: 1px solid #e6e6e6;
    border-radius: 8px;
    padding: 22px 26px;
    margin: 40px 0 10px;
}

.blog-details .text-content .author-bio > strong {
    display: block;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #6b7280;
    margin-bottom: 12px;
}

.blog-details .text-content .author-bio p {
    margin: 0;
    font-size: 15px;
    line-height: 1.75;
    color: #444;
}

/* ---------- tables -------------------------------------------------------- */

/* Stays a real table so width:100% and column alignment actually apply.
   `display:block` (the usual responsive-table hack) would make width:100% inert: the
   rows get wrapped in an anonymous table box that is shrink-to-fit, so a 2-column
   table would hug the left edge instead of filling the column.
   Overflow is handled by letting cell text wrap (see th/td below) rather than by
   scrolling, which keeps these 2-4 column comparison tables readable on mobile. */
.blog-details .text-content table {
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
    margin: 0 0 28px;
    font-size: 15px;
    line-height: 1.65;
    table-layout: auto;
}

.blog-details .text-content table thead { background: #f4fbf7; }

.blog-details .text-content table th {
    text-align: left;
    font-weight: 700;
    color: #1a1a2e;
    padding: 12px 14px;
    border: 1px solid #d8e6de;
    vertical-align: bottom;
}

/* Long words and URLs wrap instead of forcing the table wider than the column. */
.blog-details .text-content table th,
.blog-details .text-content table td {
    overflow-wrap: break-word;
    word-break: break-word;
}

.blog-details .text-content table td {
    padding: 12px 14px;
    border: 1px solid #e4e4e4;
    color: #333;
    vertical-align: top;
}

.blog-details .text-content table tbody tr:nth-child(even) { background: #fbfbfb; }

/* ---------- blockquote, figure, misc -------------------------------------- */

.blog-details .text-content blockquote {
    margin: 0 0 28px;
    padding: 4px 0 4px 22px;
    border-left: 4px solid #0e9d63;
    font-size: 17px;
    line-height: 1.7;
    color: #2c3e35;
    font-style: italic;
}

.blog-details .text-content blockquote p:last-child { margin-bottom: 0; }

.blog-details .text-content figure {
    margin: 0 0 28px;
}

.blog-details .text-content figure img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.blog-details .text-content figcaption {
    margin-top: 8px;
    font-size: 13.5px;
    color: #6b7280;
    text-align: center;
}

.blog-details .text-content img { max-width: 100%; height: auto; }

.blog-details .text-content hr {
    border: 0;
    border-top: 1px solid #e6e6e6;
    margin: 34px 0;
}

/* ---------- details / summary --------------------------------------------- */
/* FAQ accordions are stripped from the article body and rendered by singleBlog.jsp,
   which carries its own .faq-item CSS. These rules are the fallback for any other
   <details> the article uses, and for older posts whose FAQ is still inline. */

.blog-details .text-content details {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 14px 18px;
    margin: 0 0 12px;
    background: #fff;
}

.blog-details .text-content details > summary {
    cursor: pointer;
    font-weight: 600;
    color: #1a1a2e;
    list-style: disclosure-closed;
}

.blog-details .text-content details[open] > summary {
    list-style: disclosure-open;
    margin-bottom: 10px;
}

.blog-details .text-content details > summary > * {
    display: inline;
    font-size: inherit;
    margin: 0;
}

.blog-details .text-content details p:last-child { margin-bottom: 0; }

/* ---------- responsive ---------------------------------------------------- */

@media only screen and (max-width: 767px) {

    .blog-details .text-content,
    .blog-details .text-content p,
    .blog-details .text-content li { font-size: 15.5px; }

    .blog-details .text-content h2 { font-size: 22px; margin-top: 34px; }
    .blog-details .text-content h3 { font-size: 18px; }

    .blog-details .text-content ul,
    .blog-details .text-content ol { padding-left: 22px; }

    .blog-details .text-content .key-takeaways,
    .blog-details .text-content .author-bio { padding: 18px 18px; }

    .blog-details .text-content .key-takeaways ul { padding-left: 18px; }

    .blog-details .text-content table { font-size: 14px; }
    .blog-details .text-content table th,
    .blog-details .text-content table td { padding: 10px 11px; }
}
