/**
 * Affiliate landing pages: same full-width + dark chrome as front-page-overrides.css
 * (body.home), but scoped with :has(.qsc-affiliate-root) so normal Pages match the home look.
 * Load from affiliate-page-snippet.html — keeps theme functions.php unchanged.
 *
 * Requires a browser that supports CSS :has() (all current evergreen browsers).
 */

/* Hide page title */
body:has(.qsc-affiliate-root) .entry-header,
body:has(.qsc-affiliate-root) .wp-block-post-title,
body:has(.qsc-affiliate-root) h1.wp-block-post-title,
body:has(.qsc-affiliate-root) .entry-title {
  display: none !important;
}

/* Hide featured/header image above content */
body:has(.qsc-affiliate-root) .wp-block-post-featured-image,
body:has(.qsc-affiliate-root) .wp-block-cover,
body:has(.qsc-affiliate-root) .wp-block-group:has(.wp-block-post-featured-image),
body:has(.qsc-affiliate-root) .wp-block-group:has(.wp-block-cover) {
  display: none !important;
}

/* Full-width layout: remove theme content constraints */
body:has(.qsc-affiliate-root) .wp-block-post-content,
body:has(.qsc-affiliate-root) .entry-content,
body:has(.qsc-affiliate-root) .wp-block-group__inner-container,
body:has(.qsc-affiliate-root) main .wp-block-group {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Break marketing block out to full viewport (match front page) */
body:has(.qsc-affiliate-root) .qsc-marketing {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding-left: 1rem;
  padding-right: 1rem;
  box-sizing: border-box;
}

@media (min-width: 782px) {
  body:has(.qsc-affiliate-root) .qsc-marketing {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

body:has(.qsc-affiliate-root) .wp-block-post-content,
body:has(.qsc-affiliate-root) .entry-content,
body:has(.qsc-affiliate-root) main,
body:has(.qsc-affiliate-root) .wp-block-group {
  background: transparent !important;
}

body:has(.qsc-affiliate-root),
body:has(.qsc-affiliate-root) .wp-site-blocks {
  background: #0a0e17 !important;
}

body:has(.qsc-affiliate-root) .wp-site-blocks {
  padding-top: 0 !important;
}

/*
 * TT3 page.html: <main class="wp-block-group" style="margin-top: var(--wp--preset--spacing|50)">
 * Leaves a large gap under the header when title/featured image are hidden — pull flush.
 */
body:has(.qsc-affiliate-root) main.wp-block-group,
body:has(.qsc-affiliate-root) main {
  margin-top: 0 !important;
  margin-block-start: 0 !important;
  padding-top: 0 !important;
  gap: 0 !important;
  row-gap: 0 !important;
}

/* Inner group that only wraps (hidden) title + featured image — drop its spacing */
body:has(.qsc-affiliate-root) main > .wp-block-group:first-child {
  margin: 0 !important;
  margin-block-end: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}

body:has(.qsc-affiliate-root) .wp-block-post-content {
  margin-top: 0 !important;
  margin-block-start: 0 !important;
  padding-top: 0 !important;
}

body:has(.qsc-affiliate-root) .wp-block-group.alignfull,
body:has(.qsc-affiliate-root) .alignfull,
body:has(.qsc-affiliate-root) .wp-block-group[style*="constrained"] {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body:has(.qsc-affiliate-root) .wp-block-post-content > .alignwide,
body:has(.qsc-affiliate-root) .wp-block-post-content > .alignfull,
body:has(.qsc-affiliate-root) .wp-block-post-content > * {
  max-width: none !important;
}

/* Block theme (TT3): post-content + group wrappers use is-layout-constrained + contentSize from theme.json */
body:has(.qsc-affiliate-root) .wp-block-post-content.is-layout-constrained,
body:has(.qsc-affiliate-root) main > .wp-block-group.is-layout-constrained,
body:has(.qsc-affiliate-root) main .wp-block-group.is-layout-constrained {
  max-width: none !important;
  width: 100% !important;
}

/* Nav and footer on dark background */
body:has(.qsc-affiliate-root) header,
body:has(.qsc-affiliate-root) .wp-block-template-part[data-type="header"],
body:has(.qsc-affiliate-root) footer,
body:has(.qsc-affiliate-root) .wp-block-template-part[data-type="footer"],
body:has(.qsc-affiliate-root) .wp-block-group:has(.wp-block-navigation),
body:has(.qsc-affiliate-root) .wp-block-group:has(.wp-block-navigation-list) {
  background: #111827 !important;
  color: #e2e8f0 !important;
  border-color: rgba(148, 163, 184, 0.15) !important;
}

body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-container.is-menu-open,
body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-container-open {
  background: #111827 !important;
}

body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-dialog {
  background: #111827 !important;
}

body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-container-close,
body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-container-close svg,
body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-container-close svg path {
  color: #e2e8f0 !important;
  fill: #e2e8f0 !important;
}

body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-container-close:hover,
body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-container-close:hover svg,
body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-container-close:hover svg path {
  color: #a5b4fc !important;
  fill: #a5b4fc !important;
}

body:has(.qsc-affiliate-root) .wp-block-navigation,
body:has(.qsc-affiliate-root) .wp-block-navigation a,
body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-container-open,
body:has(.qsc-affiliate-root) .wp-block-navigation-item__content,
body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-container a,
body:has(.qsc-affiliate-root) footer,
body:has(.qsc-affiliate-root) footer p,
body:has(.qsc-affiliate-root) footer a,
body:has(.qsc-affiliate-root) footer .wp-block-social-links,
body:has(.qsc-affiliate-root) .wp-block-template-part[data-type="footer"],
body:has(.qsc-affiliate-root) .wp-block-template-part[data-type="footer"] p,
body:has(.qsc-affiliate-root) .wp-block-template-part[data-type="footer"] a,
body:has(.qsc-affiliate-root) .wp-block-template-part[data-type="footer"] .wp-block-social-links {
  color: #e2e8f0 !important;
}

body:has(.qsc-affiliate-root) .wp-block-navigation a:hover,
body:has(.qsc-affiliate-root) .wp-block-navigation__responsive-container a:hover,
body:has(.qsc-affiliate-root) footer a:hover,
body:has(.qsc-affiliate-root) .wp-block-template-part[data-type="footer"] a:hover {
  color: #a5b4fc !important;
}

body:has(.qsc-affiliate-root) {
  overflow-x: hidden;
}

body:has(.qsc-affiliate-root) header,
body:has(.qsc-affiliate-root) .wp-block-template-part[data-type="header"],
body:has(.qsc-affiliate-root) main,
body:has(.qsc-affiliate-root) .wp-block-post-content {
  max-width: 100%;
  overflow-x: hidden;
}

/* Outer wrapper from snippet should not add width limits */
body:has(.qsc-affiliate-root) .qsc-affiliate-root {
  max-width: none;
  width: 100%;
}
