/* Shared presentation foundation for managed crowdfunding shortcode pages.
 * Business logic remains in PHP controllers; this file only normalizes theme
 * wrappers and provides reusable full-width layout utilities. */
body.teba-cf-shortcode-page {
    --teba-cf-page-gutter: clamp(16px, 3.25vw, 64px);
    --teba-cf-page-max: 1920px;
}

/* WordPress and TEBA theme ancestor reset.
 * Full-bleed sections cannot escape correctly when an ancestor retains a
 * constrained max-width, horizontal padding, float, or overflow clipping. */
body.teba-cf-shortcode-page .site,
body.teba-cf-shortcode-page .site-content,
body.teba-cf-shortcode-page #content,
body.teba-cf-shortcode-page #primary,
body.teba-cf-shortcode-page main,
body.teba-cf-shortcode-page #main,
body.teba-cf-shortcode-page .site-main,
body.teba-cf-shortcode-page .site-main > article,
body.teba-cf-shortcode-page .main-content,
body.teba-cf-shortcode-page .content-area,
body.teba-cf-shortcode-page .content-wrapper,
body.teba-cf-shortcode-page .teba-content-wrap,
body.teba-cf-shortcode-page .teba-page-body,
body.teba-cf-shortcode-page .teba-inner {
    box-sizing: border-box;
    max-width: none !important;
    width: 100% !important;
    overflow: visible !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
}

body.teba-cf-shortcode-page .entry-content,
body.teba-cf-shortcode-page .page-content,
body.teba-cf-shortcode-page .post-content {
    box-sizing: border-box;
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}

body.teba-cf-shortcode-page .teba-cf-shortcode-template {
    box-sizing: border-box;
    max-width: none;
}

/* Reusable viewport-width section. Do not use left:50%/-50vw: that approach
 * depends on every theme ancestor allowing overflow and is clipped by several
 * common WordPress wrappers. */
.teba-cf-layout-full-bleed {
    box-sizing: border-box;
    position: relative;
    left: 0;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(-1 * (100vw - 100%) / 2) !important;
    margin-right: calc(-1 * (100vw - 100%) / 2) !important;
}

.teba-cf-layout-inner {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--teba-cf-page-max);
    margin-inline: auto;
    padding-inline: var(--teba-cf-page-gutter);
}

/* Managed crowdfunding pages supply their own visual page heading. Suppress
 * duplicate titles generated by the active theme, but keep the theme header
 * and footer intact. */
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-hub .site-main > .page-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-hub .site-main > article > .entry-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-hub main > .page-hero,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-hub .wp-block-post-title,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-dashboard .site-main > .page-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-dashboard .site-main > article > .entry-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-dashboard main > .page-hero,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-dashboard main > .inner-page-hero,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-dashboard main > .page-banner,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-dashboard .wp-block-post-title,
body.teba-cf-hide-theme-header.teba-cf-page--teba-creator-profile .site-main > .page-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-creator-profile .site-main > article > .entry-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-creator-profile main > .page-hero,
body.teba-cf-hide-theme-header.teba-cf-page--teba-creator-profile .wp-block-post-title,
body.teba-cf-hide-theme-header.teba-cf-page--teba-creator-profile-setup .site-main > .page-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-creator-profile-setup .site-main > article > .entry-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-creator-profile-setup main > .page-hero,
body.teba-cf-hide-theme-header.teba-cf-page--teba-creator-profile-setup .wp-block-post-title,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-campaign-products .site-main > .page-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-campaign-products .site-main > article > .entry-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-campaign-products main > .page-hero,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-campaign-products .wp-block-post-title,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-create-campaign .site-main > .page-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-create-campaign .site-main > article > .entry-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-create-campaign main > .page-hero,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-create-campaign .wp-block-post-title,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-nonprofit-portal .site-main > .page-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-nonprofit-portal .site-main > article > .entry-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-nonprofit-portal main > .page-hero,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-nonprofit-portal .wp-block-post-title,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-rewards .site-main > .page-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-rewards .site-main > article > .entry-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-rewards main > .page-hero,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-rewards .wp-block-post-title,
body.teba-cf-hide-theme-header.teba-cf-page--teba-supporter-ticket-rewards .site-main > .page-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-supporter-ticket-rewards .site-main > article > .entry-header,
body.teba-cf-hide-theme-header.teba-cf-page--teba-supporter-ticket-rewards main > .page-hero,
body.teba-cf-hide-theme-header.teba-cf-page--teba-supporter-ticket-rewards .wp-block-post-title {
    display: none !important;
}

