/* 7.59 – one semantic palette for the public site; controls work without third-party services. */
:root {
  --esv-color-page: #F3F6F4;
  --esv-color-surface: #FFFFFF;
  --esv-color-surface-2: #E9F1EC;
  --esv-color-text: #1A3023;
  --esv-color-muted: #53675B;
  --esv-color-border: #CCD9D0;
  --esv-color-control-border: #718478;
  --esv-color-primary: #00873B;
  --esv-color-on-primary: #FFFFFF;
  --esv-color-primary-hover: #006F30;
  --esv-color-link: #007A35;
  --esv-color-focus: #006B2E;
  --esv-color-hero: #063F2A;
  --esv-color-hero-text: #F2F6F3;
  --esv-color-hero-muted: #C7DDD0;
  --esv-color-success-bg: #EAF6ED;
  --esv-color-success-text: #17693E;
  --esv-color-error-bg: #FFF1F1;
  --esv-color-error-text: #A4262C;
  --esv-color-warning-bg: #FFF7DC;
  --esv-color-warning-text: #785800;
  color-scheme: light;
}
:root[data-esv-theme="dark"] {
  --esv-color-page: #0F1713;
  --esv-color-surface: #17231C;
  --esv-color-surface-2: #213127;
  --esv-color-text: #F2F6F3;
  --esv-color-muted: #BCCAC1;
  --esv-color-border: #34483B;
  --esv-color-control-border: #789885;
  --esv-color-primary: #53D18B;
  --esv-color-on-primary: #0D2116;
  --esv-color-primary-hover: #76DDA3;
  --esv-color-link: #53D18B;
  --esv-color-focus: #8EE7B0;
  --esv-color-hero: #063F2A;
  --esv-color-hero-text: #F2F6F3;
  --esv-color-hero-muted: #C7DDD0;
  --esv-color-success-bg: #153824;
  --esv-color-success-text: #8CE7B2;
  --esv-color-error-bg: #361D23;
  --esv-color-error-text: #FFB4B8;
  --esv-color-warning-bg: #362C13;
  --esv-color-warning-text: #F6D986;
  color-scheme: dark;
}
/* No-JavaScript fallback respects the configured site default and OS preference. */
@media (prefers-color-scheme:dark) {
:root[data-esv-theme="auto"] {
  --esv-color-page: #0F1713;
  --esv-color-surface: #17231C;
  --esv-color-surface-2: #213127;
  --esv-color-text: #F2F6F3;
  --esv-color-muted: #BCCAC1;
  --esv-color-border: #34483B;
  --esv-color-control-border: #789885;
  --esv-color-primary: #53D18B;
  --esv-color-on-primary: #0D2116;
  --esv-color-primary-hover: #76DDA3;
  --esv-color-link: #53D18B;
  --esv-color-focus: #8EE7B0;
  --esv-color-hero: #063F2A;
  --esv-color-hero-text: #F2F6F3;
  --esv-color-hero-muted: #C7DDD0;
  --esv-color-success-bg: #153824;
  --esv-color-success-text: #8CE7B2;
  --esv-color-error-bg: #361D23;
  --esv-color-error-text: #FFB4B8;
  --esv-color-warning-bg: #362C13;
  --esv-color-warning-text: #F6D986;
  color-scheme: dark;
}
}

