/* Gemeinsame öffentliche 003J-Komponenten; Admin, Karten und Eingabefokus
   bleiben bei ihren eigenen Regeln. Gefüllte Buttons haben keine Kontur. */
.figma-screen {
  --shop-line-width: 1px;
  --shop-form-row-gap: 10px;
  --shop-price-row-gap: 10px;
  --shop-section-gap: 40px;
}

.figma-screen :is(.figma-button:not(.is-outline), .cart-button, .cart-remove,
  .cart-add-another, .purchase-button, .success-download) {
  border: 0;
  box-shadow: none;
}

.figma-screen :is(.figma-button.is-outline, .result-row) {
  border: var(--shop-line-width) solid var(--secondary-color);
  box-shadow: none;
}

.figma-screen .cart-button {
  background: var(--secondary-color);
  color: var(--primary-color);
}

.figma-screen :is(.figma-button:not(.is-outline), .cart-button, .cart-remove,
  .cart-add-another, .purchase-button, .success-download):hover {
  background: transparent;
  color: var(--secondary-color);
  box-shadow: inset 0 0 0 var(--shop-line-width) var(--secondary-color);
  outline: 0;
}

/* Ein räumlich getrennter Tastatur-Fokusring ist keine zweite Buttonkontur. */
.figma-screen :is(.figma-button, .cart-button, .cart-remove, .cart-add-another,
  .purchase-button, .success-download, .success-action):focus-visible {
  outline: 2px solid var(--secondary-color);
  outline-offset: 4px;
}

.figma-screen [data-search-mode] .search-tabs [aria-selected="true"] {
  background: var(--secondary-color);
  color: var(--primary-color);
}

.figma-screen .search-mode-panel,
.figma-screen .cart-checkout {
  row-gap: var(--shop-form-row-gap);
}

.figma-screen .price-summary {
  row-gap: var(--shop-price-row-gap);
}

.figma-screen .checkout-status:empty {
  display: none;
}

.figma-screen .footer-divider {
  border-top: var(--shop-line-width) solid var(--secondary-color);
  transform: none;
}

.responsive-divider {
  display: none;
}

@media (max-width: 999px) {
  .figma-screen .screen-content > .info-column {
    flex: 0 0 auto;
  }

  .figma-screen .screen-content > :is(.search-interaction, .results-interaction,
    .cadastre-results-interaction, .selection-interaction, .cart-interaction,
    .information-detail) {
    padding-bottom: 50px;
  }

  .figma-screen .responsive-divider {
    display: block;
    width: 100%;
    height: var(--shop-line-width);
    border-top: var(--shop-line-width) solid var(--secondary-color);
    margin-bottom: var(--shop-section-gap);
  }
}
/* Gesetzlich hervorgehobene, aber gestaltungsintegrierte Online-Widerrufsfunktion. */
.information a.footer-withdrawal-action {
  width: fit-content;
  min-height: 0;
  margin-top: 10px;
  padding: 2px 8px;
  align-items: center;
  border: var(--shop-line-width) solid var(--secondary-color);
  background: var(--primary-color);
  background-clip: border-box;
  color: var(--secondary-color);
  font-size: inherit;
  font-weight: 400;
  line-height: inherit;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.information a.footer-withdrawal-action:hover {
  border-color: var(--primary-color);
  background: var(--secondary-color);
  color: var(--primary-color);
}

.information a.footer-withdrawal-action:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 2px var(--secondary-color);
}

/* Die FINAL-Rechtstexte verwenden dieselbe Typografie wie die 003J-Inhaltsseiten. */
.legal-content {
  font-size: 24px;
  font-weight: 400;
  line-height: 1.1;
}

.legal-content h2,
.legal-content h3 {
  margin-top: 52px;
  font-size: 24px;
  font-weight: 900;
  line-height: 1.1;
}

.legal-content > h2:first-child,
.legal-content > h3:first-child,
.legal-content > p:first-child + h2,
.legal-content > p:first-child + h3 {
  margin-top: 0;
}

.legal-content h2 + p,
.legal-content h2 + ul,
.legal-content h3 + p,
.legal-content h3 + ul,
.legal-content p + p,
.legal-content ul + p {
  margin-top: 26px;
}

.legal-content .legal-version {
  margin-top: 52px;
  font-size: inherit;
  font-weight: 400;
  line-height: inherit;
}

.legal-content #muster-widerrufsformular {
  scroll-margin-top: 24px;
}

.withdrawal-form {
  display: grid;
  gap: 12px;
  max-width: 760px;
}

.withdrawal-form input[type="text"],
.withdrawal-form input[type="email"],
.withdrawal-form textarea {
  box-sizing: border-box;
  width: 100%;
  border: 2px solid currentColor;
  border-radius: 0;
  padding: 10px 12px;
  background: transparent;
  color: inherit;
  font: inherit;
}

.withdrawal-form fieldset {
  display: grid;
  gap: 8px;
  border: 2px solid currentColor;
  padding: 12px;
}

.withdrawal-choice {
  display: flex;
  gap: 10px;
  align-items: center;
}

.withdrawal-choice input {
  width: 24px;
  height: 24px;
}

.legal-action-button {
  min-height: 48px;
  border: 2px solid currentColor;
  border-radius: 0;
  padding: 10px 18px;
  background: var(--secondary-color);
  color: var(--primary-color);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

.withdrawal-form input:focus-visible,
.withdrawal-form textarea:focus-visible,
.withdrawal-choice input:focus-visible,
.legal-action-button:focus-visible {
  outline: 3px solid var(--secondary-color);
  outline-offset: 3px;
}

.legal-action-success {
  max-width: 760px;
}

@media (max-width: 699px) {
  .legal-content,
  .legal-content h2,
  .legal-content h3 {
    font-size: 20px;
  }

  .withdrawal-form {
    gap: 10px;
  }
}
.provider-notice{position:relative;z-index:20;margin:0;padding:12px clamp(18px,4vw,56px);background:#eef3fb;color:#24477e;border-bottom:1px solid #c8d5ea;font:400 16px/1.45 Areal,Arial,sans-serif}.provider-notice--active{background:#fff3d9;color:#674400;border-bottom-color:#e6c982}.provider-notice strong{font-weight:600}@media(max-width:600px){.provider-notice{padding:10px 16px;font-size:14px}}

/* Release20: Fokus und Reflow auch bei 320 CSS px. */
[hidden] { display: none !important; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
summary:focus-visible, select:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
.skip-link { position: absolute; left: 12px; top: 12px; transform: translateY(-200%); z-index: 100; background: white; color: #3763a5; padding: 12px; }
.skip-link:focus { transform: none; }
.withdrawal-errors:focus { outline: 3px solid currentColor; outline-offset: 4px; }
.withdrawal-field-error { font-size: 18px; font-weight: bold; }
@media (max-width: 400px) {
  .flow-menu { flex-wrap: wrap; overflow: visible; white-space: normal; gap: 8px 16px; }
  .success-interaction, .success-panel, .search-interaction, .search-panel,
  .checkout-field, .cart-item, .information-detail { min-width: 0; max-width: 100%; }
  .success-cta, .legal-action-button { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
  .information nav, .contact div, .legal-content, .success-panel { overflow-wrap: anywhere; }
  .autocomplete-control input { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