/* Theme-specific duplicate page hero suppression for the Creator Cup theme. */
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-dashboard .page-title-area,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-dashboard .page-title-wrap,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-dashboard .inner-banner,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-dashboard .hero-page,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-dashboard .entry-title,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-create-campaign .page-title-area,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-create-campaign .page-title-wrap,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-create-campaign .inner-banner,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-create-campaign .hero-page,
body.teba-cf-hide-theme-header.teba-cf-page--teba-cf-create-campaign .entry-title {
    display: none !important;
}


/* v1.8.10: editor-controlled suppression for theme-generated page chrome. */
body.teba-cf-shortcode-page.teba-cf-hide-theme-header .site-main > .page-header,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header .site-main > .page-title-area,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header .site-main > .page-title-wrap,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header .site-main > .inner-banner,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header .site-main > .hero-page,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header .site-main > .page-hero,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header .site-main > .inner-page-hero,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header .site-main > .page-banner,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header .site-main > article > .entry-header,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header main > .page-header,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header main > .page-title-area,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header main > .page-title-wrap,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header main > .inner-banner,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header main > .hero-page,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header main > .page-hero,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header main > .inner-page-hero,
body.teba-cf-shortcode-page.teba-cf-hide-theme-header main > .page-banner {
    display: none !important;
}

/* v1.8.12: Creator Cup theme emits its page hero as an anonymous element with
 * inline styles instead of a stable class. When the editor toggle is enabled,
 * suppress that exact theme-owned hero signature without touching the global
 * site header/footer or plugin-owned crowdfunding heroes. */
body.teba-cf-shortcode-page.teba-cf-hide-theme-header
[style*="background:var(--color-ink)"][style*="color:var(--color-paper)"][style*="padding:48px var(--container-pad) 52px"] {
    display: none !important;
}

/* Tolerate browser/theme whitespace normalization in the inline declaration. */
body.teba-cf-shortcode-page.teba-cf-hide-theme-header
[style*="background: var(--color-ink)"][style*="color: var(--color-paper)"][style*="padding: 48px var(--container-pad) 52px"] {
    display: none !important;
}

/* v1.8.18.44: Hub full-bleed container escape hardening.
 * The Creator Cup theme can wrap shortcode output in additional constrained
 * page/container elements. Keep this plugin-only and avoid left:50%/-50vw. */
body.teba-cf-shortcode-page .container,
body.teba-cf-shortcode-page .container-fluid,
body.teba-cf-shortcode-page .wrap,
body.teba-cf-shortcode-page .wrapper,
body.teba-cf-shortcode-page .page,
body.teba-cf-shortcode-page .page-wrap,
body.teba-cf-shortcode-page .page-wrapper,
body.teba-cf-shortcode-page .page-content-wrapper,
body.teba-cf-shortcode-page .entry,
body.teba-cf-shortcode-page article.page,
body.teba-cf-shortcode-page .hentry,
body.teba-cf-shortcode-page .wp-site-blocks,
body.teba-cf-shortcode-page .is-layout-constrained,
body.teba-cf-shortcode-page .is-layout-flow,
body.teba-cf-shortcode-page .wp-block-group,
body.teba-cf-shortcode-page .wp-block-group__inner-container {
    box-sizing: border-box;
    max-width: none !important;
    width: 100% !important;
    overflow: visible !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
}

