/* IJIF v1.16.63 Universal Theme Compatibility Layer
 * Scoped to IJIF-managed pages only. Theme headers and footers remain owned
 * by the active theme/global-template system. The rules below normalize only
 * the content shell used by IJIF pages and shortcodes.
 * Primary verified targets: OceanWP, Astra, GeneratePress and Newsmatic.
 * Generic coverage also supports Kadence, Blocksy, Neve, Hello Elementor and
 * modern block themes without requiring theme-specific PHP integrations. */

body.ijif-plugin-page {
    --ijif-page-max: 1200px;
    --ijif-page-gutter: clamp(12px, 2.2vw, 28px);
    --ijif-page-space: clamp(16px, 2.2vw, 28px);
}

/* Sidebar removal is deliberately scoped to the content region. A broad
 * `.widget-area` rule can hide theme footer widgets, so never target it outside
 * #content/.site-content/main. */
body.ijif-plugin-page :is(#content,.site-content,#main,.site-main,.site-main-wrap) :is(
    #secondary,
    aside#secondary,
    #right-sidebar,
    #left-sidebar,
    .widget-area,
    .content-sidebar,
    .sidebar-main,
    .site-sidebar,
    .ct-sidebar,
    .nv-sidebar-wrap,
    .secondary-content
) {
    display: none !important;
}

/* Main content columns must be allowed to occupy the available page shell. */
body.ijif-plugin-page :is(
    #primary,
    #primary.content-area,
    .content-area,
    main.site-main,
    #main.site-main,
    .primary-content,
    .site-content > .content-area,
    .nv-content-wrap,
    .ct-content,
    .inside-article,
    .ast-article-single
) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    flex: 1 1 100% !important;
    float: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
}

/* Remove only post/page chrome surrounding IJIF output. */
body.ijif-plugin-page :is(
    article.page,
    article.hentry,
    .type-page,
    .post-inner-wrapper,
    .entry-content,
    .page-content,
    .post-content,
    .wp-block-post-content
) {
    box-sizing: border-box !important;
    max-width: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    min-height: 0 !important;
}

/* IJIF screens provide their own page heading. */
body.ijif-plugin-page :is(
    main,
    #content,
    .site-content
) :is(
    .entry-header,
    .page-header,
    .post-title-wrapper,
    .page-title-wrapper,
    .entry-title,
    .page-title,
    .wp-block-post-title,
    .elementor-widget-theme-post-title
) {
    display: none !important;
}

/* Generic theme shell normalization. Horizontal widths stay theme-owned; only
 * excess vertical page padding/min-height is neutralized. */
body.ijif-plugin-page :is(
    #content,
    #content-wrap,
    #theme-content,
    .site-content,
    .site-content-contain,
    .site-main-wrap,
    .newsmatic-container,
    .ast-container,
    .site.grid-container,
    .content-container,
    .ct-container,
    .ct-container-full,
    .container.single-page-container,
    .nv-single-page-wrap,
    .elementor-location-single
) {
    box-sizing: border-box !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
}

/* Theme-specific final-mile normalization for the four primary supported
 * themes. These rules use the theme body class created by IJIF so they cannot
 * spill into unrelated pages or into another active theme. */
body.ijif-plugin-page.ijif-theme-oceanwp :is(#content-wrap,#primary,#content),
body.ijif-plugin-page.ijif-parent-theme-oceanwp :is(#content-wrap,#primary,#content) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
body.ijif-plugin-page.ijif-theme-oceanwp :is(#right-sidebar,#left-sidebar),
body.ijif-plugin-page.ijif-parent-theme-oceanwp :is(#right-sidebar,#left-sidebar) {
    display: none !important;
}

body.ijif-plugin-page.ijif-theme-astra .ast-container,
body.ijif-plugin-page.ijif-parent-theme-astra .ast-container {
    min-height: 0 !important;
}
body.ijif-plugin-page.ijif-theme-astra :is(#primary,.ast-article-single),
body.ijif-plugin-page.ijif-parent-theme-astra :is(#primary,.ast-article-single) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}
body.ijif-plugin-page.ijif-theme-astra :is(#secondary,.ast-sidebar),
body.ijif-plugin-page.ijif-parent-theme-astra :is(#secondary,.ast-sidebar) {
    display: none !important;
}

body.ijif-plugin-page.ijif-theme-generatepress :is(.site-content,#primary,.content-area,.site-main,.inside-article),
body.ijif-plugin-page.ijif-parent-theme-generatepress :is(.site-content,#primary,.content-area,.site-main,.inside-article) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
body.ijif-plugin-page.ijif-theme-generatepress .site-content > .widget-area,
body.ijif-plugin-page.ijif-parent-theme-generatepress .site-content > .widget-area {
    display: none !important;
}

body.ijif-plugin-page.ijif-theme-newsmatic :is(.newsmatic-container,.primary-content,.post-inner-wrapper),
body.ijif-plugin-page.ijif-parent-theme-newsmatic :is(.newsmatic-container,.primary-content,.post-inner-wrapper) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
}
body.ijif-plugin-page.ijif-theme-newsmatic .secondary-content,
body.ijif-plugin-page.ijif-parent-theme-newsmatic .secondary-content {
    display: none !important;
}

/* Clear legacy float helpers without changing content height. */
body.ijif-plugin-page :is(.entry-content,.page-content,.post-content)::before,
body.ijif-plugin-page :is(.entry-content,.page-content,.post-content)::after {
    content: none !important;
    display: none !important;
}

/* Stable plugin-owned width and outer spacing. */
body.ijif-plugin-page :is(
    .ijif-wrap,
    .ijif-wrapper,
    .ijif-directory-table-page,
    .ijif-certificate-verify,
    .ijif-public-journal-profile,
    .ijif-portal-shell,
    .ijif-modern-profile-form
) {
    box-sizing: border-box !important;
    width: auto !important;
    max-width: min(var(--ijif-page-max), calc(100% - (2 * var(--ijif-page-gutter)))) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.ijif-plugin-page .ijif-public-journal-profile,
body.ijif-plugin-page .ijif-directory-table-page,
body.ijif-plugin-page .ijif-certificate-verify,
body.ijif-plugin-page > main .ijif-wrap,
body.ijif-plugin-page .entry-content > .ijif-wrap {
    margin-top: var(--ijif-page-space) !important;
    margin-bottom: var(--ijif-page-space) !important;
}

/* Forms and tables must remain inside the tablet/mobile viewport even when a
 * theme ships opinionated field widths. */
body.ijif-plugin-page :is(.ijif-wrap,.ijif-wrapper,.ijif-directory-table-page,.ijif-certificate-verify) :is(input,select,textarea,button) {
    max-width: 100%;
}
body.ijif-plugin-page :is(.ijif-table-wrap,.ijif-directory-table-wrap,.ijif-public-history-table-wrap) {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 782px) {
    body.ijif-plugin-page {
        --ijif-page-gutter: 10px;
        --ijif-page-space: 14px;
    }
    body.ijif-plugin-page :is(
        .ijif-wrap,
        .ijif-wrapper,
        .ijif-directory-table-page,
        .ijif-certificate-verify,
        .ijif-public-journal-profile,
        .ijif-portal-shell,
        .ijif-modern-profile-form
    ) {
        max-width: calc(100% - 20px) !important;
    }
}
