/*
Theme Name:   MoreBiography
Theme URI:    https://morebiography.com
Description:  GeneratePress child theme for morebiography.com — a biography encyclopedia. Adds the Biography CPT, profession/nationality/era taxonomies, a Wikipedia-style infobox, short-answer callout, FAQ, references, related terms, and an alphabetical archive grid. Built to pair with GenerateBlocks and the WikiPress AI Writer plugin.
Author:       MoreBiography
Author URI:   https://morebiography.com
Template:     generatepress
Version:      1.0.2
Requires at least: 6.5
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  morebiography
*/

/* ═══════════════════════════════════════════════════════════════════════════
   Design tokens
   Component styling (infobox, FAQ, archive grid…) lives in
   assets/css/biography.css and loads only on biography views.
   ══════════════════════════════════════════════════════════════════════════ */

:root {
    --mb-accent:        #0b5394;  /* deep encyclopedia blue */
    --mb-accent-dark:   #073763;
    --mb-accent-soft:   #eaf1f8;
    --mb-ink:           #1f2328;
    --mb-muted:         #5b636b;
    --mb-line:          #d8dee4;
    --mb-line-soft:     #eaedf0;
    --mb-bg-soft:       #f6f8fa;
    --mb-surface:       #ffffff;
    --mb-red:           #9f2d3a;
    --mb-gold:          #bf8a24;
    --mb-green:         #2d6f5f;
    --mb-radius:        8px;
    --mb-shadow:        0 1px 3px rgba(16, 22, 26, .08), 0 1px 2px rgba(16, 22, 26, .06);
    --mb-shadow-lg:     0 18px 42px rgba(19, 34, 52, .10);
}

/* ── Light typographic polish shared across the site ───────────────────────── */

body.single-post,
body.single-biography {
    background:
        linear-gradient(180deg, #f6f8fb 0, #ffffff 320px),
        #ffffff;
    color: var(--mb-ink);
    overflow-x: hidden;
}

.single-post .inside-article *,
.single-post .inside-article *::before,
.single-post .inside-article *::after,
.single-biography .inside-article *,
.single-biography .inside-article *::before,
.single-biography .inside-article *::after {
    box-sizing: border-box;
}

.single-post .site-header,
.single-biography .site-header {
    border-bottom: 1px solid var(--mb-line-soft);
    box-shadow: 0 10px 28px rgba(19, 34, 52, .05);
}

.single-post .site-content,
.single-biography .site-content {
    align-items: flex-start;
    gap: 2rem;
    padding-top: 2rem;
    padding-bottom: 3rem;
}

.single-post.separate-containers .inside-article,
.single-biography.separate-containers .inside-article {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--mb-line-soft);
    border-radius: var(--mb-radius);
    background: var(--mb-surface);
    box-shadow: var(--mb-shadow-lg);
    padding: 3rem;
}

.single-post.separate-containers .inside-article::before,
.single-biography.separate-containers .inside-article::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
    background: linear-gradient(90deg, var(--mb-accent), var(--mb-green), var(--mb-gold), var(--mb-red));
}

.single-post .entry-header,
.single-biography .entry-header {
    margin-bottom: 1.75rem;
    padding-bottom: 1.35rem;
    border-bottom: 1px solid var(--mb-line-soft);
}

.single-post .entry-title,
.single-biography .entry-title {
    max-width: 920px;
    margin: 0;
    color: #17202f;
    font-size: 2.65rem;
    line-height: 1.08;
    font-weight: 800;
    letter-spacing: 0;
}

.single-post .entry-meta,
.single-biography .entry-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .85rem;
    margin-top: 1rem;
    color: var(--mb-muted);
    font-size: .92rem;
}

.single-post .entry-meta a,
.single-biography .entry-meta a {
    color: var(--mb-accent-dark);
    text-decoration: none;
    font-weight: 650;
}

.single-post .featured-image,
.single-biography .featured-image,
.single-post .post-image,
.single-biography .post-image {
    overflow: hidden;
    border-radius: var(--mb-radius);
    border: 1px solid var(--mb-line-soft);
    box-shadow: var(--mb-shadow);
}

.single-post .featured-image img,
.single-biography .featured-image img,
.single-post .post-image img,
.single-biography .post-image img {
    display: block;
    width: 100%;
    max-height: 520px;
    object-fit: cover;
}

.single-post .entry-content,
.single-biography .entry-content {
    max-width: 760px;
    color: #25303b;
    font-size: 1.075rem;
    line-height: 1.78;
    overflow-wrap: break-word;
}

