/* FYI Design System: only applies customer-facing layout styling to opted-in pages.
   No viewport re-centering or negative margins. Product artwork and payment iframes remain unchanged. */
body.fyi-ds-active {
  --fyi-ds-primary:var(--fyi-color-primary,#2e0055);
  --fyi-ds-accent:var(--fyi-color-accent,#2e717b);
  --fyi-ds-bg:var(--fyi-color-background,#08040d);
  --fyi-ds-panel:var(--fyi-color-surface,#160c23);
  --fyi-ds-text:var(--fyi-color-text,#faf7ff);
  --fyi-ds-muted:var(--fyi-color-muted,#d8d1e0);
  --fyi-ds-accent-text:var(--fyi-color-accent-readable,#9de0e6);
  --fyi-ds-border:var(--fyi-color-border,rgba(194,171,218,.32));
  --fyi-ds-radius:14px;
  color:var(--fyi-ds-text);
  background-color:var(--fyi-ds-bg);
}
body.fyi-ds-active.fyi-ds-minimal { background-image:none; }
body.fyi-ds-active.fyi-ds-balanced {
  background-image:radial-gradient(ellipse at 85% 7%,rgba(46,0,85,.26),transparent 48%),linear-gradient(160deg,#08040d,#100619 45%,#08040d);
  background-attachment:scroll;
}
body.fyi-ds-active.fyi-ds-immersive {
  background-image:radial-gradient(ellipse at 85% 4%,rgba(46,113,123,.19),transparent 36%),radial-gradient(ellipse at 12% 8%,rgba(46,0,85,.48),transparent 42%),linear-gradient(125deg,#090410,#13061e 50%,#050308);
  background-attachment:scroll;
}
/* Do not redefine WordPress/Blocksy/Elementor containers, widths or positioning. */
body.fyi-ds-active :where(#main-container, #main, .site-main, .ct-content) { background-color:transparent; }
body.fyi-ds-active :where(.site-main, .ct-content, .entry-content) { color:var(--fyi-ds-text); }
body.fyi-ds-active.fyi-ds-typography :where(.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .page-title, .ct-page-title h1, .woocommerce-products-header__title) { color:var(--fyi-ds-text); }
body.fyi-ds-active.fyi-ds-typography :where(.entry-content p, .entry-summary p, .woocommerce-product-details__short-description, .term-description) { color:var(--fyi-ds-muted); }
body.fyi-ds-active :where(a, button, input, select, textarea, summary):focus-visible { outline:3px solid var(--fyi-ds-accent-text);outline-offset:3px; }
body.fyi-ds-active a:not(.button):not(.wp-element-button):hover { text-decoration-color:var(--fyi-ds-accent-text); }
/* Blocksy menu links and popovers. Limit selectors to actual header/footer elements. */
body.fyi-ds-active.fyi-ds-header :where(#header, .site-header, .ct-header) { background:linear-gradient(105deg,#0b0612 0%,var(--fyi-ds-primary) 57%,#0b0612 100%);border-bottom:1px solid var(--fyi-ds-border); }
body.fyi-ds-active.fyi-ds-header :where(#header, .ct-header) :where(.menu > li > a, .ct-menu-link, .ct-header-menu > ul > li > a) { color:var(--fyi-ds-text); }
body.fyi-ds-active.fyi-ds-header :where(#header, .ct-header) :where(.menu > li > a, .ct-menu-link):hover { color:var(--fyi-ds-accent-text); }
body.fyi-ds-active.fyi-ds-header :where(#header, .ct-header) :where(.sub-menu, .children, .ct-dropdown-menu) { background:var(--fyi-ds-panel);border:1px solid var(--fyi-ds-border);box-shadow:0 20px 45px rgba(0,0,0,.38); }
body.fyi-ds-active.fyi-ds-header :where(#header, .ct-header) :where(.sub-menu a, .children a) { color:var(--fyi-ds-text); }
body.fyi-ds-active.fyi-ds-header :where(#header, .ct-header) :where(.sub-menu a, .children a):hover { background:rgba(46,113,123,.24);color:var(--fyi-ds-accent-text); }
body.fyi-ds-active.fyi-ds-header :where(.ct-panel, .ct-panel-content, .ct-offcanvas-content) { background:var(--fyi-ds-panel);color:var(--fyi-ds-text); }
body.fyi-ds-active.fyi-ds-header :where(.ct-panel, .ct-panel-content) :where(a, span) { color:inherit; }

/* v1.0.1 — High-contrast Blocksy header utility actions.
   Soft white stays legible on both black and deep-purple header gradients;
   lighter teal is reserved for hover/focus. Controls remain Blocksy-native.
   This is scoped to active FYI header styling, not collection-specific headers. */
body.fyi-ds-active.fyi-ds-header :is(#header,.ct-header,.site-header)
  :is(.ct-header-wishlist,.ct-header-account,.ct-header-cart,[data-id="wishlist"],[data-id="account"],[data-id="cart"]) {
  --theme-icon-color: #FAF7FF;
  --theme-icon-hover-color: #9DE0E6;
  --theme-link-initial-color: #FAF7FF;
  --theme-link-hover-color: #9DE0E6;
  --fyi-header-icon-normal: #FAF7FF;
  --fyi-header-icon-hover: #9DE0E6;
  color:var(--fyi-header-icon-normal);
}
/* Restrict button backgrounds to the trigger, NOT account/wishlist/cart drawers. */
body.fyi-ds-active.fyi-ds-header :is(#header,.ct-header,.site-header)
  :is(.ct-header-wishlist,.ct-header-account,.ct-header-cart,[data-id="wishlist"],[data-id="account"],[data-id="cart"])
  > :is(a,button,.ct-wishlist-item,.ct-account-item,.ct-cart-item),
body.fyi-ds-active.fyi-ds-header :is(#header,.ct-header,.site-header)
  :is(.ct-header-wishlist,.ct-header-account,.ct-header-cart)
  :is(.ct-wishlist-item,.ct-account-item,.ct-cart-item) > :is(a,button) {
  --theme-icon-color: #FAF7FF;
  --theme-icon-hover-color: #9DE0E6;
  color:#FAF7FF;
  background-color:rgba(8,4,13,.43);
  border:1px solid rgba(250,247,255,.25);
  border-radius:10px;
  min-height:42px;
  min-width:42px;
  padding:7px 9px;
  box-sizing:border-box;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
/* Cover icons drawn using Blocksy's own CSS custom property, including SVGs
   whose paths have fill="none" (don't overwrite paths/strokes). */
body.fyi-ds-active.fyi-ds-header :is(#header,.ct-header,.site-header)
  :is(.ct-header-wishlist,.ct-header-account,.ct-header-cart)
  :is(.ct-icon-container,svg.ct-icon,svg) {
  --theme-icon-color:currentColor;
  color:inherit;
}
/* Text beside cart icon (price/label) shares the high-contrast foreground. */
body.fyi-ds-active.fyi-ds-header :is(#header,.ct-header,.site-header)
  :is(.ct-header-wishlist,.ct-header-account,.ct-header-cart)
  :is(.ct-label,.ct-cart-total,.ct-cart-label,.ct-header-account-label,.ct-header-cart-label) {
  color:inherit;
}
body.fyi-ds-active.fyi-ds-header :is(#header,.ct-header,.site-header)
  :is(.ct-header-wishlist,.ct-header-account,.ct-header-cart,[data-id="wishlist"],[data-id="account"],[data-id="cart"])
  > :is(a,button,.ct-wishlist-item,.ct-account-item,.ct-cart-item):is(:hover,:focus-visible),
body.fyi-ds-active.fyi-ds-header :is(#header,.ct-header,.site-header)
  :is(.ct-header-wishlist,.ct-header-account,.ct-header-cart)
  :is(.ct-wishlist-item,.ct-account-item,.ct-cart-item) > :is(a,button):is(:hover,:focus-visible) {
  --theme-icon-color:#9DE0E6;
  color:#9DE0E6;
  background-color:rgba(46,113,123,.27);
  border-color:rgba(157,224,230,.74);
  box-shadow:0 0 0 1px rgba(157,224,230,.15);
}
body.fyi-ds-active.fyi-ds-header :is(#header,.ct-header,.site-header)
  :is(.ct-header-wishlist,.ct-header-account,.ct-header-cart,[data-id="wishlist"],[data-id="account"],[data-id="cart"])
  > :is(a,button,.ct-wishlist-item,.ct-account-item,.ct-cart-item):focus-visible,
body.fyi-ds-active.fyi-ds-header :is(#header,.ct-header,.site-header)
  :is(.ct-header-wishlist,.ct-header-account,.ct-header-cart)
  :is(.ct-wishlist-item,.ct-account-item,.ct-cart-item) > :is(a,button):focus-visible {
  outline:2px solid #9DE0E6;
  outline-offset:3px;
}
/* Cart and wishlist quantity markers: crisp white text on solid teal. */
body.fyi-ds-active.fyi-ds-header :is(#header,.ct-header,.site-header)
  :is(.ct-header-wishlist,.ct-header-cart)
  :is(.ct-dynamic-count-cart,.ct-dynamic-count-wishlist,.ct-cart-count,.ct-wishlist-count) {
  color:#FAF7FF;
  background-color:#2E717B;
  border:1px solid rgba(250,247,255,.70);
}
@media (prefers-reduced-motion:reduce) {
  body.fyi-ds-active.fyi-ds-header :is(#header,.ct-header,.site-header)
    :is(.ct-header-wishlist,.ct-header-account,.ct-header-cart) > :is(a,button,.ct-wishlist-item,.ct-account-item,.ct-cart-item) {
    transition:none;
  }
}

body.fyi-ds-active.fyi-ds-footer :where(#footer, .site-footer, .ct-footer) { background:linear-gradient(155deg,#0b0612,#1a0b2a);color:var(--fyi-ds-muted);border-top:1px solid var(--fyi-ds-border); }
body.fyi-ds-active.fyi-ds-footer :where(#footer, .site-footer, .ct-footer) :where(h2,h3,h4,strong) { color:var(--fyi-ds-text); }
body.fyi-ds-active.fyi-ds-footer :where(#footer, .site-footer, .ct-footer) a { color:var(--fyi-ds-accent-text); }
/* Site-wide forms: protect readable input contrast, including Elementor forms. */
body.fyi-ds-active.fyi-ds-forms :where(.entry-content, .wpforms-container, .elementor-form) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea) {
  background-color:#f7f4fa;color:#180e20;border:1px solid #8b7a99;border-radius:8px;
}
body.fyi-ds-active.fyi-ds-forms :where(.entry-content, .wpforms-container, .elementor-form) :where(input,select,textarea)::placeholder { color:#5b5263;opacity:1; }
body.fyi-ds-active.fyi-ds-forms :where(.entry-content, .wpforms-container, .elementor-form) :where(.wp-block-button__link,.wp-element-button,.wpforms-submit,.elementor-button) {
  background:linear-gradient(110deg,var(--fyi-ds-primary),#4f216e);color:#fff;border:1px solid var(--fyi-ds-border);border-radius:9px;min-height:43px;
}
body.fyi-ds-active.fyi-ds-forms :where(.entry-content, .wpforms-container, .elementor-form) :where(.wp-block-button__link,.wp-element-button,.wpforms-submit,.elementor-button):hover { background:var(--fyi-ds-accent);color:#fff; }
/* Catalog cards: do not crop or recolor Printful mockups. No forced grid/container widths. */
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce ul.products li.product, .wc-block-grid__product, .wc-block-product, .wp-block-woocommerce-product-template > li) {
  background:var(--fyi-ds-panel);border:1px solid var(--fyi-ds-border);border-radius:var(--fyi-ds-radius);padding:clamp(10px,1.4vw,18px);box-shadow:0 8px 32px rgba(0,0,0,.17);
}
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce ul.products li.product, .wc-block-grid__product, .wc-block-product) :where(img) { border-radius:9px;max-width:100%;height:auto; }
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce ul.products li.product, .wc-block-grid__product, .wc-block-product) :where(h2,h3,.woocommerce-loop-product__title,.wc-block-components-product-name,a:not(.button)) { color:var(--fyi-ds-text); }
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce ul.products li.product, .wc-block-grid__product, .wc-block-product) :where(.price,.woocommerce-Price-amount,.wc-block-components-product-price) { color:var(--fyi-ds-accent-text); }
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce ul.products li.product, .wc-block-grid__product, .wc-block-product):hover { border-color:rgba(157,224,230,.62); }
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-product-button__button, .wc-block-grid__product-add-to-cart a) { background:var(--fyi-ds-primary);color:#fff;border:1px solid var(--fyi-ds-border);border-radius:9px; }
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-product-button__button, .wc-block-grid__product-add-to-cart a):hover { background:var(--fyi-ds-accent);color:#fff; }
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce div.product .summary h1,.woocommerce div.product .product_title) { color:var(--fyi-ds-text); }
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce div.product .summary .price,.woocommerce div.product .summary .amount,.woocommerce .woocommerce-tabs .tabs a) { color:var(--fyi-ds-accent-text); }
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce div.product .summary select,.woocommerce div.product .summary input.qty) { background:#f7f4fa;color:#180e20;border:1px solid #8b7a99;border-radius:8px; }
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce .woocommerce-tabs, .fyi-merch-section, .woocommerce-message, .woocommerce-info) { color:var(--fyi-ds-text); }
body.fyi-ds-active.fyi-ds-catalog :where(.woocommerce .woocommerce-tabs .panel, .woocommerce .woocommerce-tabs ul.tabs) { border-color:var(--fyi-ds-border); }
/* Checkout and cart: prefer input legibility over theatrical styling. Do not style Stripe/PayPal iframe contents. */
body.fyi-ds-active.fyi-ds-checkout:is(.woocommerce-cart,.woocommerce-checkout) .woocommerce,
body.fyi-ds-active.fyi-ds-checkout :where(.wc-block-cart,.wc-block-checkout) { color:var(--fyi-ds-text); }
body.fyi-ds-active.fyi-ds-checkout:is(.woocommerce-cart,.woocommerce-checkout) :where(table.shop_table,.cart_totals,.woocommerce-checkout-review-order,.woocommerce-checkout-payment) {
  background:var(--fyi-ds-panel);color:var(--fyi-ds-text);border:1px solid var(--fyi-ds-border);border-radius:12px;
}
body.fyi-ds-active.fyi-ds-checkout:is(.woocommerce-cart,.woocommerce-checkout) :where(label,th,td,strong) { color:var(--fyi-ds-text); }
body.fyi-ds-active.fyi-ds-checkout:is(.woocommerce-cart,.woocommerce-checkout) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea),
body.fyi-ds-active.fyi-ds-checkout :where(.wc-block-cart,.wc-block-checkout) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea) {
  background:#fcfaff;color:#17101d;border:1px solid #a092ac;border-radius:7px;
}
body.fyi-ds-active.fyi-ds-checkout :where(.wc-block-components-text-input,.wc-block-components-combobox-control) label { color:#17101d; }
body.fyi-ds-active.fyi-ds-checkout:is(.woocommerce-cart,.woocommerce-checkout) :where(.button,.checkout-button,#place_order),
body.fyi-ds-active.fyi-ds-checkout :where(.wc-block-cart,.wc-block-checkout) :where(.wc-block-components-checkout-place-order-button,.wc-block-components-button) { background:var(--fyi-ds-primary);color:#fff;border:1px solid var(--fyi-ds-border);border-radius:8px; }
body.fyi-ds-active.fyi-ds-checkout:is(.woocommerce-cart,.woocommerce-checkout) :where(.button,.checkout-button,#place_order):hover,
body.fyi-ds-active.fyi-ds-checkout :where(.wc-block-cart,.wc-block-checkout) :where(.wc-block-components-checkout-place-order-button,.wc-block-components-button):hover { background:var(--fyi-ds-accent); }
body.fyi-ds-active.fyi-ds-checkout :where(.woocommerce-error,.woocommerce-message,.wc-block-components-notice-banner) { border-color:var(--fyi-ds-border);color:#17101d; }
@media (prefers-reduced-motion:reduce) {
  body.fyi-ds-active *, body.fyi-ds-active *::before, body.fyi-ds-active *::after { transition-duration:0.01ms!important;animation-duration:0.01ms!important; }
}

/* FYI Design System 1.0.9: owner prefers primary navigation over duplicated
   breadcrumb trails. These selectors cannot affect the Patch Notes page because
   that page does not receive .fyi-ds-active. Switch off in Appearance settings. */
body.fyi-ds-active.fyi-ds-hide-breadcrumbs :is(
  .ct-breadcrumbs,
  .woocommerce-breadcrumb,
  .fyi-breadcrumbs,
  .rank-math-breadcrumb,
  .yoast-breadcrumb,
  nav[aria-label="Breadcrumb"],
  nav[aria-label="Breadcrumbs"]
) {display:none!important;}
