.knw-aw-box {
  margin: 2rem 0;
  border: 1px solid #d6d9dd;
  border-radius: 7px;
  background: #fff;
  overflow: hidden;
  box-sizing: border-box;
}
/* Textwerbung wird nur per Shortcode ausgegeben. Kein eigener oberer Außenabstand,
   damit Divi-Abstände von 0 px nicht durch das Plugin wieder vergrößert werden. */
.knw-aw-box--textads {
  margin-top: 0 !important;
}
.knw-aw-label {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  min-height: 30px;
  padding: 4px 10px;
  border-bottom: 1px solid #e1e3e6;
  background: #f7f7f7;
  font-size: 13px;
  line-height: 1.35;
  color: #444;
}
.knw-aw-label-link,
.knw-aw-label-text {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: inherit;
  text-decoration: none;
}
.knw-aw-label-link:hover,
.knw-aw-label-link:focus {
  text-decoration: underline;
}
.knw-aw-info {
  color: #1777c8;
  font-weight: 700;
}
.knw-aw-body {
  padding: 18px;
}
.knw-aw-adsense-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--knw-aw-ad-min-desktop, 250px);
}
.knw-aw-adsense-unit {
  width: 100%;
}
.knw-aw-unit--replaced {
  display: none !important;
}
.knw-aw-replacement-ad[hidden] {
  display: none !important;
}
.knw-aw-replacement-ad {
  width: 100%;
  min-width: 0;
  align-self: stretch;
  box-sizing: border-box;
}
.knw-aw-replacement-ad[data-knw-aw-replacement-active="1"] {
  display: flex;
  align-items: center;
  justify-content: center;
}
.knw-aw-replacement-link {
  display: flex;
  width: 100%;
  min-height: 100%;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-sizing: border-box;
}
.knw-aw-replacement-image {
  display: block;
  max-width: 100%;
  width: auto;
  height: auto;
  max-height: 100%;
  object-fit: contain;
}
.knw-aw-adsense-wrap--dual {
  display: block;
}
.knw-aw-adsense-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  width: 100%;
}
.knw-aw-adsense-cell {
  min-width: 0;
  min-height: var(--knw-aw-ad-min-desktop, 250px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.knw-aw-aff-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.knw-aw-aff-card {
  min-width: 0;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px;
  border: 1px solid #d8dadd;
  border-radius: 8px;
  background: #f8f8f8;
  color: #262626;
  text-decoration: none;
  font-weight: 400;
  box-sizing: border-box;
}
.knw-aw-aff-card:hover,
.knw-aw-aff-card:focus {
  border-color: #aeb4ba;
  text-decoration: none;
}
.knw-aw-aff-media {
  flex: 0 0 44px;
  width: 44px;
  min-height: 1px;
}
.knw-aw-aff-image {
  display: block;
  width: 44px;
  height: 44px;
  object-fit: contain;
  border-radius: 50%;
}
.knw-aw-aff-copy {
  min-width: 0;
}
.knw-aw-aff-title {
  display: block;
  font-weight: var(--knw-aw-aff-title-weight, 700);
  margin-bottom: 5px;
  font-size: var(--knw-aw-aff-title-size, 1.08em);
  line-height: 1.2;
}
.knw-aw-aff-desc,
.knw-aw-aff-extra {
  line-height: 1.45;
}
.knw-aw-aff-desc {
  font-size: var(--knw-aw-aff-desc-size, .92em);
  font-weight: var(--knw-aw-aff-desc-weight, 400);
}
.knw-aw-aff-extra {
  margin-top: 7px;
  font-size: var(--knw-aw-aff-extra-size, .92em);
  font-weight: var(--knw-aw-aff-extra-weight, 700);
}
.knw-aw-textads-heading {
  margin: 0 0 8px;
  font-size: var(--knw-aw-aff-title-size, 1.08em);
  font-weight: var(--knw-aw-aff-title-weight, 700);
  line-height: 1.3;
}
.knw-aw-textad-list {
  margin: 0;
}
.knw-aw-textad-line {
  margin: 0 0 2px;
  font-size: var(--knw-aw-aff-desc-size, .92em);
  font-weight: var(--knw-aw-aff-desc-weight, 400);
  line-height: 1.3;
}
.knw-aw-textad-line:last-child {
  margin-bottom: 0;
}
.knw-aw-textad-link,
.knw-aw-textad-extra-link {
  font-weight: 600;
}
.knw-aw-textad-line strong,
.knw-aw-textad-line b {
  font-size: var(--knw-aw-aff-extra-size, .92em);
  font-weight: var(--knw-aw-aff-extra-weight, 700);
}
.knw-aw-textads-footer {
  margin: 16px 0 0;
  font-size: .9em;
  line-height: 1.45;
}
.knw-aw-backlinkseller {
  font-size: var(--knw-aw-aff-desc-size, .92em);
  font-weight: var(--knw-aw-aff-desc-weight, 400);
  line-height: 1.3;
}
/* Von Backlinkseller gelieferter Text und Links folgen derselben zentralen
   Typografie wie die normale Affiliate-Beschreibung. Kind-Elemente erhalten
   1em, damit die eingestellte Größe nicht mehrfach verschachtelt skaliert. */
.knw-aw-backlinkseller p,
.knw-aw-backlinkseller div,
.knw-aw-backlinkseller span,
.knw-aw-backlinkseller li,
.knw-aw-backlinkseller a {
  font-size: 1em;
  line-height: inherit;
}
.knw-aw-backlinkseller a {
  font-weight: inherit;
}
.knw-aw-backlinkseller p,
.knw-aw-backlinkseller div {
  margin-top: 0;
  margin-bottom: 5px;
}
.knw-aw-backlinkseller ul,
.knw-aw-backlinkseller ol {
  margin-top: 0;
  margin-bottom: 5px;
  padding-left: 1.25em;
}
.knw-aw-backlinkseller li {
  margin: 0 0 2px;
}
.knw-aw-backlinkseller strong,
.knw-aw-backlinkseller b {
  font-weight: var(--knw-aw-aff-extra-weight, 700);
}
.knw-aw-backlinkseller > :first-child {
  margin-top: 0;
}
.knw-aw-backlinkseller > :last-child {
  margin-bottom: 0;
}
.knw-aw-combined-section {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #e1e3e6;
}
.knw-aw-combined-section:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.knw-aw-combined-heading {
  margin: 0 0 6px;
  font-size: var(--knw-aw-aff-title-size, 1.08em);
  font-weight: var(--knw-aw-aff-title-weight, 700);
  line-height: 1.3;
}
.knw-aw-paypal {
  padding: 12px 18px 16px;
  border-top: 1px solid #e1e3e6;
  text-align: center;
}
.knw-aw-paypal-intro {
  margin: 0 0 9px;
  font-size: var(--knw-aw-paypal-intro-size, .94em);
  line-height: 1.4;
  color: #444;
}
.knw-aw-paypal-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  max-width: 100%;
  padding: 9px 16px;
  border: 1px solid #0070ba;
  border-radius: 6px;
  background: #0070ba;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none !important;
  box-sizing: border-box;
}
.knw-aw-paypal-button:link,
.knw-aw-paypal-button:visited,
.knw-aw-paypal-button:hover,
.knw-aw-paypal-button:focus,
.knw-aw-paypal-button:active {
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  text-decoration: none !important;
}
.knw-aw-paypal-button:hover,
.knw-aw-paypal-button:focus {
  background: #005ea6;
  border-color: #005ea6;
}
.knw-aw-paypal-logo {
  display: block;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  color: #fff !important;
  fill: #fff !important;
}
.knw-aw-paypal-button .knw-aw-paypal-logo path {
  fill: #fff !important;
}
.knw-aw-paypal-text {
  color: #fff !important;
  -webkit-text-fill-color: #fff;
}
@media (max-width: 980px) {
  .knw-aw-aff-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .knw-aw-adsense-grid { grid-template-columns: 1fr; }
  .knw-aw-adsense-cell--secondary { display: none; }
}
@media (max-width: 600px) {
  .knw-aw-body { padding: 12px; }
  .knw-aw-aff-grid { grid-template-columns: 1fr; }
  .knw-aw-adsense-wrap { min-height: var(--knw-aw-ad-min-mobile, 100px); }
  .knw-aw-adsense-cell { min-height: var(--knw-aw-ad-min-mobile, 100px); }
  .knw-aw-paypal { padding: 10px 12px 14px; }
}

/* 1.0.12: kompaktere Textwerbung/Partnerseiten. */
.knw-aw-textads-body {
  padding-top: 12px;
  padding-bottom: 12px;
}
.knw-aw-backlinkseller br + br {
  display: none;
}

/* 1.0.13: Theme-/Divi-sichere Angleichung der Textwerbe- und Partnerseiten-Überschriften
   an die zentralen Affiliate-Überschrift-Einstellungen. */
.knw-aw-box .knw-aw-textads-heading,
.knw-aw-box .knw-aw-combined-heading {
  font-size: var(--knw-aw-aff-title-size, 1.08em) !important;
  font-weight: var(--knw-aw-aff-title-weight, 700) !important;
  line-height: 1.3 !important;
}


/* 1.0.31: Responsive Platzhalter bleiben statisch an ihrer Divi-Position.
   Dadurch kann Divi 4 Sticky die reale Elementhoehe bereits beim ersten
   Layout korrekt erfassen. Nur die zum Viewport passende Kopie ist sichtbar. */
.knw-aw-responsive-slot,
.knw-aw-shortcode-block {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
  box-sizing: border-box;
}
/* 1.0.33: Responsive Werbeplaetze bleiben fuer Divi 4 Sticky geometrisch
   neutral. Der Wrapper bringt weder eigenen Vertikalabstand noch einen
   neuen Formatting Context mit. Auch die normalen 2rem-Aussenabstaende
   des Werbekastens werden innerhalb von [knw_werbeplatz] unterdrueckt.
   Damit entspricht die gemessene Hoehe exakt dem sichtbaren Werbeinhalt. */
.knw-aw-responsive-block {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
  box-sizing: border-box;
}
.knw-aw-responsive-block > .knw-aw-box {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.knw-aw-responsive-slot:empty {
  display: none;
}
.knw-aw-responsive-slot[data-knw-aw-device="mobil"] {
  display: block;
}
.knw-aw-responsive-slot[data-knw-aw-device="desktop"] {
  display: none;
}
.knw-aw-responsive-slot[data-knw-aw-device="alle"] {
  display: block;
}
@media (min-width: 981px) {
  .knw-aw-responsive-slot[data-knw-aw-device="mobil"] {
    display: none;
  }
  .knw-aw-responsive-slot[data-knw-aw-device="desktop"] {
    display: block;
  }
}



/* Sekundäre AdSense-Slots liegen zunächst inert in einem <template>.
   Normale Doppelanzeigen werden ab 981 px, der rechte Mischblock-Slot seit
   1.0.26 erst bei ausreichender realer Containerbreite materialisiert. */
.knw-aw-adsense-template {
  display: none !important;
}
.knw-aw-desktop-ad-mount {
  width: 100%;
  min-width: 0;
}

/* 1.0.26: kombinierter Anzeigenmix nach realer Containerbreite.
   Die Klassen werden nicht mehr aus der Browserbreite abgeleitet. JavaScript
   misst den tatsaechlichen KNW-Werbeblock im Divi-Layout und setzt
   data-knw-aw-mix-layout="3", "2" oder "1".
   Standardwerte: 3 Spalten ab 930 px, 2 Spalten ab 620 px, darunter 1 Spalte. */
.knw-aw-box--mixed .knw-aw-mix-body {
  padding: 18px;
}
.knw-aw-mix-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  width: 100%;
}
.knw-aw-mix-cell {
  min-width: 0;
  box-sizing: border-box;
}
.knw-aw-mix-cell--ad {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--knw-aw-ad-min-desktop, 250px);
}
.knw-aw-mix-cell--right {
  display: none;
}
.knw-aw-box--mixed[data-knw-aw-mix-layout="2"] .knw-aw-mix-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.knw-aw-box--mixed[data-knw-aw-mix-layout="3"] .knw-aw-mix-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.knw-aw-box--mixed[data-knw-aw-mix-layout="3"] .knw-aw-mix-cell--right {
  display: flex;
}
.knw-aw-mix-cell--affiliate .knw-aw-aff-grid {
  grid-template-columns: 1fr;
  gap: 12px;
}
.knw-aw-mix-backlinkseller-box {
  margin-top: 16px;
  border: 1px solid #d8dadd;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}
.knw-aw-mix-backlinkseller-heading {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 4px 9px;
  border-bottom: 1px solid #e1e3e6;
  background: #f7f7f7;
  font-size: 13px;
  line-height: 1.35;
  color: #444;
}
.knw-aw-mix-backlinkseller-content {
  padding: 12px;
}
.knw-aw-box--mixed[data-knw-aw-mix-layout="1"] .knw-aw-mix-body {
  padding: 10px;
}
.knw-aw-box--mixed[data-knw-aw-mix-layout="1"] .knw-aw-mix-cell--ad {
  min-height: var(--knw-aw-ad-min-mobile, 100px);
}
.knw-aw-box--mixed[data-knw-aw-mix-layout="1"] .knw-aw-mix-cell--affiliate .knw-aw-aff-card {
  gap: 7px;
  padding: 9px;
}
.knw-aw-box--mixed[data-knw-aw-mix-layout="1"] .knw-aw-mix-cell--affiliate .knw-aw-aff-media {
  flex-basis: 32px;
  width: 32px;
}
.knw-aw-box--mixed[data-knw-aw-mix-layout="1"] .knw-aw-mix-cell--affiliate .knw-aw-aff-image {
  width: 32px;
  height: 32px;
}
.knw-aw-box--mixed[data-knw-aw-mix-layout="1"] .knw-aw-mix-backlinkseller-box {
  margin-top: 10px;
}
.knw-aw-box--mixed[data-knw-aw-mix-layout="1"] .knw-aw-mix-backlinkseller-content {
  padding: 9px;
}

/* 1.0.26: Live-Debug wird ausschliesslich per JavaScript fuer angemeldete
   Administratoren erzeugt, wenn der Debug-Modus in den Einstellungen aktiv ist. */
.knw-aw-debug-active {
  flex-direction: column;
  align-items: stretch;
}
.knw-aw-ad-debug {
  width: 100%;
  margin-top: 8px;
  padding: 6px 8px;
  border: 1px dashed #8c8f94;
  border-radius: 4px;
  background: #f6f7f7;
  color: #2c3338;
  font: 11px/1.35 Consolas, Monaco, "Courier New", monospace;
  overflow-wrap: anywhere;
  box-sizing: border-box;
}
.knw-aw-ad-debug[data-knw-aw-debug-state="filled"] {
  border-color: #00a32a;
  background: #edfaef;
}
.knw-aw-ad-debug[data-knw-aw-debug-state="unfilled"],
.knw-aw-ad-debug[data-knw-aw-debug-state="requested-no-google-status"],
.knw-aw-ad-debug[data-knw-aw-debug-state="request-error"] {
  border-color: #d63638;
  background: #fcf0f1;
}

.knw-aw-ad-debug[data-knw-aw-debug-state="contradiction"] {
  border-color: #dba617;
  background: #fff8e5;
}

.knw-aw-ad-debug[data-knw-aw-debug-state="waiting-layout"],
.knw-aw-ad-debug[data-knw-aw-debug-state="waiting-capacity"],
.knw-aw-ad-debug[data-knw-aw-debug-state="waiting-automatic-phase"] {
  border-color: #dba617;
  background: #fcf9e8;
}


/* 1.0.28: Mobile Vollbreite nur fuer automatisch im Artikel platzierte Bloecke.
   Die konkrete Bildschirmgrenze und der Sicherheitsrand werden aus den
   Plugin-Einstellungen als Inline-CSS ausgegeben. Shortcode-Bloecke in Divi
   erhalten diese Klasse nicht. */
.knw-aw-auto-mobile-fullwidth {
  box-sizing: border-box;
  min-width: 0;
}
.knw-aw-auto-mobile-fullwidth > .knw-aw-box {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
