/*
 * KT public-site WCAG AA contrast guard.
 *
 * This stylesheet is deliberately loaded after every Builder page stylesheet.
 * It keeps the approved orange/blue visual language with exactly one orange.
 * KT brand orange is used for fills and decoration; copy switches between the
 * KT dark and light text colours wherever orange text would miss WCAG AA.
 */
.site[data-ktw-route] {
  --ktw-brand-orange: #ef7d30;
  --ktw-aa-action: var(--ktw-brand-orange);
  --ktw-aa-action-text: #06283d;
  --ktw-aa-muted: #526879;
  --ktw-aa-accent-text-on-light: #073a5a;
  --ktw-aa-accent-text-on-dark: #ffffff;
  --ktw-aa-text-on-dark: #f2f7fa;
}

/* Consent UI is appended beside the route root, so its brand contract needs a
 * deliberately global, component-bounded fallback as well. */
html body .ktw-cookie-kicker {
  color: #073a5a !important;
  text-decoration: underline #ef7d30 2px !important;
  text-underline-offset: 4px !important;
}

html body .ktw-cookie-actions button[data-ktw-consent="granted"] {
  background: #ef7d30 !important;
  border-color: #ef7d30 !important;
  color: #06283d !important;
}

/* Shared shell: these elements occur on every public canonical page. */
html body .site[data-ktw-route] .ktw-shell-cta {
  background: var(--ktw-aa-action) !important;
  border-color: var(--ktw-aa-action) !important;
  color: var(--ktw-aa-action-text) !important;
}

html:root:root body .site .ktw-shell-menu-link::after,
html:root:root body .ktw-shell-menu-link::after,
html:root:root body .site.site[data-ktw-route] > .ktw-shell-wrap .ktw-shell-header .ktw-shell-menu-link::after {
  background: #ef7d30 !important;
}

html body .site[data-ktw-route] .kt-home-slider-arrow {
  border-color: var(--ktw-brand-orange) !important;
}

html body .site[data-ktw-route] .kt-home-slider-arrow::before {
  border-color: var(--ktw-brand-orange) !important;
}

html body .site[data-ktw-route] summary::after {
  color: var(--ktw-brand-orange) !important;
  text-decoration-color: var(--ktw-brand-orange) !important;
}

html body .site[data-ktw-route] .ktw-perfect-size-note > span {
  border-color: var(--ktw-brand-orange) !important;
}

html body .site[data-ktw-route] :is(
  .ktw-perfect-system-link,
  .kt-doc-text-link
) {
  border-bottom-color: var(--ktw-brand-orange) !important;
}

html body .site[data-ktw-route] .ktw-adaptmax-topic-grid > article {
  border-top-color: var(--ktw-brand-orange) !important;
}

html body .site[data-ktw-route] .ktw-adaptmax-data-notes > p {
  border-left-color: var(--ktw-brand-orange) !important;
}

