:root{--page-title-display:none;}/* Start custom CSS for html, class: .elementor-element-f99acb3 */@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');

/* --hdr = Höhe des Theme-Headers. Wird per JS gemessen, hier nur Fallback. */
:root{ --hdr:80px; }

body:has(#kollegia-dp){ background:#EDEAE3; }

/* ---------- 1 · Root & Tokens ------------------------------------------- */
#kollegia-dp{
  --pad:40px;
  --gap:96px;
  --ink:#1A1D23;
  --muted:#4A4E57;
  --red:#EE1C25;
  --red-d:#C4131B;
  --bg:#EDEAE3;
  --edge:rgba(255,255,255,.62);
  --glass:rgba(255,255,255,.58);
  --sh:inset 0 1px 0 rgba(255,255,255,.75),inset 0 -1px 0 rgba(255,255,255,.25),0 12px 40px rgba(0,41,102,.14);

  position:relative;
  isolation:isolate;
  min-height:60vh;
  padding:0 var(--pad);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--gap);
  background:var(--bg);
  color:var(--ink);
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  -webkit-font-smoothing:antialiased;
}
#kollegia-dp *{ box-sizing:border-box; }
#kollegia-dp h1,#kollegia-dp h2,#kollegia-dp h3,#kollegia-dp p{ margin:0; }
#kollegia-dp > *{ position:relative; z-index:1; }

/* Atmosphäre: zwei fixe Layer hinter dem Inhalt */
#kollegia-dp::before,
#kollegia-dp::after{
  content:'';
  position:fixed; inset:0; z-index:0; pointer-events:none;
}
#kollegia-dp::before{
  background:
    radial-gradient(58% 42% at 78% -6%, rgba(238,28,37,.075) 0%, rgba(238,28,37,0) 62%),
    radial-gradient(52% 40% at 4% 26%,  rgba(19,113,101,.055) 0%, rgba(19,113,101,0) 64%),
    radial-gradient(64% 46% at 96% 74%, rgba(0,41,102,.05) 0%,   rgba(0,41,102,0) 66%),
    radial-gradient(90% 60% at 50% 108%,rgba(26,29,35,.05) 0%,   rgba(26,29,35,0) 60%),
    linear-gradient(180deg, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 34%);
}
#kollegia-dp::after{
  opacity:.7;
  background-image:radial-gradient(rgba(26,29,35,.13) 1px, rgba(26,29,35,0) 1px);
  background-size:26px 26px;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 50%,transparent 70%);
          mask-image:linear-gradient(180deg,#000 0%,#000 50%,transparent 70%);
}

/* ---------- 2 · Bausteine ------------------------------------------------ */
.k-glass{
  background:var(--glass);
  border:1px solid var(--edge);
  box-shadow:var(--sh);
  -webkit-backdrop-filter:blur(28px) saturate(190%);
          backdrop-filter:blur(28px) saturate(190%);
}
.k-sec{ width:100%; padding:0 64px; }
.k-wrap{ max-width:1400px; margin:0 auto; }

.k-a{
  color:var(--red-d);
  text-decoration:none;
  border-bottom:1px solid rgba(238,28,37,.32);
  padding-bottom:1px;
  overflow-wrap:anywhere;      /* lange URLs brechen statt zu ueberlaufen */
  transition:color .22s ease, border-color .22s ease;
}
.k-a:hover{ color:var(--red); border-color:var(--red); }

#kollegia-dp ::selection{ background:var(--red); color:#fff; }

/* ---------- 3 · Kopfbereich (Breadcrumb, H1, Stand) ---------------------- */
.k-top{ padding-top:44px; }

.k-crumb{
  display:flex; align-items:center; flex-wrap:wrap; gap:9px;
  margin-bottom:20px;
  -webkit-user-select:none; user-select:none;
}
.k-crumb__link{
  font-size:13px; font-weight:600; line-height:1.4;
  color:var(--muted); text-decoration:none;
  transition:color .22s ease;
}
.k-crumb__link:hover{ color:var(--red); }
.k-crumb__dot{ width:4px; height:4px; flex:none; border-radius:50%; background:var(--red); }
.k-crumb__cur{ font-size:13px; font-weight:700; line-height:1.4; color:var(--ink); }

