/* Public article body typography (html/read/article.php). Also used by the
   writer preview (html/writer/blog/preview.php) so what writers see while
   editing is what readers get. Scoped to <article .card-body>. */

/* Article content typography */
article .card-body>div>*:not(.mb-4):not(.btn):not(img):not(figure) {
    max-width: 65ch;
    margin-left: auto;
    margin-right: auto;
}

/* Article title and metadata */
article .card-body>div.mb-4>h1.title {
    max-width: 65ch !important;
    margin: 0 auto 1rem !important;
    padding: 0 !important;
    font-size: 2rem;
    line-height: 1.3;
    font-weight: 700;
    text-align: center !important;
}

article .card-body>div.mb-4>.list-inline {
    max-width: 65ch !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: left !important;
}

article .card-body>div.mb-4>.list-inline .list-inline-item {
    margin-left: 0;
    margin-right: 0;
}

/* Paragraphs */
article .card-body p {
    font-size: 1.0625rem;
    line-height: 1.75;
    margin-bottom: 1.25rem;
    max-width: 65ch !important;
    margin-left: 0 !important;
    margin-right: auto !important;
}

/* Headings */
article .card-body>div>h2,
article .card-body>div>h3,
article .card-body>div>h4,
article .card-body>div>h5,
article .card-body>div>h6 {
    max-width: 65ch !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    padding: 0;
    font-weight: 600;
    line-height: 1.4;
    text-align: left !important;
}

article .card-body h2 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

article .card-body h3 {
    font-size: 1.25rem;
    margin-top: 2rem;
    margin-bottom: 0.75rem;
}

article .card-body h4,
article .card-body h5,
article .card-body h6 {
    font-size: 1.125rem;
    margin-top: 1.25rem;
    margin-bottom: 0.75rem;
}

/* Lists */
article .card-body ul,
article .card-body ol {
    font-size: 1.0625rem;
    line-height: 1.75;
    margin-bottom: 1.25rem;
    max-width: 65ch !important;
    margin-left: 0 !important;
    margin-right: auto !important;
}

article .card-body li {
    margin-bottom: 0.5rem;
}

/* Links and code */
article .card-body a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

article .card-body code {
    font-size: 0.9375rem;
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
}

article .card-body pre {
    padding: 1rem;
    border-radius: 0.5rem;
    overflow-x: auto;
    margin-bottom: 1.25rem;
    font-size: 0.9375rem;
    line-height: 1.6;
}

article .card-body pre code {
    background: none;
    padding: 0;
}

article .card-body .btn {
    text-decoration: none !important;
}

/* Other elements */
article .card-body blockquote {
    padding-left: 1.5rem;
    margin: 1.5rem 0;
    font-style: italic;
}

article .card-body img:not(.img-fluid),
article .card-body figure {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 1.5rem 0;
}

article .card-body img:not(.img-fluid) {
    border-radius: 0.5rem;
}

article .card-body figure img {
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0;
}

article .card-body table {
    margin: 1.5rem 0;
    font-size: 0.9375rem;
}

article .card-body table th {
    font-weight: 600;
}

/* Responsive: Desktop */
@media (min-width: 992px) {
    article .card-body>div.mb-4 {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
}

/* Responsive: Ultrawide screens */
@media (min-width: 1920px) {

    article .card-body>div>h2,
    article .card-body>div>h3,
    article .card-body>div>h4,
    article .card-body>div>h5,
    article .card-body>div>h6,
    article .card-body p {
        margin-left: auto !important;
        margin-right: auto !important;
    }

    article .card-body ul,
    article .card-body ol {
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

@media (min-width: 2560px) {

    article .card-body>div>h2,
    article .card-body>div>h3,
    article .card-body>div>h4,
    article .card-body>div>h5,
    article .card-body>div>h6,
    article .card-body p {
        margin-left: auto !important;
        margin-right: auto !important;
    }

    article .card-body ul,
    article .card-body ol {
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* Responsive: Tablet and below */
@media (max-width: 992px) {
    article .card-body>div>*:not(h1):not(.mb-4):not(.btn) {
        max-width: 100%;
    }

    article .card-body h1.title {
        font-size: 1.75rem;
    }

    article .card-body p {
        font-size: 1rem;
    }
}

@media (max-width: 768px) {
    article .card-body h1.title {
        font-size: 1.5rem;
    }

    article .card-body p {
        font-size: 0.9375rem;
        line-height: 1.65;
    }
}
