/* Styles der gebauten Seite. Identisch in der Zeichenfläche und im Export –
   deshalb sieht die Vorschau aus wie das Ergebnis. */

:root{
  --pb-width:1080px;
  --pb-gap:3%;
  --pb-section-pad:54px;
  --pb-font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --pb-font-head:var(--pb-font-body);
  --pb-text:#4a5162;
  --pb-heading:#1b2130;
  --pb-size:16px;
  --pb-lh:1.7;
  --pb-accent:#5b4bdb;
  --pb-accent-2:#2ea3f2;
  --pb-radius:6px;
  --pb-muted:#7a8296;
  --pb-line:#e3e6ee;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.pb-body{
  margin:0;
  font-family:var(--pb-font-body);
  font-size:var(--pb-size);
  line-height:var(--pb-lh);
  color:var(--pb-text);
  background:#fff;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
.pb-body img{max-width:100%;height:auto;display:block}
/* Bewusst KEINE Regel für alle <a>: eine solche Regel hat höhere Spezifität
   als .pb-btn oder .pb-social a und färbt dann Button und Icons um. Nur die
   Textbereiche bekommen die Akzentfarbe, alles andere regelt sein eigenes CSS. */
.pb-text a,.pb-blurb-text a,.pb-cta-text a,.pb-testi-quote a,.pb-acc-panel a,
.pb-tab-panel a,.pb-slide-text a,.pb-code a,.pb-map-note a{color:var(--pb-accent)}

/* ---------- Aufbau ---------- */
.pb-page{width:100%}

.pb-section{
  position:relative;
  padding:var(--pb-section-pad) 0;
  background-position:center;
  background-size:cover;
}
.pb-section-inner{
  width:100%;
  max-width:var(--pb-width);
  margin:0 auto;
  padding:0 24px;
}
.pb-section.pb-fullwidth > .pb-section-inner{max-width:none;padding:0}

.pb-row{margin:0 auto}
.pb-row + .pb-row{margin-top:26px}
.pb-row-inner{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--pb-gap);
  align-items:start;
}
.pb-row.pb-equal .pb-row-inner{align-items:stretch}
.pb-col{min-width:0}
.pb-col-inner{display:flow-root}

.pb-anchor{display:block;position:relative;top:-70px;height:0;visibility:hidden}
.pb-module{position:relative}
.pb-module + .pb-module{margin-top:22px}

/* ---------- Text / Überschrift ---------- */
.pb-h{
  font-family:var(--pb-font-head);
  color:var(--pb-heading);
  line-height:1.25;
  margin:0 0 .5em;
  font-weight:650;
  letter-spacing:-.012em;
}
.pb-h:last-child{margin-bottom:0}
h1.pb-h{font-size:38px}
h2.pb-h{font-size:30px}
h3.pb-h{font-size:24px}
h4.pb-h{font-size:20px}
h5.pb-h{font-size:17px}
h6.pb-h{font-size:15px}

.pb-text > :first-child{margin-top:0}
.pb-text > :last-child{margin-bottom:0}
.pb-text p{margin:0 0 1em}
.pb-text h1,.pb-text h2,.pb-text h3,.pb-text h4,.pb-text h5,.pb-text h6{
  font-family:var(--pb-font-head);color:var(--pb-heading);line-height:1.25;margin:0 0 .5em;font-weight:650;
}
.pb-text ul,.pb-text ol{margin:0 0 1em;padding-left:1.35em}
.pb-text li{margin-bottom:.35em}
.pb-text blockquote{
  margin:0 0 1em;padding:2px 0 2px 18px;border-left:4px solid var(--pb-accent);
  color:var(--pb-heading);font-style:italic;
}