.k-pill{
  display:inline-flex; align-items:center; gap:8px;
  margin-bottom:18px; padding:6px 14px;
  border-radius:999px;
  background:#FDECEC; color:var(--red-d);
  font-size:12.5px; font-weight:700;
  -webkit-user-select:none; user-select:none;
}

.k-h1{
  margin-bottom:18px;
  font-size:46px; font-weight:700;
  letter-spacing:-.03em; line-height:1.12;
  max-width:26ch; text-wrap:balance;
}

.k-stamp{
  display:inline-flex; align-items:center; gap:9px;
  font-size:10px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--red-d);
  line-height:1; white-space:nowrap;
}
.k-stamp::before{
  content:''; width:5px; height:5px; flex:none;
  border-radius:50%; background:var(--red);
}

/* ---------- 4 · Layout: TOC + Inhalt ------------------------------------- */
.k-main{ margin-top:calc(-1 * var(--gap) + 44px); }

.k-grid{
  display:grid;
  grid-template-columns:248px 1px minmax(0,1fr);
  gap:0 40px;
  align-items:stretch;
  padding:32px 36px;
  border-radius:22px;
}

.k-rule{
  align-self:stretch; width:1px;
  background:linear-gradient(180deg,
    rgba(238,28,37,0),
    rgba(238,28,37,.5) 30%,
    rgba(238,28,37,.5) 70%,
    rgba(238,28,37,0));
}

/* Inhaltsverzeichnis */
.k-toc{ min-width:0; }
.k-toc__in{
  position:sticky;
  top:calc(var(--hdr) + 36px);
  display:flex; flex-direction:column; gap:2px;
}
.k-toc__label{
  padding:0 12px 12px;
  font-size:9.5px; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--red-d); line-height:1;
}
.k-toc__link{
  display:grid; grid-template-columns:26px minmax(0,1fr);
  gap:10px; align-items:baseline;
  padding:7px 12px; border-radius:9px;
  text-decoration:none;
  transition:background .22s ease;
}
.k-toc__num{
  font-size:11px; font-weight:800; line-height:1.5;
  color:rgba(238,28,37,.7); font-variant-numeric:tabular-nums;
}
.k-toc__txt{
  position:relative; display:inline-block; width:fit-content;
  font-size:13px; font-weight:600; line-height:1.45; color:var(--muted);
  transition:color .28s cubic-bezier(.22,.9,.32,1), transform .28s cubic-bezier(.22,.9,.32,1);
}
.k-toc__txt::after{
  content:''; position:absolute; left:0; right:0; bottom:-2px;
  height:1.5px; background:var(--red);
  transform:scaleX(0); transform-origin:left;
  transition:transform .32s cubic-bezier(.22,.9,.32,1);
}
.k-toc__link[data-on]{ background:rgba(255,255,255,.62); }
.k-toc__link[data-on] .k-toc__txt{ color:var(--ink); font-weight:700; }

/* ---------- 5 · Inhaltsabschnitte ---------------------------------------- */
.k-body{ min-width:0; display:flex; flex-direction:column; gap:44px; }

.k-sect{
  scroll-margin-top:calc(var(--hdr) + 26px);
  display:flex; flex-direction:column; gap:16px;
}
.k-sect__head{
  display:grid; grid-template-columns:auto minmax(0,1fr);
  gap:16px; align-items:center;
  padding-bottom:14px;
  border-bottom:1px solid rgba(26,29,35,.12);
}
.k-sect__num{
  font-size:34px; font-weight:800; letter-spacing:-.03em; line-height:1;
  color:rgba(238,28,37,.55); font-variant-numeric:tabular-nums;
  -webkit-user-select:none; user-select:none;
}
.k-sect__h2{
  font-size:22px; font-weight:700;
  letter-spacing:-.02em; line-height:1.28; text-wrap:balance;
}
.k-h3{ font-size:16px; font-weight:700; letter-spacing:-.01em; line-height:1.35; }
.k-p{ font-size:15px; line-height:1.75; color:var(--muted); text-wrap:pretty; }

