/* Frontend only. Also gated here for optimisers that combine stylesheets.
   Never invert images, canvases, colour swatches or payment-provider iframes.
   Keep literal brand black/white tokens intact: they also colour gold buttons. */
@media (prefers-color-scheme: dark) {
  body {
    color-scheme: dark;
    --ck-dm-bg: #101318;
    --ck-dm-surface: #191e26;
    --ck-dm-raised: #242b36;
    --ck-dm-text: #edf0f5;
    --ck-dm-muted: #b7c0ce;
    --ck-dm-border: #495566;
    --ck-dm-gold: #fec610;
    --ck-text: var(--ck-dm-text);
    --ck-mid: var(--ck-dm-muted);
    --ck-text-muted: var(--ck-dm-muted);
    --fs-color-base: var(--ck-dm-text);
    --fs-experimental-link-color: var(--ck-dm-text);
    --ck-ows-text: var(--ck-dm-text);
    --ck-ows-muted: var(--ck-dm-muted);
    --ck-ows-border: var(--ck-dm-border);
    background-color: var(--ck-dm-bg);
    color: var(--ck-dm-text);
  }

  body #wrapper, body #main, body .header-wrapper,
  body .header-bg-color, body .header-main, body .header-bg-image {
    background-color: var(--ck-dm-bg);
  }

  /* Low specificity lets intentional dark heroes and gold buttons retain ink. */
  body :where(h1, h2, h3, h4, h5, h6, label, legend, th, td, strong,
    .price, .amount, .product-title, .woocommerce-breadcrumb, .breadcrumbs) {
    color: var(--ck-dm-text);
  }
  body :where(a:not(.button):not(.wp-element-button)) { color: var(--ck-dm-text); }
  body :where(a:not(.button):not(.wp-element-button)):hover { color: var(--ck-dm-gold); }
  body :where(hr, fieldset, th, td, .is-divider, .product-section, .col-border,
    .cart_totals, .shop_table, .woocommerce-MyAccount-navigation li) { border-color: var(--ck-dm-border); }
  body :where(.is-divider) { background-color: var(--ck-dm-border); }
  body :where(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--ck-dm-gold);
    outline-offset: 3px;
  }

  /* Exclude submit buttons, checks, radios, ranges and image upload controls. */
  body :is(input[type="text"], input[type="email"], input[type="tel"],
    input[type="password"], input[type="number"], input[type="search"],
    input[type="url"], input[type="date"], select, textarea) {
    background-color: var(--ck-dm-surface);
    color: var(--ck-dm-text);
    border-color: var(--ck-dm-border);
    box-shadow: none;
  }
  body :is(input, textarea)::placeholder { color: var(--ck-dm-muted); opacity: 1; }
  body :is(input, select, textarea):focus { border-color: var(--ck-dm-gold); }
  body :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--ck-dm-gold); }
  body .quantity .is-form { background: var(--ck-dm-raised); color: var(--ck-dm-text); border-color: var(--ck-dm-border); }
  body .header-nav :is(.nav-top-link, .header-cart-link),
  body .mobile-nav .nav-top-link { color: var(--ck-dm-text); }
  /* The normal logo has black lettering: give just the logo a light backing. */
  body #logo img.header_logo { background-color: #fff; border-radius: 6px; }
  body .nav-dropdown, body .off-canvas .mfp-content,
  body .lightbox-content, body .account-login-inner, body #cart-popup,
  body .autocomplete-suggestions, body .search-results { background-color: var(--ck-dm-surface); color: var(--ck-dm-text); }
  body :is(.nav-dropdown, .off-canvas .mfp-content) a:not(.button) { color: var(--ck-dm-text); }
  body .mfp-close { color: var(--ck-dm-text); }
  body .button.is-outline { color: var(--ck-dm-text); border-color: var(--ck-dm-border); }
  body .button.is-outline:hover { background-color: var(--ck-dm-raised); }
  body .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp input.dgwt-wcas-search-input {
    /* FiboSearch's compact/hover variants otherwise restore a white input. */
    background-color: var(--ck-dm-surface) !important; color: var(--ck-dm-text); border-color: var(--ck-dm-gold);
  }
  body .dgwt-wcas-suggestions-wrapp, body .dgwt-wcas-details-wrapp,
  body .dgwt-wcas-suggestion { background: var(--ck-dm-surface); color: var(--ck-dm-text); }
  body .dgwt-wcas-suggestion :is(.dgwt-wcas-st, .dgwt-wcas-sp, .amount) { color: var(--ck-dm-text); }
  body .dgwt-wcas-search-wrapp input.dgwt-wcas-search-input::placeholder { color: var(--ck-dm-muted); }

  /* OverSeek mounts both inline searches and mobile dialogs under body. Use
     its own tokens so results, history, icons and prices share one palette. */
  body {
    --overseek-primary: var(--ck-dm-gold);
    --overseek-primary-hover: #ffda66;
    --overseek-bg: var(--ck-dm-surface);
    --overseek-bg-hover: var(--ck-dm-raised);
    --overseek-border: var(--ck-dm-border);
    --overseek-text: var(--ck-dm-text);
    --overseek-text-muted: var(--ck-dm-muted);
    --overseek-shadow: 0 10px 40px rgba(0, 0, 0, .45);
  }
  body :is(.overseek-search-wrapper, .overseek-dropdown, .overseek-mobile-modal) { color: var(--ck-dm-text); }
  body .overseek-search-input-container { border-color: var(--ck-dm-muted); }
  body .overseek-search-input-container:focus-within {
    border-color: var(--ck-dm-gold);
    box-shadow: 0 0 0 3px rgba(254, 198, 16, .2);
  }
  body .overseek-search-trigger { border-color: var(--ck-dm-muted); }
  body .overseek-search-trigger:is(:hover, :focus-visible) { border-color: var(--ck-dm-gold); }
  body :is(.overseek-mobile-input-wrapper, .overseek-search-trigger__shortcut) {
    background: var(--ck-dm-raised);
    border-color: var(--ck-dm-border);
    color: var(--ck-dm-muted);
  }
  body :is(input.overseek-search-input, input.overseek-mobile-input) {
    background: transparent;
    color: var(--ck-dm-text);
    caret-color: var(--ck-dm-gold);
  }
  body .overseek-mobile-input-wrapper:focus-within { outline: 2px solid var(--ck-dm-gold); outline-offset: 2px; }
  body .overseek-dropdown__product-title mark {
    background: rgba(254, 198, 16, .18);
    color: var(--ck-dm-gold);
  }
  body .overseek-dropdown__did-you-mean button:hover { background: var(--ck-dm-raised); }
  body .overseek-dropdown__history-delete:is(:hover, :focus-visible) { background: var(--ck-dm-raised); color: #ff9494; }
  body .overseek-dropdown__history-delete:focus-visible { opacity: 1; }

  /* Shared content pages: use surfaces, not inverted brand colour constants. */
  body .ck-page { --ck-white: var(--ck-dm-surface); --ck-light: var(--ck-dm-raised); --ck-border: var(--ck-dm-border); }
  body .ck-pg-card p, body .ck-pg-toggle__body, body .ck-pg-list li { color: var(--ck-dm-muted); }
  body .ck-pg-toggle summary:hover { background: var(--ck-dm-raised); }
  body .ck-pg-toggle[open] .ck-pg-toggle__body { border-color: var(--ck-dm-border); }
  body .ck-pg-toggle:hover { border-color: var(--ck-dm-muted); }
  body .ck-trust-title { color: var(--ck-dm-text); }
  body .ck-trust-desc { color: var(--ck-dm-muted); }
  body .ck-trust-item { border-color: var(--ck-dm-border); }
  body .ck-about-title { color: var(--ck-dm-text); }
  body .ck-about-lead { color: var(--ck-dm-muted); }
  body .os-reviews-summary__rating strong { color: var(--ck-dm-text); }
  body .ck-faq { background: var(--ck-dm-bg); }
  body .ck-faq-sh h2, body .ck-faq-item summary,
  body .ck-faq-item .ck-faq-toggle, body .ck-faq-body strong { color: var(--ck-dm-text); }
  body .ck-faq-sh p, body .ck-faq-body { color: var(--ck-dm-muted); }
  body .ck-faq-sh-label, body .ck-faq-item summary:hover { color: var(--ck-dm-gold); }
  body .ck-faq-sh-label::before { color: var(--ck-dm-muted); }
  body .ck-faq-item, body .ck-faq-item:hover, body .ck-faq-item[open],
  body .ck-faq-body ul { border-color: var(--ck-dm-border); }
  body .ck-contact { --surface: var(--ck-dm-surface); --surface-alt: var(--ck-dm-surface); --text: var(--ck-dm-text); --muted: var(--ck-dm-muted); --ck-contact-paper: var(--ck-dm-bg); --ck-contact-muted: var(--ck-dm-muted); }
  body .ck-contact__details { color: var(--ck-dm-text); }
  body .ck-contact__details :is(h2, h3, strong) { color: var(--ck-dm-text); }
  body .ck-contact__faq { background: var(--ck-dm-surface); border-color: var(--ck-dm-border); }
  body .ck-contact__faq:hover, body .ck-contact__faq:focus-visible { background: var(--ck-dm-raised); border-color: var(--ck-dm-gold); }

  /* Catalogue, product copy and the native WooCommerce account area. */
  body .box-text, body .product-small .box-text,
  body .woocommerce-tabs, body .woocommerce-MyAccount-content,
  body .woocommerce .col2-set, body .woocommerce form.login,
  body .woocommerce form.register { background-color: var(--ck-dm-bg); color: var(--ck-dm-text); }
  body.woocommerce-account #customer_login .woocommerce-form,
  body .lightbox-content .woocommerce :is(form.login, form.register),
  body .mfp-wrap .woocommerce :is(form.login, form.register) { background: var(--ck-dm-surface); border-color: var(--ck-dm-border); }
  body .page-title:not(.featured-title) { background-color: var(--ck-dm-surface); }
  body span.amount, body .breadcrumbs, body .breadcrumbs a { color: var(--ck-dm-text); }
  body .ck-standard-product-layout { --sp-ink: var(--ck-dm-text); --sp-muted: var(--ck-dm-muted); --sp-border: var(--ck-dm-border); background: var(--ck-dm-bg); }
  body .ck-standard-product-layout .sp-purchase .single_add_to_cart_button { color: #141414; }
  body .ck-standard-product-layout .sp-purchase .single_add_to_cart_button:hover:not(:disabled):not(.disabled) { color: #141414; }
  body .ck-pfaq { --white: var(--ck-dm-surface); --light: var(--ck-dm-raised); --text: var(--ck-dm-text); --muted: var(--ck-dm-muted); }
  body .ck-pfaq__list summary:hover, body .ck-pfaq__list a:hover { color: var(--ck-dm-gold); }
  /* Review summaries, cards and the inline review form (not media lightboxes). */
  body .os-reviews-shell, body .os-review-form { color: var(--ck-dm-text); }
  body .os-reviews-summary, body .os-review-card, body .os-review-row,
  body .os-review-form, body .os-review-form--first-review,
  body .os-reviews-empty { background: var(--ck-dm-surface); border-color: var(--ck-dm-border); }
  body .os-reviews-summary__brand strong, body .os-review-card__author,
  body .os-review-card__content p, body .os-review-row__content p,
  body .os-review-card__product :is(a, span), body .os-review-form h3,
  body .os-review-form__field span, body .os-review-form__rating legend { color: var(--ck-dm-text); }
  body .os-reviews-summary__brand :is(span, small), body .os-reviews-summary__rating span,
  body .os-review-card time, body .os-review-row__meta,
  body .os-review-form__header p, body .os-review-form small { color: var(--ck-dm-muted); }
  body .os-review-form__dropzone, body .os-review-card__reply { background: var(--ck-dm-raised); border-color: var(--ck-dm-border); }
  body .os-review-card__reply p { color: var(--ck-dm-text); }
  body .os-review-card__verified { color: #7de0b9; }
  body .os-reviews-summary__action { color: #141414; }
  body .os-reviews-summary__action:hover { color: #141414; }
  body .woocommerce-ordering.ck-sf { background: var(--ck-dm-surface); border-color: var(--ck-dm-border); }
  body .ck-sf select.ck-sf__s { background-color: var(--ck-dm-raised); color: var(--ck-dm-text); border-color: var(--ck-dm-border); }
  body .ck-sf .ck-sf__l { color: var(--ck-dm-gold); }
  body .ck-sf .ck-sf__h { color: var(--ck-dm-muted); }
  body .woocommerce .term-description,
  body .woocommerce .term-description :is(h3, summary, a) { color: var(--ck-dm-text) !important; }
  body .woocommerce .term-description details { border-color: var(--ck-dm-border); }
  body .ck-search-empty { --search-ink: var(--ck-dm-text); --search-border: var(--ck-dm-border); }
  body .ck-search-empty :is(input[type="search"], .ck-search-empty__categories a) { background: var(--ck-dm-surface); color: var(--ck-dm-text); }
  body .ck-search-empty .ck-search-empty__categories a:hover { background: var(--ck-dm-raised); }

  /* PersonaliseIT controls only. The preview canvas and clipart keep original
     artwork colours and a light backing, including transparent black artwork. */
  body .oc-customiser-panel {
    color: var(--ck-dm-text);
    --oc-fg: var(--ck-dm-text);
    --oc-fg-muted: var(--ck-dm-muted);
    --oc-border: var(--ck-dm-border);
    --oc-border-strong: var(--ck-dm-muted);
    --oc-surface: var(--ck-dm-surface);
    --oc-surface-2: var(--ck-dm-raised);
    --oc-danger: #ffaaa3;
  }
  body .oc-customiser-panel .oc-control-group label { color: var(--ck-dm-text); }
  body .oc-customiser-panel .oc-layer-header { color: var(--ck-dm-text); }
  body .oc-customiser-panel .oc-control-group :is(input[type="text"], input[type="url"], select, textarea),
  body .oc-customiser-panel .oc-night-sky-grid--datetime input,
  body .oc-customiser-panel :is(.oc-font-search, .oc-font-options, .oc-clipart-search) {
    background-color: var(--ck-dm-surface); color: var(--ck-dm-text); border-color: var(--ck-dm-border);
  }
  body .oc-customiser-panel .oc-control-group .oc-input-wrap > .oc-char-counter { background: var(--ck-dm-raised); }
  body .oc-customiser-panel .oc-font-option:is(:hover, :focus-visible, [aria-selected="true"]) { color: #141414; }
  body .oc-customiser-panel .oc-clipart-item:hover { background: #fff8df; }
  body .ck-ows-gift-wrap { background: var(--ck-dm-surface); color: var(--ck-dm-text); border-color: var(--ck-dm-border); }
  body .ck-ows-gift-wrap.is-selected { border-color: var(--ck-dm-gold); }
  body .ck-ows-gift-wrap__heading span,
  body .ck-ows-gift-wrap .ck-ows-gift-wrap__description,
  body .ck-ows-gift-wrap__message small { color: var(--ck-dm-muted); }
  body .ck-ows-gift-wrap__message { border-color: var(--ck-dm-border); }
  body .ck-ows-gift-wrap .ck-ows-gift-wrap__message textarea { background: var(--ck-dm-raised); color: var(--ck-dm-text); border-color: var(--ck-dm-border); }
  body .wcpa_wrap {
    --wcpasectiontitlecolor: var(--ck-dm-text);
    --wcpalabelcolor: var(--ck-dm-text);
    --wcpachecklabelcolor: var(--ck-dm-text);
    --wcpadesccolor: var(--ck-dm-muted);
    --wcpainputbgcolor: var(--ck-dm-surface);
    --wcpainputcolor: var(--ck-dm-text);
    --wcpabordercolor: var(--ck-dm-border);
    --wcpalinecolor: var(--ck-dm-border);
    --wcpaerrorcolor: #ffaaa3;
  }

  /* Classic and block carts/checkout. Never change visibility, geometry,
     loading states, express-payment buttons or third-party iframe contents. */
  body .ck-cart { --cart-ink: var(--ck-dm-text); --cart-muted: var(--ck-dm-muted); --cart-light: var(--ck-dm-surface); --cart-border: var(--ck-dm-border); background: var(--ck-dm-bg); }
  body .ck-cart .cart-intro { background: #141414; }
  body .ck-cart :is(.cart-browse-link, .wc-block-cart__submit-button) { color: #141414 !important; }
  body .ck-checkout { --co-ink: var(--ck-dm-text); --co-muted: var(--ck-dm-muted); --co-light: var(--ck-dm-surface); --co-border: var(--ck-dm-border); background: var(--ck-dm-bg); }
  body .ck-checkout .co-header { background: #141414; }
  body .ck-checkout .co-check-note { background: #332b13; }
  body .ck-checkout .wfacp-checkout-form-block #place_order { color: #141414 !important; }
  body .woocommerce-checkout #payment,
  body .woocommerce-checkout #payment .payment_box,
  body .wc-block-cart__submit-container,
  body .wc-block-components-order-summary,
  body .wc-block-components-totals-wrapper { background-color: var(--ck-dm-surface); color: var(--ck-dm-text); border-color: var(--ck-dm-border); }
  body .woocommerce-checkout #payment .payment_box::before { border-bottom-color: var(--ck-dm-surface); }
  body .woocommerce :is(.woocommerce-info, .woocommerce-message),
  body .wc-block-components-notice-banner.is-info,
  body .wc-block-components-notice-banner.is-success { background-color: var(--ck-dm-surface); color: var(--ck-dm-text); border-color: var(--ck-dm-gold); }
  body .woocommerce .woocommerce-error,
  body .wc-block-components-notice-banner.is-error { background-color: #351e24; color: #ffcfcb; border-color: #ffaaa3; }

  /* Order confirmation uses --ty-ink for text AND the dark hero. Split those
     roles here so a text-colour swap cannot turn the hero/buttons white. */
  body .ck-order-received { --ty-ink: var(--ck-dm-text); --ty-muted: var(--ck-dm-muted); --ty-border: var(--ck-dm-border); background: var(--ck-dm-bg); }
  body .ck-order-received .ck-ty-hero { background: #141414; }
  body .ck-order-received :is(.ck-ty-summary, .ck-ty-help, .ck-ty-support),
  body .ck-order-received .ck-ty-native > :is(.woocommerce-order-details, .woocommerce-customer-details, .woocommerce-order-downloads) { background: var(--ck-dm-surface); }
  body .ck-order-received .ck-ty-native td { color: var(--ck-dm-text); }
  body .ck-order-received .button.ck-ty-primary,
  body .ck-order-received .ck-ty-steps li::before { color: #141414; }
  body .ck-order-received .ck-ty-social-links a { background: #141414; }
  body .ck-order-received .ck-ty-social-links a:hover { background: var(--ty-gold); color: #141414; }
}
