/* Blog post body styling.
 *
 * Mirrors the brand typography the admin SunEditor shows while writing
 * (templates/admin/partials/editor.php) so a post looks the same on the live
 * page as it does in the editor. Loaded only on single posts (head.php) and
 * scoped to .entry-content, so nothing else on the site is affected.
 *
 * The theme stylesheet (assets/theme/style.css) styles bare h2/p/blockquote
 * for the marketing homepage (75px headings, navy 24px body text, navy
 * speech-bubble quotes). Everything below overrides that inside a post.
 */

body.single .entry-content {
    font-family: 'brandon-grotesque', system-ui, sans-serif;
    color: #333;
    font-size: 18px;
    line-height: 1.75;
}
body.single .entry-content::after { content: ""; display: table; clear: both; }

/* Headings */
body.single .entry-content h1,
body.single .entry-content h2,
body.single .entry-content h3,
body.single .entry-content h4 {
    font-family: 'brandon-grotesque', system-ui, sans-serif;
    font-weight: 700;
    padding: 0;
    letter-spacing: 0;
    text-transform: none;
}
body.single section.content .container .entry-content h1 { font-size: 48px; color: #46B0CB; line-height: 1.15; margin: 0 0 20px; }
body.single .entry-content h2 { font-size: 34px; color: #46B0CB; line-height: 1.2;  margin: 48px 0 16px; }
body.single .entry-content h3 { font-size: 26px; color: #12445D; line-height: 1.25; margin: 40px 0 12px; }
body.single .entry-content h4 { font-size: 20px; color: #12445D; line-height: 1.3;  margin: 32px 0 10px; text-transform: uppercase; letter-spacing: 2px; }
body.single .entry-content > :first-child { margin-top: 0; }

/* Body text */
body.single .entry-content p {
    font-family: 'brandon-grotesque', system-ui, sans-serif;
    font-size: 18px;
    line-height: 1.75;
    color: #333;
    font-weight: 400;
    margin: 0 0 20px;
}
body.single .entry-content a { color: #46B0CB; font-weight: 600; }
body.single .entry-content a:hover { color: #12445D; }
body.single .entry-content strong,
body.single .entry-content b { font-weight: 700; color: #12445D; }

/* Lists */
body.single .entry-content ul,
body.single .entry-content ol {
    margin: 0 0 24px;
    padding-left: 28px;
    font-size: 18px;
    line-height: 1.75;
    color: #333;
}
body.single .entry-content ul { list-style: disc; }
body.single .entry-content ol { list-style: decimal; }
body.single .entry-content li { margin: 0 0 8px; }
body.single .entry-content li > ul,
body.single .entry-content li > ol { margin: 8px 0 0; }

/* Quote callout (the theme's blockquote is a navy testimonial bubble) */
body.single .entry-content blockquote {
    border-left: 4px solid #46B0CB;
    padding: 16px 24px;
    background: #f8fafe;
    font-style: italic;
    color: #12445D;
    border-radius: 0 8px 8px 0;
    margin: 32px 0;
    position: static;
}
body.single .entry-content blockquote::after,
body.single .entry-content blockquote::before { content: none; display: none; }
body.single .entry-content blockquote p,
body.single .entry-content blockquote div,
body.single .entry-content blockquote span {
    color: #12445D;
    font-size: 18px;
    line-height: 1.75;
    text-transform: none;
    letter-spacing: 0;
    opacity: 1;
    font-weight: inherit;
    margin: 0 0 12px;
}
body.single .entry-content blockquote > :last-child { margin-bottom: 0; }

/* Images and the SunEditor wrappers around them */
body.single .entry-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
}
body.single .entry-content figure { margin: 0; }
/* SunEditor centers a narrower image by auto-margining the figure inside its
   wrapper (the wrapper itself carries an inline min-width:100%), so match that. */
body.single .entry-content .__se__float-center figure { margin-left: auto; margin-right: auto; }
body.single .entry-content figcaption { font-size: 15px; color: #6D6F71; margin-top: 8px; text-align: center; }
body.single .entry-content .se-component { margin: 24px 0; max-width: 100%; box-sizing: border-box; }
body.single .entry-content .__se__float-center { float: none; margin-left: auto; margin-right: auto; }
body.single .entry-content .__se__float-none   { float: none; }
body.single .entry-content .__se__float-left   { float: left;  margin: 4px 24px 16px 0; }
body.single .entry-content .__se__float-right  { float: right; margin: 4px 0 16px 24px; }

/* Embedded video (SunEditor sets the 16:9 padding inline on the figure) */
body.single .entry-content .se-video-container figure { position: relative; overflow: hidden; border-radius: 8px; }
body.single .entry-content .se-video-container figure[style*="padding-bottom"] iframe,
body.single .entry-content .se-video-container figure[style*="padding-bottom"] video {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;
}

/* Rules, tables, code */
body.single .entry-content hr {
    border: 0;
    border-top: 2px solid #edf0f4;
    background: none;
    height: 0;
    margin: 48px 0;
}
body.single .entry-content table { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: 17px; }
body.single .entry-content th,
body.single .entry-content td { padding: 12px 16px; border: 1px solid #edf0f4; text-align: left; vertical-align: top; }
body.single .entry-content th { background: #f8f9fb; font-weight: 700; color: #12445D; }
body.single .entry-content pre {
    font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
    font-size: 15px;
    line-height: 1.6;
    background: #f8f9fb;
    border: 1px solid #edf0f4;
    border-radius: 8px;
    padding: 16px 20px;
    overflow-x: auto;
    margin: 0 0 24px;
}

/* Phones: the editor is desktop-only, so scale headings down a notch */
@media only screen and (max-width: 830px) {
    body.single section.content .container .entry-content h1 { font-size: 36px; }
    body.single .entry-content h2 { font-size: 28px; margin-top: 36px; }
    body.single .entry-content h3 { font-size: 23px; margin-top: 30px; }
    body.single .entry-content h4 { font-size: 18px; }
    body.single .entry-content .__se__float-left,
    body.single .entry-content .__se__float-right { float: none; margin: 24px 0; }
}
@media only screen and (max-width: 550px) {
    body.single section.content .container .entry-content h1 { font-size: 32px; }
    body.single .entry-content h2 { font-size: 26px; }
    body.single .entry-content p,
    body.single .entry-content ul,
    body.single .entry-content ol,
    body.single .entry-content blockquote p,
    body.single .entry-content blockquote div { font-size: 17px; }
    body.single .entry-content blockquote { padding: 14px 18px; }
}

/* Byline sits directly under the date line */
body.single section.content .container .post-byline { margin-top: -12px; }
body.single section.content .container .post-byline a { color: #46B0CB; font-weight: 600; }