html body .site[data-ktw-route] .ktw-adaptmax-spec-table a {
  text-decoration-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route="adapt-max"] table a {
  text-decoration-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site.site[data-ktw-route="adapt-max"] th a {
  text-decoration-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site.site.site[data-ktw-route="adapt-max"] a {
  text-decoration-color: var(--ktw-brand-orange) !important;
}

html body .site[data-ktw-route] .kt-hotwater-hero-copy > a,
html body .site[data-ktw-route] .kt-hotwater-metrics > article {
  background: var(--ktw-brand-orange) !important;
  border-color: var(--ktw-brand-orange) !important;
  color: var(--ktw-aa-action-text) !important;
}

html body .site[data-ktw-route] .kt-hotwater-metrics > article :is(strong, span, small, p),
html body .site[data-ktw-route] .kt-hotwater-hero-copy > a :is(span, strong) {
  color: var(--ktw-aa-action-text) !important;
}

html body .site[data-ktw-route] .kt-doc-file i {
  color: var(--ktw-brand-orange) !important;
}

html body .site[data-ktw-route] .kt-dhw-hero-copy > a {
  background: var(--ktw-brand-orange) !important;
  border-color: var(--ktw-brand-orange) !important;
  color: var(--ktw-aa-action-text) !important;
}

html body .site[data-ktw-route] .kt-dhw-facts span,
html body .site[data-ktw-route] .kt-doc-guide {
  border-top-color: var(--ktw-brand-orange) !important;
}

html body .site[data-ktw-route] .kt-doc-related-links i {
  color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route] .kt-doc-family i {
  color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route="eigenheim"] .kt-eigen-icon-card path {
  stroke: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route="eigenheim"] .kt-eigen-icon-card text {
  fill: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route="eigenheim"] .kt-eigen-path-card,
html:root:root body .site[data-ktw-route="fr/pompe-a-chaleur-renovation"] .kt-altbau-data-grid > article {
  border-top-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route="eigenheim"] .kt-eigen-path-card li::before {
  color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route="eigenheim"] .kt-eigen-process-list li > span {
  background: var(--ktw-brand-orange) !important;
  color: var(--ktw-aa-action-text) !important;
}

html:root:root body .site[data-ktw-route] .ktw-aw-noise-setup-card.is-active {
  border-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route="heizungsunternehmer"] .badge {
  background: var(--ktw-brand-orange) !important;
  color: var(--ktw-aa-action-text) !important;
}

html:root:root body .site[data-ktw-route="industrie"] :is(
  .ktw-project-hero-facts,
  .ktw-project-card
) {
  border-top-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route="industrie"] .ktw-system-card__link::after,
html:root:root body .site[data-ktw-route="industrie"] .ktw-process > article::before {
  color: var(--ktw-brand-orange) !important;
  text-decoration-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route] .kt-altbau-data-grid > article {
  border-top-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route] .kt-altbau-data ol li > span,
html:root:root body .site[data-ktw-route] .kt-altbau-process ol li > span {
  background: var(--ktw-brand-orange) !important;
  color: var(--ktw-aa-action-text) !important;
}

html:root:root body .site[data-ktw-route] .kt-knowledge-card::before {
  background: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route] .kt-knowledge-card strong > span {
  color: var(--ktw-brand-orange) !important;
  text-decoration-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route] .badge {
  background: var(--ktw-brand-orange) !important;
  color: var(--ktw-aa-action-text) !important;
}

html:root:root body .site[data-ktw-route] .kt-cloud-hero-copy > a {
  background: var(--ktw-brand-orange) !important;
  border-color: var(--ktw-brand-orange) !important;
  color: var(--ktw-aa-action-text) !important;
}

html:root:root body .site[data-ktw-route] :is(
  .ktw-project-hero-facts,
  .ktw-project-card
) {
  border-top-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site.site[data-ktw-route="kontakt"] :is(
  .kt-contact-home-card,
  .kt-reference-reason-grid > article
) {
  border-top-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route] .ktw-system-card__link::after,
html:root:root body .site[data-ktw-route] .ktw-process > article::before {
  color: var(--ktw-brand-orange) !important;
  text-decoration-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route] .kt-r290-hero__fact > span {
  color: var(--ktw-brand-orange) !important;
  text-decoration-color: var(--ktw-brand-orange) !important;
}

html:root:root body .site[data-ktw-route] .kt-r290-note :is(strong, p) {
  color: var(--ktw-aa-action-text) !important;
}

html:root:root body .site[data-ktw-route] :is(
  .kt-about-person,
  .kt-source-compare-card,
  .ktw-subsidy-explain__card,
  .ktw-pump-route-card
) {
  border-top-color: var(--ktw-brand-orange) !important;
}

html body .site[data-ktw-route] .ktw-shell-footer-column h2 {
  color: #52616d !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] .ktw-shell-footer-contact > span {
  color: var(--ktw-aa-accent-text-on-light) !important;
  opacity: 1 !important;
}

/* A few legacy pages wrap the shared shell outside their route container. */
html body .ktw-shell-global-footer .ktw-shell-footer-column h2,
html body .ktw-shell-footer-column h2 {
  color: #52616d !important;
  opacity: 1 !important;
}

html body .ktw-shell-global-footer .ktw-shell-footer-contact > span {
  color: var(--ktw-aa-accent-text-on-light, #073a5a) !important;
  opacity: 1 !important;
}

html body a.ktw-shell-cta,
html body .site a.ktw-shell-cta,
html body .ktw-shell-cta {
  background: var(--ktw-aa-action, #ef7d30) !important;
  border-color: var(--ktw-aa-action, #ef7d30) !important;
  color: var(--ktw-aa-action-text, #06283d) !important;
}

/* Filled controls keep the exact KT orange and use dark copy for AA. */
html body .site[data-ktw-route] :is(
  .btn-primary,
  .kt-home-request,
  .kt-home-filter.is-active,
  .kt-doc-button--primary,
  .kt-consultation-submit,
  .kt-consultation-button:not(.kt-consultation-button--secondary),
  .ktw-subsidy-button,
  .kt-cloud-help-primary,
  .kt-dhw-cta > a,
  .kt-eigen-link,
  .kt-hotwater-cta > a,
  .kt-hotwater-product > div > a,
  .kt-service-btn-primary,
  .kt-solutions-link,
  .ktw-aw-btn--primary,
  .ktw-project-button--orange,
  button[data-document-submit],
  nav[aria-label="Weiterführende Informationen"] > a,
  #contact > a,
  #contatto > a,
  a.primary,
  button.primary,
  .primary,
  [class*="-button--primary"],
  [class*="-button"].is-primary
) {
  background: var(--ktw-aa-action) !important;
  border-color: var(--ktw-aa-action) !important;
  color: var(--ktw-aa-action-text) !important;
}

html body .site[data-ktw-route] [class*="model-card"][aria-current="page"] {
  background: var(--ktw-aa-action) !important;
  background-image: none !important;
  border-color: var(--ktw-aa-action) !important;
  color: var(--ktw-aa-action-text) !important;
}

html body .site[data-ktw-route] [class*="model-card"][aria-current="page"] :is(
  span,
  strong,
  small,
  h3,
  p,
  dt,
  dd
) {
  color: var(--ktw-aa-action-text) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] :is(
  .kt-r290-note,
  .kt-hotwater-metrics > article > strong,
  .kt-hotwater-metrics > article > span:not(.kt-hotwater-metric-icon),
  .ktw-perfect-model-marker > b
) {
  background: var(--ktw-aa-action) !important;
  border-color: var(--ktw-aa-action) !important;
  color: var(--ktw-aa-action-text) !important;
}

/* Semantic labels and numbered markers on white, mist and pale-blue surfaces. */
html body .site[data-ktw-route] :is(
  [class*="eyebrow"],
  [class*="kicker"],
  [class*="section-id"],
  [class*="topic-label"],
  [class*="card__number"],
  [class*="card__type"],
  [class*="process__number"],
  .badge,
  figcaption > span,
  .kt-doc-file > span,
  a[target="_blank"] > span
) {
  color: var(--ktw-aa-accent-text-on-light) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] :is(
  .kt-adapt-model-tool-grid,
  .kt-kronoterm-product,
  .kt-kronoterm-tool-grid,
  .kt-r290-products,
  .ktw-pump-product-meta
) span,
html body .site[data-ktw-route] :is(
  .ktw-product-stat,
  .kt-service-entitlement-grid > article,
  .kt-service-card-grid > article,
  .kt-about-card,
  .ktw-adaptmax-topic-label
) > :is(span, strong),
html body .site[data-ktw-route] [data-ktw-route="agb"] h3 > span,
html body .site[data-ktw-route="agb"] h3 > span,
html body .site[data-ktw-route] [id^="agb-"] > h3 > span {
  color: var(--ktw-aa-accent-text-on-light) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] :is(dt, figcaption > em, a[target="_blank"] > em) {
  color: var(--ktw-aa-muted) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] :is(
  article,
  li,
  [class*="-card"],
  [class*="-step"],
  [class*="-plan"]
) > :is(span, b, small):first-child {
  color: var(--ktw-aa-accent-text-on-light) !important;
  opacity: 1 !important;
}

/* Muted information stays visibly secondary without dropping below AA. */
html body .site[data-ktw-route] :is(
  [class*="-copy"],
  [class*="-head"],
  [class*="-heading"],
  [class*="-card"],
  [class*="-item"],
  [class*="-intro"],
  figcaption
) :is(p, small, dt, em),
html body .site[data-ktw-route] :is(
  [class*="-copy"],
  [class*="-head"],
  [class*="-heading"],
  [class*="-card"],
  [class*="-item"],
  [class*="-intro"]
) > p {
  color: var(--ktw-aa-muted) !important;
  opacity: 1 !important;
}

/* Orange accents need a lighter counterpart on navy and image-backed areas. */
html body .site[data-ktw-route] :is(
  [class*="--navy"],
  [class*="--inverse"],
  [class*="--dark"],
  [class*="-radiators"],
  .ktw-perfect-navy,
  .ktw-perfect-nav,
  .ktw-perfect-cta,
  .ktw-perfect-plan,
  .ktw-perfect-system-card,
  .ktw-product-step,
  .kt-adapt-model-cta,
  .kt-kronoterm-cta,
  .kt-home-nav-inner,
  .kt-contact-home-card--project,
  .kt-contact-home-card--service,
  .kt-service-availability-intro,
  .kt-support-result,
  .kt-service-intro-centered,
  .kt-source-product,
  .kt-r290-next,
  .ktw-pump-section--navy,
  .ktw-pump-service
) :is(
  [class*="eyebrow"],
  [class*="kicker"],
  [class*="section-id"],
  [class*="topic-label"],
  [class*="card__number"],
  [class*="card__type"],
  [class*="process__number"],
  .badge,
  article > span:first-child,
  article > b:first-child,
  li > span:first-child,
  li > b:first-child,
  a > span,
  li > span,
  a[target="_blank"] > span
) {
  color: var(--ktw-aa-accent-text-on-dark) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] :is(
  [class*="--navy"],
  [class*="--inverse"],
  [class*="--dark"],
  [class*="-radiators"],
  .ktw-perfect-navy,
  .ktw-perfect-nav,
  .ktw-perfect-cta,
  .ktw-perfect-plan,
  .ktw-perfect-system-card,
  .ktw-product-step,
  .kt-adapt-model-cta,
  .kt-kronoterm-cta,
  .kt-home-nav-inner,
  .kt-contact-home-card--project,
  .kt-contact-home-card--service,
  .kt-service-availability-intro,
  .kt-support-result,
  .kt-service-intro-centered,
  .kt-source-product,
  .kt-r290-next,
  .ktw-pump-section--navy,
  .ktw-pump-service
) :is(p, small, dt, em) {
  color: var(--ktw-aa-text-on-dark) !important;
  opacity: 1 !important;
}

/* Product specification panels are navy even when their class name does not
 * carry a colour modifier.  Their definition terms therefore use the light
 * text token instead of the global muted-on-white token. */
html body .site[data-ktw-route] .kt-adapt-model-data :is(dt, dd, small),
html body .site[data-ktw-route] .kt-adapt-model-card:not([aria-current="page"]) .kt-adapt-model-data :is(dt, dd, small) {
  color: var(--ktw-aa-text-on-dark) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] #auslegung :is(
  [class*="eyebrow"],
  [class*="kicker"],
  article > b,
  article > span
) {
  color: var(--ktw-aa-accent-text-on-dark) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] #auslegung :is(p, small, dt, em) {
  color: var(--ktw-aa-text-on-dark) !important;
  opacity: 1 !important;
}

/* Light cards embedded in navy sections keep their own light-surface palette. */
html body .site[data-ktw-route] :is(
  .ktw-control-card,
  .ktw-process > article,
  .ktw-project-card,
  .ktw-system-card,
  .ktw-pump-product-card,
  .ktw-pump-route-card,
  .ktw-pump-competence-grid > article,
  .ktw-subsidy-explain__card
) p,
html body .site[data-ktw-route] .ktw-perfect-navy .ktw-control-card p,
html body .site[data-ktw-route] .ktw-perfect-navy .ktw-control-card .ktw-control-card__mark,
html body .site[data-ktw-route] li > div > p,
html body .site[data-ktw-route] .kt-adapt-model-source p {
  color: var(--ktw-aa-muted) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] :is(
  .ktw-control-card__mark,
  .ktw-perfect-variant small,
  .ktw-pump-product-meta span,
  .ktw-product-stat strong,
  .kt-about-person > div > p
) {
  color: var(--ktw-aa-accent-text-on-light) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] .kt-about-person > span[aria-hidden="true"],
html body .site[data-ktw-route] .kt-kronoterm-role--blue > .kt-kronoterm-role__number,
html body .site[data-ktw-route] .kt-home-result-link,
html body .site[data-ktw-route] .ktw-pump-section--navy .ktw-pump-kicker,
html body .site[data-ktw-route] aside .ktw-perfect-eyebrow,
html body .site[data-ktw-route] aside .ktw-product-eyebrow {
  color: var(--ktw-aa-accent-text-on-dark) !important;
  opacity: 1 !important;
}

/* Older component families used the bright brand tint directly for text on
 * white.  Keep the orange identity but switch those labels to the AA token. */
html body .site[data-ktw-route] :is(
  .kt-dhw-section-head > span,
  .kt-dhw-usecase > div > span,
  .kt-doc-family > span,
  .ktw-aw-fieldset-head > span,
  .ktw-aw-empty > span,
  .ktw-aw-method__privacy > span,
  .kt-contact-mail-panel > span,
  .kt-cloud-help-intro > span,
  .kt-service-eyebrow,
  .kt-about-inline-link,
  a[href$="r290-sicherheitsabstaende"] > span,
  a[href$="adapt-2"] > span,
  a[href$="adapt-max"] > span,
  a[href="/elektro-hydraulikdatenbank"] > span
) {
  color: var(--ktw-aa-accent-text-on-light) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] :is(
  a[href$="r290-sicherheitsabstaende"] > em,
  a[href$="adapt-2"] > em,
  a[href$="adapt-max"] > em,
  a[href="/elektro-hydraulikdatenbank"] > em,
  .ktw-subsidy-check__head > p,
  .ktw-subsidy-field__hint,
  .ktw-subsidy-explain__head > p
) {
  color: var(--ktw-aa-muted) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] :is(
  .kt-dhw-cta > a,
  .kt-dhw-product-grid article > div > a,
  a[rel="noopener"].ktw-aw-btn--primary
) {
  background: var(--ktw-aa-action) !important;
  background-image: none !important;
  border-color: var(--ktw-aa-action) !important;
  color: var(--ktw-aa-action-text) !important;
}

html body .site[data-ktw-route] #eigenheim-heizkoerper-title {
  color: var(--ktw-aa-text-on-dark) !important;
}

/* Final enforcement layer.  Historic route bundles contain selectors with
 * unusually high specificity.  The guard must still win when it is injected
 * as the final public-site stylesheet, so these shared component contracts use
 * an explicit root scope as well as !important. */
html:root:root body .site[data-ktw-route] .kt-adapt-model-data dt {
  color: var(--ktw-aa-text-on-dark) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] .kt-adapt-model-card[aria-current="page"] {
  background: var(--ktw-aa-action) !important;
  background-image: none !important;
  border-color: var(--ktw-aa-action) !important;
  color: var(--ktw-aa-action-text) !important;
}

html:root:root body .site[data-ktw-route] .kt-adapt-model-card[aria-current="page"] :is(
  span,
  strong,
  small,
  h3,
  p,
  dt,
  dd
) {
  color: var(--ktw-aa-action-text) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] .kt-adapt-model-rail a[aria-current="page"] {
  background: var(--ktw-aa-action) !important;
  background-image: none !important;
  border-color: var(--ktw-aa-action) !important;
  color: var(--ktw-aa-action-text) !important;
}

html:root:root body .site[data-ktw-route] .kt-adapt-model-rail a[aria-current="page"] :is(strong, small) {
  color: var(--ktw-aa-action-text) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route="agb"] [id^="agb-"] > h3 > span {
  color: var(--ktw-aa-accent-text-on-light) !important;
}

html:root:root body .site .ktw-shell-global-footer .ktw-shell-footer-column h2 {
  color: #52616d !important;
  opacity: 1 !important;
}

html:root:root body .site a.ktw-shell-cta {
  background: var(--ktw-aa-action, #ef7d30) !important;
  background-image: none !important;
  border-color: var(--ktw-aa-action, #ef7d30) !important;
  color: var(--ktw-aa-action-text, #06283d) !important;
}

html:root:root body .site .ktw-shell-global-footer span[aria-hidden="true"] {
  color: var(--ktw-aa-muted, #526879) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] .ktw-control-card p {
  color: var(--ktw-aa-muted) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] .ktw-control-card .ktw-control-card__mark {
  color: var(--ktw-aa-accent-text-on-light) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] :is(
  .kt-dhw-usecase > div > span,
  .kt-doc-family > span,
  .kt-about-proof-grid article > strong,
  .kt-about-person > div > p:first-child,
  .kt-r290-source-list a > span
) {
  color: var(--ktw-aa-accent-text-on-light) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] :is(
  .kt-kronoterm-role--blue > .kt-kronoterm-role__number,
  .kt-kronoterm-section--blue .kt-kronoterm-process li > span,
  .ktw-pump-final .ktw-pump-kicker,
  aside .ktw-perfect-eyebrow,
  aside .ktw-product-eyebrow
) {
  color: var(--ktw-aa-accent-text-on-dark) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] .kt-contact-home-card:not(.kt-contact-home-card--project, .kt-contact-home-card--service) > span,
html:root:root body .site[data-ktw-route] .kt-contact-home-card:not(.kt-contact-home-card--project, .kt-contact-home-card--service) > p,
html:root:root body .site[data-ktw-route] .kt-contact-home-card em,
html:root:root body .site[data-ktw-route] .kt-r290-source-list a > em {
  color: var(--ktw-aa-muted) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] .kt-kronoterm-source-links a {
  color: #073a5a !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] .kt-cloud-frame-actions a[rel="noopener"] {
  background: var(--ktw-aa-action) !important;
  background-image: none !important;
  border-color: var(--ktw-aa-action) !important;
  color: var(--ktw-aa-action-text) !important;
}

html:root:root body .site[data-ktw-route] .ktw-perfect-downloads a > em,
html:root:root body .site[data-ktw-route] .ktw-adaptmax-download-grid a > em {
  color: var(--ktw-aa-text-on-dark) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] .kt-dhw-card > div > span,
html:root:root body .site[data-ktw-route] .kt-contact-mail-panel > em {
  color: var(--ktw-aa-accent-text-on-light) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] :is(
  .kt-service-availability-intro,
  .kt-support-result,
  .kt-service-intro-centered
) .kt-service-eyebrow {
  color: var(--ktw-aa-accent-text-on-dark) !important;
  opacity: 1 !important;
}

html:root:root body .site[data-ktw-route] :is(
  #support-einstieg .kt-service-intro,
  .kt-service-two-column
) .kt-service-eyebrow {
  color: var(--ktw-aa-accent-text-on-light) !important;
  opacity: 1 !important;
}

/* One orange means one exact colour.  Small accent copy uses an AA-safe text
 * colour and carries the unchanged brand orange as a crisp underline. */
html:root:root body .site[data-ktw-route] :is(
  [class*="eyebrow"],
  [class*="kicker"],
  [class*="section-id"],
  [class*="topic-label"],
  [class*="card__number"],
  [class*="card__type"],
  [class*="process__number"],
  .badge,
  .ktw-shell-footer-contact > span,
  .ktw-control-card__mark,
  .kt-dhw-usecase > div > span,
  .kt-doc-family > span,
  .kt-about-proof-grid article > strong,
  .kt-about-person > div > p:first-child,
  .kt-r290-source-list a > span,
  .kt-dhw-card > div > span,
  .kt-contact-mail-panel > em
) {
  text-decoration-color: var(--ktw-brand-orange) !important;
  text-decoration-line: underline !important;
  text-decoration-skip-ink: auto !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: .32em !important;
}

/* Product support cards sit on white.  Keep all three labels equally legible:
 * dark AA-safe copy plus the one unchanged KT brand orange as underline. */
html:root:root body .site[data-ktw-route] :is(
  .ktw-perfect-support-grid,
  .ktw-adaptmax-support-grid
) > a > span {
  color: var(--ktw-aa-accent-text-on-light) !important;
  opacity: 1 !important;
  text-decoration-color: var(--ktw-brand-orange) !important;
  text-decoration-line: underline !important;
  text-decoration-skip-ink: auto !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: .32em !important;
}

html body .site[data-ktw-route] .kt-adapt-model-data small {
  color: var(--ktw-aa-text-on-dark) !important;
  opacity: 1 !important;
}

html body .site[data-ktw-route] :is(
  .ktw-adaptmax-outline,
  a[href$="#downloads"]
) {
  background: #fff !important;
  border-color: #073a5a !important;
  color: #073a5a !important;
}

/* The consultation root is the first Builder content element.  The shared
 * full-bleed-hero selector must not turn the whole multi-section page into an
 * image-backed hero. */
html body .site[data-ktw-route="beratungstermin"] #kt-consultation-page,
html body .site[data-ktw-route="beratungstermin-verwalten"] #kt-consultation-manage-page {
  background: #fff !important;
  color: #073a5a !important;
  min-height: 0 !important;
}

/* Route bundles can be appended by Builder after this linked stylesheet.  The
 * following final contracts deliberately out-rank those late AGB, wizard and
 * shared-shell rules without changing their structure or behaviour. */
html:root:root body .site.site.site[data-ktw-route] .ktw-shell-cta {
  background: #ef7d30 !important;
  background-image: none !important;
  border-color: #ef7d30 !important;
  color: #06283d !important;
}

html:root:root body .site.site.site[data-ktw-route] .ktw-shell-menu-link::after {
  background: #ef7d30 !important;
}

html:root:root body .site.site.site[data-ktw-route] .ktw-shell-global-footer .ktw-shell-footer-column h2 {
  color: #52616d !important;
  opacity: 1 !important;
}

html:root:root body .site.site.site[data-ktw-route] .ktw-shell-global-footer span[aria-hidden="true"] {
  color: #52616d !important;
  opacity: 1 !important;
}

html:root:root body .site.site.site[data-ktw-route="agb"] :is(
  .btn-primary,
  .agb-pdf-link
) {
  background: #ef7d30 !important;
  background-image: none !important;
  border-color: #ef7d30 !important;
  color: #06283d !important;
}

html:root:root body .site.site.site[data-ktw-route="agb"] :is(
  .section-id,
  .agb-section h3 > span
) {
  color: #073a5a !important;
  opacity: 1 !important;
  text-decoration: underline #ef7d30 2px !important;
  text-underline-offset: .32em !important;
}

html:root:root body .site.site.site[data-ktw-route="agb"] .agb-hero-compact-copy .agb-eyebrow {
  color: #ffffff !important;
  text-decoration: underline #ef7d30 2px !important;
  text-underline-offset: .32em !important;
}

html:root:root body .site.site.site[data-ktw-route="heizungsrechner"] .ktw-aw-btn--primary,
html:root:root body .site.site.site[data-ktw-route="heizungsrechner"] nav[aria-label="Weiterführende Informationen"] > a {
  background: #ef7d30 !important;
  background-image: none !important;
  border-color: #ef7d30 !important;
  color: #06283d !important;
}

html:root:root body .site.site.site[data-ktw-route="heizungsrechner"] :is(
  .ktw-aw-step-head > span,
  .ktw-aw-fieldset-head > span,
  .ktw-aw-empty > span,
  .ktw-aw-method__eyebrow,
  .ktw-aw-method__grid > article > span,
  .ktw-aw-method__privacy > span
) {
  color: #073a5a !important;
  opacity: 1 !important;
  text-decoration: underline #ef7d30 2px !important;
  text-underline-offset: .32em !important;
}

html:root:root body .site.site.site[data-ktw-route="heizungsrechner"] .ktw-aw-noise-setup-card.is-active {
  border-color: #ef7d30 !important;
}