/* ---------- 6 · Karten, Boxen, Tabellen ---------------------------------- */
/* Verantwortlicher-Karte */
.k-card{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px 32px; padding:22px 24px; border-radius:16px;
}
.k-card__col{ min-width:0; }
.k-card__wide{
  grid-column:1/-1;
  padding-top:18px;
  border-top:1px solid rgba(26,29,35,.1);
}
.k-label{
  margin-bottom:10px;
  font-size:9.5px; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--red-d); line-height:1;
}
.k-card__name{ font-size:15px; font-weight:700; line-height:1.5; }
.k-card__addr{ font-size:14.5px; line-height:1.65; color:var(--muted); }
.k-card__lines{
  display:flex; flex-direction:column; gap:5px;
  font-size:14.5px; line-height:1.6; color:var(--muted);
}
.k-card__meta{ font-size:14px; line-height:1.7; color:var(--muted); }

/* Rechtsgrundlage / Speicherdauer */
.k-note{
  display:flex; flex-direction:column; gap:9px;
  padding:14px 16px; border-radius:12px;
  background:rgba(238,28,37,.05);
  border:1px solid rgba(238,28,37,.14);
}
.k-note__row{
  display:grid; grid-template-columns:auto minmax(0,1fr);
  gap:4px 12px; align-items:baseline;
}
.k-note__k{
  font-size:9.5px; font-weight:800; letter-spacing:.11em;
  text-transform:uppercase; color:var(--red-d);
  line-height:1.5; white-space:nowrap;
}
.k-note__v{ font-size:13.5px; line-height:1.6; color:var(--muted); text-wrap:pretty; }

/* Auftragsverarbeiter-Liste */
.k-proc{ border-radius:16px; overflow:hidden; }
.k-proc__row{
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  gap:8px 24px; padding:18px 22px;
  border-bottom:1px solid rgba(26,29,35,.09);
}
.k-proc__row:last-child{ border-bottom:0; }
.k-proc__name{ font-size:14.5px; font-weight:700; line-height:1.35; }
.k-proc__addr{ margin-top:4px; font-size:13px; line-height:1.55; color:var(--muted); }
.k-proc__val{ font-size:13px; line-height:1.55; color:var(--muted); }
.k-proc__val em{ font-style:normal; color:rgba(74,78,87,.8); }
.k-proc .k-label{ margin-bottom:6px; }