/* ---------- Button ---------- */
.pb-btnwrap{display:flex}
.pb-btnwrap.al-left{justify-content:flex-start}
.pb-btnwrap.al-center{justify-content:center}
.pb-btnwrap.al-right{justify-content:flex-end}
.pb-btnwrap.al-justify .pb-btn{width:100%;justify-content:center}
.pb-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:13px 30px;border-radius:var(--pb-radius);border:0;
  background:var(--pb-accent);color:#fff;font-weight:600;font-size:15px;line-height:1.25;
  text-decoration:none;cursor:pointer;transition:filter .16s,transform .16s,background .16s;
  font-family:inherit;
}
.pb-btn:hover{filter:brightness(1.09);color:#fff}
.pb-btn:active{transform:translateY(1px)}
.pb-btn.pb-btn-outline{background:transparent;color:var(--pb-accent);border:2px solid currentColor;padding:11px 28px}
.pb-btn.pb-btn-outline:hover{background:var(--pb-accent);color:#fff}
.pb-btn.pb-btn-text{background:transparent;color:var(--pb-accent);padding:6px 0}
.pb-btn.pb-btn-text:hover{text-decoration:underline}
.pb-btn svg{width:1.05em;height:1.05em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- Bild ---------- */
.pb-image{display:flex}
.pb-image.al-left{justify-content:flex-start}
.pb-image.al-center{justify-content:center}
.pb-image.al-right{justify-content:flex-end}
.pb-image img{border-radius:0;max-width:100%}
.pb-image figure{margin:0}
.pb-image figcaption{margin-top:9px;font-size:13.5px;color:var(--pb-muted);text-align:center}
.pb-image.is-logo img{object-fit:contain}

/* ---------- Trenner / Abstand ---------- */
.pb-divider{display:flex}
.pb-divider.al-left{justify-content:flex-start}
.pb-divider.al-center{justify-content:center}
.pb-divider.al-right{justify-content:flex-end}
.pb-divider hr{
  border:0;border-top:1px solid var(--pb-line);width:100%;margin:0;height:0;
}
.pb-spacer{width:100%}

/* ---------- Icon ---------- */
.pb-iconbox{display:flex}
.pb-iconbox.al-left{justify-content:flex-start}
.pb-iconbox.al-center{justify-content:center}
.pb-iconbox.al-right{justify-content:flex-end}
.pb-ic{display:block;width:48px;height:48px;color:var(--pb-accent);flex:none}
.pb-ic svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;display:block}

/* ---------- Infobox ---------- */
.pb-blurb{display:flex;gap:20px}
.pb-blurb.lay-top{flex-direction:column;align-items:center;text-align:center;gap:16px}
.pb-blurb.lay-left{flex-direction:row;align-items:flex-start}
.pb-blurb-media{flex:none}
.pb-blurb-media img{border-radius:var(--pb-radius)}
.pb-blurb-body{min-width:0;flex:1}
.pb-blurb-title{margin:0 0 8px;font-family:var(--pb-font-head);color:var(--pb-heading);font-size:20px;font-weight:650;line-height:1.3}
.pb-blurb-text > :first-child{margin-top:0}
.pb-blurb-text > :last-child{margin-bottom:0}
.pb-blurb-text p{margin:0 0 .8em}

/* ---------- Call to Action ---------- */
.pb-cta{text-align:center;padding:44px 32px;background:#f6f7fb;border-radius:var(--pb-radius)}
.pb-cta-title{margin:0 0 12px;font-family:var(--pb-font-head);color:var(--pb-heading);font-size:28px;font-weight:700;line-height:1.25}
.pb-cta-text{margin:0 auto 24px;max-width:640px}
.pb-cta-text > :last-child{margin-bottom:0}
.pb-cta .pb-btnwrap{justify-content:center}

/* ---------- Testimonial ---------- */
.pb-testi{padding:32px;background:#f6f7fb;border-radius:var(--pb-radius);position:relative}
.pb-testi-quote{font-size:17px;line-height:1.65;color:var(--pb-heading);margin:0 0 20px}
.pb-testi-quote > :last-child{margin-bottom:0}
.pb-testi-person{display:flex;align-items:center;gap:14px}
.pb-testi-person img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none}
.pb-testi-name{font-weight:650;color:var(--pb-heading);line-height:1.3}
.pb-testi-role{font-size:13.5px;color:var(--pb-muted);line-height:1.3}
.pb-stars{display:flex;gap:3px;margin-bottom:14px;color:#f5a623}
.pb-stars svg{width:17px;height:17px;fill:currentColor;stroke:none}

/* ---------- Video ---------- */
.pb-video{position:relative;width:100%;background:#000;border-radius:var(--pb-radius);overflow:hidden}
.pb-video::before{content:"";display:block;padding-top:56.25%}
.pb-video iframe,.pb-video video,.pb-video .pb-video-cover{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.pb-video-cover{background-size:cover;background-position:center;cursor:pointer;border:0;padding:0}
.pb-video-cover::after{
  content:"";position:absolute;left:50%;top:50%;width:72px;height:72px;transform:translate(-50%,-50%);
  border-radius:50%;background:rgba(0,0,0,.55) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") no-repeat center;
  transition:background-color .16s;
}
.pb-video-cover:hover::after{background-color:var(--pb-accent)}

/* ---------- Galerie ---------- */
.pb-gallery{display:grid;gap:14px}
.pb-gal-item{position:relative;display:block;overflow:hidden;border-radius:var(--pb-radius);background:#eef0f5;border:0;padding:0;cursor:zoom-in}
.pb-gal-item img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;transition:transform .3s}
.pb-gal-item:hover img{transform:scale(1.05)}
/* Die Grossansicht verdunkelt das ganze Fenster, das Bild selbst behaelt aber
   Luft: randlos ueber den ganzen Schirm wirkt ein Foto erdrueckend, und die
   Knoepfe lagen darauf statt daneben. Sie faehrt weich auf (Hintergrund
   blendet ein, das Bild kommt aus 96 % heran); wer Bewegung abgestellt hat,
   bekommt sie sofort. */
.pb-lightbox{
  position:fixed;inset:0;background:rgba(12,14,20,.94);z-index:9999;display:flex;
  align-items:center;justify-content:center;
  /* Oben und an den Seiten bleibt Platz frei: Dort liegen Schliessen und die
     Pfeile - auf dem Bild waeren sie im Weg und wuerden es verdecken. */
  padding:72px 88px 32px;
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  animation:pb-lb-auf .22s ease-out both;
}
.pb-lightbox img{
  max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;
  border-radius:3px;box-shadow:0 24px 60px rgba(0,0,0,.45);
  animation:pb-lb-bild .26s cubic-bezier(.2,.7,.3,1) both;
}
@media (max-width:767px){ .pb-lightbox{padding:64px 12px 76px} }
@keyframes pb-lb-auf{ from{opacity:0} to{opacity:1} }
@keyframes pb-lb-bild{ from{opacity:0;transform:scale(.96)} to{opacity:1;transform:none} }
@media (prefers-reduced-motion: reduce){
  .pb-lightbox,.pb-lightbox img{animation:none}
}
.pb-lb-btn{
  position:absolute;background:rgba(255,255,255,.14);border:0;color:#fff;width:46px;height:46px;
  border-radius:50%;cursor:pointer;display:grid;place-items:center;font-size:22px;line-height:1;
  transition:background .15s ease,transform .15s ease;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.pb-lb-btn:hover{background:rgba(255,255,255,.3);transform:scale(1.06)}
.pb-lb-close{top:14px;right:16px}
.pb-lb-prev{left:16px;top:50%;transform:translateY(-50%)}
.pb-lb-next{right:16px;top:50%;transform:translateY(-50%)}
.pb-lb-prev:hover{transform:translateY(-50%) scale(1.06)}
.pb-lb-next:hover{transform:translateY(-50%) scale(1.06)}
/* Am Handy ist seitlich kein Platz - dort stehen die Pfeile unter dem Bild. */
@media (max-width:767px){
  .pb-lb-prev{left:calc(50% - 60px);top:auto;bottom:16px;transform:none}
  .pb-lb-next{right:calc(50% - 60px);top:auto;bottom:16px;transform:none}
  .pb-lb-prev:hover,.pb-lb-next:hover{transform:scale(1.06)}
}

/* ---------- Akkordeon ---------- */
.pb-acc-item{border:1px solid var(--pb-line);border-radius:var(--pb-radius);margin-bottom:10px;overflow:hidden;background:#fff}
.pb-acc-item:last-child{margin-bottom:0}
.pb-acc-btn{
  width:100%;display:flex;align-items:center;gap:14px;padding:16px 20px;border:0;background:transparent;
  cursor:pointer;text-align:left;font-family:var(--pb-font-head);font-size:16.5px;font-weight:600;
  color:var(--pb-heading);line-height:1.4;
}
.pb-acc-btn:hover{background:#fafbfd}
.pb-acc-btn .pb-acc-ico{
  display:block;width:18px;height:18px;flex:none;transition:transform .2s;color:var(--pb-accent);margin-left:auto;
}
.pb-acc-btn .pb-acc-ico svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.pb-acc-item.is-open .pb-acc-ico{transform:rotate(180deg)}
.pb-acc-panel{display:none;padding:0 20px 18px}
.pb-acc-item.is-open .pb-acc-panel{display:block}
.pb-acc-panel > :first-child{margin-top:0}
.pb-acc-panel > :last-child{margin-bottom:0}

/* ---------- Tabs ---------- */
.pb-tabs-nav{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--pb-line)}
.pb-tabs-nav button{
  padding:12px 20px;border:0;background:transparent;cursor:pointer;font-family:var(--pb-font-head);
  font-weight:600;color:var(--pb-muted);border-bottom:2px solid transparent;margin-bottom:-1px;font-size:15px;
}
.pb-tabs-nav button:hover{color:var(--pb-heading)}
.pb-tabs-nav button.is-on{color:var(--pb-accent);border-bottom-color:var(--pb-accent)}
.pb-tab-panel{display:none;padding:22px 0 0}
.pb-tab-panel.is-on{display:block}
.pb-tab-panel > :first-child{margin-top:0}
.pb-tab-panel > :last-child{margin-bottom:0}

/* ---------- Slider ----------
   Alle Folien liegen im selben Rasterfeld übereinander. Dadurch bestimmt die
   höchste Folie die Höhe (kein Springen), und jeder Übergang ist nur eine
   Frage von Deckkraft und Transform – ein Schiene-und-Wagen-Aufbau könnte das
   nicht, dort gäbe es nur waagrechtes Schieben. */
.pb-slider{
  position:relative;overflow:hidden;border-radius:var(--pb-radius);
  --sp:700ms; --ez:cubic-bezier(.4,0,.2,1); --minh:420px;
}
.pb-slider:focus-visible{outline:3px solid var(--pb-accent);outline-offset:3px}
.pb-slides{display:grid;min-height:var(--minh)}
.pb-slider.is-full .pb-slides{min-height:100vh}
.pb-slider.tr-flip .pb-slides{perspective:1400px}

.pb-slide{
  grid-area:1/1;position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  padding:56px 64px;
  opacity:0;visibility:hidden;
  transition:opacity var(--sp) var(--ez), transform var(--sp) var(--ez);
  backface-visibility:hidden;
}
.pb-slide.is-on{opacity:1;visibility:visible;transform:none;z-index:2}
.pb-slide.is-out{opacity:0;visibility:visible;z-index:1}
/* Startzustand der hereinkommenden Folie: ohne Übergang gesetzt, sonst
   würde sie von ihrer alten Position aus animieren. */
.pb-slide.is-enter{transition:none}

.pb-slide-bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
  background-repeat:no-repeat;transform-origin:center;
}
.pb-slide-veil{position:absolute;inset:0}
.pb-slide-in{position:relative;max-width:720px;width:100%}
.pb-slide-in.al-center{text-align:center;margin:0 auto}
.pb-slide-in.al-left{text-align:left;margin-right:auto}
.pb-slide-in.al-right{text-align:right;margin-left:auto}
.pb-slide h3{margin:0 0 14px;font-family:var(--pb-font-head);font-size:34px;font-weight:700;line-height:1.18;color:#fff}
.pb-slide .pb-slide-text{color:rgba(255,255,255,.92);margin-bottom:24px;font-size:17px}
.pb-slide .pb-slide-text > :last-child{margin-bottom:0}

/* --- die Übergänge --- */
.pb-slider.tr-none .pb-slide{transition:none}

.pb-slider.tr-slide  .pb-slide.is-enter{opacity:1;transform:translateX(calc(100% * var(--dir,1)))}
.pb-slider.tr-slide  .pb-slide.is-out  {opacity:1;transform:translateX(calc(-100% * var(--dir,1)))}
.pb-slider.tr-slideY .pb-slide.is-enter{opacity:1;transform:translateY(calc(100% * var(--dir,1)))}
.pb-slider.tr-slideY .pb-slide.is-out  {opacity:1;transform:translateY(calc(-100% * var(--dir,1)))}

.pb-slider.tr-zoom .pb-slide.is-enter{opacity:0;transform:scale(1.14)}
.pb-slider.tr-zoom .pb-slide.is-out  {opacity:0;transform:scale(.92)}

/* Überdecken: die alte Folie bleibt stehen, die neue schiebt sich darüber. */
.pb-slider.tr-cover .pb-slide.is-enter{opacity:1;transform:translateX(calc(100% * var(--dir,1)));z-index:3}
.pb-slider.tr-cover .pb-slide.is-on   {z-index:3}
.pb-slider.tr-cover .pb-slide.is-out  {opacity:1;transform:none;z-index:1}

.pb-slider.tr-flip .pb-slide.is-enter{opacity:0;transform:rotateY(calc(75deg * var(--dir,1)))}
.pb-slider.tr-flip .pb-slide.is-out  {opacity:0;transform:rotateY(calc(-75deg * var(--dir,1)))}

/* Ken Burns: läuft, solange die Folie steht. */
.pb-slider.is-kb .pb-slide.is-on .pb-slide-bg{animation:pbKen var(--iv,7s) linear both}
@keyframes pbKen{from{transform:scale(1)}to{transform:scale(1.1)}}

/* Text nacheinander einfliegen lassen */
.pb-slider.is-ta .pb-slide-in > *{opacity:0}
.pb-slider.is-ta .pb-slide.is-on .pb-slide-in > *{animation:pbSlideText .65s var(--ez) both}
.pb-slider.is-ta .pb-slide.is-on .pb-slide-in > :nth-child(1){animation-delay:calc(var(--sp) * .5)}
.pb-slider.is-ta .pb-slide.is-on .pb-slide-in > :nth-child(2){animation-delay:calc(var(--sp) * .5 + 110ms)}
.pb-slider.is-ta .pb-slide.is-on .pb-slide-in > :nth-child(3){animation-delay:calc(var(--sp) * .5 + 220ms)}
.pb-slider.is-ta .pb-slide.is-on .pb-slide-in > :nth-child(n+4){animation-delay:calc(var(--sp) * .5 + 330ms)}
@keyframes pbSlideText{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* --- Bedienung --- */
.pb-sl-btn{
  position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;
  border:0;background:rgba(255,255,255,.88);cursor:pointer;display:grid;place-items:center;color:#1b2130;
  z-index:6;transition:background .16s,opacity .16s,transform .16s;
  box-shadow:0 2px 10px rgba(0,0,0,.18);
}
.pb-sl-btn:hover{background:#fff;transform:translateY(-50%) scale(1.06)}
.pb-sl-btn:disabled{opacity:.3;cursor:default;transform:translateY(-50%)}
.pb-sl-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.pb-sl-prev{left:16px}
.pb-sl-next{right:16px}

.pb-sl-dots{position:absolute;left:0;right:0;bottom:18px;display:flex;justify-content:center;gap:9px;z-index:6}
.pb-sl-dots button{
  border:0;background:rgba(255,255,255,.5);cursor:pointer;padding:0;color:#1b2130;
  transition:background .18s,width .18s,color .18s;
}
.pb-sl-dots.st-dots button{width:10px;height:10px;border-radius:50%}
.pb-sl-dots.st-dots button.is-on{background:#fff;width:26px;border-radius:5px}
.pb-sl-dots.st-bars button{width:34px;height:4px;border-radius:2px}
.pb-sl-dots.st-bars button.is-on{background:#fff;width:54px}
.pb-sl-dots.st-numbers button{
  min-width:28px;height:28px;border-radius:50%;font:600 13px/1 var(--pb-font-head);
  background:rgba(255,255,255,.28);color:#fff;
}
.pb-sl-dots.st-numbers button.is-on{background:#fff;color:#1b2130}
.pb-sl-dots button:hover{background:rgba(255,255,255,.8)}

.pb-sl-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.22);z-index:6}
.pb-sl-progress i{display:block;height:100%;width:0;background:#fff}

/* ---------- Zähler / Balken ---------- */
.pb-counter{text-align:center}
.pb-counter-num{font-family:var(--pb-font-head);font-size:46px;font-weight:700;color:var(--pb-accent);line-height:1.1}
.pb-counter-label{margin-top:6px;font-weight:600;color:var(--pb-heading)}
.pb-bar-item{margin-bottom:16px}
.pb-bar-item:last-child{margin-bottom:0}
.pb-bar-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;font-weight:600;color:var(--pb-heading);font-size:14.5px}
.pb-bar-track{height:10px;border-radius:5px;background:#e8eaf1;overflow:hidden}
.pb-bar-fill{height:100%;width:0;border-radius:5px;background:var(--pb-accent);transition:width 1s cubic-bezier(.4,0,.2,1)}

/* ---------- Social ---------- */
.pb-social{display:flex;flex-wrap:wrap;gap:10px}
.pb-social.al-center{justify-content:center}
.pb-social.al-right{justify-content:flex-end}
.pb-social a{
  width:40px;height:40px;border-radius:var(--pb-radius);display:grid;place-items:center;
  background:var(--pb-accent);color:#fff;transition:filter .16s,transform .16s;
}
.pb-social.sh-circle a{border-radius:50%}
.pb-social a:hover{filter:brightness(1.12);transform:translateY(-2px)}
.pb-social svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Karte ---------- */
.pb-map{position:relative;width:100%;height:var(--map-h,340px);border-radius:var(--pb-radius);overflow:hidden;background:#e8eaf1}
.pb-map iframe{width:100%;height:100%;border:0;display:block}
.pb-map-note{font-size:12.5px;color:var(--pb-muted);margin-top:8px}

/* ---------- Menü ---------- */
.pb-menu{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.pb-menu-brand{display:flex;align-items:center;gap:12px;font-family:var(--pb-font-head);font-weight:700;font-size:19px;color:var(--pb-heading);text-decoration:none}
.pb-menu-brand img{max-height:40px;width:auto;object-fit:contain}
.pb-menu-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pb-menu-links a{
  padding:9px 14px;border-radius:var(--pb-radius);text-decoration:none;color:var(--pb-heading);
  font-weight:550;font-size:15px;
}
.pb-menu-links a:hover{background:#f1f2f7;color:var(--pb-accent)}
.pb-menu-toggle{display:none;width:42px;height:42px;border:1px solid var(--pb-line);background:#fff;border-radius:var(--pb-radius);cursor:pointer;place-items:center;color:var(--pb-heading)}
.pb-menu-toggle svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round}

/* ---------- Formular ---------- */
.pb-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pb-form > *{grid-column:span 2}
.pb-form .pb-f-row{display:grid;gap:6px;align-content:start}
.pb-form label{font-size:13.5px;font-weight:600;color:var(--pb-heading)}
.pb-form input,.pb-form textarea,.pb-form select{
  width:100%;padding:12px 14px;border:1px solid var(--pb-line);border-radius:var(--pb-radius);
  font:inherit;color:var(--pb-heading);background:#fff;
}
.pb-form textarea{min-height:132px;resize:vertical}
.pb-form input:focus,.pb-form textarea:focus,.pb-form select:focus{outline:none;border-color:var(--pb-accent);box-shadow:0 0 0 3px rgba(91,75,219,.13)}
.pb-form .pb-f-consent{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;font-weight:400;color:var(--pb-text)}
.pb-form .pb-f-consent input{width:auto;flex:none;margin-top:3px}
.pb-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden}
.pb-form-msg{padding:12px 14px;border-radius:var(--pb-radius);font-size:14px;display:none}
.pb-form-msg.is-ok{display:block;background:#e6f6ef;color:#0d7a52;border:1px solid #b7e5d1}
.pb-form-msg.is-err{display:block;background:#fdeaed;color:#a3283d;border:1px solid #f5c2cb}

/* ---------- Code ---------- */
.pb-code > :first-child{margin-top:0}
.pb-code > :last-child{margin-bottom:0}

/* ---------- Einblend-Animationen ---------- */
.pb-anim{opacity:0;will-change:transform,opacity}
.pb-anim.pb-in{animation-duration:var(--pb-anim-dur,700ms);animation-delay:var(--pb-anim-del,0ms);animation-fill-mode:both;animation-timing-function:cubic-bezier(.22,.61,.36,1)}
.pb-anim[data-anim=fade].pb-in{animation-name:pbFade}
.pb-anim[data-anim=up].pb-in{animation-name:pbUp}
.pb-anim[data-anim=down].pb-in{animation-name:pbDown}
.pb-anim[data-anim=left].pb-in{animation-name:pbLeft}
.pb-anim[data-anim=right].pb-in{animation-name:pbRight}
.pb-anim[data-anim=zoom].pb-in{animation-name:pbZoom}
@keyframes pbFade{from{opacity:0}to{opacity:1}}
@keyframes pbUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes pbDown{from{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:none}}
@keyframes pbLeft{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}
@keyframes pbRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
@keyframes pbZoom{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .pb-anim{opacity:1;animation:none!important}
  .pb-slide{transition:none}
  .pb-slider.is-kb .pb-slide.is-on .pb-slide-bg{animation:none}
  .pb-slider.is-ta .pb-slide-in > *{opacity:1}
  .pb-slider.is-ta .pb-slide.is-on .pb-slide-in > *{animation:none}
}

/* ---------- Umbruch ---------- */
@media (max-width:980px){
  :root{--pb-section-pad:44px}
  .pb-row-inner{gap:24px}
  .pb-row-inner.st-2{grid-template-columns:1fr 1fr!important}
  h1.pb-h{font-size:32px} h2.pb-h{font-size:26px} h3.pb-h{font-size:21px}
  .pb-slides{min-height:calc(var(--minh) * .82)}
  .pb-slide{padding:44px 52px}
  .pb-slide h3{font-size:27px}
  .pb-slide .pb-slide-text{font-size:16px}
}
@media (max-width:767px){
  :root{--pb-section-pad:36px}
  .pb-section-inner{padding:0 18px}
  .pb-row-inner{grid-template-columns:1fr!important;gap:22px}
  h1.pb-h{font-size:27px} h2.pb-h{font-size:23px} h3.pb-h{font-size:19px}
  .pb-blurb.lay-left{flex-direction:column;align-items:flex-start}
  .pb-cta{padding:32px 20px}
  .pb-cta-title{font-size:23px}
  .pb-slides{min-height:calc(var(--minh) * .62)}
  .pb-slide{padding:34px 26px}
  .pb-slide h3{font-size:22px}
  .pb-slide .pb-slide-text{font-size:15px}
  .pb-sl-btn{width:34px;height:34px}
  .pb-sl-prev{left:8px} .pb-sl-next{right:8px}
  .pb-sl-dots{bottom:12px;gap:7px}
  .pb-sl-dots.st-bars button{width:24px}
  .pb-sl-dots.st-bars button.is-on{width:38px}
  .pb-menu-toggle{display:grid}
  .pb-menu-links{display:none;width:100%;flex-direction:column;align-items:stretch;gap:2px;order:3}
  .pb-menu.is-open .pb-menu-links{display:flex}
  .pb-menu-links a{padding:12px 14px;border-bottom:1px solid var(--pb-line)}
  .pb-counter-num{font-size:37px}
  .pb-tabs-nav{overflow-x:auto;flex-wrap:nowrap}
  .pb-tabs-nav button{white-space:nowrap;padding:11px 15px}
  .pb-form{grid-template-columns:1fr}
  .pb-form > *{grid-column:span 1!important}
}

/* ---------- Zeitstrahl ---------- */
/* Jahr links, Inhalt rechts, dazwischen eine durchgehende Linie mit Punkten.
   Auf dem Handy wandert das Jahr über den Text - nebeneinander bliebe für
   beides zu wenig Platz. */

.pb-zeitstrahl{
  --pb-zs-linie: #dcd7cf;
  --pb-zs-punkt: var(--pb-accent, #9a6b3f);
  list-style: none;
  margin: 0;
  padding: 0;
}

.pb-zs-station{
  display: grid;
  grid-template-columns: 7.5rem 1px 1fr;
  gap: 0 1.75rem;
  position: relative;
  padding-bottom: 2.25rem;
}

.pb-zs-station::before{
  content: "";
  grid-column: 2;
  grid-row: 1;
  background: var(--pb-zs-linie);
  justify-self: center;
  width: 1px;
  height: 100%;
}

/* Die letzte Station hat keine Linie nach unten - sonst hängt sie ins Leere. */
.pb-zs-station:last-child{ padding-bottom: 0; }
.pb-zs-station:last-child::before{ height: .55rem; }

.pb-zs-station::after{
  content: "";
  position: absolute;
  left: calc(7.5rem + 1.75rem / 2);
  top: .38rem;
  width: 9px;
  height: 9px;
  margin-left: -4px;
  border-radius: 50%;
  background: var(--pb-zs-punkt);
}

.pb-zs-jahr{
  grid-column: 1;
  text-align: right;
  font-size: .95em;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--pb-zs-punkt);
  padding-top: .1em;
}

.pb-zs-inhalt{ grid-column: 3; min-width: 0; }
.pb-zs-titel{ margin: 0 0 .35em; }
.pb-zs-text > *:last-child{ margin-bottom: 0; }

.pb-zs-bild{
  display: block;
  max-width: 100%;
  height: auto;
  margin-top: .9rem;
  border-radius: 6px;
}

@media (max-width: 640px){
  .pb-zs-station{
    grid-template-columns: 1px 1fr;
    gap: 0 1.1rem;
    padding-bottom: 1.9rem;
  }
  .pb-zs-station::before{ grid-column: 1; grid-row: 1 / span 2; }
  .pb-zs-station::after{ left: 0; top: .3rem; margin-left: -4px; }
  .pb-zs-jahr{ grid-column: 2; grid-row: 1; text-align: left; margin-bottom: .2em; }
  .pb-zs-inhalt{ grid-column: 2; grid-row: 2; }
}
