/* ---- Dark theme: overrides for chrome that is NOT on the tokens (Flatsome, FunnelKit, WooCommerce) ----
   Every rule sits under html[data-theme="dark"], so this file is inert on light pages. Our own code
   (redesign plugins + migrated blocks) needs nothing here: it reads the role tokens, which the dark
   block in tokens.css repoints. Built on UK staging 2026-10-20; the product page is excluded until
   Alen's restyle lands (52-bollsen-tokens.php bollsen_dark_supported()). */

/* Flatsome's own variables (theme mods compiled to :root) */
html[data-theme="dark"]{--fs-color-base:var(--text);--fs-experimental-link-color:var(--text-strong);--fs-experimental-link-color-hover:var(--link-hover)}

/* page ground + body text */
html[data-theme="dark"] body,html[data-theme="dark"] #wrapper,html[data-theme="dark"] #main,html[data-theme="dark"] .page-wrapper,html[data-theme="dark"] #content,html[data-theme="dark"] .section-content,html[data-theme="dark"] .page-title,html[data-theme="dark"] .featured-title,html[data-theme="dark"] .shop-page-title,html[data-theme="dark"] .page-title-inner{background-color:var(--surface);color:var(--text)}
html[data-theme="dark"] .page-title .breadcrumbs,html[data-theme="dark"] .page-title .breadcrumbs a,html[data-theme="dark"] .page-title h1,html[data-theme="dark"] .page-title .entry-title{color:var(--text-strong)}
html[data-theme="dark"] .page-title.featured-title .title-bg{opacity:.35}
html[data-theme="dark"] h1,html[data-theme="dark"] h2,html[data-theme="dark"] h3,html[data-theme="dark"] h4,html[data-theme="dark"] h5,html[data-theme="dark"] h6,html[data-theme="dark"] .entry-title a{color:var(--text-strong)}
html[data-theme="dark"] a{color:var(--text-strong)}
html[data-theme="dark"] a:hover{color:var(--link-hover)}
html[data-theme="dark"] p,html[data-theme="dark"] li{color:inherit}