.single-post .entry-content > p,
.single-biography .entry-content > p {
    margin-bottom: 1.15em;
}

.entry-content a {
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(11, 83, 148, .35);
}

.entry-content a:hover {
    text-decoration-color: var(--mb-accent);
}

.single-post .entry-content h2,
.single-biography .entry-content h2 {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    margin: 2.6em 0 .75em;
    padding-top: 1rem;
    border-top: 1px solid var(--mb-line-soft);
    color: #17202f;
    font-size: 1.65rem;
    line-height: 1.22;
    font-weight: 780;
}

.single-post .entry-content h2::before,
.single-biography .entry-content h2::before {
    content: "";
    flex: 0 0 auto;
    width: 5px;
    height: 1.25em;
    margin-top: .08em;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--mb-accent), var(--mb-green));
}

.single-post .entry-content h3,
.single-biography .entry-content h3 {
    margin: 2em 0 .65em;
    color: var(--mb-accent-dark);
    font-size: 1.22rem;
    line-height: 1.3;
    font-weight: 750;
}

.entry-content h2,
.entry-content h3 {
    scroll-margin-top: 90px; /* offset for sticky headers when jumping via TOC */
}

.single-post .entry-content ul,
.single-post .entry-content ol,
.single-biography .entry-content ul,
.single-biography .entry-content ol {
    margin-left: 0;
    padding-left: 1.35rem;
}

.single-post .entry-content li,
.single-biography .entry-content li {
    margin-bottom: .5rem;
}

.single-post .entry-content blockquote,
.single-biography .entry-content blockquote {
    margin: 2rem 0;
    padding: 1rem 1.25rem;
    border-left: 4px solid var(--mb-gold);
    border-radius: 0 var(--mb-radius) var(--mb-radius) 0;
    background: #fff8eb;
    color: #493616;
}

.single-post .entry-content table,
.single-biography .entry-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
    overflow: hidden;
    border: 1px solid var(--mb-line);
    border-radius: var(--mb-radius);
    font-size: .95rem;
}

.single-post .entry-content th,
.single-post .entry-content td,
.single-biography .entry-content th,
.single-biography .entry-content td {
    padding: .7rem .85rem;
    border-bottom: 1px solid var(--mb-line-soft);
    vertical-align: top;
}

.single-post .entry-content th,
.single-biography .entry-content th {
    color: var(--mb-accent-dark);
    background: var(--mb-bg-soft);
    font-weight: 700;
}

.single-post .short-answer-box,
.single-biography .short-answer-box {
    margin: 0 0 1.75rem;
    padding: 1.1rem 1.25rem;
    border: 1px solid #cfe0f1;
    border-left: 5px solid var(--mb-accent);
    border-radius: var(--mb-radius);
    background: linear-gradient(135deg, #eef6ff 0, #ffffff 100%);
    box-shadow: 0 10px 26px rgba(11, 83, 148, .08);
}

.single-post .short-answer-label,
.single-biography .short-answer-label {
    margin: 0 0 .35rem;
    color: var(--mb-accent-dark);
    font-size: .82rem;
    line-height: 1.3;
    font-weight: 780;
    letter-spacing: 0;
    text-transform: uppercase;
}

.single-post .short-answer-text,
.single-biography .short-answer-text {
    color: #25303b;
    font-size: 1rem;
    line-height: 1.65;
}

.single-post .short-answer-text p:last-child,
.single-biography .short-answer-text p:last-child {
    margin-bottom: 0;
}

.single-post .article-section,
.single-biography .article-section {
    clear: both;
    margin: 2.75rem 0 0;
    padding-top: 1.35rem;
    border-top: 1px solid var(--mb-line-soft);
}

.single-post .article-section h2,
.single-biography .article-section h2 {
    margin-top: 0;
}

.wpaw-faq-item {
    border: 1px solid var(--mb-line);
    border-radius: var(--mb-radius);
    margin-bottom: .65rem;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 8px 18px rgba(19, 34, 52, .04);
}

.wpaw-faq-question {
    cursor: pointer;
    padding: .9rem 2.6rem .9rem 1rem;
    color: #17202f;
    font-weight: 700;
}

.wpaw-faq-answer {
    padding: .9rem 1rem;
    border-top: 1px solid var(--mb-line-soft);
    color: var(--mb-muted);
}

.references-list {
    color: var(--mb-muted);
    font-size: .95rem;
}

.related-terms-list dt {
    color: #17202f;
}

.related-terms-list dd {
    color: var(--mb-muted);
}

.mb-breadcrumbs {
    margin: 0 0 1.25rem;
    font-size: .88rem;
    color: var(--mb-muted);
}

.mb-breadcrumbs__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .5rem;
}

