/* Nestwaerme theme layer: dark-mode base for Divi + the nav switcher.
 * Every colour comes from a token in nw-tokens.css. */

/* --- switcher: a real toggle switch (role=switch) ------------------------ */
.nw-theme-toggle {
  position: relative; flex: none; width: 48px; height: 28px; padding: 0; margin: 0 0 0 auto;
  border: 1px solid var(--border-Subtle); border-radius: 999px;
  background: var(--bg-Surface-tertiary); cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease;
}
.nw-theme-toggle:focus-visible { outline: 2px solid var(--border-Brand-Focus); outline-offset: 2px; }
.nw-theme-toggle[aria-checked="true"] { background: var(--bg-brand-Primary); border-color: transparent; }
.nw-theme-toggle .nw-thumb {
  position: absolute; top: 2px; left: 2px; width: 22px; height: 22px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--bg-Surface-Default); color: var(--text-default);
  transition: transform .2s ease;
}
.nw-theme-toggle[aria-checked="true"] .nw-thumb { transform: translateX(20px); }
.nw-theme-toggle svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.nw-theme-toggle .nw-icon-moon { display: none; }
:root[data-theme="dark"] .nw-theme-toggle .nw-icon-sun { display: none; }
:root[data-theme="dark"] .nw-theme-toggle .nw-icon-moon { display: block; }
.nw-theme-row { cursor: pointer; }
.nw-theme-toggle--floating { position: fixed; right: 16px; bottom: 16px; z-index: 99999; margin: 0; }