/* header + navigation */
html[data-theme="dark"] .header-main,html[data-theme="dark"] .header-bottom,html[data-theme="dark"] .header-wrapper,html[data-theme="dark"] .header-bg-color,html[data-theme="dark"] .header-inner,html[data-theme="dark"] .stuck .header-main{background-color:var(--surface)!important}
html[data-theme="dark"] .header-wrapper{box-shadow:0 1px 0 var(--line)}
html[data-theme="dark"] .header .nav>li>a,html[data-theme="dark"] .header .nav>li>a>i,html[data-theme="dark"] .header .nav-dropdown-default>li>a,html[data-theme="dark"] .header-button-1 .button.is-outline{color:var(--text-strong)!important}
html[data-theme="dark"] .nav-dropdown,html[data-theme="dark"] .nav-dropdown-default{background-color:var(--surface-soft);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .nav-dropdown-has-arrow li.has-dropdown>a:after{border-bottom-color:var(--surface-soft)}
html[data-theme="dark"] .mobile-sidebar,html[data-theme="dark"] .off-canvas .mfp-content,html[data-theme="dark"] .off-canvas-left .mfp-content,html[data-theme="dark"] .off-canvas-right .mfp-content{background-color:var(--surface);color:var(--text)}
html[data-theme="dark"] .nav-sidebar>li>a,html[data-theme="dark"] .mobile-sidebar .nav>li>a{color:var(--text-strong)}
/* header logo: Flatsome prints the light logo (theme mod site_logo_dark = "BOLLSEN Logo 2025 White", attachment 158343 on
   staging) as a second <img class="header-logo-dark"> and hides it until the header is dark — in dark mode show it and hide
   the black one. The press marks are still CSS-inverted (transparent re-exports are Alen's). */
html[data-theme="dark"] .header .logo img.header_logo,html[data-theme="dark"] .header .logo img.header-logo{display:none!important}
html[data-theme="dark"] .header .logo img.header-logo-dark{display:inline-block!important}
html[data-theme="dark"] .mobile-sidebar .logo img:not(.header-logo-dark){filter:invert(1) hue-rotate(180deg)}
/* press marks: invert lightness but keep the hues (Independent eagle, Which? mark stay red); the Telegraph file lost its white box */
/* !important + higher specificity: the homepage CSS block sets body.home .bh-press .bh-run img{filter:grayscale(1) contrast(1.35)!important}; the quote cards (figure.bh-card) carry the same marks unfiltered */
html[data-theme="dark"] body .bh-press img,html[data-theme="dark"] body .bh-press .bh-run img,html[data-theme="dark"] body .bh-run img,html[data-theme="dark"] body .bh-dup img,html[data-theme="dark"] body .bh-card img[src*="press-"]{filter:invert(1) hue-rotate(180deg)!important}

/* Flatsome boxes, forms, tables, accordions */
html[data-theme="dark"] .box-text,html[data-theme="dark"] .accordion-title,html[data-theme="dark"] .accordion-inner,html[data-theme="dark"] .tabbed-content .nav-tabs>li>a,html[data-theme="dark"] .message-box,html[data-theme="dark"] .ux-menu-link__link{color:var(--text)}
html[data-theme="dark"] .accordion-title{border-color:var(--line)}
html[data-theme="dark"] input:not([type=submit]):not([type=checkbox]):not([type=radio]),html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .select2-container .select2-selection--single,html[data-theme="dark"] .select-resize-ghost{background-color:var(--surface-soft);border-color:var(--line-2);color:var(--text);box-shadow:none}
html[data-theme="dark"] ::placeholder{color:var(--text-faint)}
html[data-theme="dark"] table,html[data-theme="dark"] th,html[data-theme="dark"] td{border-color:var(--line)}
html[data-theme="dark"] .button.is-outline,html[data-theme="dark"] .button.secondary.is-outline{color:var(--text-strong)!important;border-color:var(--line-strong)!important}
html[data-theme="dark"] .button.primary:not(.is-outline):not(.icon){background-color:var(--band)!important;border-color:var(--band)!important;color:var(--on-band)!important}
html[data-theme="dark"] hr,html[data-theme="dark"] .divider{border-color:var(--line);background-color:var(--line)}

/* boxes */
html[data-theme="dark"] .account-container,html[data-theme="dark"] .account-login-inner,html[data-theme="dark"] .login-form-container,html[data-theme="dark"] .account-container .col-inner,html[data-theme="dark"] .woocommerce-form-login,html[data-theme="dark"] .woocommerce-form-register,html[data-theme="dark"] .ux-box.box-shadow,html[data-theme="dark"] .box-shadow-1,html[data-theme="dark"] .box-shadow-2,html[data-theme="dark"] .box-shadow-3,html[data-theme="dark"] .has-shadow,html[data-theme="dark"] .lightbox-content,html[data-theme="dark"] .mfp-content .lightbox-inner{background-color:var(--surface-soft);color:var(--text)}
html[data-theme="dark"] .account-login-inner h3,html[data-theme="dark"] .login-form-container h3{color:var(--text-strong)}

/* WooCommerce cart / checkout / account */
html[data-theme="dark"] .woocommerce-cart-form,html[data-theme="dark"] .cart-collaterals,html[data-theme="dark"] .cart_totals,html[data-theme="dark"] .shop_table,html[data-theme="dark"] .woocommerce-checkout-review-order,html[data-theme="dark"] .woocommerce-MyAccount-navigation,html[data-theme="dark"] .woocommerce-MyAccount-content,html[data-theme="dark"] .checkout-sidebar,html[data-theme="dark"] .woocommerce-info,html[data-theme="dark"] .woocommerce-message{background-color:transparent;color:var(--text)}
html[data-theme="dark"] .shop_table td,html[data-theme="dark"] .shop_table th,html[data-theme="dark"] .cart_totals th,html[data-theme="dark"] .cart_totals td{border-color:var(--line)}
html[data-theme="dark"] .woocommerce-MyAccount-navigation ul li a{color:var(--text-strong)}
html[data-theme="dark"] .checkout-sidebar,html[data-theme="dark"] .woocommerce-checkout-review-order,html[data-theme="dark"] .cart-collaterals .cart_totals{background-color:var(--surface-soft);border-color:var(--line)}
html[data-theme="dark"] .woocommerce-checkout .form-row label,html[data-theme="dark"] .woocommerce-shipping-methods label,html[data-theme="dark"] .wc_payment_methods label{color:var(--text)}
html[data-theme="dark"] .wc_payment_method .payment_box{background-color:var(--surface-soft-2);color:var(--text)}
html[data-theme="dark"] .wc_payment_method .payment_box:before{border-bottom-color:var(--surface-soft-2)}

/* header quiz pill: its hover is a literal pale gold (#ffe89a) under amber-ink text, which is light gold in dark → a step up from --amber-soft instead (Armin, 2026-10-21) */
html[data-theme="dark"] .bh-quiz:hover{background:#4f3d0a}

/* footer */
html[data-theme="dark"] .footer-wrapper,html[data-theme="dark"] .footer-widgets,html[data-theme="dark"] .absolute-footer{background-color:var(--surface)!important;color:var(--text-muted)}
html[data-theme="dark"] .footer-wrapper .footer-2{background:var(--grad-footer)!important}
/* the absolute footer continues the footer-2 gradient, which ends in --surface (as in light, where the gradient ends in the navy the absolute footer has). #footer .absolute-footer{background:var(--band)!important} from the homepage CSS block needs the id to be out-specified */
html[data-theme="dark"] #footer .absolute-footer,html[data-theme="dark"] .footer-wrapper .absolute-footer,html[data-theme="dark"] .absolute-footer,html[data-theme="dark"] .absolute-footer .copyright-footer{background:var(--surface)!important;color:var(--text-muted)}
html[data-theme="dark"] .absolute-footer a{color:var(--text-strong)}

/* theme toggle (printed by 52-bollsen-tokens.php in the absolute footer) */
.bh-theme-toggle{display:inline-flex;align-items:center;gap:4px;margin:6px 0 0;padding:3px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface)}
.bh-theme-toggle .bh-tt{display:inline-flex;align-items:center;gap:6px;margin:0;min-height:0;padding:6px 12px;border:0;border-radius:999px;background:transparent;color:var(--text-muted);font:600 12px/1 Montserrat,system-ui,sans-serif;letter-spacing:0;text-transform:none;cursor:pointer;box-shadow:none}
.bh-theme-toggle .bh-tt[aria-pressed="true"]{background:var(--band);color:var(--on-band)}
.bh-theme-toggle .bh-tt:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.absolute-footer .bh-theme-toggle{vertical-align:middle;margin:4px 0 16px} /* sits on its own line above the payment tiles: 16px of air (Armin: "too close", 2026-10-21) */

/* content tints that stay literal in light (product/category colours) but need a dark partner */
html[data-theme="dark"] .tp-box{background:#10303f}
html[data-theme="dark"] .bsp .tg-1{background:#241c4a;color:#c9b8ff}
html[data-theme="dark"] .bsp .tg-2{background:#0f2d3f;color:#8fd0f0}
html[data-theme="dark"] .nm-meter{background:linear-gradient(90deg,#1f3a2c 0%,#4a3d12 55%,#5a2a22 100%)}

/* round 4: account card (Flatsome .account-container.lightbox-inner beats a single class), cart amounts */
html[data-theme="dark"] .account-container.lightbox-inner,html[data-theme="dark"] .lightbox-inner{background-color:var(--surface-soft)!important;color:var(--text)}
html[data-theme="dark"] .woocommerce-Price-amount,html[data-theme="dark"] .cart_totals .amount,html[data-theme="dark"] .shop_table .amount,html[data-theme="dark"] .shop_table td,html[data-theme="dark"] .cart_totals td,html[data-theme="dark"] .cart_totals th,html[data-theme="dark"] .shop_table th,html[data-theme="dark"] .product-name a{color:var(--text-strong)}
html[data-theme="dark"] .woocommerce-form-login label,html[data-theme="dark"] .woocommerce-form-register label,html[data-theme="dark"] .form-row label{color:var(--text)}

/* ---- FunnelKit checkout (Gutenberg "sling" blocks print per-block inline CSS with hashed classes and light
   backgrounds, text #000 — generic selectors with body prefix + !important win over them) ---- */
html[data-theme="dark"] body .bwf-section-wrap,html[data-theme="dark"] body .bwf-section-wrap.bwf-has-bg,html[data-theme="dark"] body .bwf-col,html[data-theme="dark"] body .bwf-inner-col,html[data-theme="dark"] body .wfacp-template-container,html[data-theme="dark"] body .bwf-align-wrap-full{background:var(--surface)!important;background-color:var(--surface)!important;color:var(--text)!important}
html[data-theme="dark"] body .wfacp-checkout-form-block,html[data-theme="dark"] body #wfacp-e-form .wfacp_main_form,html[data-theme="dark"] body .wfacp-order-summary-block,html[data-theme="dark"] body .wfacp_order_summary_block,html[data-theme="dark"] body #wfacp-e-form .wfacp_qv-main,html[data-theme="dark"] body .wfacp-form{background:var(--surface-soft)!important;background-color:var(--surface-soft)!important;color:var(--text)!important}
html[data-theme="dark"] body #wfacp-e-form,html[data-theme="dark"] body #wfacp-e-form *:not(input):not(select):not(textarea):not(button):not(a):not(.wfacp_coupon_apply_button):not(.wfob_bump *):not(.wfob_bump):not([class*="btn"]){color:var(--text)}
html[data-theme="dark"] body #wfacp-e-form h1,html[data-theme="dark"] body #wfacp-e-form h2,html[data-theme="dark"] body #wfacp-e-form h3,html[data-theme="dark"] body #wfacp-e-form .wfacp_section_heading,html[data-theme="dark"] body #wfacp-e-form .wfacp_section_title,html[data-theme="dark"] body #wfacp-e-form legend,html[data-theme="dark"] body #wfacp-e-form bdi,html[data-theme="dark"] body #wfacp-e-form .amount,html[data-theme="dark"] body #wfacp-e-form .wfacp_mini_cart_item_title,html[data-theme="dark"] body #wfacp-e-form strong{color:var(--text-strong)!important}
html[data-theme="dark"] body #wfacp-e-form label,html[data-theme="dark"] body #wfacp-e-form .wfacp-form-control-label,html[data-theme="dark"] body #wfacp-e-form .includes_tax,html[data-theme="dark"] body #wfacp-e-form .optional,html[data-theme="dark"] body #wfacp-e-form .woocommerce-info,html[data-theme="dark"] body #wfacp-e-form .wfacp-modern-label .wfacp-form-control-wrapper label{color:var(--text-muted)!important}
html[data-theme="dark"] body #wfacp-e-form input.wfacp-form-control,html[data-theme="dark"] body #wfacp-e-form input[type="text"],html[data-theme="dark"] body #wfacp-e-form input[type="email"],html[data-theme="dark"] body #wfacp-e-form input[type="tel"],html[data-theme="dark"] body #wfacp-e-form input[type="number"],html[data-theme="dark"] body #wfacp-e-form select,html[data-theme="dark"] body #wfacp-e-form textarea,html[data-theme="dark"] body #wfacp-e-form .select2-container .select2-selection--single,html[data-theme="dark"] body #wfacp-e-form .select2-selection__rendered,html[data-theme="dark"] body #wfacp-e-form .iti__selected-dial-code,html[data-theme="dark"] body #wfacp-e-form .iti__selected-flag{background:var(--surface-soft-2)!important;background-color:var(--surface-soft-2)!important;color:var(--text)!important;border-color:var(--line-2)!important;box-shadow:none!important}
html[data-theme="dark"] body #wfacp-e-form input[type="checkbox"],html[data-theme="dark"] body #wfacp-e-form input[type="radio"]{accent-color:var(--accent);background:var(--surface-soft-2)!important;border-color:var(--line-2)!important}
html[data-theme="dark"] body #wfacp-e-form ::placeholder{color:var(--text-faint)!important}
html[data-theme="dark"] body #wfacp-e-form .payment_box,html[data-theme="dark"] body #wfacp-e-form .wfacp_payment_method .payment_box,html[data-theme="dark"] body #wfacp-e-form .woocommerce-checkout-payment ul.payment_methods li,html[data-theme="dark"] body #wfacp-e-form .wfacp-express-checkout,html[data-theme="dark"] body #wfacp-e-form fieldset{background:var(--surface-soft-2)!important;background-color:var(--surface-soft-2)!important;border-color:var(--line)!important;color:var(--text)!important}
html[data-theme="dark"] body #wfacp-e-form .payment_box:before{border-bottom-color:var(--surface-soft-2)!important}
html[data-theme="dark"] body #wfacp-e-form .wfacp_divider,html[data-theme="dark"] body #wfacp-e-form hr,html[data-theme="dark"] body #wfacp-e-form .wfacp-section,html[data-theme="dark"] body #wfacp-e-form table,html[data-theme="dark"] body #wfacp-e-form td,html[data-theme="dark"] body #wfacp-e-form th{border-color:var(--line)!important}
/* order bump (24-bollsen-order-bump sets --bump-accent/--bump-added; FunnelKit's box is white) */
html[data-theme="dark"] body .wfob_bump,html[data-theme="dark"] body .wfob_bgBox_table,html[data-theme="dark"] body .wfob_qv-main,html[data-theme="dark"] body .wfob_bump_section{background:var(--surface-soft-2)!important;background-color:var(--surface-soft-2)!important;color:var(--text)!important;border-color:var(--accent)!important}
html[data-theme="dark"] body .wfob_bump .wfob_title,html[data-theme="dark"] body .wfob_bump label,html[data-theme="dark"] body .wfob_bump p,html[data-theme="dark"] body .wfob_bump .wfob_bump_description,html[data-theme="dark"] body .wfob_bump .amount{color:var(--text)!important}
html[data-theme="dark"] body .wfob_bump .wfob_title strong,html[data-theme="dark"] body .wfob_bump .wfob_bump_title{color:var(--text-strong)!important}
/* checkout header/footer images are assets (BOLLSEN cares about you) — leave */

/* ---- FunnelKit side-cart drawer ---- */
html[data-theme="dark"] #fkcart-modal .fkcart-preview-ui,html[data-theme="dark"] #fkcart-modal .fkcart-panel,html[data-theme="dark"] #fkcart-modal .fkcart-modal-content,html[data-theme="dark"] #fkcart-modal .fkcart-footer,html[data-theme="dark"] #fkcart-modal .fkcart-header,html[data-theme="dark"] #fkcart-modal .fkcart-item-wrap,html[data-theme="dark"] #fkcart-modal .fkcart-carousel-wrap,html[data-theme="dark"] #fkcart-modal #fkcart-spl-addon,html[data-theme="dark"] #fkcart-modal .fkcart-spl-addons-wrap{background:var(--surface-soft)!important;background-color:var(--surface-soft)!important;color:var(--text)!important}
html[data-theme="dark"] #fkcart-modal .fkcart-item-wrap.fkcart-carousel-wrap,html[data-theme="dark"] #fkcart-modal .fkcart-upsell-wrap,html[data-theme="dark"] #fkcart-modal .fkcart-icon,html[data-theme="dark"] #fkcart-modal .fkcart-item-image{background:var(--surface-soft-2)!important;background-color:var(--surface-soft-2)!important}
html[data-theme="dark"] #fkcart-modal .fkcart-title,html[data-theme="dark"] #fkcart-modal .fkcart-item-title,html[data-theme="dark"] #fkcart-modal .fkcart-label,html[data-theme="dark"] #fkcart-modal .fkcart-item-meta,html[data-theme="dark"] #fkcart-modal .fkcart-progress-title,html[data-theme="dark"] #fkcart-modal .fkcart-summary-text,html[data-theme="dark"] #fkcart-modal strong,html[data-theme="dark"] #fkcart-modal .amount,html[data-theme="dark"] #fkcart-modal .fkcart-upsell-heading,html[data-theme="dark"] #fkcart-modal .fkcart--item-heading,html[data-theme="dark"] #fkcart-modal p,html[data-theme="dark"] #fkcart-modal span:not(.fkcart-item-count):not(.bshp-tag),html[data-theme="dark"] #fkcart-modal .sublium_upgrade_plan_btn{color:var(--text-strong)!important}
html[data-theme="dark"] #fkcart-modal .fkcart-progress,html[data-theme="dark"] #fkcart-modal .fkcart-progress>span{background:var(--surface-tile)!important}
html[data-theme="dark"] #fkcart-modal .fkcart-progress .fkcart-progress-bar,html[data-theme="dark"] #fkcart-modal .fkcart-progress>span>span{background:var(--accent)!important}
html[data-theme="dark"] #fkcart-modal .fkcart-item,html[data-theme="dark"] #fkcart-modal .fkcart-footer,html[data-theme="dark"] #fkcart-modal .fkcart-header,html[data-theme="dark"] #fkcart-modal .fkcart-item-wrap,html[data-theme="dark"] #fkcart-modal .fkcart-panel{border-color:var(--line)!important}
html[data-theme="dark"] #fkcart-modal input,html[data-theme="dark"] #fkcart-modal .fkcart-quantity-wrap,html[data-theme="dark"] #fkcart-modal .fkcart-qty-wrap,html[data-theme="dark"] #fkcart-modal .fkcart-coupon-wrap input{background:var(--surface-soft-2)!important;color:var(--text)!important;border-color:var(--line-2)!important}
html[data-theme="dark"] #fkcart-modal .fkcart-checkout--text{color:var(--on-accent)!important}
html[data-theme="dark"] #fkcart-modal .fkcart-close svg,html[data-theme="dark"] #fkcart-modal .fkcart-icon svg,html[data-theme="dark"] #fkcart-modal .fkcart-item-remove svg{fill:var(--text-strong);stroke:var(--text-strong)}

/* FunnelKit cart prints its palette as :root variables (fkcart-style-inline-css) — repoint them; the selector block above is the fallback */
html[data-theme="dark"]{--fkcart-bg-color:var(--surface-soft);--fkcart-primary-text-color:var(--text-strong);--fkcart-secondary-text-color:var(--text-muted);--fkcart-strike-through-price-text-color:var(--text-faint);--fkcart-border-color:var(--line);--fkcart-panel-color:var(--surface-soft-2);--fkcart-success-bg-color:var(--success-soft);--fkcart-success-color:var(--success);--fkcart-saving-text-price-color:var(--success);--fkcart-coupon-text-price-color:var(--success);--fkcart-error-bg-color:#3a1518;--fkcart-spl-addon-bg-color:var(--surface-soft-2);--fkcart-spl-addon-heading-color:var(--text-strong);--fkcart-spl-addon-description-color:var(--text);--fkcart-toggle-bg-color:transparent;--fkcart-toggle-icon-color:var(--text-strong);--fkcart-progress-bar-icon-color:var(--text-strong);--fkcart-color-black:var(--text-strong);--fkcart-accent-color:var(--text-strong)}

/* ---- round 6 ---- */
/* My Account (page 13) carries Alen's page-scoped colour CSS (body.page-id-13 …, some !important) — matched with !important */
html[data-theme="dark"] body .my-account .account-container,html[data-theme="dark"] body .my-account .woocommerce-MyAccount-content,html[data-theme="dark"] body .my-account .woocommerce-MyAccount-navigation{background:var(--surface-soft)!important;border-color:var(--line)!important;color:var(--text)!important}
html[data-theme="dark"] body .my-account-header h1,html[data-theme="dark"] body .my-account .account-container h3,html[data-theme="dark"] body .my-account label,html[data-theme="dark"] body .my-account-header a,html[data-theme="dark"] body .my-account a:not(.button),html[data-theme="dark"] body .my-account p,html[data-theme="dark"] body .my-account td,html[data-theme="dark"] body .my-account th{color:var(--text-strong)!important}
html[data-theme="dark"] body .my-account input[type=text],html[data-theme="dark"] body .my-account input[type=email],html[data-theme="dark"] body .my-account input[type=password],html[data-theme="dark"] body .my-account input[type=tel],html[data-theme="dark"] body .my-account select,html[data-theme="dark"] body .my-account textarea{background:var(--surface-soft-2)!important;color:var(--text)!important;border-color:var(--line-2)!important}
html[data-theme="dark"] body .my-account-header.page-title{border-color:var(--line)!important}
/* search results / archives: Flatsome post dates, YayCurrency switcher, cookie banner buttons */
html[data-theme="dark"] .post-date,html[data-theme="dark"] .post-date-day,html[data-theme="dark"] .post-date-month,html[data-theme="dark"] .from_the_blog_excerpt,html[data-theme="dark"] .post-item .box-text{color:var(--text)}
html[data-theme="dark"] .yay-currency-custom-select__trigger,html[data-theme="dark"] .yay-currency-custom-options{background:var(--surface-soft)!important;color:var(--text)!important;border-color:var(--line-2)!important}
html[data-theme="dark"] .yay-currency-selected-option,html[data-theme="dark"] .yay-currency-custom-option{color:var(--text)!important}
html[data-theme="dark"] .wcc-btn-customize{color:var(--text-strong)!important}
/* checkout polish */
html[data-theme="dark"] body #wfacp-e-form .wfacp_order_summary,html[data-theme="dark"] body #wfacp-e-form .wfacp_order_summary *:not(input):not(button):not(a),html[data-theme="dark"] body #wfacp-e-form .wfacp-order-summary-block *:not(input):not(button):not(a),html[data-theme="dark"] body #wfacp-e-form label span,html[data-theme="dark"] body #wfacp-e-form .woocommerce-form__label span,html[data-theme="dark"] body #wfacp-e-form .wfacp_mini_cart_item_title{color:var(--text)!important}
html[data-theme="dark"] body #wfacp-e-form .wfacp_order_summary .amount,html[data-theme="dark"] body #wfacp-e-form .wfacp_order_summary strong,html[data-theme="dark"] body #wfacp-e-form .wfacp_order_summary th{color:var(--text-strong)!important}
html[data-theme="dark"] body #wfacp-e-form .wfacp_coupon_apply_button,html[data-theme="dark"] body #wfacp-e-form button.wfacp_coupon_apply_button{background:var(--band)!important;color:var(--on-band)!important;border-color:var(--band)!important}
html[data-theme="dark"] body #wfacp-e-form .wfacp-or-text,html[data-theme="dark"] body #wfacp-e-form .wfacp-express-checkout-or{color:var(--text-muted)!important}

/* round 7: checkout blocks OUTSIDE the form (order summary sidebar, mobile summary bar, trust line, payment copy) */
html[data-theme="dark"] body .wfacp-template-container bdi,html[data-theme="dark"] body .wfacp-template-container .amount,html[data-theme="dark"] body .wfacp-template-container .wfacp_mini_cart_item_title,html[data-theme="dark"] body .wfacp-template-container strong,html[data-theme="dark"] body .wfacp-template-container th{color:var(--text-strong)!important}
html[data-theme="dark"] body .wfacp-template-container p,html[data-theme="dark"] body .wfacp-template-container span:not(.wfacp-form-control-label),html[data-theme="dark"] body .wfacp-template-container small,html[data-theme="dark"] body .wfacp-template-container td,html[data-theme="dark"] body .wfacp-template-container .includes_tax,html[data-theme="dark"] body .wfacp-template-container label{color:var(--text)!important}
html[data-theme="dark"] body .wfacp-template-container .wfacp_mb_cart_accordian,html[data-theme="dark"] body .wfacp-template-container .wfacp_mb_cart_accordian *,html[data-theme="dark"] body .wfacp-template-container .wfacp_mini_cart_toggle{background:var(--surface-soft)!important;color:var(--text-strong)!important}
html[data-theme="dark"] body .wfacp-template-container input.wfacp_mini_cart_update_qty,html[data-theme="dark"] body .wfacp-template-container .wfacp_product_quantity_number_field,html[data-theme="dark"] body .wfacp-template-container .wfacp_qty_wrap{background:var(--surface-soft-2)!important;color:var(--text)!important;border-color:var(--line-2)!important}
html[data-theme="dark"] body .wfacp-template-container a:not(.button):not([class*="btn"]):not(#place_order){color:var(--link-hover)!important}
html[data-theme="dark"] body .wfacp-template-container .wfacp_coupon_apply_button,html[data-theme="dark"] body .wfacp-template-container button.wfacp_coupon_apply_button,html[data-theme="dark"] body .wfacp-template-container .wfacp_coupon_apply_button:disabled{background:var(--band)!important;color:var(--on-band)!important;border-color:var(--band)!important;opacity:1}

html[data-theme="dark"] body .wfacp-template-container .wfacp-coupon-field-btn,html[data-theme="dark"] body .wfacp-template-container button.wfacp-coupon-field-btn{background:var(--band)!important;color:var(--on-band)!important;border-color:var(--band)!important}

/* round 8 (contrast audit): disabled checkout buttons, shop hero badge, noise-meter danger mark, payment-icon labels */
html[data-theme="dark"] body #wfacp-e-form button:disabled,html[data-theme="dark"] body #wfacp-e-form button[disabled],html[data-theme="dark"] body .wfacp_main_form button:disabled,html[data-theme="dark"] body .wfacp_main_form button[disabled]{background:var(--surface-tile)!important;color:var(--text-muted)!important;border-color:var(--surface-tile)!important}
html[data-theme="dark"] .bshp .bshp-badge{background:var(--surface-soft-2)!important}
html[data-theme="dark"] .nm-ax em,html[data-theme="dark"] .nm-meter::before{color:#ff8a7a;border-color:#ff8a7a}
html[data-theme="dark"] .checkout-button.button.alt,html[data-theme="dark"] .button.alt,html[data-theme="dark"] .button.secondary:not(.is-outline),html[data-theme="dark"] .bshp-tag{color:var(--on-accent)!important}
html[data-theme="dark"] .sgc .sgc-b2 small,html[data-theme="dark"] .sgc-bar .sgc-b2 small,html[data-theme="dark"] .sgc-add small{color:var(--on-accent)!important}
/* payment marks: brand logos (Visa blue, Apple Pay black, Klarna …) need a light tile in both themes — the tile followed --surface and went black (Armin, 2026-10-21); the two brand tiles .bk (blik) and .mp (MobilePay) keep their own colours */
html[data-theme="dark"] .bh-pay span:not(.bk):not(.mp){background:var(--white,#fff)!important}

/* FunnelKit upsell / thank-you pages (sling blocks; previewed on staging page 158344 = offer 129093): headings and
   paragraphs print #000 inline; product boxes stay white around the packshots. Gold groups keep their black text. */
html[data-theme="dark"] body .bwf-adv-heading:not(.has-secondary-background-color .bwf-adv-heading):not(.wp-block-group.has-secondary-background-color *),html[data-theme="dark"] body .bwf-section-wrap p:not(.has-secondary-background-color *),html[data-theme="dark"] body .bwf-section-wrap li,html[data-theme="dark"] body .bwf-section-wrap h1,html[data-theme="dark"] body .bwf-section-wrap h2,html[data-theme="dark"] body .bwf-section-wrap h3,html[data-theme="dark"] body .bwf-section-wrap h4{color:var(--text-strong)!important}
html[data-theme="dark"] body .wp-block-group.has-secondary-background-color,html[data-theme="dark"] body .wp-block-group.has-secondary-background-color *{color:var(--on-accent)!important}
html[data-theme="dark"] body .wfocu-product-box,html[data-theme="dark"] body .bwf-product-box,html[data-theme="dark"] body .wfocu_offer_product_wrap,html[data-theme="dark"] body .bwf-section-wrap .wp-block-image{background:var(--surface-soft)!important;border-color:var(--line)!important}
html[data-theme="dark"] body .bwf-section-wrap .wp-block-image img,html[data-theme="dark"] body .wfocu-product-image img{background:#fff;border-radius:8px}

/* 2026-11-13 dark pass, phase 1: FunnelKit "or" separators on basket (literal #737373, 3.6:1 on the dark panel) */
html[data-theme="dark"] #fkwcs-payment-request-separator label,html[data-theme="dark"] .fkwcppcp-express-or span{color:var(--text-muted)!important}
/* Review widgets (stylesheet comes from the reviews dashboard, one file for every shop): its colours are --brv-* variables
   set on the widget roots, so dark only repoints them. "body" keeps this above the shop's own override of --brv-muted. */
html[data-theme="dark"] body .brv,html[data-theme="dark"] body .brv-badge,html[data-theme="dark"] body .brv-trust,html[data-theme="dark"] body .brv-slider{--brv-muted:var(--text-muted);--brv-line:var(--line);--brv-card:var(--surface-soft);--brv-empty:var(--surface-tile);--brv-accent:var(--success);--brv-gold-ink:var(--amber-ink)}
/* Text set in the old theme navy (--navy-theme #293241 has no role: it is also a background elsewhere) */
html[data-theme="dark"] .bvl .bvl-tr p{color:var(--text)}

/* 2026-11-13 dark pass, phase 2: product pages */
/* Quantity tiles (WQM plugin): its colours are --wqm-* variables on :root; the product pages repoint two of them per page */
html[data-theme="dark"]{--wqm-bg:var(--surface-soft);--wqm-text:var(--text-strong);--wqm-border:var(--line-2);--wqm-stext:var(--text-strong);--wqm-sborder:var(--accent)}
html[data-theme="dark"] body.single-product .product-summary .wqm-qty-dyo{--wqm-border:var(--line-2)}
/* Labels on the success green: the dark green is a light colour, so its text is the dark ground, not white */
html[data-theme="dark"] .dg-save{color:var(--surface)!important}
/* Homepage / PDP video cards (mu 35): name is the navy alias --u-n, used as text */
html[data-theme="dark"] .ugc-n{color:var(--text-strong)}
/* Reviews before/after section: the per-product accent (inline --a) is a dark colour used as small text */
html[data-theme="dark"] .bv6 .bv6-k,html[data-theme="dark"] .bv6 .bv6-vf{color:var(--success)}
/* Flatsome's own table text (#666) */
html[data-theme="dark"] td,html[data-theme="dark"] th{color:var(--text-muted)}
html[data-theme="dark"] th{color:var(--text-strong)}
/* WorkPRO (28) and Music SoundPRO (26): their accent is a dark colour used as text on the dark bands */
html[data-theme="dark"] body.postid-28 .bs1f,html[data-theme="dark"] body.postid-28 .bts{--a:var(--amber-ink)}
html[data-theme="dark"] body.postid-28 .bv6 h2 span{color:var(--amber-ink)}
html[data-theme="dark"] body.postid-26 .bv6 h2 span{color:#a9adff}
/* Rooth C&P: its accent (--a = navy-2) is text and link colour on the dark ground */
html[data-theme="dark"] .brl{--a:var(--text-strong-2)}
/* Per-product accents that are too dark as text on the dark bands: Watersafe+ (29) blue, Pink Edition (142238) wine */
html[data-theme="dark"] body.postid-29 .bs1f,html[data-theme="dark"] body.postid-29 .bts{--a:#5cc3e6}
html[data-theme="dark"] body.postid-29 .bv6 h2 span{color:#5cc3e6}
/* Reviews section: the selected filter pill takes its colours from the product's inline accent set (dark text on a light or
   dark-green tint); in dark it is the success pair on every product */
html[data-theme="dark"] .bv6-r1:checked~.bv6-tabs .bv6-l1,html[data-theme="dark"] .bv6-r2:checked~.bv6-tabs .bv6-l2,html[data-theme="dark"] .bv6-r3:checked~.bv6-tabs .bv6-l3,html[data-theme="dark"] .bv6-r4:checked~.bv6-tabs .bv6-l4{background:var(--success-soft);border-color:var(--success);color:var(--success)}
/* Moto+ (25): near-black accent as heading text */
html[data-theme="dark"] body.postid-25 .bv6 h2 span{color:#c9ccd3}

/* 2026-11-13 dark pass, phase 3: homepage */
/* About block (157820): its colours are aliases of the brand tokens; --n is text everywhere except the navy panel */
html[data-theme="dark"] .bh-ab{--n:var(--text-strong);--t:var(--text);--m:var(--text-muted);--s:var(--surface-soft)}
html[data-theme="dark"] .bh-ab-ar{background:var(--band)}
html[data-theme="dark"] .bh-ab .bh-btn-s{color:var(--text-strong)!important;border-color:var(--text-strong)!important}
html[data-theme="dark"] .bh3b-c b{color:var(--text-strong)}

/* 2026-11-13 (Armin's staging review): side basket */
/* Checkout button: the price is a WooCommerce amount (site rule: prices in the strong text colour) on the gold button */
html[data-theme="dark"] #fkcart-modal #fkcart-checkout-button,html[data-theme="dark"] #fkcart-modal #fkcart-checkout-button *{color:var(--on-accent)!important}
/* Trustpilot strip under the button: one PNG with dark lettering on transparent; same trick as the press marks (colours keep their hue) */
html[data-theme="dark"] #fkcart-modal .fkcart_summary_cta::after{filter:invert(1) hue-rotate(180deg)}
/* Header menu: Unique Melody mark is a navy PNG; white copy (made from it 13 Nov, uploads/2026/10/unique-melody-mark-white.png) */
html[data-theme="dark"] #header #masthead .header-nav-main.nav-left>li.menu-um>a.nav-top-link{background-image:url(/wp-content/uploads/2026/10/unique-melody-mark-white.png)}

/* 2026-11-13 dark pass, phase 4: blog posts and old Flatsome pages */
/* Article stylesheet (sgc.css): text that sits on a background that does not flip keeps its light colour */
html[data-theme="dark"] .sgc-play{color:#13152b}
html[data-theme="dark"] .sgc .sgc-add{color:var(--on-accent)}
html[data-theme="dark"] .sgc-bar .sgc-add{color:var(--on-accent)}
html[data-theme="dark"] .sgc-card .sgc-atc .button{color:var(--on-accent)}
html[data-theme="dark"] .sgc-sico{color:#fff}
html[data-theme="dark"] .sgc-sheet .sgc-add{color:var(--on-accent)}
/* Old UX Builder pages: section backgrounds and text colours are typed into the shortcodes and printed as per-element id
   rules (#section_123{background-color:rgb(255,255,255)}, #text-123{color:rgb(0,0,0)}), so they can only be overridden
   wholesale. Banners keep their own text colour (it sits on a photo). */
html[data-theme="dark"] .section{background-color:var(--surface)!important}
html[data-theme="dark"] [id^="text-"]:not(.banner [id^="text-"]),html[data-theme="dark"] [id^="text-"]:not(.banner [id^="text-"])>*{color:var(--text)!important}
html[data-theme="dark"] body.single-post .col>.col-inner{background-color:transparent!important}
/* Boxes inside articles with a typed background (inline style in the post): text is light in dark, so the box must be dark */
html[data-theme="dark"] .sgc-art [style*="background"]:not(img):not(a):not(.button),html[data-theme="dark"] .entry-content [style*="background"]:not(img):not(a):not(.button){background-color:var(--surface-soft-2)!important}

/* 2026-11-13 dark pass: click-open parts */
/* Mobile menu: Flatsome types #4a4a4a for the links inside an opened group */
html[data-theme="dark"] .nav-vertical>li>ul li a{color:var(--text)}
/* Light islands: components that keep their light design in dark (pop-ups painted on a pale gradient). Inside them every
   role colour has its LIGHT value again, so their own rules and the general dark rules both resolve to the light look. */
html[data-theme="dark"] #bsn-pop,html[data-theme="dark"] #bdg-pop{--scheme:light;--text:#1d2036;--text-strong:#13152b;--text-strong-2:#2b2e66;--text-muted:#4a5170;--text-muted-2:#5b5f80;--text-faint:#8a8fa8;--surface:#ffffff;--surface-soft:#f5f6fb;--surface-soft-2:#fafbfd;--surface-soft-3:#eceef6;--surface-tile:#d5d8e3;--band:#13152b;--band-2:#2b2e66;--on-band:#ffffff;--on-band-muted:#c9cbe0;--line:#e3e5f0;--line-2:#e6e8ef;--line-strong:#13152b;--accent:#ffbc03;--on-accent:#13152b;--accent-hover:#ffc933;--link-hover:#2b2e66;--amber-soft:#fff3c4;--amber-ink:#9a5a00;--success:#1d7a4f;--success-soft:#e3f4ea;--sale:#b3000f;--bump:#b45309;--grad-band:linear-gradient(90deg,#13152b 0%,#2b2e66 50%,#13152b 100%);--grad-footer:linear-gradient(180deg,#2b2e66 0%,#1f2150 55%,#13152b 100%);--elev-1:0 1px 3px rgba(19,21,43,.08);--elev-2:0 18px 30px rgba(19,21,43,.14);--elev-hover:0 12px 28px rgba(19,21,43,.22);--elev-modal:0 24px 40px rgba(19,21,43,.14);color-scheme:light}

/* 2026-11-13 dark pass, phase 5: Build-your-pack (byp-v11.css) */
/* --bg is the white of its chips and cards; the season tint (--byp-tint, set per season) is a pale colour */
html[data-theme="dark"] [class^="byp-"],html[data-theme="dark"] [class*=" byp-"]{--bg:var(--surface)}
html[data-theme="dark"] .byp-sec.byp-tint{background:var(--surface-soft)!important}
/* BYP season tint is set on <body> by its script (style attribute): only !important reaches it */
html[data-theme="dark"] body{--byp-tint:var(--surface-soft)!important}
/* Order bump box (mu 24): typed #111 title and #555 description */
html[data-theme="dark"] .order-bump-box .bump-title,html[data-theme="dark"] .bump-title{color:var(--text-strong)}
html[data-theme="dark"] .order-bump-box .bump-desc{color:var(--text-muted)}

/* 2026-11-13 dark pass: last specific leftovers */
/* Pack labels ("Best value", "Most popular"): in light a navy or a green tab with white text. The dark green is a light colour
   and the dark navy disappears on the tile, so in dark every label is the success pair. Selector repeated to outrank the
   per-product rules (body.postid-N … [data-value] / .pdp-hl-g, all !important). */
html[data-theme="dark"] body.single-product .product-summary .wqm-qty-selector .wqm-highlight.wqm-highlight.wqm-highlight{background:var(--success)!important;color:var(--surface)!important}
/* Mix-and-match widget: "Change" link in the navy-2 alias */
html[data-theme="dark"] .bmix .bmix-sw{color:var(--text-strong-2)}
/* Homepage About: the outline button also carries .bh-btn, whose gold-button text rule would win */
html[data-theme="dark"] body.home #content .bh-ab .bh-btn-s{color:var(--text-strong)!important}
/* Review line under the buy button on BYP: typed through --review (#282828) in a style attribute */
html[data-theme="dark"]{--review:var(--text)}
/* IEM pages: numbered gold bullets (white numerals in light too, navy reads on gold), custom-fit steps, comparison table head */
html[data-theme="dark"] .u4 .u4-it em{color:var(--on-accent)!important}
html[data-theme="dark"] #bsf,html[data-theme="dark"] #bsf li,html[data-theme="dark"] #bsf p,html[data-theme="dark"] #bsf button{color:var(--text)}
html[data-theme="dark"] .sgx-tbl th{background-color:var(--band)}
/* Dog page gallery card and Pink Edition "Add" pill: text that sat on a pale tile which is dark now */
html[data-theme="dark"] body .dgg-card,html[data-theme="dark"] body .dgg-card b{color:var(--text-strong)}
html[data-theme="dark"] body.postid-142238 a.wsr-add{color:var(--text-strong)!important}
