/*
 * CafePart Content Typography
 * Scoped to article/page content only.
 * It intentionally avoids header, menus, sidebar, widgets and WooCommerce cards/UI.
 */

body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content),
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) {
    font-size: 17px;
    line-height: 2;
}

/* Normal body copy */
body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) :is(p, li),
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) :is(p, li) {
    font-size: 17px;
    line-height: 2;
}

/* Paragraph rhythm */
body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) p,
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) p {
    margin-top: 0;
    margin-bottom: 1.15em;
}

/* Headings */
body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) h1,
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) h1 {
    font-size: 34px;
    line-height: 1.5;
    margin-top: .35em;
    margin-bottom: .75em;
}

body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) h2,
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) h2 {
    font-size: 28px;
    line-height: 1.55;
    margin-top: 1.8em;
    margin-bottom: .7em;
}

body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) h3,
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) h3 {
    font-size: 23px;
    line-height: 1.6;
    margin-top: 1.5em;
    margin-bottom: .6em;
}

body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) h4,
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) h4 {
    font-size: 20px;
    line-height: 1.65;
    margin-top: 1.35em;
    margin-bottom: .55em;
}

/* Lists */
body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) :is(ul, ol),
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) :is(ul, ol) {
    margin-top: .65em;
    margin-bottom: 1.25em;
}

body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) li + li,
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) li + li {
    margin-top: .28em;
}

/* Tables in educational/legal content */
body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) table,
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) table {
    font-size: 15.5px;
    line-height: 1.75;
}

body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) :is(th, td),
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) :is(th, td) {
    padding-top: .75em;
    padding-bottom: .75em;
}

/* Blockquotes */
body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) blockquote,
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) blockquote {
    font-size: 17px;
    line-height: 2;
    margin-top: 1.4em;
    margin-bottom: 1.4em;
}

/* Keep figures visually separated without changing image dimensions. */
body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) figure,
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) figure {
    margin-top: 1.6em;
    margin-bottom: 1.8em;
}

body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) figcaption,
body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) figcaption {
    font-size: 13.5px;
    line-height: 1.8;
}

/* Explicitly leave common UI/product/widget regions alone even if nested unexpectedly. */
body :is(.woocommerce, .products, .product, .product-grid, .product-list, .widget, .sidebar, .site-header, .main-header, .header, .site-footer, .footer, .main-menu, .navigation, .nav-menu, .elementor-widget-woocommerce-products, .elementor-widget-menu-anchor) :is(p, li, h1, h2, h3, h4, table, th, td) {
    font-size: revert;
    line-height: revert;
    margin-top: revert;
    margin-bottom: revert;
}

/* Tablet */
@media (max-width: 991px) {
    body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content),
    body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content),
    body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) :is(p, li),
    body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) :is(p, li) {
        font-size: 16.5px;
        line-height: 1.95;
    }

    body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) h1,
    body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) h1 { font-size: 31px; }

    body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) h2,
    body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) h2 { font-size: 26px; }

    body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) h3,
    body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) h3 { font-size: 22px; }
}

/* Mobile */
@media (max-width: 600px) {
    body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content),
    body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content),
    body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) :is(p, li),
    body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) :is(p, li) {
        font-size: 16px;
        line-height: 1.9;
    }

    body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) h1,
    body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) h1 { font-size: 28px; }

    body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) h2,
    body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) h2 { font-size: 24px; }

    body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) h3,
    body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) h3 { font-size: 20px; }

    body.single-post :is(.entry-content, .post-content, .article-content, .single-content, .blog-content, .mweb-post-content) h4,
    body.page:not(.woocommerce-page) :is(.entry-content, .post-content, .article-content, .single-content, .page-content, .mweb-page-content) h4 { font-size: 18px; }
}