/* Map existing WordPress presets and theme components onto the same roles. */
:root[data-esv-theme] {
  --wp--preset--color--esv-green:var(--esv-color-primary);
  --wp--preset--color--esv-ink:var(--esv-color-text);
  --wp--preset--color--esv-soft:var(--esv-color-surface-2);
  --wp--preset--color--white:var(--esv-color-surface);
  --esv-ink:var(--esv-color-text);
  --esv-muted:var(--esv-color-muted);
  --esv-soft:var(--esv-color-surface-2);
  --esv-warm:var(--esv-color-surface-2);
  --esv-green:var(--esv-color-primary);
  --esv-green-hover:var(--esv-color-primary-hover);
  --esv-focus:var(--esv-color-focus);
}
body { background:var(--esv-color-page); color:var(--esv-color-text); }
body a { color:var(--esv-color-link); }
body :is(h1,h2,h3,h4,h5,h6) { color:inherit; }
body .has-esv-dark-color { color:var(--esv-color-text) !important; }
body .has-white-color { color:var(--esv-color-hero-text) !important; }
body .has-esv-green-color { color:var(--esv-color-link) !important; }
body :is(.esv-header,.esv-nav .wp-block-navigation__submenu-container,.esv-header .wp-block-navigation__responsive-container.is-menu-open) {
  background:var(--esv-color-surface) !important; color:var(--esv-color-text) !important; border-color:var(--esv-color-border) !important;
}
body .esv-header :is(.wp-block-site-title a,.wp-block-navigation-item__content,.wp-block-navigation__responsive-container-open,.wp-block-navigation__responsive-container-close) { color:var(--esv-color-text) !important; }
body .esv-header a.wp-block-navigation-item__content:hover { color:var(--esv-color-link) !important; }
body .esv-header .esv-logo img,body .esv-footer img[src*="esv-logo"] { background:#fff; border-radius:10px; padding:4px; box-sizing:border-box; }

/* A native select is operable with keyboard, screen reader, touch and zoom. */
body .esv-color-control {
  position:relative; display:flex; align-items:center; flex:0 0 auto; margin:0 !important;
  color:var(--esv-color-text); background:var(--esv-color-surface-2); border-radius:10px;
}
body .esv-color-control[hidden] { display:none !important; }
body .esv-color-control svg { position:absolute; left:10px; width:18px; height:18px; pointer-events:none; }
body .esv-color-select {
  margin:0; min-height:44px; width:117px; max-width:100%; padding:9px 7px 9px 34px;
  border:1px solid var(--esv-color-control-border); border-radius:10px; background:transparent;
  color:var(--esv-color-text); font:600 .9rem/1.3 system-ui,sans-serif; cursor:pointer;
}
body .esv-color-select option { background:var(--esv-color-surface); color:var(--esv-color-text); }
body .esv-header .esv-header-actions { gap:12px !important; }
@media (min-width:901px) {
  body .esv-color-control { order:3; }
  body .esv-header .esv-header-inner { flex-wrap:wrap !important; gap:12px 18px; padding-top:10px !important; padding-bottom:10px !important; }
  body .esv-header .esv-header-actions { flex:1 1 auto !important; justify-content:flex-end; flex-wrap:wrap !important; }
}
@media (max-width:900px) {
  body .esv-color-control { width:44px; height:44px; border:1px solid var(--esv-color-control-border); box-sizing:border-box; }
  body .esv-color-select { width:44px; height:44px; font-size:16px; padding:0; opacity:0; }
  body .esv-color-control svg { left:12px; }
  body .esv-color-control:focus-within { outline:3px solid var(--esv-color-focus); outline-offset:3px; }
  body .esv-header .esv-header-actions { flex:0 0 auto !important; gap:6px !important; }
  body .esv-header .esv-brand-copy { min-width:0 !important; }
  body .esv-header .wp-block-site-title { overflow-wrap:normal; }
}

/* Stable pine-green heroes; photographs and illustration overlays stay untouched. */
:root { --esv-page-hero-background:var(--esv-color-hero); }
body :is(.esv-runtime-page-hero,.esv-page-hero,.esv-hero) { color:var(--esv-color-hero-text); }
body :is(.esv-runtime-page-hero,.esv-page-hero,.esv-hero) h1 { color:var(--esv-color-hero-text) !important; }
body :is(.esv-runtime-page-intro,.esv-page-hero p.has-large-font-size,.esv-hero .has-large-font-size) { color:var(--esv-color-hero-muted) !important; }
body :is(.esv-runtime-page-hero,.esv-page-hero,.esv-hero) .esv-kicker { color:#8EE7B0 !important; }
body .esv-footer { background:var(--esv-color-surface-2) !important; color:var(--esv-color-text) !important; }
body .esv-footer :is(a,h3,h4,.esv-footer-accordion-button) { color:var(--esv-color-text) !important; }
body .esv-footer :is(.esv-footer-accordion,hr) { border-color:var(--esv-color-border) !important; }
body .esv-footer .esv-footer-social-link { background:var(--esv-color-surface); color:var(--esv-color-link) !important; border-color:var(--esv-color-control-border); }
body .esv-footer :is(a,button):focus-visible { outline-color:var(--esv-color-focus); box-shadow:none; }

/* Buttons, outlined controls and input edges use separate contrast-safe roles. */
body :is(.wp-block-button__link,.esv-form-submit,.esv-load-fussballde,.esvfee .esvfee-primary,.esv-donation-button) {
  background:var(--esv-color-primary) !important; color:var(--esv-color-on-primary) !important; border-color:var(--esv-color-primary) !important;
}
body :is(.wp-block-button__link,.esv-form-submit,.esv-load-fussballde,.esvfee .esvfee-primary,.esv-donation-button):hover {
  background:var(--esv-color-primary-hover) !important; color:var(--esv-color-on-primary) !important;
}
body .wp-block-button.is-style-outline .wp-block-button__link,
body .esvfee .esvfee-secondary {
  background:var(--esv-color-surface) !important; color:var(--esv-color-link) !important; border-color:var(--esv-color-control-border) !important;
}
body .wp-block-button.is-style-outline .wp-block-button__link:hover,
body .esvfee .esvfee-secondary:hover { background:var(--esv-color-surface-2) !important; }
body.home .esv-hero .wp-block-button.is-style-outline .wp-block-button__link,
body .esv-hero .wp-block-button.is-style-outline .wp-block-button__link {
  background:transparent !important; color:var(--esv-color-hero-text) !important; border-color:var(--esv-color-hero-muted) !important;
}
body.home .esv-hero .wp-block-button.is-style-outline .wp-block-button__link:hover,
body .esv-hero .wp-block-button.is-style-outline .wp-block-button__link:hover { background:var(--esv-color-hero-text) !important; color:var(--esv-color-hero) !important; }
body :is(.esv-webform,.esvfee,.wp-block-search) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),select,textarea) {
  background:var(--esv-color-surface); color:var(--esv-color-text); border-color:var(--esv-color-control-border);
}
body :is(input,textarea)::placeholder { color:var(--esv-color-muted); opacity:1; }
body input:is([type="checkbox"],[type="radio"]) { accent-color:var(--esv-color-primary); }
body :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--esv-color-focus); outline-offset:3px; }
body .esv-hero :is(a,button):focus-visible { outline-color:#8EE7B0; }
body .esv-lightbox :is(a,button):focus-visible { outline-color:#8EE7B0; }
body :is(.esv-menu-expand,.esvfee .esvfee-presets button,.esvfee .esvfee-add-person) { border-color:var(--esv-color-control-border); }
body .esvfee { --ef-ink:var(--esv-color-text); --ef-accent:var(--esv-color-link); --ef-edge:var(--esv-color-border); --ef-soft:var(--esv-color-surface-2); --ef-muted:var(--esv-color-muted); }
body .esvfee .esvfee-flow .is-current b { color:var(--esv-color-on-primary); }
body :is(.esv-field-error,.esvfee .esvfee-status.is-error,.esvfee .esvfee-form-errors) { color:var(--esv-color-error-text); }
body :is(form[data-esv-public-form],.esvfee) [aria-invalid="true"] { border:2px solid var(--esv-color-error-text) !important; }
body :is(.esv-form-notice-error,.esv-form-notice.is-error) { background:var(--esv-color-error-bg); color:var(--esv-color-error-text); border-color:var(--esv-color-error-text); }
body :is(.esvfee .esvfee-success,.esv-form-notice-success,.esv-form-notice.is-success) { background:var(--esv-color-success-bg); color:var(--esv-color-success-text); border-color:var(--esv-color-success-text); }
body .esvfee :is(.esvfee-warning,.esvfee-guardian) { background:var(--esv-color-warning-bg); color:var(--esv-color-warning-text); }
body .esvfee .esvfee-warning h4 { color:inherit; }
body .esvfee .esvfee-guardian label { color:inherit; }
body.esv-form-recovery main { background:var(--esv-color-surface); }

body .esv-kicker { color:var(--esv-color-link) !important; }
body .esv-sport-card .esv-card-icon { color:var(--esv-color-on-primary); }
body :is(.esv-football-live,.esv-football-live-page,.esv-football-table,.esv-fussballde-wrap) p.esv-fussballde-loading { color:var(--esv-color-text) !important; }

body .esv-sport-card .esv-card-more { background:var(--esv-color-hero); color:var(--esv-color-hero-text); }
body .esv-trial-finder .esv-trial-sport-summary-copy small { background:var(--esv-color-surface-2) !important; color:var(--esv-color-link) !important; }

/* Legacy pale text and club color chips have explicit context roles. */
body :is(.esv-section-head-light a,.esv-value-row p,.esv-verein-value-chips p) { color:var(--esv-color-hero-text); }
body .esv-footer .esv-footer-social-heading { color:var(--esv-color-muted); }
body .esv-footer :is(.esv-footer-social-icon,.esv-mobile-legal a) { color:var(--esv-color-link) !important; }
body :is(.esv-team-card,.esv-team-row,.esv-team-unified-row,[class*="esv-youth-class-"],[class*="esv-senior-class-"]) {
  --esv-team-accent:var(--esv-color-link); --esv-team-soft:var(--esv-color-surface-2);
}
body .esv-sparten-card .esv-sparten-cta { background:var(--esv-color-primary); color:var(--esv-color-on-primary); }
body .esv-sparten-card .esv-sparten-cta:hover { background:var(--esv-color-primary-hover); }

/* Campaign banners retain their meaning with softer, dark backgrounds. */
:root[data-esv-theme="dark"] .esv-hero .esv-hero-campaign {
  --campaign-bg:#362C13; --campaign-edge:#B69A46; --campaign-ink:#F6D986; --campaign-muted:#F6D986;
  --campaign-button-bg:#53D18B; --campaign-button-border:#53D18B; --campaign-button-hover:#76DDA3;
}
:root[data-esv-theme="dark"] .esv-hero .esv-hero-campaign--coral { --campaign-bg:#36251F; --campaign-edge:#C4896F; --campaign-ink:#FFD5C5; --campaign-muted:#FFD5C5; }
:root[data-esv-theme="dark"] .esv-hero .esv-hero-campaign--ice { --campaign-bg:#162E3C; --campaign-edge:#6DA4C2; --campaign-ink:#C7E7FA; --campaign-muted:#C7E7FA; }
:root[data-esv-theme="dark"] .esv-hero .esv-hero-campaign--alert { --campaign-bg:#361D23; --campaign-edge:#CE8589; --campaign-ink:#FFB4B8; --campaign-muted:#FFB4B8; }
body .esv-hero .esv-hero-campaign .esv-campaign-button { background:var(--esv-color-primary) !important; color:var(--esv-color-on-primary) !important; border-color:var(--esv-color-primary) !important; }
@media print {
:root[data-esv-theme], :root {
  --esv-color-page: #F3F6F4;
  --esv-color-surface: #FFFFFF;
  --esv-color-surface-2: #E9F1EC;
  --esv-color-text: #1A3023;
  --esv-color-muted: #53675B;
  --esv-color-border: #CCD9D0;
  --esv-color-control-border: #718478;
  --esv-color-primary: #00873B;
  --esv-color-on-primary: #FFFFFF;
  --esv-color-primary-hover: #006F30;
  --esv-color-link: #007A35;
  --esv-color-focus: #006B2E;
  --esv-color-hero: #063F2A;
  --esv-color-hero-text: #F2F6F3;
  --esv-color-hero-muted: #C7DDD0;
  --esv-color-success-bg: #EAF6ED;
  --esv-color-success-text: #17693E;
  --esv-color-error-bg: #FFF1F1;
  --esv-color-error-text: #A4262C;
  --esv-color-warning-bg: #FFF7DC;
  --esv-color-warning-text: #785800;
  color-scheme: light;
}
  html, body { color-scheme:light !important; background:#fff !important; color:#1A3023 !important; }
  .esv-color-control { display:none !important; }
}