body.teba-cf-page--teba-cf-hub .site-main > .page-header,
body.teba-cf-page--teba-cf-hub .site-main > article > .entry-header,
body.teba-cf-page--teba-cf-hub .site-main > article > header.entry-header,
body.teba-cf-page--teba-cf-hub main > .page-hero,
body.teba-cf-page--teba-cf-hub main > .inner-page-hero,
body.teba-cf-page--teba-cf-hub main > .page-banner,
body.teba-cf-page--teba-cf-hub .wp-block-post-title,
body.teba-cf-page--teba-cf-hub .entry-header,
body.teba-cf-page--teba-cf-hub .entry-title {
    display: none !important;
}

/* v1.8.18.47: Crowdfunding Hub flush hero fix.
 * The Creator Cup theme can leave vertical padding/margins on the page/content
 * wrappers after the global header. On the public hub this appears as a cream
 * band between the header red rule and the plugin's black hero. Keep this
 * hub-only so other managed shortcode pages are unaffected. */
body.teba-cf-page--teba-cf-hub,
body.teba-cf-page--teba-cf-hub .site,
body.teba-cf-page--teba-cf-hub .site-content,
body.teba-cf-page--teba-cf-hub #content,
body.teba-cf-page--teba-cf-hub #primary,
body.teba-cf-page--teba-cf-hub main,
body.teba-cf-page--teba-cf-hub #main,
body.teba-cf-page--teba-cf-hub .site-main,
body.teba-cf-page--teba-cf-hub .site-main > article,
body.teba-cf-page--teba-cf-hub article.page,
body.teba-cf-page--teba-cf-hub .entry-content,
body.teba-cf-page--teba-cf-hub .page-content,
body.teba-cf-page--teba-cf-hub .post-content {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

body.teba-cf-page--teba-cf-hub .site-content,
body.teba-cf-page--teba-cf-hub #content,
body.teba-cf-page--teba-cf-hub #primary,
body.teba-cf-page--teba-cf-hub main,
body.teba-cf-page--teba-cf-hub #main,
body.teba-cf-page--teba-cf-hub .site-main,
body.teba-cf-page--teba-cf-hub .site-main > article,
body.teba-cf-page--teba-cf-hub article.page,
body.teba-cf-page--teba-cf-hub .entry-content {
    background: #0b0b12 !important;
}

body.teba-cf-page--teba-cf-hub .teba-cf-shortcode-template,
body.teba-cf-page--teba-cf-hub .teba-cf-template--hub,
body.teba-cf-page--teba-cf-hub .teba-cf-template--hub.teba-cf-explore,
body.teba-cf-page--teba-cf-hub .teba-cf-explore__hero {
    margin-top: 0 !important;
}

/* v1.8.18.48: Hub inline background override.
 * The Creator Cup page builder can add an anonymous inline-styled wrapper:
 *   background: var(--color-paper); padding: 48px var(--container-pad) 56px;
 * Inline styles beat normal rules, so this hub-only signature selector uses
 * !important to turn that wrapper black and remove the extra cream gutter
 * without touching the theme header/footer or other shortcode pages. */
body.teba-cf-page--teba-cf-hub [style*="background: var(--color-paper)"][style*="padding: 48px var(--container-pad) 56px"],
body.teba-cf-page--teba-cf-hub [style*="background:var(--color-paper)"][style*="padding:48px var(--container-pad) 56px"],
body.teba-cf-page--teba-cf-hub [style*="background: var(--color-paper)"][style*="padding:48px var(--container-pad) 56px"],
body.teba-cf-page--teba-cf-hub [style*="background:var(--color-paper)"][style*="padding: 48px var(--container-pad) 56px"] {
    background: #0b0b12 !important;
    background-color: #0b0b12 !important;
    color: #fff !important;
    padding-top: 0 !important;
}

body.teba-cf-page--teba-cf-hub [style*="background: var(--color-paper)"][style*="padding: 48px var(--container-pad) 56px"] > .teba-cf-shortcode-template:first-child,
body.teba-cf-page--teba-cf-hub [style*="background:var(--color-paper)"][style*="padding:48px var(--container-pad) 56px"] > .teba-cf-shortcode-template:first-child {
    margin-top: 0 !important;
}