.mb-breadcrumbs__item {
    display: inline-flex;
    align-items: center;
}

.mb-breadcrumbs__item:not(:last-child)::after {
    content: "\203A";
    margin-left: .5rem;
    color: #a7b0ba;
}

.mb-breadcrumbs__link {
    color: var(--mb-accent-dark);
    text-decoration: none;
    font-weight: 650;
}

.mb-breadcrumbs__link:hover {
    text-decoration: underline;
}

.mb-breadcrumbs__current {
    color: var(--mb-muted);
    font-weight: 650;
}

.single-post .sidebar .widget,
.single-biography .sidebar .widget {
    border: 1px solid var(--mb-line-soft);
    border-radius: var(--mb-radius);
    background: #fff;
    box-shadow: var(--mb-shadow);
}

.single-post .sidebar .widget-title,
.single-post .sidebar .wp-block-heading,
.single-biography .sidebar .widget-title,
.single-biography .sidebar .wp-block-heading {
    margin-bottom: .9rem;
    padding-bottom: .65rem;
    border-bottom: 1px solid var(--mb-line-soft);
    color: #17202f;
    font-size: 1rem;
    line-height: 1.25;
    font-weight: 760;
}

.single-post .wp-block-search__inside-wrapper,
.single-biography .wp-block-search__inside-wrapper {
    overflow: hidden;
    border: 1px solid var(--mb-line);
    border-radius: var(--mb-radius);
}

.single-post .wp-block-search__input,
.single-biography .wp-block-search__input {
    min-height: 44px;
    padding: .65rem .8rem;
    font-size: .95rem;
}

.single-post .wp-block-search__button,
.single-biography .wp-block-search__button {
    margin-left: 0;
    padding: .65rem .9rem;
    border: 0;
    background: var(--mb-accent);
    color: #fff;
    font-size: .92rem;
    font-weight: 700;
}

.single-post .cat-links,
.single-post .tags-links,
.single-biography .cat-links,
.single-biography .tags-links {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: 1.5rem;
}

.single-post .cat-links a,
.single-post .tags-links a,
.single-biography .cat-links a,
.single-biography .tags-links a {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: .25rem .65rem;
    border: 1px solid var(--mb-line);
    border-radius: 999px;
    background: var(--mb-bg-soft);
    color: var(--mb-accent-dark);
    font-size: .82rem;
    font-weight: 650;
    text-decoration: none;
}

.single-post .post-navigation,
.single-biography .post-navigation,
.single-post .comments-area,
.single-biography .comments-area {
    border: 1px solid var(--mb-line-soft);
    border-radius: var(--mb-radius);
    background: #fff;
    box-shadow: var(--mb-shadow);
}

@media (max-width: 1024px) {
    .single-post.separate-containers .inside-article,
    .single-biography.separate-containers .inside-article {
        padding: 2.25rem;
    }

    .single-post .entry-title,
    .single-biography .entry-title {
        font-size: 2.25rem;
    }
}

@media (max-width: 768px) {
    html,
    body.single-post,
    body.single-biography {
        width: 100%;
        max-width: 100%;
    }

    .single-post #page,
    .single-post #content,
    .single-post #primary,
    .single-post .site-main,
    .single-post .inside-article,
    .single-post .grid-container,
    .single-post .site.grid-container,
    .single-biography #page,
    .single-biography #content,
    .single-biography #primary,
    .single-biography .site-main,
    .single-biography .inside-article,
    .single-biography .grid-container,
    .single-biography .site.grid-container {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .single-post .site-content,
    .single-biography .site-content {
        padding-top: 1rem;
        padding-bottom: 2rem;
    }

    .single-post.separate-containers .site-main,
    .single-biography.separate-containers .site-main {
        margin-left: 0;
        margin-right: 0;
    }

    .single-post.separate-containers .inside-article,
    .single-biography.separate-containers .inside-article {
        padding: 1.4rem;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .single-post .entry-title,
    .single-biography .entry-title {
        font-size: 1.9rem;
        overflow-wrap: anywhere;
    }

    .single-post .entry-content,
    .single-biography .entry-content {
        width: 100%;
        max-width: 100%;
        font-size: 1rem;
        line-height: 1.72;
    }

    .single-post .entry-content h2,
    .single-biography .entry-content h2 {
        font-size: 1.38rem;
    }
}
