/* ============================================================
   Informationssicherheit & Datenschutz (Page 782, /leistungen/compliance-datenschutz/)
   Dachseite seit 27.09.2026 — Prefix ids-. Hero/CTA/Ablauf/FAQ aus leistung-shared.css + base.css.
   Sektionen liegen auf dem Türkis-Hintergrund der Seite: weiße Karten, dunkle Schrift.
   ============================================================ */

.ids-hero .lp-intro-headline span { display: inline; }

/* ---------- gemeinsame Bausteine ---------- */
.ids-person > .section-inner,
.ids-angebote > .section-inner,
.ids-nis2 > .section-inner,
.ids-warum > .section-inner,
.ids-trust > .section-inner,
.ids-vertiefung > .section-inner {
  max-width: 1240px;
  margin: 0 auto;
  width: 100%;
  align-items: stretch;
  padding: 60px 30px;
}

.ids-section-headline { color: #fdfeff; text-align: center; margin: 0 0 14px; }
.ids-section-headline span { color: #223a4f; }
.ids-section-intro {
  max-width: 760px;
  margin: 0 auto 34px;
  text-align: center;
  color: #fdfeff;
  font-size: 18px;
  line-height: 1.55;
}
.ids-kicker {
  font-size: 14px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #1f8f80;
  margin-bottom: 6px;
}

/* ---------- Ansprechpartner ---------- */
.ids-person-card {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 44px;
  align-items: center;
  background: #fdfeff;
  border-radius: 20px;
  padding: 40px;
  box-shadow: 0 18px 50px rgba(0, 30, 60, .18);
  color: #223a4f;
}
.ids-person-foto {
  aspect-ratio: 3 / 4;
  border-radius: 16px;
  overflow: hidden;
  background: linear-gradient(135deg, #004270 0%, #32b4a2 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ids-person-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ids-person-initialen {
  font-family: "CocogoosePro", sans-serif;
  font-size: 84px;
  color: rgba(253, 254, 255, .9);
  letter-spacing: .04em;
}
.ids-person-name { color: #1c3346; margin: 0 0 4px; }
.ids-person-rolle { color: #1f8f80; font-size: 18px; margin-bottom: 18px; }
.ids-person-copy { font-size: 17px; line-height: 1.6; margin: 0 0 14px; }
.ids-person-liste { margin: 0 0 16px; padding: 0; list-style: none; }
.ids-person-liste li { position: relative; padding-left: 26px; margin-bottom: 7px; font-size: 16px; line-height: 1.45; }
.ids-person-liste li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 5px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #32b4a2;
  box-shadow: inset 0 0 0 4px #e3f4f1;
}
.ids-person-hinweis {
  font-size: 14px;
  line-height: 1.5;
  color: #5b6b6c;
  border-left: 3px solid #32b4a2;
  padding-left: 12px;
  margin: 0 0 22px;
}
.ids-person-btns .btn-xl-primary { margin-top: 0; text-transform: none; }

/* ---------- Angebote ---------- */
.ids-karten {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.ids-karte {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fdfeff;
  color: #223a4f;
  border-radius: 18px;
  padding: 34px 28px 28px;
  box-shadow: 0 12px 34px rgba(0, 30, 60, .14);
}
.ids-karte--hervor { box-shadow: 0 0 0 3px #223a4f, 0 16px 40px rgba(0, 30, 60, .22); }
.ids-karte-badge {
  align-self: flex-start;
  padding: 4px 12px;
  border-radius: 999px;
  background: #e3f4f1;
  color: #1f7d70;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.ids-karte-badge--neu { background: #223a4f; color: #fdfeff; }
.ids-karte-titel {
  font-family: "CocogooseProNarrow Semilight", sans-serif;
  font-weight: 400;
  font-size: 30px;
  line-height: 1.15;
  color: #1c3346;
  margin: 0 0 10px;
}
.ids-karte-text { font-size: 16px; line-height: 1.55; margin: 0 0 16px; }
.ids-karte-liste { list-style: none; padding: 0; margin: 0 0 22px; flex: 1 1 auto; }
.ids-karte-liste li {
  position: relative;
  padding: 8px 0 8px 26px;
  border-top: 1px solid #e6eeee;
  font-size: 15px;
  line-height: 1.4;
}
.ids-karte-liste li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 12px;
  width: 12px;
  height: 7px;
  border-left: 2px solid #32b4a2;
  border-bottom: 2px solid #32b4a2;
  transform: rotate(-45deg);
}
.ids-karte-link {
  color: #1f7d70;
  font-weight: 600;
  text-decoration: none;
  font-size: 16px;
}
.ids-karte-link::after { content: " \2192"; }
.ids-karte-link:hover { text-decoration: underline; color: #1f7d70; }

/* ---------- NIS-2-Selbsttest ---------- */
.ids-nis2-box {
  max-width: 880px;
  margin: 0 auto;
  width: 100%;
  background: #223a4f;
  color: #fdfeff;
  border-radius: 20px;
  padding: 44px 44px 36px;
  box-shadow: 0 18px 50px rgba(0, 30, 60, .25);
}
.ids-nis2-box .ids-kicker { color: #32b4a2; }
.ids-nis2-headline { color: #fdfeff; margin: 0 0 10px; }
.ids-nis2-headline span { color: #32b4a2; }
.ids-nis2-intro { font-size: 17px; line-height: 1.55; margin: 0 0 26px; color: rgba(253, 254, 255, .88); }
.ids-frage {
  border: 0;
  margin: 0 0 22px;
  padding: 0;
}
.ids-frage legend {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 10px;
  padding: 0;
}
.ids-frage select {
  width: 100%;
  padding: 13px 14px;
  border-radius: 12px;
  border: 1px solid rgba(253, 254, 255, .4);
  background: #fdfeff;
  color: #223a4f;
  font: inherit;
  font-size: 16px;
}
.ids-frage label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 10px 10px 0;
  padding: 11px 16px;
  border-radius: 12px;
  border: 1px solid rgba(253, 254, 255, .35);
  background: rgba(253, 254, 255, .06);
  cursor: pointer;
  font-size: 16px;
  transition: background .2s, border-color .2s;
}
.ids-frage label:hover { background: rgba(253, 254, 255, .12); }
.ids-frage label:has(input:checked) { border-color: #32b4a2; background: rgba(50, 180, 162, .22); }
.ids-frage input[type="radio"] { width: 18px; height: 18px; accent-color: #32b4a2; margin: 0; }
.ids-nis2-submit, .ids-nis2-neu { text-transform: none; margin-top: 6px; border: 0; cursor: pointer; }
.ids-nis2-fehler { color: #ffb4a8; margin: 12px 0 0; font-size: 15px; }

.ids-nis2-ergebnis { text-align: center; }
.ids-nis2-ampel {
  width: 74px;
  height: 74px;
  margin: 4px auto 14px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 34px;
  font-weight: 700;
  color: #fdfeff;
}
.ids-nis2-ampel--rot { background: #d9534f; }
.ids-nis2-ampel--gelb { background: #e8a33a; }
.ids-nis2-ampel--gruen { background: #32b4a2; }
.ids-nis2-ergebnis-titel {
  font-family: "CocogooseProNarrow Semilight", sans-serif;
  font-weight: 400;
  font-size: 28px;
  line-height: 1.2;
  margin: 0 0 12px;
  color: #fdfeff;
}
.ids-nis2-ergebnis-text { font-size: 17px; line-height: 1.6; max-width: 680px; margin: 0 auto 22px; color: rgba(253, 254, 255, .9); }
.ids-nis2-ergebnis-btns { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.ids-nis2-ergebnis-btns .btn-xl-primary { margin-top: 0; text-transform: none; }
.ids-nis2-neu { background: transparent; color: #fdfeff; }
.ids-nis2-disclaimer { font-size: 13px; line-height: 1.5; color: rgba(253, 254, 255, .7); margin: 22px auto 0; max-width: 680px; }

/* ---------- Warum Leopold ---------- */
.ids-warum-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}
.ids-warum-item {
  background: rgba(253, 254, 255, .12);
  border: 1px solid rgba(253, 254, 255, .3);
  border-radius: 16px;
  padding: 24px 22px;
  color: #fdfeff;
}
.ids-warum-item h3 {
  font-family: "CocogooseProNarrow Semilight", sans-serif;
  font-weight: 400;
  font-size: 22px;
  margin: 0 0 8px;
  color: #fdfeff;
}
.ids-warum-item p { margin: 0; font-size: 15px; line-height: 1.55; }

/* ---------- Trust-Center ---------- */
.ids-trust-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.ids-trust-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: #fdfeff;
  color: #223a4f;
  border-radius: 16px;
  padding: 22px 22px 20px;
  text-decoration: none;
  box-shadow: 0 10px 28px rgba(0, 30, 60, .12);
  transition: transform .2s, box-shadow .2s;
}
a.ids-trust-item:hover { transform: translateY(-2px); box-shadow: 0 16px 36px rgba(0, 30, 60, .2); color: #223a4f; }
.ids-trust-item--breit { grid-column: 1 / -1; }
.ids-trust-titel { font-family: "CocogooseProNarrow Semilight", sans-serif; font-size: 20px; color: #1c3346; }
.ids-trust-text { font-size: 15px; line-height: 1.5; flex: 1 1 auto; }
.ids-trust-aktion { color: #1f7d70; font-weight: 600; font-size: 15px; text-decoration: none; }
a.ids-trust-aktion:hover { text-decoration: underline; }
.ids-trust-aktion--info { color: #5b6b6c; font-weight: 400; }

/* ---------- Vertiefung ---------- */
.ids-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.ids-link {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 18px 20px;
  border-radius: 14px;
  background: rgba(253, 254, 255, .95);
  color: #223a4f;
  text-decoration: none;
  transition: background .2s;
}
.ids-link strong { font-size: 17px; color: #1c3346; }
.ids-link strong::after { content: " \2192"; color: #32b4a2; }
.ids-link span { font-size: 14px; color: #4b5d68; line-height: 1.4; }
.ids-link:hover { background: #fdfeff; color: #223a4f; }

.ids-cta { margin-top: 10px; }

/* ---------- Tablet ---------- */
@media (max-width: 1100px) {
  .ids-karten { grid-template-columns: 1fr; max-width: 640px; margin: 0 auto; }
  .ids-warum-grid, .ids-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ids-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .ids-person-card { grid-template-columns: 1fr; gap: 26px; padding: 28px; }
  .ids-person-foto { max-width: 260px; margin: 0 auto; width: 100%; }
}

/* ---------- Handy ---------- */
@media (max-width: 767px) {
  .ids-person > .section-inner,
  .ids-angebote > .section-inner,
  .ids-nis2 > .section-inner,
  .ids-warum > .section-inner,
  .ids-trust > .section-inner,
  .ids-vertiefung > .section-inner { padding: 40px 20px; }
  .ids-person-card { padding: 24px 20px; }
  .ids-person-text { text-align: left; }
  .ids-nis2-box { padding: 30px 20px 26px; }
  .ids-frage label { display: flex; margin-right: 0; }
  .ids-warum-grid, .ids-trust-grid, .ids-links { grid-template-columns: 1fr; }
  .ids-karte-titel { font-size: 26px; }
  .ids-nis2-ergebnis-btns .btn-xl-primary { width: 100%; text-align: center; }
}

/* Buttons außerhalb der lp-Container bekommen sonst das Link-Blau */
.ids-person-btns .btn-xl-primary,
.ids-nis2-ergebnis-btns .btn-xl-primary,
.ids-nis2-submit { color: #fdfeff; }
.ids-person-btns .btn-xl-primary:hover,
.ids-nis2-ergebnis-btns .btn-xl-primary:hover { color: #fdfeff; }

/* Abschluss-Kasten so breit wie die übrigen Sektionen */
.ids-cta-section > .section-inner { max-width: 1240px; margin: 0 auto; width: 100%; align-items: stretch; padding: 40px 30px 80px; }

@media (max-width: 767px) {
  .ids-nis2-ergebnis-text { text-align: left; }
  .ids-cta-section > .section-inner { padding: 30px 20px 60px; }
}

/* Über dem has-blured-end-Verlauf der Hero-Sektion (z-index 2) liegen — sonst verschwimmt Timos Karte */
.ids-person, .ids-angebote, .ids-nis2, .ids-warum, .ids-trust, .ids-vertiefung, .ids-cta-section { position: relative; z-index: 3; }

/* ------------------------------------------------------------
   BSI IT-Grundschutz (page-bsi-it-grundschutz.php), Prefix bsi-
   ------------------------------------------------------------ */
.bsi-varianten > .section-inner,
.bsi-vergleich > .section-inner,
.bsi-neu > .section-inner,
.bsi-fuerwen > .section-inner {
  max-width: 1240px;
  margin: 0 auto;
  width: 100%;
}
.bsi-grafik { margin: 0 0 36px; }
.bsi-grafik img { width: 100%; height: auto; display: block; border-radius: 22px; box-shadow: 0 18px 50px rgba(0, 30, 60, .18); }
.bsi-varianten .ids-karte { min-height: 0; }
.bsi-leistungen .ids-link { cursor: default; }
.bsi-hinweis { margin-top: 26px; max-width: 900px; color: #fdfeff; border-left-color: #fdfeff; }

.bsi-tabelle-wrap { overflow-x: auto; border-radius: 20px; background: #fdfeff; box-shadow: 0 18px 50px rgba(0, 30, 60, .18); }
.bsi-tabelle { width: 100%; border-collapse: collapse; font-size: 17px; line-height: 1.5; color: #1c3346; min-width: 620px; }
.bsi-tabelle th, .bsi-tabelle td { padding: 18px 22px; text-align: left; vertical-align: top; border-bottom: 1px solid #e3ecef; }
.bsi-tabelle thead th { background: #004270; color: #fdfeff; font-size: 18px; }
.bsi-tabelle tbody th { color: #1f8f80; white-space: nowrap; width: 18%; }
.bsi-tabelle tbody tr:last-child th, .bsi-tabelle tbody tr:last-child td { border-bottom: 0; }
.bsi-fussnote { margin-top: 18px; color: #fdfeff; font-size: 16px; }

.bsi-zeitstrahl { list-style: none; margin: 24px 0 18px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.bsi-zeitstrahl li { background: rgba(50, 180, 162, .12); border: 1px solid rgba(50, 180, 162, .45); border-radius: 16px; padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; }
.bsi-zeitstrahl strong { color: #004270; font-size: 20px; }
@media (max-width: 767px) {
  .bsi-zeitstrahl { grid-template-columns: 1fr; }
  .bsi-tabelle { font-size: 15px; }
  .bsi-tabelle th, .bsi-tabelle td { padding: 14px 14px; }
}
.bsi-varianten > .section-inner,
.bsi-vergleich > .section-inner,
.bsi-neu > .section-inner,
.bsi-fuerwen > .section-inner { align-items: stretch; }
.bsi-zeitstrahl strong { color: #7fe0d2; }
.bsi-zeitstrahl span { color: #fdfeff; }
.bsi-leistungen .ids-link strong::after { content: none; }
.bsi-leistungen .ids-link:hover { background: rgba(253, 254, 255, .92); }

/* BSI: Kernbotschaft, Einstiegsprodukt, kleine Links */
.bsi-umsetzung > .section-inner,
.bsi-start > .section-inner { max-width: 1240px; margin: 0 auto; width: 100%; align-items: stretch; padding: 30px 30px; }
.bsi-mini-link { display: inline-block; margin-top: 10px; color: #fdfeff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.bsi-mini-link::after { content: " \2192"; }
.bsi-umsetzung-box {
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px; align-items: center;
  background: #223a4f; color: #fdfeff; border-radius: 24px; padding: 48px; box-shadow: 0 18px 50px rgba(0, 30, 60, .25);
}
.bsi-umsetzung-headline { color: #fdfeff; margin: 6px 0 16px; }
.bsi-umsetzung-headline span { color: #32b4a2; }
.bsi-umsetzung-text p { font-size: 18px; line-height: 1.6; margin: 0 0 12px; }
.bsi-umsetzung-beleg { color: #7fe0d2; font-weight: 700; }
.bsi-umsetzung-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.bsi-umsetzung-liste li { background: rgba(50, 180, 162, .14); border: 1px solid rgba(50, 180, 162, .45); border-radius: 12px; padding: 12px 16px 12px 44px; position: relative; font-size: 17px; }
.bsi-umsetzung-liste li::before { content: "\2713"; position: absolute; left: 16px; top: 11px; color: #32b4a2; font-weight: 700; }
.bsi-umsetzung-liste a { color: #fdfeff; text-decoration: underline; text-decoration-color: rgba(253, 254, 255, .4); text-underline-offset: 3px; }
.bsi-start-box {
  display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 36px; align-items: center;
  background: #fdfeff; border-radius: 24px; padding: 44px; box-shadow: 0 18px 50px rgba(0, 30, 60, .18); border: 3px solid #32b4a2;
}
.bsi-start-headline { color: #1c3346; margin: 10px 0 14px; }
.bsi-start-headline span { color: #1f8f80; }
.bsi-start-text p { font-size: 18px; line-height: 1.6; color: #1c3346; margin: 0 0 22px; }
.bsi-start-ergebnis { background: #eef7f6; border-radius: 18px; padding: 26px 28px; }
.bsi-start-ergebnis h3 { margin: 0 0 12px; color: #1c3346; font-size: 22px; }
.bsi-start-ergebnis ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.bsi-start-ergebnis li { position: relative; padding-left: 28px; color: #1c3346; font-size: 17px; line-height: 1.45; }
.bsi-start-ergebnis li::before { content: "\2713"; position: absolute; left: 0; color: #1f8f80; font-weight: 700; }
@media (max-width: 900px) {
  .bsi-umsetzung-box, .bsi-start-box { grid-template-columns: 1fr; padding: 30px 22px; }
}
.bsi-start-text .btn-xl-primary { margin-top: 0; text-transform: none; color: #fdfeff; display: inline-block; }
.bsi-start-text .btn-xl-primary:hover { color: #fdfeff; }
.bsi-start-text .ids-karte-badge { display: inline-block; width: auto; }
@media (max-width: 767px) { .bsi-start-text .btn-xl-primary { width: 100%; text-align: center; } }
.bsi-start-headline, .bsi-umsetzung-headline { overflow-wrap: anywhere; hyphens: auto; }