/* --- dark base for Divi (sections that set their own colour keep it) --- */
:root[data-theme="dark"] body,
:root[data-theme="dark"] #page-container,
:root[data-theme="dark"] #et-main-area,
:root[data-theme="dark"] #main-content,
:root[data-theme="dark"] .et_pb_section { background-color: var(--bg-Surface-Default); }
:root[data-theme="dark"] body,
:root[data-theme="dark"] #main-content .container { color: var(--text-Secondary); }
:root[data-theme="dark"] h1, :root[data-theme="dark"] h2, :root[data-theme="dark"] h3,
:root[data-theme="dark"] h4, :root[data-theme="dark"] h5, :root[data-theme="dark"] h6,
:root[data-theme="dark"] .et_pb_text, :root[data-theme="dark"] .et_pb_text_inner { color: var(--text-default); }
:root[data-theme="dark"] #main-header,
:root[data-theme="dark"] #main-header.et-fixed-header,
:root[data-theme="dark"] #top-header,
:root[data-theme="dark"] .et_mobile_menu,
:root[data-theme="dark"] #et-top-navigation { background-color: var(--bg-Surface-Default); }
:root[data-theme="dark"] #top-menu li a,
:root[data-theme="dark"] #top-menu-nav .nav li a,
:root[data-theme="dark"] .et_mobile_menu li a,
:root[data-theme="dark"] #main-header .et-fixed-header #top-menu li a { color: var(--text-default); }
:root[data-theme="dark"] #main-header { box-shadow: 0 1px 0 var(--border-Subtle); }
/* backdrop blur stalls Chrome's renderer over dark sections; surfaces are near-opaque, so drop it */
:root[data-theme="dark"] *,
:root[data-theme="dark"] *::before,
:root[data-theme="dark"] *::after { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
/* floating pill header (plugin sets a light translucent gradient on scroll) */
/* header: ONE skin in both states (top bar and scrolled pill) and both themes = bg/Raised + border/Card + shadow/Raised */
header#main-header,
header#main-header.iscu_menu_scroll,
header#main-header.et-fixed-header {
  background: var(--bg-Raised) !important;
  background-image: none !important;
  border: 1px solid var(--border-Card) !important;
  box-shadow: var(--shadow-Raised) !important;
  outline: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
header#main-header .iscu_main_header.iscu_main_header_2,
header#main-header.iscu_menu_scroll .iscu_main_header.iscu_main_header_2 {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
:root[data-theme="dark"] #main-footer { background-color: var(--bg-Surface-Sunken); }

/* --- decorative SVG surfaces: follow the surface they sit on ----------- */
:root[data-theme="dark"] .iscu_home_hero_cloud_wrap svg path[fill="white" i] { fill: var(--bg-Surface-Default); }

/* slider arrow circles (SVG with a hardcoded cream fill = bg/brand/Subtlest) */
svg[class$="_icon_bg_svg"] path { fill: var(--bg-brand-Subtlest); }

/* surface SVGs (clouds, round button backs): fills that equal a bg token follow that token; illustrations are untouched */
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="white" i]{fill:var(--bg-Surface-Default)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#F76B15" i]{fill:var(--bg-Warning)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#EF5F00" i]{fill:var(--bg-brand-hover)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#CC4E00" i]{fill:var(--bg-brand-Active)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#FFEFD6" i]{fill:var(--bg-brand-Subtlest)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#FFFFFF" i]{fill:var(--bg-Surface-Default)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#F9F9F9" i]{fill:var(--bg-Gray-Subtle)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#E8E8E8" i]{fill:var(--bg-Surface-tertiary)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#FFF7ED" i]{fill:var(--bg-surface-Solid-not-for-use-Brand)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#F4FAFF" i]{fill:var(--bg-surface-Solid-not-for-use-Blue)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#F3FBF9" i]{fill:var(--bg-surface-Solid-not-for-use-Teal)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#F8EED5" i]{fill:var(--bg-surface-Solid-not-for-use-Yellow)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#FFF7F7" i]{fill:var(--bg-surface-Solid-not-for-use-Red)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#F4FBF6" i]{fill:var(--bg-surface-Solid-not-for-use-Green)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#202020" i]{fill:var(--bg-Gray-Bold)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#8D8D8D" i]{fill:var(--bg-NeutralBackground2)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#F0F0F0" i]{fill:var(--bg-NeutralBackground3)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#FCFCFC" i]{fill:var(--bg-Input-Default)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#646464" i]{fill:var(--bg-Gray-Bold-Hover)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#838383" i]{fill:var(--bg-Gray-Bold-Active)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#0090FF" i]{fill:var(--bg-blue-Primary)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#0588F0" i]{fill:var(--bg-blue-hover)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#0D74CE" i]{fill:var(--bg-blue-Active)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#E6F4FE" i]{fill:var(--bg-blue-Brand-Subtlest)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#E5484D" i]{fill:var(--bg-Danger-Primary)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#DC3E42" i]{fill:var(--bg-Danger-Hover)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#CE2C31" i]{fill:var(--bg-Danger-Active)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#FFFCFC" i]{fill:var(--bg-Danger-Subtlest)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#FEFCFB" i]{fill:var(--bg-Warning-Subtlest)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#30A46C" i]{fill:var(--bg-Success)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#2B9A66" i]{fill:var(--bg-Success-hover)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#218358" i]{fill:var(--bg-Success-Active)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#E6F6EB" i]{fill:var(--bg-Success-Subtlest)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#FFC511" i]{fill:var(--bg-assistive01-Primary)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#EBB200" i]{fill:var(--bg-assistive01-hover)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#C89600" i]{fill:var(--bg-assistive01-Active)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#12A594" i]{fill:var(--bg-assistive02-Primary)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#E0F8F3" i]{fill:var(--bg-assistive02-Subtlest)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#8EC8F6" i]{fill:var(--bg-accent-Blue)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#F1C22E" i]{fill:var(--bg-accent-Yellow)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#FFF9BC" i]{fill:var(--bg-accent-Yellow-Subtlest)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#8ECEAA" i]{fill:var(--bg-accent-Green)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#F4A9AA" i]{fill:var(--bg-accent-Red)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#FEEBEC" i]{fill:var(--bg-accent-Red-Subtlest)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#F5AE73" i]{fill:var(--bg-accent-Orange)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#C2B5F5" i]{fill:var(--bg-accent-Violet)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#F4F0FE" i]{fill:var(--bg-accent-Violet-Subtlest)}
:root[data-theme="dark"] svg:is([class*="cloud" i], [class$="_bg_svg"], [data-nw-surface]) path[fill="#BBBBBB" i]{fill:var(--bg-Utilities-scroll-default)}

/* --- photos: dim in dark so they do not glare (logos excluded). Factor = --nw-image-dim --- */
:root[data-theme="dark"] img:not([class*="logo" i]):not([class*="partners" i]):not(.nw-no-dim) { filter: brightness(var(--nw-image-dim)); }
/* a filtered image becomes its own layer and paints above content that overlaps it: keep the profile card on top */
.iscu_system_user_profile_section_main_wrap, .iscu_system_profile_comment_wrapper { position: relative !important; z-index: 1 !important; }

/* --- hard-coded ink inside icon SVGs (flagged by nw-theme-switch.js). !important: page CSS and builder output override everything else --- */
:root[data-theme="dark"] [data-nw-f] { fill: var(--icon-Bold) !important; }
:root[data-theme="dark"] [data-nw-s] { stroke: var(--icon-Bold) !important; }

/* --- footer: theme dropdown (same row component as the account menu: icon + label) --- */
/* bottom row, all left: legal links (one group) · copyright · design credit. Link gap (16) < group gap (32). */
.iscu_footer_bottom { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important; justify-content: flex-start !important; gap: 12px 32px !important; text-align: left !important; justify-content: space-between !important; box-sizing: border-box !important; width: 100% !important; margin-left: auto !important; margin-right: auto !important;
  /* same left edge as the footer content: section side padding (96 / 24 / 0) + inner 16, inner max 1440 */
  --nw-fpad: 96px; max-width: calc(1440px + 2 * var(--nw-fpad)) !important; padding-left: calc(var(--nw-fpad) + 16px) !important; padding-right: calc(var(--nw-fpad) + 16px) !important; }
/* 3 groups: left / centre / right, copyright exactly in the middle */
@media (min-width: 668px) {
  .iscu_footer_bottom { display: grid !important; grid-template-columns: 1fr auto 1fr !important; column-gap: 32px !important; }
  .iscu_footer_bottom > .iscu_other_links_wrapp { justify-self: start; }
  .iscu_footer_bottom > .iscu_footer_bottom_container { justify-self: center; text-align: center !important; }
  .iscu_footer_bottom > .iscu_footer_bottom_container p { text-align: center !important; }
  .iscu_footer_bottom > .iscu_footer_bottom_policy_link { justify-self: end; }
}
@media (min-width: 668px) and (max-width: 1100px) {
  /* not enough room for three in a row: links + credit on one line, copyright below */
  .iscu_footer_bottom { grid-template-columns: 1fr auto !important; }
  .iscu_footer_bottom > .iscu_footer_bottom_container { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
  .iscu_footer_bottom > .iscu_footer_bottom_container, .iscu_footer_bottom > .iscu_footer_bottom_container p { text-align: left !important; }
}
@media (max-width: 1300px) { .iscu_footer_bottom { --nw-fpad: 24px; } }
@media (max-width: 540px) { .iscu_footer_bottom { --nw-fpad: 0px; } }
.iscu_footer_bottom > * { min-width: 0; margin: 0 !important; }
.iscu_footer_bottom > .iscu_other_links_wrapp { order: 1 !important; display: flex !important; flex-wrap: wrap !important; justify-content: flex-start !important; align-items: center !important; gap: 8px 16px !important; width: auto !important; }
.iscu_footer_bottom > .iscu_footer_bottom_container { order: 2 !important; flex: none; justify-content: flex-start !important; text-align: left !important; }
.iscu_footer_bottom > .iscu_footer_bottom_policy_link { order: 3 !important; text-align: left !important; }
.iscu_footer_bottom > .nw-theme-menu { order: 4; margin-left: auto !important; }
/* links: token colour, no underline */
.iscu_footer_bottom a, .iscu_footer_bottom a:visited { color: var(--text-Link) !important; text-decoration: none !important; padding: 4px 0 !important; line-height: 20px !important; min-height: 28px; display: inline-flex !important; align-items: center; }
.iscu_footer_bottom .iscu_footer_bottom_container, .iscu_footer_bottom .iscu_footer_bottom_container p { text-align: left !important; justify-content: flex-start !important; margin: 0 !important; }
.iscu_footer_bottom a:hover, .iscu_footer_bottom a:active { color: var(--text-Link) !important; text-decoration: none !important; opacity: .8; }
/* "Nützliche Links" next to the logo: same link style as the bottom row */
.iscu_footer_header_links a.iscu_footer_header_link, .iscu_footer_header_links a.iscu_footer_header_link:visited { color: var(--text-Link) !important; text-decoration: none !important; }
.iscu_footer_header_links a.iscu_footer_header_link:hover, .iscu_footer_header_links a.iscu_footer_header_link:active { color: var(--text-Link) !important; text-decoration: none !important; opacity: .8; }
.iscu_footer_header_links a.iscu_footer_header_link:focus-visible { outline: 2px solid var(--text-Link) !important; outline-offset: 2px; border-radius: 4px; }
/* theme button blends into the footer surface (light was solid white on blue) */
:root:not([data-theme="dark"]) .iscu_footer .nw-theme-menu-btn { background: transparent !important; }
:root:not([data-theme="dark"]) .iscu_footer .nw-theme-menu-btn:hover { background: rgba(0, 0, 0, .04) !important; }
.iscu_footer_bottom a:focus-visible { outline: 2px solid var(--text-Link) !important; outline-offset: 2px; border-radius: 4px; }
@media (max-width: 667px) {
  .iscu_footer_bottom { flex-direction: column !important; align-items: flex-start !important; gap: 20px !important; }
  .iscu_footer_bottom > .iscu_other_links_wrapp, .iscu_footer_bottom > .iscu_footer_bottom_container, .iscu_footer_bottom > .iscu_footer_bottom_policy_link { width: 100% !important; justify-content: flex-start !important; text-align: left !important; }
}
.nw-theme-menu { position: relative; display: flex; justify-content: flex-end; margin: 0; }
/* same size and skin as the account button in the header */
.nw-theme-menu-btn { display: inline-flex; align-items: center; gap: 4px; height: 40px; min-width: 157px; justify-content: space-between; padding: 4px 8px 4px 12px; border-radius: 16px; border: 1px solid var(--border-Subtle); background: var(--bg-Gray-Subtle); box-shadow: var(--Depth-0) var(--Depth-025) var(--Depth-050) 0px var(--shadow-Alpha-5); color: var(--text-Secondary); font: inherit; font-size: 16px; font-weight: 600; line-height: 24px; cursor: pointer; }
.nw-theme-menu-btn:hover { background: var(--bg-Surface-Sunken); }
.nw-theme-menu-btn:focus-visible, .nw-theme-menu-list li:focus-visible { outline: 2px solid var(--border-Brand-Default, currentColor); outline-offset: 2px; }
.nw-theme-menu .material-symbols-rounded { font-size: 20px; line-height: 1; color: var(--icon-Bold); }
.nw-theme-menu-label { font-weight: 600; min-width: 56px; text-align: left; }
.nw-theme-menu-chev { transition: transform .2s; }
.nw-theme-menu-btn[aria-expanded="true"] .nw-theme-menu-chev { transform: rotate(180deg); }
.nw-theme-menu-list { position: absolute; right: 0; bottom: calc(100% + 8px); min-width: 200px; margin: 0 !important; padding: 8px !important; list-style: none !important; border-radius: 8px; border: 1px solid var(--border-Subtle); background: var(--bg-Elevation-3, var(--bg-Surface-Default)); box-shadow: 0 8px 8px -3px rgba(0,0,0,.12), 0 20px 24px -4px rgba(0,0,0,.12); z-index: 30; }
.nw-theme-menu-list[hidden] { display: none !important; }
.nw-theme-menu-list li { display: flex !important; align-items: center; gap: 12px; padding: 12px !important; margin: 0 !important; list-style: none !important; border-radius: 8px; color: var(--text-default); font-size: 14px; line-height: 20px; cursor: pointer; }
.nw-theme-menu-list li::marker { content: none; }
.nw-theme-menu-list li::before, .nw-theme-menu-list li::after { content: none !important; }
.nw-theme-menu-list li:hover, .nw-theme-menu-list li:focus { background: var(--bg-Surface-Sunken); }
.nw-theme-opt-text { flex: 1; }
.nw-theme-opt-check { visibility: hidden; }
.nw-theme-menu-list li[aria-selected="true"] { font-weight: 700; }
.nw-theme-menu-list li[aria-selected="true"] .nw-theme-opt-check { visibility: visible; }
@media (max-width: 667px) { .iscu_footer_bottom > .nw-theme-menu { order: 5; margin-left: 0; width: 100%; } .nw-theme-menu { justify-content: stretch; } .nw-theme-menu-btn { width: 100%; justify-content: space-between; } .nw-theme-menu-list { left: 0; right: 0; } }

/* --- decorative SVG files used as <img> (flagged in JS): repaint with the surface token --- */
:root[data-theme="dark"] img[data-nw-mask] { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'/%3E"); -webkit-mask: var(--nw-mask) center / 100% 100% no-repeat; mask: var(--nw-mask) center / 100% 100% no-repeat; background: var(--bg-Surface-Default) !important; filter: none !important; }

/* --- initial-letter avatars: colour pair comes from the PHP palette (--nw-av-bg/--nw-av-fg), dark mode derives from it --- */
:root [style*="--nw-av-bg"] { background-color: var(--nw-av-bg) !important; color: var(--nw-av-fg) !important; }
:root[data-theme="dark"] [style*="--nw-av-bg"] { background-color: color-mix(in srgb, var(--nw-av-bg) 26%, #161616) !important; color: color-mix(in srgb, var(--nw-av-bg) 82%, #fff) !important; }
:root rect[style*="--nw-av-bg"] { fill: var(--nw-av-bg) !important; background-color: transparent !important; }
:root[data-theme="dark"] rect[style*="--nw-av-bg"] { fill: color-mix(in srgb, var(--nw-av-bg) 26%, #161616) !important; background-color: transparent !important; }

/* --- FAQ band: the page behind the teal arc is the page surface, not a lighter step --- */
:root[data-theme="dark"] .iscu_service_faq_main_container_wrap { background: var(--bg-Surface-Default) !important; }

/* --- registration band: the line-art PNG is opaque cream; sink it to the surface step so the yellow fade reads as dusk, not glare --- */
:root[data-theme="dark"] .iscu_serv_registration_pattern_bg { filter: brightness(.2) !important; }

/* --- Divi forms (contact page): builder CSS hard-codes black text and borders --- */
:root[data-theme="dark"] .et_pb_contact_form input[type="text"],
:root[data-theme="dark"] .et_pb_contact_form input[type="email"],
:root[data-theme="dark"] .et_pb_contact_form input[type="tel"],
:root[data-theme="dark"] .et_pb_contact_form input.input,
:root[data-theme="dark"] .et_pb_contact_form textarea,
:root[data-theme="dark"] .et_pb_contact_form select { color: var(--text-default) !important; background-color: var(--bg-Surface-Sunken) !important; border-color: var(--border-Subtle) !important; }
:root[data-theme="dark"] .et_pb_contact_form input::placeholder,
:root[data-theme="dark"] .et_pb_contact_form textarea::placeholder { color: var(--text-Subtle) !important; opacity: 1; }
:root[data-theme="dark"] .et_pb_contact_form input:focus,
:root[data-theme="dark"] .et_pb_contact_form textarea:focus { border-color: var(--border-Brand-Default, var(--text-Subtle)) !important; }
:root[data-theme="dark"] .et_pb_contact_form label, :root[data-theme="dark"] .et_pb_contact_form .et_pb_contact_field_options_title { color: var(--text-default) !important; }

/* --- embedded maps are white tiles: invert them for dark --- */
:root[data-theme="dark"] iframe[src*="google.com/maps"], :root[data-theme="dark"] iframe[src*="maps.google"] { filter: invert(.92) hue-rotate(180deg) contrast(.9); }

/* --- Tagesfamilie "Qualität" blobs: light pastel fills are SVG attributes; repaint with dark subtle surfaces --- */
:root[data-theme="dark"] .iscu_tage_3_2_card svg path[fill="#D5EFFF"] { fill: var(--bg-accent-AccentBlue-Subtlest) !important; }
:root[data-theme="dark"] .iscu_tage_3_2_card svg path[fill="#CCF3EA"] { fill: var(--bg-assistive02-Subtlest) !important; }
:root[data-theme="dark"] .iscu_tage_3_2_card svg path[fill="#FFF9BC"] { fill: var(--bg-Surface-Section-Yellow) !important; }

/* --- elevation roles (tokens: nw-tokens.css "nw-elevation") --- */
.iscu_prereg_start_main_card,
.iscu_prereg_regmet_main_card,
.iscu_prereg_signin_main_card,
.iscu_mav_card,
.iscu_up_block:not(.iscu_up_block_no_bg),
.iscu_co_dash_capacity_panel,
.iscu_co_stat_card_small,
.iscu_op_2_job_card_wrap {
  background: var(--bg-Card) !important;
  border: 1px solid var(--border-Card) !important;
  box-shadow: var(--shadow-Card) !important;
  border-radius: var(--corner-Card) !important;
}
.iscu_link_exp_popup_wrap,
.iscu_system_modal_leave_content,
.iscu_service_ktpc_call_dialog_content,
.iscu_up_select_items,
.iscu_home_partners_single_card {
  background: var(--bg-Raised) !important;
  border: 1px solid var(--border-Card) !important;
  box-shadow: var(--shadow-Raised) !important;
  border-radius: var(--corner-Nested) !important;
}
.iscu_system input[type="text"], .iscu_system input[type="email"], .iscu_system input[type="password"], .iscu_system input[type="tel"], .iscu_system input[type="number"], .iscu_system input[type="date"], .iscu_system textarea, .iscu_system select,
[class*="iscu_"] input[type="text"], [class*="iscu_"] input[type="email"], [class*="iscu_"] input[type="password"], [class*="iscu_"] input[type="tel"], [class*="iscu_"] input[type="number"], [class*="iscu_"] input[type="date"], [class*="iscu_"] textarea, [class*="iscu_"] select {
  background-color: var(--bg-Input) !important;
  border-color: var(--border-Input) !important;
  box-shadow: var(--shadow-Input) !important;
  border-radius: var(--corner-Control) !important;
}
/* --- end elevation roles --- */

/* --- profile spacing + Union wave (round 7) --- */
#main-content .iscu_user_profile_container > .iscu_up_form_wrap { padding: var(--spacing-XL, 32px) !important; border-radius: var(--corner-Card) !important; gap: var(--spacing-XL, 32px) !important; box-sizing: border-box; }
.iscu_up_form_btn_wrap { gap: var(--spacing-M, 16px) !important; padding-top: var(--spacing-S, 12px); }
.iscu_up_form_section.iscu_ms_btn { padding: 0 !important; }
img.iscu_tage_3_bg_svg1[src$="Union.svg"] { aspect-ratio: 1920 / 2136; content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'/%3E"); -webkit-mask: url("/wp-content/plugins/indiasan-customization/includes/images/Union.svg") center / 100% 100% no-repeat; mask: url("/wp-content/plugins/indiasan-customization/includes/images/Union.svg") center / 100% 100% no-repeat; background: var(--bg-Surface-Default) !important; filter: var(--shadow-Wave) !important; }
/* --- end profile spacing --- */
img.iscu_tage_3_bg_svg2[src$="Union-2.svg"] { aspect-ratio: 1951 / 2493; content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'/%3E"); -webkit-mask: url("/wp-content/plugins/indiasan-customization/includes/images/Union-2.svg") center / 100% 100% no-repeat; mask: url("/wp-content/plugins/indiasan-customization/includes/images/Union-2.svg") center / 100% 100% no-repeat; background: var(--bg-Surface-Default) !important; filter: var(--shadow-Wave) !important; }

/* --- round 10 dark fixes --- */
:root[data-theme="dark"] .iscu_aboutus_selection_kita_card { background: var(--bg-Warning-Subtlest) !important; }
:root[data-theme="dark"] .iscu_aboutus_selection_tagesfamilien_card { background: var(--bg-accent-AccentBlue-Subtlest) !important; }
:root[data-theme="dark"] .iscu_aboutus_selection_kita_card p, :root[data-theme="dark"] .iscu_aboutus_selection_tagesfamilien_card p { color: var(--text-Secondary) !important; }
:root[data-theme="dark"] .iscu_aboutus_selection_kita_card h3, :root[data-theme="dark"] .iscu_aboutus_selection_tagesfamilien_card h3 { color: var(--text-default) !important; }
:root[data-theme="dark"] .et_pb_with_border.et_pb_module { background: var(--bg-Card) !important; border-color: var(--border-Card) !important; }
:root[data-theme="dark"] .et_pb_with_border.et_pb_module p, :root[data-theme="dark"] .et_pb_with_border.et_pb_module label { color: var(--text-Secondary) !important; }
:root[data-theme="dark"] .iscu_tm_form_terms { color: var(--text-Secondary) !important; }
:root[data-theme="dark"] .flatpickr-day:hover, :root[data-theme="dark"] .flatpickr-day.prevMonthDay:hover, :root[data-theme="dark"] .flatpickr-day.nextMonthDay:hover, :root[data-theme="dark"] .flatpickr-day.today:hover { background: var(--bg-Gray-Subtle-Hover) !important; border-color: var(--border-Subtle) !important; color: var(--text-default) !important; }
/* --- end round 10 --- */

/* --- round 11: on-image text, tooltips, modals ------------------------- */
/* text that sits on photos / dark scrims is white in BOTH themes */
.iscu_pg_grid_text,
.iscu_pg_lightbox_slide_wrap figcaption,
.iscu_pg_lightbox_close_btn,
.iscu_pg_lightbox_close_btn_text,
.iscu_pg_lightbox_close_icon,
.iscu_pg_lightbox_nav_icon,
.iscu_pg_lightbox_nav_btn,
.iscu_pg_lightbox_slider_pagination,
.iscu_light_box_close_btn,
.iscu_review_light_box_close_btn span { color: var(--text-On-Image) !important; }

/* tooltips are always the inverse of the page: dark on light, light on dark */
.iscu_tm_form_tool_tip,
.iscu_pre_reg_pdf_form_tool_tip,
.iscu_review_light_box_close_btn_tooltip {
  background: var(--bg-Gray-Bold) !important;
  color: var(--text-Inverse) !important;
  border: 0 !important;
}
.iscu_review_light_box_close_btn_tooltip::after {
  background: none !important;
  width: 0 !important; height: 0 !important;
  border: 4px solid transparent !important;
  border-left-color: var(--bg-Gray-Bold) !important;
  right: -8px !important; top: 10px !important;
}
.iscu_pre_reg_pdf_form_tool_tip:after { border-color: var(--bg-Gray-Bold) transparent transparent transparent !important; }

/* modals: one skin. panel = Raised + Card border + Card radius; scrim = one token */
.iscu_system_modal_content,
.iscu_system_modal_leave_content,
.iscu_service_ktpc_call_dialog_content,
.iscu_sys_cap_modal_container,
.iscu_link_exp_popup_wrap,
.iscu_nav_search_field_content_wrap {
  background: var(--bg-Raised) !important;
  border: 1px solid var(--border-Card) !important;
  border-radius: var(--corner-Card) !important;
  box-shadow: var(--shadow-Raised) !important;
}
.iscu_system_modal_content,
.iscu_system_modal_leave_content,
.iscu_service_ktpc_call_dialog_content,
.iscu_link_exp_popup_wrap,
.iscu_nav_search_field_content_wrap { padding: var(--spacing-L, 24px) !important; }
.iscu_search_popup_wrap,
.iscu_up_form_profile_submit_popup_inner_wrap,
.iscu_system_modal_container,
.iscu_sys_cap_modal,
.iscu_service_ktpc_call_dialog_wrapp,
.iscu_review_light_box_wrapper { background: var(--bg-Scrim) !important; }
.iscu_profile_open_popup {
  background: var(--bg-Raised) !important;
  border: 1px solid var(--border-Card) !important;
  box-shadow: var(--shadow-Raised) !important;
}
/* --- end round 11 --- */

/* --- round 11b: one control radius for every button (12) ---------------- */
.iscu_home_hero_button,
.iscu_op_2_job_card_button_wrap,
.et_pb_contact_p .et_pb_contact_submit,
.et_pb_contact_submit,
.cmplz-btn,
.wpa-button { border-radius: var(--corner-Control) !important; }
.iscu_home_hero_button,
.iscu_op_2_job_card_button_wrap { min-height: var(--size-Button-L) !important; }
.et_pb_contact_submit { min-height: var(--size-Button-L) !important; height: auto !important; }
/* --- end round 11b --- */

/* --- round 11c: cookie banner (Complianz) = same panel skin as modals --- */
.cmplz-cookiebanner {
  background: var(--bg-Raised) !important;
  border: 1px solid var(--border-Card) !important;
  border-radius: var(--corner-Card) !important;
  box-shadow: var(--shadow-Raised) !important;
  color: var(--text-Secondary) !important;
}
.cmplz-cookiebanner .cmplz-message,
.cmplz-cookiebanner .cmplz-description,
.cmplz-cookiebanner .cmplz-link,
.cmplz-cookiebanner .cmplz-title { color: var(--text-Secondary) !important; }
.cmplz-cookiebanner .cmplz-title { color: var(--text-default) !important; }
.cmplz-cookiebanner .cmplz-btn:not(.cmplz-accept) {
  background: var(--bg-Surface-Default) !important;
  color: var(--text-default) !important;
  border: 1px solid var(--border-Default, var(--border-Card)) !important;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept { background: var(--bg-brand-Primary) !important; color: var(--text-onbrand-default) !important; border-color: transparent !important; }
/* --- end round 11c --- */

/* --- round 12: legal pages (Impressum / Datenschutz / Cookie) ----------- */
body:has(#cmplz-document) #sidebar { display: none !important; }
body:has(#cmplz-document) #left-area { width: 100% !important; padding-right: 0 !important; float: none !important; }
body:has(#cmplz-document) #main-content .container { width: 90% !important; max-width: 1160px; padding-top: 48px; padding-bottom: 96px; }
body:has(#cmplz-document) .entry-title.main_title {
  font-size: clamp(32px, 4vw, 48px); line-height: 1.15; color: var(--text-default); margin: 0 0 8px; padding: 0; text-align: left;
}
body:has(#cmplz-document) .entry-title.main_title::after { content: ""; display: block; width: 64px; height: 4px; border-radius: 999px; margin-top: 16px; background: var(--bg-brand-Primary); }
.nw-legal { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 48px; align-items: start; margin-top: 32px; }
.nw-legal-nav { position: sticky; top: 128px; max-height: calc(100vh - 160px); overflow: auto; padding: 16px; background: var(--bg-Card); border: 1px solid var(--border-Card); border-radius: var(--corner-Card); box-shadow: var(--shadow-Card); }
.nw-legal-nav-label { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--text-Tertiary, var(--text-Secondary)); padding: 4px 12px 8px; }
.nw-legal-nav ul { list-style: none; margin: 0; padding: 0; }
.nw-legal-nav li { margin: 0; padding: 0; }
.nw-legal-nav a { display: block; padding: 8px 12px; border-radius: var(--corner-Control); font-size: 14px; line-height: 20px; color: var(--text-Secondary); text-decoration: none; }
.nw-legal-nav a:hover { background: var(--bg-Gray-Subtle); color: var(--text-default); }
.nw-legal-nav a.is-active { background: var(--bg-brand-Subtlest); color: var(--text-Color-Brand, var(--text-default)); font-weight: 600; }
.nw-legal-body, .nw-legal-simple #cmplz-document { max-width: 760px; color: var(--text-Secondary); font-size: 16px; line-height: 1.7; }
#cmplz-document h2 { font-size: 28px; line-height: 1.25; color: var(--text-default); margin: 48px 0 16px; padding-top: 8px; scroll-margin-top: 120px; }
#cmplz-document h2:first-of-type { margin-top: 8px; }
#cmplz-document h3 { font-size: 20px; line-height: 1.3; color: var(--text-default); margin: 32px 0 8px; }
#cmplz-document h4 { font-size: 16px; line-height: 1.4; color: var(--text-default); margin: 20px 0 4px; }
#cmplz-document p { margin: 0 0 16px; }
#cmplz-document ul, #cmplz-document ol { margin: 0 0 16px; padding-left: 24px; }
#cmplz-document a { color: var(--text-Color-Brand, var(--text-default)); text-decoration: underline; text-underline-offset: 3px; }
#cmplz-document table { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: 14px; }
#cmplz-document th, #cmplz-document td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--border-Subtle); color: var(--text-Secondary); }
#cmplz-document details.cmplz-dropdown { margin: 0 0 12px; padding: 4px 16px; background: var(--bg-Card); border: 1px solid var(--border-Card); border-radius: var(--corner-Nested); }
#cmplz-document summary { cursor: pointer; padding: 8px 0; color: var(--text-default); font-weight: 600; }
@media (max-width: 980px) {
  .nw-legal { grid-template-columns: 1fr; gap: 24px; }
  .nw-legal-nav { position: static; max-height: none; }
}
/* --- end round 12 --- */

/* --- round 13: one input field everywhere (plugin forms + Divi contact form) --- */
.et_pb_contact_form input[type="text"],
.et_pb_contact_form input[type="email"],
.et_pb_contact_form input[type="tel"],
.et_pb_contact_form input[type="number"],
.et_pb_contact_form input.input,
.et_pb_contact_form select,
.et_pb_contact_form textarea,
.et_pb_contact_form .et_pb_contact_field input,
.et_pb_contact_form .et_pb_contact_field textarea {
  background: var(--bg-Input) !important;
  border: 1px solid var(--border-Input) !important;
  border-radius: var(--corner-Control) !important;
  box-shadow: var(--shadow-Input) !important;
  color: var(--text-default) !important;
  padding: 12px !important;
  font-size: 16px !important;
  line-height: 24px !important;
  min-height: var(--size-Button-L) !important;
  height: var(--size-Button-L) !important;
  box-sizing: border-box !important;
}
.et_pb_contact_form textarea { height: auto !important; min-height: 120px !important; }
.et_pb_contact_form input::placeholder,
.et_pb_contact_form textarea::placeholder,
[class*="iscu_"] input::placeholder,
[class*="iscu_"] textarea::placeholder { color: var(--text-Tertiary) !important; opacity: 1; }
.et_pb_contact_form input:focus,
.et_pb_contact_form textarea:focus,
[class*="iscu_"] input:focus,
[class*="iscu_"] textarea:focus,
[class*="iscu_"] select:focus { border-color: var(--border-Brand-Focus) !important; outline: 2px solid var(--border-Brand-Focus) !important; outline-offset: 0 !important; }
/* --- end round 13 --- */

/* --- round 14: footer theme button = secondary button, far right of .iscu_footer_header --- */
.iscu_footer_header { align-items: flex-end !important; gap: 24px; }
.iscu_footer_header > .iscu_footer_header_wrap { flex: 1 1 0 !important; min-width: 0; width: auto !important; }
.iscu_footer_header > .nw-theme-menu { order: 3; margin-left: auto; flex: none; }
.nw-theme-menu-btn {
  height: var(--size-Button-M) !important; min-width: 157px; justify-content: flex-start !important; gap: 8px !important;
  padding: 0 12px !important; border-radius: var(--corner-Control) !important;
  background: var(--bg-Surface-Default) !important; border: 1px solid var(--border-input-default) !important; box-shadow: none !important;
  color: var(--text-Secondary) !important; font-size: 14px !important; line-height: 20px !important; font-weight: 600 !important;
}
.nw-theme-menu-btn .material-symbols-rounded, .nw-theme-menu-btn .nw-theme-menu-label { color: inherit !important; }
.nw-theme-menu-btn .nw-theme-menu-label { min-width: 0 !important; text-align: left !important; }
.nw-theme-menu-btn .nw-theme-menu-chev { margin-left: auto; }
.nw-theme-menu-btn:hover { background: var(--bg-Gray-Subtle) !important; color: var(--text-default) !important; }
.nw-theme-menu-list { top: calc(100% + 8px) !important; bottom: auto !important; background: var(--bg-Raised) !important; border: 1px solid var(--border-Card) !important; border-radius: var(--corner-Control) !important; box-shadow: var(--shadow-Raised) !important; }
@media (max-width: 667px) { .iscu_footer_header { flex-wrap: wrap; } .iscu_footer_header > .nw-theme-menu { width: 100%; margin-left: 0; } .nw-theme-menu-btn { width: 100%; } }
/* --- end round 14 --- */

/* --- round 15: system filters = the standard input field ---------------- */
.iscu_system_content .iscu_system_input_feild,
.iscu_system_content .iscu_system_table_search,
.iscu_system_content .iscu_nav_search_field_wrap {
  background: var(--bg-Input) !important;
  border: 1px solid var(--border-Input) !important;
  border-radius: var(--corner-Control) !important;
  box-shadow: var(--shadow-Input) !important;
  height: var(--size-Button-L) !important;
  min-height: var(--size-Button-L) !important;
  box-sizing: border-box !important;
  color: var(--text-default) !important;
}
.iscu_system_content .iscu_system_table_search, .iscu_system_content .iscu_nav_search_field_wrap { padding: 0 12px !important; align-items: center; }
.iscu_system_content .iscu_system_table_search input, .iscu_system_content .iscu_nav_search_field_wrap input { background: transparent !important; border: 0 !important; box-shadow: none !important; outline: 0 !important; color: var(--text-default) !important; }
.iscu_system_content .iscu_system_table_search input::placeholder, .iscu_system_content .iscu_nav_search_field_wrap input::placeholder { color: var(--text-Tertiary) !important; opacity: 1; }
.iscu_system_content .iscu_system_input_feild:hover,
.iscu_system_content .iscu_system_table_search:hover,
.iscu_system_content .iscu_nav_search_field_wrap:hover { border-color: var(--border-input-default) !important; }
.iscu_system_content .iscu_system_input_feild:focus-within,
.iscu_system_content .iscu_system_table_search:focus-within,
.iscu_system_content .iscu_nav_search_field_wrap:focus-within { border-color: var(--border-Brand-Focus) !important; outline: 2px solid var(--border-Brand-Focus); outline-offset: 0; }
.iscu_system_content .iscu_system_input_feild .material-symbols-rounded,
.iscu_system_content .iscu_system_table_search .material-symbols-rounded,
.iscu_system_content .iscu_nav_search_field_wrap .material-symbols-rounded { color: var(--text-Secondary) !important; }
/* table sort arrow: background SVG is pure black -> recolour via mask */
#iscu_system_user_table th.sorting { background-image: none !important; position: relative; }
#iscu_system_user_table th.sorting::after {
  content: ""; position: absolute; right: 8px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%);
  background: var(--text-Tertiary);
  -webkit-mask: url('/wp-content/plugins/indiasan-customization/includes/images/Sorting.svg') center / contain no-repeat;
  mask: url('/wp-content/plugins/indiasan-customization/includes/images/Sorting.svg') center / contain no-repeat;
}
#iscu_system_user_table th.sorting:hover::after { background: var(--text-default); }
/* --- end round 15 --- */

/* --- child name chips (ChildBadge tokens): unselected / waiting / rejected / selected (selected wins) --- */
.iscu_parent_childs_names .iscu_child_name_badge { background: var(--ChildBadge-Default-bg) !important; color: var(--ChildBadge-Default-text) !important; }
.iscu_parent_childs_names .iscu_child_name_badge .iscu_child_status_icon { color: inherit !important; }
.iscu_parent_childs_names .iscu_child_name_badge.iscu_waiting { background: var(--ChildBadge-Waiting-bg) !important; color: var(--ChildBadge-Waiting-text) !important; }
.iscu_parent_childs_names .iscu_child_name_badge.iscu_waiting .iscu_child_status_icon { color: var(--ChildBadge-Waiting-icon) !important; }
.iscu_parent_childs_names .iscu_child_name_badge.iscu_reject { background: var(--ChildBadge-Rejected-bg) !important; color: var(--ChildBadge-Rejected-text) !important; }
.iscu_parent_childs_names .iscu_child_name_badge.iscu_reject .iscu_child_status_icon { color: var(--ChildBadge-Rejected-icon) !important; }
.iscu_parent_childs_names .iscu_child_name_badge.iscu_child_selected { background: var(--ChildBadge-Selected-bg) !important; color: var(--ChildBadge-Selected-text) !important; }
.iscu_parent_childs_names .iscu_child_name_badge.iscu_child_selected .iscu_child_status_icon { color: var(--ChildBadge-Selected-icon) !important; }
/* edit button: dark bg in light, light bg in dark → the hard-coded white pencil must flip too */
:root[data-theme="dark"] a.iscu_edit_user svg [fill="white"], :root[data-theme="dark"] a.iscu_edit_user svg [fill="#fff"], :root[data-theme="dark"] a.iscu_edit_user svg [fill="#FFFFFF"] { fill: var(--text-Inverse) !important; }
:root[data-theme="dark"] a.iscu_edit_user svg [stroke="white"] { stroke: var(--text-Inverse) !important; }
