/* Device colour preference is independent of the saved Normal/Clear layout.
   CSS follows changes immediately, even without JS, storage or a page reload.
   Keep this stylesheet after each surface's own CSS. Do not invert images/PDFs. */
:root { color-scheme: light; }

@media screen and (prefers-color-scheme: light) {
  /* Small gold labels need a darker ink on the existing light surfaces. */
  :root:not([data-display-mode="clear"]) :is(.eyebrow,.review-rating,.brand small) { color: #805a17; }
  :root:not([data-display-mode="clear"]) .area-section .eyebrow { color: #e1b969; }
}

@media screen and (prefers-color-scheme: dark) {
  :root:not([data-display-mode="clear"]) {
    color-scheme: dark;
    color: var(--ink);
    background: var(--canvas);
    --ink: #edf2fa;
    --navy: #edf2fa;
    --navy-soft: #c9dbf3;
    --canvas: #101720;
    --cream: #101720;
    --surface: #1b2532;
    --wash: #263343;
    --line: #526174;
    --control-line: #718196;
    --muted: #b8c4d5;
    --gold: #e7bd70;
    --gold-soft: #352d20;
    --focus: #91c5ff;
    --danger: #ffabb1;
    --success: #8edba6;
    --accent: #d9e7fa;
    --accent-hover: #bdd4f2;
    --accent-ink: #101720;
    --shadow: 0 18px 44px rgb(0 0 0 / 24%);
    --ek-base: var(--canvas);
    --ek-contrast: var(--ink);
    --ek-text: #c6d0df;
    --ek-muted: var(--muted);
    --ek-card: var(--surface);
    --ek-warm: var(--wash);
    --ek-gold: var(--gold);
    --ek-focus: var(--focus);
    --ek-border: var(--line);
    --wp--preset--color--base: var(--canvas);
    --wp--preset--color--contrast: var(--ink);
  }

  /* Purchase, customer/broker portal and the guided booking path. */
  :root:not([data-display-mode="clear"]) :is(.site-header,.site-footer,.sales-section,.building-row,.target-summary,.date-button,.later-week-section,.order-summary,.contact-limit,.mobile-booking-dock,.proof-grid article,.review-grid article,.service-card-grid article,.address-suggestions) { background: var(--surface); border-color: var(--line); }
  :root:not([data-display-mode="clear"]) :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select) { color: var(--ink); background-color: var(--surface); border-color: var(--control-line); }
  :root:not([data-display-mode="clear"]) :is(input,textarea)::placeholder { color: var(--muted); opacity: 1; }
  :root:not([data-display-mode="clear"]) :is(.starting-prices__item span,.step,.brand small) { color: var(--muted); }
  :root:not([data-display-mode="clear"]) :is(.renewal-questionnaire,.week-card-header,.request-context,.summary-note,.notice,.service-mode-option.is-selected) { background: var(--wash); }
  :root:not([data-display-mode="clear"]) :is(.button.primary,.step.is-active .step-number,.step.is-done .step-number,.renewal-answers button.is-selected,.date-button.is-selected,.time-button.is-selected,.entry-mode button[aria-pressed="true"],.portal-times button[aria-pressed="true"],.cheapest-slot-icon,.time-button.compact small) { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
  :root:not([data-display-mode="clear"]) .button.primary:hover:not(:disabled) { background: var(--accent-hover); }
  :root:not([data-display-mode="clear"]) .button.primary.product-continue:disabled { background: #536174; color: #e6edf7; border-color: #718196; }
  :root:not([data-display-mode="clear"]) :is(.button.secondary:hover,.icon-button:hover:not(:disabled),.mobile-nav nav a:hover,.time-button:hover:not(:disabled),.address-suggestions button:hover) { background: var(--wash); }
  :root:not([data-display-mode="clear"]) .time-button.is-selected:hover:not(:disabled) { background: var(--accent-hover); }
  :root:not([data-display-mode="clear"]) .date-button.is-unavailable:disabled { background: var(--canvas); color: var(--muted); }
  :root:not([data-display-mode="clear"]) :is(.week-jump-nav a.is-cheapest,.week-jump-nav a:hover,.time-button.compact.is-cheapest:not(.is-selected)) { background: var(--gold-soft); }
  :root:not([data-display-mode="clear"]) :is(.best-badge,.cheapest-slot-copy .eyebrow) { color: var(--gold); }
  :root:not([data-display-mode="clear"]) .cheapest-slot-icon svg { color: var(--accent-ink); }
  :root:not([data-display-mode="clear"]) :is(.form-error,.hold-feedback) { background: #3c252c; color: var(--danger); border-color: #aa7078; }
  :root:not([data-display-mode="clear"]) .hold-feedback.is-review { background: var(--gold-soft); color: var(--gold); border-color: var(--gold); }
  :root:not([data-display-mode="clear"]) :is(.partner-discount,.remove-building) { color: var(--success); }
  :root:not([data-display-mode="clear"]) .remove-building { color: var(--danger); }
  :root:not([data-display-mode="clear"]) :is(.wayless-credit,.price-feedback-button,.dialog-success > svg,.receipt-mark) { background: #1d352d; color: var(--success); border-color: #659a7a; }
  :root:not([data-display-mode="clear"]) :is(.price-feedback-button:hover,.price-feedback-button:focus-visible) { background: #29483b; }
  :root:not([data-display-mode="clear"]) :is(.confirmation-icon,.contact-success-icon) { background: #286342; color: #fff; }
  :root:not([data-display-mode="clear"]) .area-section { background: #15283e !important; }
  :root:not([data-display-mode="clear"]) :focus-visible { outline-color: var(--focus); }
  :root:not([data-display-mode="clear"]) :is(input,textarea,select):focus { border-color: var(--focus); }

  /* Native articles, services, contact forms, voice controls and media pages. */
  :root:not([data-display-mode="clear"]) body.wp-theme-twentytwentyfive { background: var(--canvas); color: var(--ek-text); }
  :root:not([data-display-mode="clear"]) body.ek-editorial { --article-paper: var(--canvas); --article-ink: var(--ink); --article-text: var(--ek-text); --article-muted: var(--muted); --article-rule: var(--line); background: var(--article-paper); }
  :root:not([data-display-mode="clear"]) .ek-site-header { background: rgb(16 23 32 / 94%); border-color: var(--line); }
  :root:not([data-display-mode="clear"]) .ek-site-header__brand-tag { color: var(--gold); }
  :root:not([data-display-mode="clear"]) .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--wash); }
  :root:not([data-display-mode="clear"]) :is(.ek-hero__lead,.ek-hero-panel__intro,.ek-card p,.ek-step p,.ek-hero-panel li,.ek-post-card .wp-block-post-excerpt__excerpt,.ek-article-content > p:first-of-type,.ek-article-content p,.ek-article-content li) { color: var(--ek-text); }
  :root:not([data-display-mode="clear"]) :is(.ek-article-content a:hover,.ek-trust-badges a) { color: var(--ink); }
  :root:not([data-display-mode="clear"]) :is(.ek-card,.ek-step,.ek-hero-panel,.ek-post-card,.ek-section--warm,.ek-trust-badges p,.ek-silta-dialog,.ek-silta-dialog__cancel,.ek-contact-shell__panel,.ek-contact-shell__aside,.ek-contact-shell__aside-block--soft,.ek-contact-shell__link-card,.ek-contact-shell__links a,.ek-contact-options__tabs,.ek-voice-message__badge,.ek-voice-message__recorder,.ek-voice-message__wave,.ek-voice-message__button,.ek-voice-message__remove,.ek-voice-message__item,.wp-block-navigation__responsive-container.is-menu-open) { background: var(--surface); color: var(--ink); border-color: var(--line); }
  :root:not([data-display-mode="clear"]) :is(.ek-contact-shell__form > p:first-child,.ek-section-badge,.ek-post-category a,.ek-section-badge--soft) { background: var(--gold-soft); color: var(--gold); border-color: var(--gold); }
  :root:not([data-display-mode="clear"]) .ek-contact-shell__eyebrow { color: var(--gold); }
  :root:not([data-display-mode="clear"]) :is(.ek-native-form [data-ek-form-submit],.ek-silta-dialog__accept,.ek-voice-message__button--primary,.ek-button-primary .wp-element-button,.ek-button-primary .wp-block-button__link) { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
  :root:not([data-display-mode="clear"]) :is(.ek-silta-dialog__accept,.ek-voice-message__button--primary,.ek-button-primary .wp-element-button,.ek-button-primary .wp-block-button__link):hover { background: var(--accent-hover); border-color: var(--accent-hover); }
  :root:not([data-display-mode="clear"]) body.ek-contact-page .ek-contact-options__tab[aria-selected="true"] { background: var(--accent) !important; color: var(--accent-ink) !important; }
  :root:not([data-display-mode="clear"]) .ek-silta--pcfi-button :is(.ek-silta__button,.ek-silta__link) { color: var(--ink); border-color: var(--line); }
  :root:not([data-display-mode="clear"]) .ek-voice-message__unsupported { background: var(--gold-soft); color: var(--gold); }
  :root:not([data-display-mode="clear"]) .ek-voice-message__status[data-state="success"] { color: var(--success); }
  :root:not([data-display-mode="clear"]) .ek-voice-message__status[data-state="error"] { color: var(--danger); }
  :root:not([data-display-mode="clear"]) .ek-voice-message__wave span { background: var(--muted); }
  :root:not([data-display-mode="clear"]) .ek-site-footer { background: #0b1119; }

  /* Multi-address calculator defines its tokens on the component itself. */
  :root:not([data-display-mode="clear"]) .pcfi-multi {
    --pcfi-multi-bg: var(--canvas); --pcfi-multi-panel: var(--surface);
    --pcfi-multi-text: var(--ink); --pcfi-multi-muted: var(--muted);
    --pcfi-multi-border: var(--line); --pcfi-multi-neutral-border: var(--control-line);
    --pcfi-multi-neutral-bg: var(--surface); --pcfi-multi-soft: #1d352d; --pcfi-multi-soft-strong: var(--wash);
    --pcfi-multi-accent: #8edba6; --pcfi-multi-accent-dark: #8edba6;
    --pcfi-multi-success-bg: #1d352d; --pcfi-multi-success-border: #659a7a;
    --pcfi-multi-warn: var(--danger); --pcfi-multi-warn-bg: #3c252c; --pcfi-multi-warn-border: #aa7078;
    --pcfi-multi-focus: var(--focus);
  }
  :root:not([data-display-mode="clear"]) .pcfi-multi :is(input,textarea,select,.pcfi-multi-button) { background: var(--surface); color: var(--ink); }
  :root:not([data-display-mode="clear"]) .pcfi-multi :is(.pcfi-multi-method-card,.pcfi-multi-suggestion,.pcfi-multi-row,.pcfi-multi-ready.is-not-ready,.pcfi-multi-quote,.pcfi-multi-afterword__facts div,.pcfi-multi-address-card.is-address-action-needed,.pcfi-multi-address-card.is-address-searching) { background: var(--surface); color: var(--ink); }
  :root:not([data-display-mode="clear"]) .pcfi-multi-address-card.is-address-ok { background: #1d352d; }
  :root:not([data-display-mode="clear"]) .pcfi-multi-address-card.is-address-error { background: #3c252c; }
  :root:not([data-display-mode="clear"]) .pcfi-multi-button--primary { background: #8edba6; color: #101720; }
  :root:not([data-display-mode="clear"]) .pcfi-multi-button--primary:hover { background: #b0ebc2; }
}

/* Paper exports remain light and readable when the device is in dark mode. */
@media print {
  :root { color-scheme: light; }
}