/* Betroffenenrechte */
.k-rights{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.k-right{ border-radius:14px; padding:18px 20px; }
.k-right__t{ margin-bottom:7px; font-size:14.5px; font-weight:700; line-height:1.35; }
.k-right__p{ font-size:13px; line-height:1.6; color:var(--muted); text-wrap:pretty; }

/* ---------- 7 · Abschluss-Band ------------------------------------------- */
.k-band{
  width:auto; align-self:stretch;
  margin:calc(-1 * var(--gap) + 60px) calc(-1 * var(--pad)) 0;
  position:relative; overflow:hidden;
  background:linear-gradient(158deg,#1B1E25 0%,#14161B 58%,#1A1D24 100%);
}
.k-band::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(44% 58% at 50% 104%,
    rgba(238,28,37,.3) 0%, rgba(238,28,37,.09) 44%, rgba(238,28,37,0) 74%);
}
.k-band__in{
  position:relative;
  max-width:1400px; margin:0 auto; padding:60px 64px;
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  gap:24px 44px; align-items:center;
}
.k-band__h2{
  margin-bottom:12px;
  font-size:28px; font-weight:400; letter-spacing:-.03em;
  line-height:1.2; color:#fff; text-wrap:pretty;
}
.k-band__p{
  font-size:16px; line-height:1.65;
  color:rgba(255,255,255,.66); max-width:62ch; text-wrap:pretty;
}
.k-band__btn{
  align-self:center;
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:16px 30px; border-radius:999px;
  background:var(--red); color:#fff;
  font-size:15.5px; font-weight:600; line-height:1;
  text-decoration:none; white-space:nowrap;
  box-shadow:0 10px 30px rgba(238,28,37,.38);
  transition:transform .28s cubic-bezier(.22,.9,.32,1), box-shadow .28s ease;
}
.k-band__btn:hover{
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 16px 40px rgba(238,28,37,.5);
}

/* ---------- 8 · Nach-oben-Button ----------------------------------------- */
.k-totop-wrap{
  position:relative; height:0; align-self:stretch;
  /* Flex-Gap aufheben: Band schliesst buendig an den Theme-Footer an,
     der Button sitzt genau auf der Naht. */
  margin-top:calc(-1 * var(--gap));
  margin-bottom:0;
  z-index:5;
  display:flex; justify-content:flex-end;
  padding-right:clamp(20px,4vw,64px);
}
.k-totop{
  position:absolute; top:0; transform:translateY(-50%);
  display:inline-flex; align-items:center; gap:9px;
  padding:11px 18px; border-radius:999px;
  border:1px solid var(--edge); background:#F7F5F1;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 12px 40px rgba(0,41,102,.14);
  font-family:inherit; font-size:13px; font-weight:600; color:var(--ink);
  cursor:pointer; -webkit-user-select:none; user-select:none;
  transition:transform .3s cubic-bezier(.22,.9,.32,1), background .3s ease, border-color .3s ease;
}
.k-totop svg{ transition:transform .3s cubic-bezier(.22,.9,.32,1); }
.k-totop:hover{
  transform:translateY(calc(-50% - 3px));
  background:rgba(255,255,255,.85);
  border-color:rgba(255,255,255,.9);
}
.k-totop:hover svg{ transform:translateY(-2px); }

/* ---------- 9 · Reveal-Animation ----------------------------------------- */
/* Kein Pre-Hidden-State: Elemente sind sichtbar und werden beim Eintritt animiert. */
@keyframes kReveal{ from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:none} }
.k-reveal[data-anim]{ animation:kReveal .7s cubic-bezier(.22,.9,.32,1) both; }

@media (prefers-reduced-motion:reduce){
  #kollegia-dp *,#kollegia-dp *::before,#kollegia-dp *::after{
    animation:none !important; transition:none !important;
  }
}

/* ---------- 10 · Responsive ---------------------------------------------- */
@media (max-width:1100px){
  .k-grid{ grid-template-columns:1fr; gap:28px; padding:26px 24px; }
  .k-rule{ display:none; }
  .k-toc__in{ position:static; }
  .k-toc__in nav{
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 14px;
  }
  .k-toc__label{ grid-column:1/-1; }
  .k-rights{ grid-template-columns:1fr; }
  .k-band__in{ grid-template-columns:1fr; padding:52px 24px; }
}

@media (max-width:1000px){
  .k-sec{ padding:0 24px; }
  #kollegia-dp{ --gap:64px; }
  .k-top{ padding-top:32px; }
  .k-h1{ font-size:34px; }
}

@media (max-width:699px){
  #kollegia-dp{ --pad:16px; --gap:56px; }
  .k-sec{ padding:0 16px; }
  .k-top{ padding-top:26px; }
  .k-h1{ font-size:29px; }
  .k-sect__h2{ font-size:18px; }
  .k-sect__head{ gap:12px; }
  .k-sect__num{ font-size:26px; }
  .k-card{ grid-template-columns:1fr; padding:18px 20px; }
  .k-proc__row{ grid-template-columns:1fr; padding:16px 18px; }
  .k-toc__in nav{ grid-template-columns:1fr; }
  .k-band__in{ padding:42px 16px; }
  .k-band__h2{ font-size:22px; }
  .k-band__btn{ width:100%; }
}/* End custom CSS */