
:root{
 --green:#123f38;--green2:#0b302b;--green3:#1b544b;--gold:#c3882a;
 --paper:#f8f4ec;--paper2:#f2ece1;--white:#fff;--ink:#17332f;--muted:#66716d;
 --line:#e6ddd0;--shadow:0 18px 50px rgba(20,48,42,.11);--header:72px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--site-font,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif);line-height:1.4}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea{font:inherit}.skip-link{position:fixed;left:-9999px;top:8px;z-index:999;background:#fff;padding:10px 14px;border-radius:6px}.skip-link:focus{left:8px}
.site-header{height:var(--header);background:rgba(255,255,255,.98);border-bottom:1px solid rgba(16,48,42,.08);position:relative;z-index:50}.nav-shell{width:min(1720px,94vw);height:100%;margin:auto;display:flex;align-items:center;gap:34px}.brand{display:flex;align-items:center;gap:12px;min-width:360px}.logo{width:44px;height:44px;border:1.5px solid var(--green);border-radius:10px;display:grid;place-items:center;font-family:Georgia,serif;font-size:24px}.brand-title{font-family:Georgia,serif;font-weight:700;font-size:18px;line-height:1.05}.brand-sub{font-size:11px;color:var(--muted);margin-top:3px}.mainnav{display:flex;align-items:center;justify-content:center;gap:28px;margin-left:auto}.mainnav a{font-size:13px;padding:25px 0 21px;position:relative;white-space:nowrap}.mainnav a:hover:after,.mainnav a.active:after{content:"";position:absolute;left:0;right:0;bottom:14px;height:2px;background:var(--gold)}.search,.menu-toggle{width:38px;height:38px;margin-left:8px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--green);cursor:pointer}.menu-toggle{display:none}.bars,.bars:before,.bars:after{display:block;width:16px;height:1.5px;background:currentColor;border-radius:2px;position:relative}.bars:before,.bars:after{content:"";position:absolute;left:0}.bars:before{top:-5px}.bars:after{top:5px}.menu-toggle[aria-expanded=true] .bars{background:transparent}.menu-toggle[aria-expanded=true] .bars:before{top:0;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .bars:after{top:0;transform:rotate(-45deg)}.mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-top:1px solid var(--line);box-shadow:0 18px 38px rgba(20,48,42,.12);padding:10px max(3vw,20px) 18px;z-index:80}.mobile-menu.open{display:block}.mobile-menu a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid #eee7dc}.mobile-menu a.active{font-weight:800}.page-main{min-height:calc(100vh - var(--header) - 62px)}.frame{width:min(1720px,94vw);margin:auto}.serif{font-family:Georgia,"Times New Roman",serif}.small-link{font-size:12px;border-bottom:1px solid var(--gold);padding-bottom:3px}.muted{color:var(--muted)}
/* Home */
.home-main{height:calc(100vh - var(--header) - 62px);min-height:690px;display:grid;grid-template-rows:43% 57%}.hero{position:relative;overflow:hidden;background:var(--green2)}.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .55s;background-size:cover;background-position:center 48%}.hero-slide.active{opacity:1}.hero-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,43,37,.72),rgba(9,43,37,.34) 42%,rgba(9,43,37,.06) 70%)}.hero-content{position:relative;z-index:4;height:100%;display:flex;align-items:center}.hero-copy{color:#fff;max-width:710px}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:11px;font-weight:800}.hero-copy h1{font-family:Georgia,serif;font-size:clamp(46px,4.2vw,76px);line-height:.98;margin:10px 0 12px;font-weight:600}.hero-copy p{font-size:17px;margin:0 0 20px}.cta-row{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 17px;border-radius:7px;font-weight:700;font-size:13px;border:1px solid var(--line);background:#fff;color:var(--green)}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.light{background:rgba(255,255,255,.94);color:var(--green);border-color:rgba(255,255,255,.75)}.btn.gold{background:var(--gold);border-color:var(--gold);color:#fff}.slider-arrow{position:absolute;z-index:6;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.6);background:rgba(8,38,33,.25);color:#fff;font-size:24px;cursor:pointer}.slider-arrow.left{left:18px}.slider-arrow.right{right:18px}.hero-dots{position:absolute;z-index:6;bottom:13px;left:50%;transform:translateX(-50%);display:flex;gap:7px}.hero-dots span{width:8px;height:8px;border:1px solid #fff;border-radius:50%}.hero-dots span.active{background:#fff}.hero-caption{position:absolute;z-index:6;bottom:13px;right:28px;color:#fff;font-size:11px;background:rgba(0,0,0,.25);padding:4px 8px;border-radius:999px}
.home-dashboard{background:#fff;display:grid;grid-template-columns:minmax(0,1.75fr) minmax(360px,.75fr);border-top:1px solid var(--line)}.services{padding:23px 28px 18px max(3vw,calc((100vw - 1720px)/2))}.news{padding:23px max(3vw,calc((100vw - 1720px)/2)) 18px 28px;border-left:1px solid var(--line)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-head h2{font-family:Georgia,serif;font-size:27px;font-weight:500;margin:0}.service-row{display:grid;grid-template-columns:170px repeat(3,1fr);gap:10px;align-items:stretch}.service-row+.service-row{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.venue{display:flex;flex-direction:column;justify-content:center;padding-right:8px}.venue h3{font-family:Georgia,serif;font-size:19px;line-height:1.1;margin:0 0 6px;font-weight:500}.venue p{font-size:11px;color:var(--muted);margin:0}.service-card{background:linear-gradient(180deg,#fbf8f2,#f6f1e8);border:1px solid #eee4d7;border-radius:8px;padding:10px 12px;min-height:104px}.service-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.service-date{font-family:Georgia,serif;color:var(--gold);font-size:22px;font-weight:700;line-height:.86}.service-date small{font-size:12px}.service-time{font-size:10px;color:var(--muted)}.service-card h4{font-size:11px;margin:8px 0 2px}.service-card p{font-size:10px;margin:1px 0;color:#68716d}.news-list{display:grid}.news-item{display:grid;grid-template-columns:76px 1fr 14px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.news-item:last-child{border-bottom:0}.news-thumb{width:76px;height:54px;border-radius:7px;display:grid;place-items:center;background:#e1af58;font-size:24px;overflow:hidden}.news-thumb.paper{background:#ebe6dc;color:var(--green);font-size:10px;font-weight:700;text-align:center}.news-thumb.candle{background:#1b120e}.news-item time{display:block;font-size:9px;color:var(--muted)}.news-item h3{font-family:Georgia,serif;font-size:15px;margin:1px 0}.news-item p{font-size:10px;color:var(--muted);margin:0}.news-item-link{display:contents}
/* Page shell */
.subpage{height:calc(100vh - var(--header) - 62px);min-height:650px;padding:34px 0}.page-grid{height:100%;display:grid;grid-template-rows:auto 1fr;gap:24px}.page-title{display:flex;align-items:end;justify-content:space-between;gap:32px}.page-title h1{font-family:Georgia,serif;font-size:48px;font-weight:500;margin:0;line-height:1}.page-title p{font-size:13.5px;color:var(--muted);margin:0;max-width:900px;white-space:nowrap}.surface{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 38px rgba(20,48,42,.05)}
/* Gottesdienste */
.services-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px;min-height:0}.venue-panel{padding:24px;display:grid;grid-template-rows:auto repeat(3,1fr);gap:12px}.venue-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.venue-head h2{font-family:Georgia,serif;font-size:27px;margin:0 0 4px;font-weight:500}.venue-head p{margin:0;font-size:12px;color:var(--muted)}.event-line{display:grid;grid-template-columns:82px 1.3fr .8fr;gap:18px;align-items:center;padding:14px 16px;border-radius:10px;background:var(--paper);border:1px solid #eee5d8}.bigdate{font-family:Georgia,serif;font-weight:700;color:var(--gold);font-size:25px;line-height:.9}.bigdate small{font-size:13px}.event-line h3{font-size:14px;margin:0 0 3px}.event-line p{margin:0;font-size:11px;color:var(--muted)}.event-meta{text-align:right;font-size:12px}.event-meta strong{display:block;font-size:15px;color:var(--ink)}
/* landing cards */
.landing-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;min-height:0}.landing-card{padding:28px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.landing-card .icon{font-size:28px;color:var(--gold)}.landing-card h2{font-family:Georgia,serif;font-size:30px;margin:10px 0 7px;font-weight:500}.landing-card p{font-size:13px;color:var(--muted);margin:0 0 18px}.landing-card.feature-photo{color:#fff;background-size:cover;background-position:center}.landing-card.feature-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,38,33,.83),rgba(8,38,33,.08) 68%)}.landing-card.feature-photo>*{position:relative;z-index:2}.landing-card.feature-photo p{color:#e9f2ef}.arrow-link{font-size:12px;font-weight:800;color:var(--green)}.feature-photo .arrow-link{color:#fff}
/* offers */
.offer-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;min-height:0}.offer-card{position:relative;overflow:hidden;border-radius:14px;box-shadow:var(--shadow);min-height:0}.offer-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.offer-card:after{content:"";position:absolute;inset:25% 0 0;background:linear-gradient(transparent,rgba(8,48,41,.96))}.offer-content{position:absolute;z-index:2;left:24px;right:24px;bottom:24px;color:#fff}.offer-content h2{font-family:Georgia,serif;font-size:31px;margin:0 0 8px}.offer-content p{font-size:12px;margin:0 0 15px}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{font-size:11px;padding:7px 9px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(255,255,255,.1)}
/* churches */
.church-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px;min-height:0}.church-feature{position:relative;overflow:hidden;border-radius:15px;background:#111;box-shadow:var(--shadow)}.church-feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.church-feature:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,38,33,.82),rgba(8,38,33,.05) 60%)}.church-feature .content{position:absolute;z-index:2;left:28px;right:28px;bottom:26px;color:white}.church-feature h2{font-family:Georgia,serif;font-size:35px;margin:0 0 6px}.church-feature p{font-size:12px;max-width:560px;margin:0 0 14px;color:#eff5f2}.white-chip{display:inline-block;border:1px solid rgba(255,255,255,.55);border-radius:999px;padding:7px 10px;margin-right:6px;font-size:11px;background:rgba(0,0,0,.12)}
/* Gemeindebrief */
.brief-layout{display:grid;grid-template-columns:minmax(330px,.72fr) 1.28fr;gap:22px;min-height:0}.brief-current{padding:28px;display:grid;grid-template-columns:minmax(290px,340px) 1fr;gap:38px;align-items:center}.brief-cover{width:100%;min-width:260px;height:360px;border-radius:8px;overflow:hidden;position:relative;background:linear-gradient(160deg,#123f38,#1f6256);color:#fff;box-shadow:0 15px 30px rgba(15,45,39,.20);padding:22px;display:flex;flex-direction:column;justify-content:space-between}.brief-cover:before{content:"";position:absolute;inset:0;background:url('../images/hohen-neuendorf.jpg') center/cover;opacity:.20}.brief-cover>*{position:relative;z-index:1}.brief-cover .cover-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.brief-cover .cover-title{font-family:Georgia,serif;font-size:31px;line-height:1.04;white-space:normal;overflow:visible;word-break:normal}.brief-cover .cover-period{font-size:12px}

/* Exact first page of the current Gemeindebrief */
.brief-cover--pdf{
  position:relative;
  width:min(100%,320px);
  min-width:0;
  height:auto;
  aspect-ratio:210 / 297;
  padding:0;
  margin-inline:auto;
  overflow:hidden;
  border-radius:8px;
  background:#fff;
  box-shadow:0 16px 36px rgba(15,45,39,.18);
  border:1px solid #ddd4c7;
}
.brief-cover--pdf::before{
  display:none;
}
.brief-cover--pdf canvas{
  display:block;
  width:100%;
  height:100%;
  background:#fff;
}
.brief-cover-loading,
.brief-cover-error{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  text-align:center;
  color:var(--muted);
  background:#fff;
  font-size:12px;
}
.brief-cover-loading[hidden],
.brief-cover-error[hidden]{
  display:none;
}
.brief-meta h2{font-family:Georgia,serif;font-size:32px;margin:0 0 8px;font-weight:500}.brief-meta p{color:var(--muted);font-size:13px}.brief-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.archive-panel{padding:28px;overflow:auto}.archive-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.archive-head h2{font-family:Georgia,serif;font-size:27px;margin:0}.year-chip{font-size:11px;padding:6px 10px;border-radius:999px;background:var(--paper);border:1px solid var(--line)}.archive-list{display:grid;gap:10px}.archive-item{display:grid;grid-template-columns:74px 1fr auto;gap:14px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px}.archive-mini{height:68px;border-radius:7px;background:linear-gradient(160deg,var(--green),var(--green3));color:#fff;display:grid;place-items:center;font-family:Georgia,serif;font-size:13px;text-align:center}.archive-item h3{font-family:Georgia,serif;font-size:18px;margin:0 0 3px}.archive-item p{font-size:11px;color:var(--muted);margin:0}.archive-empty{padding:28px;border:1px dashed #d7cdbf;border-radius:10px;color:var(--muted);font-size:13px;text-align:center}

/* Immersive Gemeindebrief reader */
body.reader-mode{
  overflow:hidden;
  background:#262b29;
}
body.reader-mode .site-footer{
  display:none;
}
body.reader-mode .page-main{
  height:calc(100dvh - var(--header));
  min-height:0;
  overflow:hidden;
}
.immersive-reader{
  width:100%;
  height:100%;
  min-height:0;
  background:
    radial-gradient(circle at 50% -10%,rgba(255,255,255,.08),transparent 34%),
    #292e2c;
  overflow:hidden;
}
.reader-stage{
  position:relative;
  width:100%;
  height:100%;
  padding:14px 22px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  overflow:hidden;
  isolation:isolate;
}
.reader-page-card{
  flex:0 0 auto;
  background:#fff;
  border-radius:3px;
  overflow:hidden;
  position:relative;
  box-shadow:
    0 24px 65px rgba(0,0,0,.35),
    0 0 0 1px rgba(255,255,255,.12);
  transition:transform .17s ease,opacity .17s ease;
}
.reader-page-card canvas{
  display:block;
  width:100%;
  height:100%;
}
.reader-page-number{
  position:absolute;
  right:9px;
  bottom:8px;
  z-index:2;
  padding:4px 8px;
  border-radius:999px;
  color:#fff;
  background:rgba(8,55,47,.72);
  backdrop-filter:blur(10px);
  font-size:10px;
  pointer-events:none;
}
.reader-stage.turning-next .reader-page-card{
  transform:translateX(-7px) scale(.992);
  opacity:.88;
}
.reader-stage.turning-prev .reader-page-card{
  transform:translateX(7px) scale(.992);
  opacity:.88;
}
.reader-info-overlay{
  position:absolute;
  z-index:12;
  top:16px;
  left:22px;
  display:flex;
  align-items:center;
  gap:8px;
}
.reader-back-overlay,
.reader-title-overlay{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:0 13px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  color:#fff;
  background:rgba(17,42,37,.46);
  backdrop-filter:blur(14px) saturate(130%);
  box-shadow:0 7px 24px rgba(0,0,0,.10);
  font-size:12px;
}
.reader-back-overlay{
  font-weight:800;
  transition:background .15s ease,transform .15s ease;
}
.reader-back-overlay:hover{
  background:rgba(22,74,64,.72);
}
.reader-back-overlay:active{
  transform:scale(.97);
}
.reader-title-overlay strong{
  font-family:Georgia,serif;
  font-size:14px;
}
.reader-title-overlay span{
  color:rgba(255,255,255,.72);
}
.reader-controls-overlay{
  position:absolute;
  z-index:12;
  top:16px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:4px;
  padding:5px;
  border:1px solid rgba(255,255,255,.27);
  border-radius:999px;
  background:rgba(14,47,41,.48);
  backdrop-filter:blur(16px) saturate(140%);
  box-shadow:0 9px 28px rgba(0,0,0,.14);
}
.reader-control{
  min-width:34px;
  height:34px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#fff;
  cursor:pointer;
  font-size:17px;
  transition:background .15s ease,transform .15s ease;
}
.reader-control:hover{
  background:rgba(255,255,255,.16);
}
.reader-control:active{
  transform:scale(.94);
}
.reader-counter{
  min-width:78px;
  text-align:center;
  color:#fff;
  font-size:12px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
}
.reader-download-overlay{
  position:absolute;
  z-index:12;
  top:16px;
  right:22px;
  display:grid;
  place-items:center;
  min-height:44px;
  padding:0 15px;
  border:1px solid rgba(255,255,255,.30);
  border-radius:999px;
  color:#fff;
  background:rgba(14,71,61,.65);
  backdrop-filter:blur(16px) saturate(140%);
  box-shadow:0 9px 28px rgba(0,0,0,.14);
  font-size:12px;
  font-weight:800;
}
.reader-edge{
  position:absolute;
  z-index:11;
  top:50%;
  transform:translateY(-50%);
  width:54px;
  height:74px;
  border:1px solid rgba(255,255,255,.20);
  border-radius:20px;
  background:rgba(14,45,40,.25);
  color:rgba(255,255,255,.90);
  backdrop-filter:blur(12px);
  font-size:38px;
  cursor:pointer;
  opacity:.55;
  transition:opacity .15s ease,background .15s ease,transform .15s ease;
}
.reader-edge:hover{
  opacity:1;
  background:rgba(14,58,50,.52);
}
.reader-edge:active{
  transform:translateY(-50%) scale(.94);
}
.reader-edge--left{left:18px}
.reader-edge--right{right:18px}
.reader-hint{
  position:absolute;
  z-index:9;
  bottom:14px;
  left:50%;
  transform:translateX(-50%);
  padding:5px 10px;
  border-radius:999px;
  color:rgba(255,255,255,.68);
  background:rgba(0,0,0,.20);
  font-size:10px;
  pointer-events:none;
}
.reader-loading,.reader-error{
  position:absolute;
  z-index:20;
  inset:0;
  display:grid;
  place-content:center;
  justify-items:center;
  gap:12px;
  color:#fff;
  background:#292e2c;
  text-align:center;
}
.reader-loading[hidden],.reader-error[hidden]{
  display:none;
}
.reader-error span{
  max-width:520px;
  color:rgba(255,255,255,.70);
  font-size:13px;
}
.reader-spinner{
  width:38px;
  height:38px;
  border:3px solid rgba(255,255,255,.18);
  border-top-color:#fff;
  border-radius:50%;
  animation:reader-spin .8s linear infinite;
}
@keyframes reader-spin{to{transform:rotate(360deg)}}

@media(max-width:1050px){
  body.reader-mode .page-main{
    height:calc(100dvh - 68px);
  }
  .reader-stage{
    padding:10px 12px;
    gap:0;
  }
  .reader-page-card--second{
    display:none !important;
  }
  .reader-info-overlay{
    top:10px;
    left:12px;
    gap:6px;
    max-width:calc(100% - 110px);
  }
  .reader-back-overlay,
  .reader-title-overlay{
    min-height:38px;
    padding:0 10px;
  }
  .reader-title-overlay{
    max-width:220px;
    overflow:hidden;
    white-space:nowrap;
  }
  .reader-title-overlay span{
    display:none;
  }
  .reader-controls-overlay{
    top:auto;
    bottom:14px;
  }
  .reader-download-overlay{
    top:10px;
    right:12px;
    min-height:38px;
    padding:0 12px;
  }
  .reader-edge{
    width:46px;
    height:64px;
    border-radius:16px;
    font-size:32px;
  }
  .reader-edge--left{left:8px}
  .reader-edge--right{right:8px}
  .reader-hint{display:none}
}
@media(max-width:560px){
  .reader-info-overlay{max-width:calc(100% - 92px)}
  .reader-back-overlay{font-size:0;width:38px;padding:0;justify-content:center}
  .reader-back-overlay::before{content:"←";font-size:17px}
  .reader-title-overlay{
    padding:6px 9px;
  }
  .reader-title-overlay strong{
    font-size:11px;
  }
  .reader-controls-overlay{
    padding:4px;
    gap:1px;
  }
  .reader-control{
    min-width:31px;
    width:31px;
    height:31px;
    font-size:15px;
  }
  .reader-counter{
    min-width:62px;
    font-size:11px;
  }
  .reader-download-overlay{
    font-size:11px;
  }
}

/* Archive */
.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;min-height:0}.archive-card{padding:22px}.archive-card .archive-type{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-weight:800}.archive-card h2{font-family:Georgia,serif;font-size:24px;margin:10px 0 8px}.archive-card p{font-size:12px;color:var(--muted);margin:0 0 18px}
/* Content detail */
.content-scroll{height:100%;overflow:auto;padding:30px}.content-scroll h2{font-family:Georgia,serif;font-size:28px}.content-scroll h3{font-family:Georgia,serif;font-size:21px}.content-scroll p,.content-scroll li{font-size:13px;color:#52605b}.content-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.content-card{padding:20px}.content-card h2{font-family:Georgia,serif;font-size:23px;margin:0 0 8px}.content-card p{font-size:12px;color:var(--muted)}
/* Contact */
.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:22px;min-height:0}.contact-info,.contact-form{padding:28px}.contact-info h2,.contact-form h2{font-family:Georgia,serif;font-size:30px;margin:0 0 14px}.contact-block{padding:13px 0;border-top:1px solid var(--line)}.contact-block:first-of-type{border-top:0}.contact-block strong{display:block;margin-bottom:3px}.contact-block p{margin:0;color:var(--muted);font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:700}.field input,.field textarea{border:1px solid var(--line);background:#fbfaf7;border-radius:8px;padding:11px 12px;color:var(--ink)}.field textarea{min-height:120px}.send{justify-self:start;border:0;border-radius:7px;background:var(--green);color:#fff;padding:11px 17px;font-weight:700}
/* Legal + footer */
.legal-wrap{padding:30px 0}.legal-card{padding:30px;max-height:calc(100vh - var(--header) - 132px);overflow:auto}.legal-card h1{font-family:Georgia,serif;font-size:42px;margin:0 0 16px}.legal-card h2{font-family:Georgia,serif;font-size:22px;margin:20px 0 8px}.legal-card p{font-size:13px;color:#53605c;max-width:1000px}.site-footer{height:62px;background:var(--green2);color:#f7f4ed}.footer-shell{width:min(1720px,94vw);height:100%;margin:auto;display:grid;grid-template-columns:1fr auto auto;gap:28px;align-items:center}.footer-name{font-family:Georgia,serif;font-size:12px;line-height:1.1}.footer-links{display:flex;gap:18px;font-size:11px;color:#dbe6e2}.to-top{width:32px;height:32px;border:1px solid rgba(255,255,255,.28);border-radius:50%;display:grid;place-items:center}
/* responsive */
@media(max-width:1180px){
 .site-header{height:auto;position:sticky;top:0}.nav-shell{min-height:68px}.brand{min-width:auto}.brand-sub{display:none}.mainnav{display:none}.menu-toggle{display:grid}.page-main{min-height:calc(100vh - 68px)}.home-main{height:auto;display:block}.hero{height:500px}.home-dashboard{grid-template-columns:1fr}.news{border-left:0;border-top:1px solid var(--line)}.service-row{grid-template-columns:1fr 1fr 1fr}.venue{grid-column:1/-1}.subpage{height:auto;min-height:calc(100vh - 130px);padding:22px 0}.page-grid{height:auto}.page-title{display:block}.page-title p{margin-top:8px;white-space:normal}.services-columns,.church-duo,.contact-layout,.brief-layout{grid-template-columns:1fr}.landing-grid{grid-template-columns:1fr 1fr}.offer-columns{grid-template-columns:1fr}.offer-card,.church-feature{min-height:500px}.archive-grid{grid-template-columns:1fr 1fr}.site-footer{height:auto}.footer-shell{min-height:72px;grid-template-columns:1fr auto}.footer-links{grid-column:1/-1;order:3;padding-bottom:14px}.reader-shell{height:auto;min-height:calc(100vh - 130px)}.spread{grid-template-columns:1fr}.page-frame{height:75vh}.page-frame.second{display:none}
}
@media(max-width:720px){
 .brief-current{grid-template-columns:1fr;gap:22px}
 .brief-cover{min-width:0;width:100%;height:auto}
 .brief-cover--pdf{width:min(100%,330px);aspect-ratio:210 / 297}
 .brief-cover .cover-title{font-size:30px}
 .nav-shell{width:94vw;gap:8px}.brand{gap:9px;flex:1}.brand-title{font-size:14px}.logo{width:42px;height:42px;flex:0 0 42px}.search,.menu-toggle{width:36px;height:36px}.frame{width:92vw}.hero{height:560px}.hero-copy h1{font-size:48px}.service-row{grid-template-columns:1fr}.services,.news{padding:22px 4vw}.landing-grid,.archive-grid,.content-grid{grid-template-columns:1fr}.brief-current{grid-template-columns:1fr}.brief-cover{height:210px}.offer-card{min-height:430px}.church-feature{min-height:460px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.reader-toolbar{flex-wrap:wrap}.reader-toolbar .grow{flex-basis:100%;order:-1}.page-frame{height:68vh}.footer-shell{grid-template-columns:1fr auto}.footer-links{gap:10px;flex-wrap:wrap}
}
@media(max-width:420px){.search{display:none}.brand-title{font-size:13px}}


/* Static, reliable first-page preview for Gemeindebrief */
.brief-cover--pdf{
  display:block;
  width:min(100%,330px);
  min-width:0;
  height:auto;
  aspect-ratio:790 / 1116;
  padding:0;
  margin-inline:auto;
  overflow:hidden;
  border-radius:9px;
  background:#fff;
  border:1px solid #ddd4c7;
  box-shadow:0 18px 40px rgba(15,45,39,.18);
  transition:transform .16s ease, box-shadow .16s ease;
}
.brief-cover--pdf:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 46px rgba(15,45,39,.22);
}
.brief-cover--pdf::before{display:none}
.brief-cover--pdf img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
}
.brief-cover-fallback{
  width:100%;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:24px;
  color:#fff;
  background:linear-gradient(160deg,var(--green),var(--green3));
  font-family:Georgia,serif;
  font-size:28px;
}
.brief-cover-fallback span{
  margin-top:12px;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  font-size:13px;
}

@media(max-width:720px){
  .brief-cover--pdf{
    width:min(100%,360px);
  }
}


/* v6: server-generated Gemeindebrief cover */
.brief-cover--pdf{
  display:block;
  width:min(100%,330px);
  min-width:0;
  height:auto;
  aspect-ratio:790 / 1116;
  padding:0;
  margin-inline:auto;
  overflow:hidden;
  border-radius:9px;
  background:#fff;
  border:1px solid #ddd4c7;
  box-shadow:0 18px 40px rgba(15,45,39,.18);
}
.brief-cover--pdf img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
}


/* =========================================================
   v8 – Gemeindebrief: aktuelle Ausgabe im Fokus
   ========================================================= */
.brief-layout-v8{
  grid-template-columns:minmax(0,2.15fr) minmax(320px,.85fr);
  align-items:start;
  gap:22px;
}

.brief-current-v8{
  min-height:100%;
  padding:38px 44px;
  grid-template-columns:minmax(300px,390px) minmax(0,1fr);
  gap:56px;
  align-items:center;
}

.brief-current-v8 .brief-current-cover{
  display:flex;
  align-items:center;
  justify-content:center;
}

.brief-current-v8 .brief-cover--pdf{
  width:min(100%,390px);
  aspect-ratio:210 / 297;
  margin:0;
}

.brief-meta-v8{
  max-width:470px;
}

.brief-meta-v8 h2{
  margin:8px 0 14px;
  font-size:clamp(38px,3vw,54px);
  line-height:1.02;
}

.brief-meta-v8 .brief-facts{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:0 0 18px;
  font-size:14px;
}

.brief-meta-v8 .brief-description{
  max-width:390px;
  font-size:14px;
  line-height:1.55;
}

.brief-meta-v8 .brief-actions{
  margin-top:24px;
}

.archive-panel-v8{
  align-self:start;
  padding:22px;
  overflow:visible;
}

.archive-head-v8{
  align-items:center;
  margin-bottom:14px;
}

.archive-head-v8 h2{
  margin-top:3px;
  font-size:25px;
}

.archive-years{
  display:grid;
  gap:18px;
}

.archive-year-group{
  display:grid;
  gap:9px;
}

.archive-year-title{
  margin:0;
  padding-bottom:6px;
  border-bottom:1px solid var(--line);
  font-family:Georgia,serif;
  font-size:16px;
  font-weight:600;
  color:var(--green);
}

.archive-list-v8{
  display:grid;
  gap:10px;
}

.archive-item-v8{
  display:grid;
  grid-template-columns:68px minmax(0,1fr);
  gap:13px;
  align-items:center;
  padding:10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}

.archive-cover-mini{
  display:block;
  width:68px;
  aspect-ratio:210 / 297;
  overflow:hidden;
  border:1px solid #e1d8cb;
  border-radius:5px;
  background:#fff;
  box-shadow:0 5px 12px rgba(20,48,42,.08);
}

.archive-cover-mini img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
}

.archive-copy{
  min-width:0;
}

.archive-copy h4{
  margin:0 0 4px;
  font-family:Georgia,serif;
  font-size:16px;
  line-height:1.15;
}

.archive-copy p{
  margin:0;
  color:var(--muted);
  font-size:10.5px;
}

.archive-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-top:9px;
}

.archive-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#fff;
  color:var(--green);
  font-size:10.5px;
  font-weight:800;
}

.archive-action.primary{
  border-color:var(--green);
  background:var(--green);
  color:#fff;
}

.archive-action:hover{
  border-color:var(--gold);
}

.archive-empty-v8{
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:18px;
  text-align:left;
}

.archive-empty-v8 strong{
  color:var(--ink);
  font-family:Georgia,serif;
  font-size:16px;
  font-weight:600;
}

.archive-empty-v8 span{
  font-size:11.5px;
  line-height:1.45;
}

.brief-no-current{
  grid-column:1/-1;
  padding:30px;
  border:1px dashed #d7cdbf;
  border-radius:10px;
  color:var(--muted);
  text-align:center;
}

@media(max-width:1180px){
  .brief-layout-v8{
    grid-template-columns:1fr;
  }

  .brief-current-v8{
    grid-template-columns:minmax(260px,340px) minmax(0,1fr);
  }

  .archive-panel-v8{
    width:100%;
  }

  .archive-list-v8{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:720px){
  .brief-current-v8{
    padding:24px;
    grid-template-columns:1fr;
    gap:26px;
  }

  .brief-current-v8 .brief-cover--pdf{
    width:min(100%,340px);
    margin-inline:auto;
  }

  .brief-meta-v8{
    max-width:none;
  }

  .brief-meta-v8 h2{
    font-size:38px;
  }

  .archive-list-v8{
    grid-template-columns:1fr;
  }

  .archive-panel-v8{
    padding:20px;
  }
}


/* =========================================================
   v9 – kompakter, fixer Footer + Desktop-Viewport-Fit
   ========================================================= */
:root{
  --footer:46px;
}

/* Desktop: Footer bleibt immer sichtbar am unteren Fensterrand. */
@media(min-width:1181px){
  body:not(.reader-mode){
    padding-bottom:var(--footer);
  }

  .site-footer{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:45;
    height:var(--footer);
    box-shadow:0 -1px 0 rgba(255,255,255,.04);
  }

  .footer-shell{
    height:var(--footer);
    grid-template-columns:minmax(0,1fr) auto auto;
    gap:22px;
  }

  .footer-name{
    font-size:10.5px;
    line-height:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .footer-links{
    gap:16px;
    font-size:10px;
  }

  .to-top{
    width:28px;
    height:28px;
    font-size:12px;
  }

  .page-main{
    min-height:calc(100dvh - var(--header) - var(--footer));
  }

  .home-main{
    height:calc(100dvh - var(--header) - var(--footer));
    min-height:0;
  }

  .subpage{
    height:calc(100dvh - var(--header) - var(--footer));
    min-height:0;
    padding:24px 0 20px;
  }

  .page-grid{
    min-height:0;
    gap:18px;
  }

  .page-title h1{
    font-size:44px;
  }

  .page-title p{
    font-size:12.5px;
  }

  .legal-wrap{
    height:calc(100dvh - var(--header) - var(--footer));
    padding:20px 0;
  }

  .legal-card{
    max-height:100%;
  }
}

/*
 * Auf typischen Desktop-Höhen bleibt die gesamte Seitenschale in genau
 * einem Viewport. Inhaltsschwere Detailseiten nutzen bei Bedarf nur ihren
 * vorgesehenen internen Inhaltsbereich, statt die ganze Seite zu verschieben.
 */
@media(min-width:1181px) and (min-height:720px){
  html,
  body:not(.reader-mode){
    height:100%;
    overflow:hidden;
  }

  body:not(.reader-mode) .page-main{
    height:calc(100dvh - var(--header) - var(--footer));
    min-height:0;
    overflow:hidden;
  }

  body:not(.reader-mode) .page-main > .subpage,
  body:not(.reader-mode) .page-main > .home-main{
    max-height:100%;
  }

  .surface{
    min-height:0;
  }

  .brief-layout-v8,
  .services-columns,
  .landing-grid,
  .offer-columns,
  .church-duo,
  .contact-layout,
  .archive-grid{
    min-height:0;
  }

  .archive-panel-v8{
    max-height:100%;
    overflow:auto;
  }
}

/* Reader hat keinen Footer und benötigt daher auch keinen Footer-Abstand. */
body.reader-mode{
  padding-bottom:0;
}

/* Tablet/Mobil: kein fixer Footer, damit Inhalte zugänglich bleiben. */
@media(max-width:1180px){
  body{
    padding-bottom:0;
  }

  .site-footer{
    position:static;
    height:auto;
  }

  .footer-shell{
    min-height:58px;
    padding-top:10px;
    padding-bottom:10px;
  }

  .footer-name{
    font-size:10.5px;
  }
}

@media(max-width:720px){
  .footer-shell{
    min-height:0;
    padding:12px 0;
    row-gap:9px;
  }

  .footer-links{
    padding-bottom:0;
  }
}


/* =========================================================
   v10 – echter dynamischer Viewport statt überlagerndem Footer
   ========================================================= */

/*
 * Desktop:
 * Der Body besteht aus genau drei Reihen:
 * Header | flexibler Inhalt | Footer.
 * Der Footer liegt damit am unteren Bildschirmrand, überlagert aber
 * niemals den Inhalt.
 */
@media(min-width:1181px){
  html{
    height:100%;
  }

  body:not(.reader-mode){
    height:100dvh;
    min-height:0;
    padding-bottom:0;
    display:grid;
    grid-template-rows:var(--header) minmax(0,1fr) var(--footer);
    overflow:hidden;
  }

  body:not(.reader-mode) .site-header{
    position:relative;
    height:var(--header);
  }

  body:not(.reader-mode) .page-main{
    height:auto;
    min-height:0;
    overflow:hidden;
  }

  body:not(.reader-mode) .site-footer{
    position:static;
    left:auto;
    right:auto;
    bottom:auto;
    height:var(--footer);
  }

  /* Allgemeiner Seitenrahmen nutzt exakt die verfügbare Resthöhe. */
  body:not(.reader-mode) .subpage{
    height:100%;
    min-height:0;
    padding:
      clamp(12px,2.2dvh,24px)
      0
      clamp(10px,1.6dvh,18px);
  }

  body:not(.reader-mode) .page-grid{
    height:100%;
    min-height:0;
    grid-template-rows:auto minmax(0,1fr);
    gap:clamp(10px,1.5dvh,18px);
  }

  body:not(.reader-mode) .page-title{
    min-height:0;
  }

  body:not(.reader-mode) .page-title h1{
    font-size:clamp(32px,4.8dvh,44px);
  }

  body:not(.reader-mode) .page-title p{
    font-size:clamp(10.5px,1.35dvh,12.5px);
  }

  /* Startseite ebenfalls exakt in der mittleren Grid-Reihe. */
  body:not(.reader-mode) .home-main{
    height:100%;
    min-height:0;
  }

  /*
   * Gemeindebrief:
   * Die Karte bekommt die verbleibende Höhe. Deckblatt, Abstände und
   * Typografie skalieren anhand der tatsächlichen Fensterhöhe.
   */
  .brief-layout-v8{
    height:100%;
    min-height:0;
    align-items:stretch;
  }

  .brief-current-v8{
    height:100%;
    min-height:0;
    overflow:hidden;
    padding:
      clamp(16px,3dvh,38px)
      clamp(22px,2.8vw,44px);
    gap:clamp(22px,3vw,56px);
    grid-template-columns:minmax(230px,38%) minmax(0,1fr);
    align-items:center;
  }

  .brief-current-v8 .brief-current-cover{
    height:100%;
    min-height:0;
    overflow:hidden;
    display:grid;
    place-items:center;
  }

  .brief-current-v8 .brief-cover--pdf{
    width:auto;
    height:min(
      100%,
      calc(100dvh - var(--header) - var(--footer) - clamp(120px,16dvh,170px))
    );
    max-width:100%;
    max-height:100%;
    aspect-ratio:210 / 297;
    margin:0 auto;
  }

  .brief-current-v8 .brief-cover--pdf img{
    width:100%;
    height:100%;
    object-fit:contain;
  }

  .brief-meta-v8{
    max-width:min(100%,480px);
  }

  .brief-meta-v8 h2{
    margin:
      clamp(4px,.7dvh,8px)
      0
      clamp(7px,1.2dvh,14px);
    font-size:clamp(30px,5dvh,54px);
    line-height:1.01;
  }

  .brief-meta-v8 .brief-facts{
    margin-bottom:clamp(8px,1.6dvh,18px);
    font-size:clamp(11px,1.45dvh,14px);
  }

  .brief-meta-v8 .brief-description{
    font-size:clamp(11px,1.45dvh,14px);
    line-height:1.45;
  }

  .brief-meta-v8 .brief-actions{
    margin-top:clamp(12px,2dvh,24px);
  }

  .brief-meta-v8 .btn{
    padding:
      clamp(8px,1.15dvh,11px)
      clamp(12px,1.3vw,17px);
    font-size:clamp(11px,1.3dvh,13px);
  }

  .archive-panel-v8{
    height:100%;
    min-height:0;
    max-height:none;
    overflow:auto;
    padding:clamp(16px,2.2dvh,22px);
  }

  /*
   * Andere große Desktop-Layouts dürfen die komplette mittlere Höhe
   * verwenden. Falls eine Seite tatsächlich mehr Inhalt enthält, scrollt
   * nur ihr Inhaltsbereich und nicht hinter dem Footer weiter.
   */
  .services-columns,
  .landing-grid,
  .offer-columns,
  .church-duo,
  .contact-layout,
  .archive-grid{
    height:100%;
    min-height:0;
  }

  .legal-wrap{
    height:100%;
    min-height:0;
    padding:clamp(12px,2dvh,20px) 0;
    overflow:auto;
  }
}

/* Niedrigere Desktop-Fenster werden nochmals kompakter. */
@media(min-width:1181px) and (max-height:820px){
  :root{
    --footer:42px;
  }

  .footer-shell{
    height:var(--footer);
  }

  .page-title h1{
    font-size:34px !important;
  }

  .brief-current-v8{
    padding:14px 28px;
    gap:28px;
  }

  .brief-meta-v8 h2{
    font-size:34px;
  }

  .archive-panel-v8{
    padding:15px;
  }
}

/* Sehr niedrige Desktop-Fenster: lesbar bleiben statt Inhalte abzuschneiden. */
@media(min-width:1181px) and (max-height:680px){
  body:not(.reader-mode) .page-main{
    overflow:auto;
  }

  body:not(.reader-mode) .subpage{
    min-height:560px;
  }
}


/* =========================================================
   v11 – stabiler Responsive-Fit für kleine UND große Fenster
   ========================================================= */

/*
 * HERO / SLIDER
 * Der linke Pfeil bekommt einen eigenen Randbereich.
 * Der Text beginnt erst dahinter und kann ihn nicht mehr überlagern.
 */
@media (min-width:721px){
  .hero-content{
    padding-left:clamp(54px,4.5vw,84px);
    padding-right:clamp(54px,4.5vw,84px);
  }

  .slider-arrow.left{
    left:clamp(12px,1.35vw,24px);
  }

  .slider-arrow.right{
    right:clamp(12px,1.35vw,24px);
  }
}

/* Auf kleinen Geräten liegen die Pfeile bewusst unterhalb der Überschrift. */
@media (max-width:720px){
  .slider-arrow{
    top:auto;
    bottom:16px;
    transform:none;
    width:38px;
    height:38px;
  }

  .slider-arrow.left{left:16px}
  .slider-arrow.right{right:16px}
  .hero-dots{bottom:28px}
  .hero-caption{bottom:24px;right:64px}
}


/* =========================================================
   DESKTOP – Inhalt darf schrumpfen, aber nicht endlos wachsen
   ========================================================= */
@media(min-width:1181px){

  /*
   * Gottesdienste:
   * Die drei Terminzeilen bleiben auf großen Monitoren kompakt.
   * Zusätzliche Bildschirmhöhe wird nicht mehr in riesige Karten verwandelt.
   */
  .services-columns{
    height:clamp(
      540px,
      calc(100dvh - var(--header) - var(--footer) - 150px),
      720px
    ) !important;
    max-height:100%;
    align-self:start;
  }

  .venue-panel{
    height:100%;
    grid-template-rows:auto repeat(3,minmax(0,1fr));
  }

  .event-line{
    min-height:0;
    padding:clamp(12px,1.35dvh,18px) 16px;
  }


  /*
   * Gemeinde / Musik:
   * Die 2x2-Karten haben eine Maximalhöhe und bleiben dadurch
   * auch auf großen Monitoren visuell zusammenhängend.
   */
  .landing-grid{
    height:clamp(
      500px,
      calc(100dvh - var(--header) - var(--footer) - 160px),
      660px
    ) !important;
    max-height:100%;
    align-self:start;
    grid-template-rows:repeat(2,minmax(0,1fr));
  }

  .landing-card{
    padding:clamp(22px,2.2dvh,30px);
  }


  /* Angebote und Kirchen bleiben große Bildflächen, aber nicht bildschirmhoch. */
  .offer-columns,
  .church-duo{
    height:clamp(
      520px,
      calc(100dvh - var(--header) - var(--footer) - 155px),
      700px
    ) !important;
    max-height:100%;
    align-self:start;
  }


  /* Kontaktseite ebenfalls begrenzen. */
  .contact-layout{
    height:clamp(
      520px,
      calc(100dvh - var(--header) - var(--footer) - 155px),
      680px
    ) !important;
    max-height:100%;
    align-self:start;
  }


  /* Archivkarten werden nicht künstlich auf die volle Resthöhe gestreckt. */
  .archive-grid{
    height:auto !important;
    max-height:100%;
    align-self:start;
    align-content:start;
  }


  /*
   * Inhaltsseiten wie Leitbild, Mitarbeitende, Kinder, Jugend usw.
   * bleiben lesbar, wachsen aber nicht ins Unendliche.
   */
  .content-scroll{
    height:min(100%,720px) !important;
    max-height:720px;
    align-self:start;
  }


  /*
   * Startseite:
   * Auf hohen Monitoren bleibt der Hero ein Banner und wird nicht
   * zu einer halben Kinoleinwand.
   */
  .home-main{
    grid-template-rows:clamp(300px,40dvh,430px) minmax(0,1fr);
  }


  /* =======================================================
     GEMEINDEBRIEF
     ======================================================= */

  .brief-layout-v8{
    height:clamp(
      520px,
      calc(100dvh - var(--header) - var(--footer) - 155px),
      700px
    ) !important;
    max-height:100%;
    align-self:start;
    align-items:stretch;
  }

  .brief-current-v8{
    height:100%;
    padding:
      clamp(22px,2.6dvh,34px)
      clamp(24px,2.5vw,42px);
    gap:clamp(28px,3vw,52px);
    grid-template-columns:minmax(250px,38%) minmax(0,1fr);
  }

  /*
   * Ganz wichtig:
   * Keine feste Höhe mehr am Cover-Rahmen.
   * Die Breite bestimmt über DIN-A4-Proportionen automatisch die Höhe.
   */
  .brief-current-v8 .brief-current-cover{
    height:auto !important;
    min-height:0;
    overflow:visible;
  }

  .brief-current-v8 .brief-cover--pdf{
    width:min(100%,360px) !important;
    height:auto !important;
    max-width:360px;
    max-height:100%;
    aspect-ratio:210 / 297;
    margin:0 auto;
    padding:0;
    border:1px solid #ddd4c7;
    border-radius:8px;
    background:#fff;
    box-shadow:0 12px 28px rgba(15,45,39,.12);
  }

  .brief-current-v8 .brief-cover--pdf img{
    display:block;
    width:100%;
    height:auto !important;
    aspect-ratio:210 / 297;
    object-fit:cover;
    background:#fff;
  }

  .archive-panel-v8{
    height:100%;
    overflow:auto;
  }
}


/* =========================================================
   SEHR GROSSE / HERAUSGEZOOMTE DESKTOP-ANSICHTEN
   ========================================================= */
@media (min-width:2200px), (min-height:1150px){

  /*
   * Bei sehr großen CSS-Viewports wird die eigentliche Inhaltsbreite
   * bewusst begrenzt. Dadurch wachsen Karten nicht proportional zum Monitor.
   */
  .frame{
    width:min(1540px,88vw);
  }

  .nav-shell,
  .footer-shell{
    width:min(1540px,88vw);
  }

  .page-title h1{
    font-size:42px !important;
  }

  .page-title p{
    font-size:12px !important;
  }

  .services-columns{height:min(690px,100%) !important}
  .landing-grid{height:min(620px,100%) !important}
  .offer-columns,
  .church-duo{height:min(660px,100%) !important}
  .contact-layout{height:min(640px,100%) !important}
  .content-scroll{height:min(700px,100%) !important}
  .brief-layout-v8{height:min(660px,100%) !important}

  .venue-panel{
    padding:22px;
  }

  .venue-head h2{
    font-size:29px;
  }

  .event-line{
    padding:14px 16px;
  }

  .event-line h3{
    font-size:15px;
  }

  .event-line p{
    font-size:12px;
  }

  .event-meta{
    font-size:12.5px;
  }

  .event-meta strong{
    font-size:16px;
  }

  .bigdate{
    font-size:27px;
  }

  .landing-card h2{
    font-size:31px;
  }

  .landing-card p{
    font-size:13px;
  }

  .landing-card .icon{
    font-size:26px;
  }
}


/* =========================================================
   TABLET / MOBIL – Gemeindebrief ohne Restbalken
   ========================================================= */
@media(max-width:1180px){

  .brief-current-v8 .brief-current-cover{
    height:auto !important;
    min-height:0;
    overflow:visible;
  }

  .brief-current-v8 .brief-cover--pdf{
    width:min(100%,340px) !important;
    height:auto !important;
    max-height:none !important;
    aspect-ratio:210 / 297;
    margin-inline:auto;
    padding:0;
    background:#fff;
    box-shadow:0 10px 24px rgba(15,45,39,.11);
  }

  .brief-current-v8 .brief-cover--pdf img{
    display:block;
    width:100%;
    height:auto !important;
    aspect-ratio:210 / 297;
    object-fit:cover;
    background:#fff;
  }
}


/* =========================================================
   v12 – Gemeindebrief: mehr Höhe auf kleineren Desktops
   ========================================================= */

/*
 * Grundregel:
 * Breitenaufteilung aus v11 bleibt unangetastet.
 * Nur die verfügbare Höhe wird besser genutzt.
 */
@media (min-width:1181px){

  .brief-layout-v8{
    height:min(100%,700px) !important;
    max-height:100%;
    min-height:0;
    align-self:start;
  }

  .brief-current-v8,
  .archive-panel-v8{
    min-height:0;
  }
}


/*
 * Typische Notebook-/1080p-Fenster:
 * Der Titelbereich wird kompakter, damit die Hauptkarte mehr Höhe erhält.
 * Die Karte selbst nutzt dann praktisch die gesamte verbleibende Fläche.
 */
@media (min-width:1181px) and (max-height:900px){

  body:not(.reader-mode) .subpage{
    padding-top:10px;
    padding-bottom:10px;
  }

  body:not(.reader-mode) .page-grid{
    gap:8px;
  }

  .page-title{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:end;
    column-gap:24px;
  }

  .page-title h1{
    font-size:34px !important;
    line-height:1;
    margin:0;
  }

  .page-title p{
    margin:0 0 2px auto;
    font-size:11px !important;
    line-height:1.25;
  }

  .brief-layout-v8{
    height:100% !important;
    max-height:100%;
  }

  .brief-current-v8{
    height:100%;
    padding-top:16px;
    padding-bottom:16px;
  }

  .archive-panel-v8{
    height:100%;
  }

  .brief-current-v8 .brief-cover--pdf{
    max-height:calc(100% - 8px);
  }
}


/*
 * Etwas niedrigere Fenster:
 * Noch ein wenig mehr Platz für die Hauptkarte.
 */
@media (min-width:1181px) and (max-height:780px){

  body:not(.reader-mode) .subpage{
    padding-top:6px;
    padding-bottom:6px;
  }

  body:not(.reader-mode) .page-grid{
    gap:6px;
  }

  .page-title h1{
    font-size:30px !important;
  }

  .page-title p{
    font-size:10px !important;
  }

  .brief-current-v8{
    padding-top:12px;
    padding-bottom:12px;
  }
}


/*
 * Wenn selbst das nicht reicht, lieber normal scrollen als den Inhalt
 * weiter zusammenzuquetschen.
 */
@media (min-width:1181px) and (max-height:690px){

  body:not(.reader-mode){
    overflow:auto;
  }

  body:not(.reader-mode) .page-main{
    overflow:visible;
    min-height:calc(690px - var(--header) - var(--footer));
  }

  body:not(.reader-mode) .subpage{
    height:auto;
    min-height:560px;
  }

  .brief-layout-v8{
    height:540px !important;
    min-height:540px;
  }
}


/* =========================================================
   v14 – Audioguide
   ========================================================= */
.audio-overview,
.audio-detail{
  min-height:0;
  padding:clamp(20px,2.4vw,34px);
}

.audio-intro{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:28px;
  margin-bottom:24px;
}

.audio-intro h2{
  margin:5px 0 8px;
  font-size:clamp(27px,2.2vw,38px);
}

.audio-intro p{
  max-width:820px;
  margin:0;
  color:var(--muted);
  line-height:1.55;
}

.audio-count{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  min-width:120px;
}

.audio-count strong{
  font-family:Georgia,serif;
  color:var(--green);
  font-size:28px;
  line-height:1;
}

.audio-count span{
  margin-top:5px;
  color:var(--muted);
  font-size:11px;
}

.audio-station-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:11px;
}

.audio-station-card{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:12px;
  row-gap:4px;
  min-height:86px;
  padding:13px 15px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--ink);
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}

.audio-station-card:hover{
  transform:translateY(-1px);
  border-color:var(--gold);
  box-shadow:0 8px 20px rgba(15,45,39,.08);
}

.audio-number{
  grid-row:1/3;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  font-weight:800;
  font-size:12px;
}

.audio-title{
  align-self:end;
  font-family:Georgia,serif;
  font-size:15px;
  line-height:1.15;
}

.audio-play{
  color:var(--green);
  font-size:10.5px;
  font-weight:800;
}

.audio-station-card.no-audio{
  opacity:.62;
}

.audio-station-card.no-audio .audio-number{
  background:#766f64;
}

.audio-detail{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,36%);
  gap:28px;
  overflow:hidden;
}

.audio-detail-main{
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
  padding:clamp(18px,2vw,30px);
}

.audio-station-kicker{
  color:var(--gold);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.audio-detail-main h2{
  max-width:760px;
  margin:8px 0 28px;
  font-size:clamp(34px,3.5vw,56px);
  line-height:1.03;
}

.audio-player{
  width:min(100%,760px);
}

.audio-missing{
  width:min(100%,760px);
  padding:17px 18px;
  border:1px dashed #d8cdbf;
  border-radius:10px;
  background:#faf7f1;
  color:var(--muted);
}

.audio-nav{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:10px;
  align-items:center;
  width:min(100%,760px);
  margin-top:28px;
}

.audio-nav > :last-child{
  justify-self:end;
}

.audio-detail-list{
  min-height:0;
  overflow:auto;
  padding-right:4px;
}

.audio-mini{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 20px;
  gap:10px;
  align-items:center;
  padding:9px 10px;
  border-bottom:1px solid var(--line);
  color:var(--ink);
}

.audio-mini:first-child{
  border-top:1px solid var(--line);
}

.audio-mini:hover,
.audio-mini.is-active{
  background:#f7f3eb;
}

.audio-mini.is-active{
  box-shadow:inset 3px 0 0 var(--gold);
}

.audio-mini-number{
  font-weight:900;
  color:var(--gold);
  font-size:11px;
}

.audio-mini-title{
  font-size:11.5px;
  line-height:1.25;
}

.audio-mini-state{
  color:var(--green);
  font-size:11px;
  text-align:center;
}

@media(min-width:1181px){
  .audio-overview,
  .audio-detail{
    height:min(100%,700px);
    overflow:auto;
  }
}

@media(max-width:1180px){
  .audio-station-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .audio-detail{
    grid-template-columns:1fr;
    overflow:visible;
  }

  .audio-detail-list{
    max-height:none;
  }
}

@media(max-width:720px){
  .audio-intro{
    grid-template-columns:1fr;
    align-items:start;
  }

  .audio-count{
    align-items:flex-start;
  }

  .audio-station-grid{
    grid-template-columns:1fr;
  }

  .audio-detail-main{
    padding:8px 0 20px;
  }

  .audio-detail-main h2{
    font-size:36px;
  }

  .audio-nav{
    grid-template-columns:1fr 1fr;
  }

  .audio-nav > :nth-child(2){
    grid-column:1/-1;
    grid-row:2;
    justify-self:stretch;
    text-align:center;
  }
}


/* =========================================================
   v15 – Audioguide direkt in der Detailansicht
   ========================================================= */
.audio-playall-row{
  display:flex;
  align-items:center;
  gap:14px;
  width:min(100%,760px);
  margin-top:16px;
}

.audio-playall{
  cursor:pointer;
  font:inherit;
}

.audio-playall.is-active{
  border-color:var(--gold);
  background:#f7f3eb;
  color:var(--green);
}

.audio-playall-status{
  min-height:1.2em;
  color:var(--muted);
  font-size:11px;
  line-height:1.3;
}

@media(max-width:720px){
  .audio-playall-row{
    align-items:stretch;
    flex-direction:column;
  }

  .audio-playall{
    width:100%;
  }
}


/* =========================================================
   v16 – Audioguide: feste Positionen im linken Playerbereich
   ========================================================= */

/*
 * Auf Desktop bekommt jede Funktion ihre eigene feste Zeile.
 * Dadurch bleiben Player, "Alle Stationen" und Navigation exakt
 * an derselben Position, egal ob der Stationstitel eine oder zwei
 * Zeilen benötigt.
 */
@media(min-width:1181px){

  .audio-detail-main{
    display:grid;
    grid-template-rows:
      24px
      150px
      62px
      58px
      62px;
    align-content:center;
    justify-content:stretch;
    row-gap:12px;
    padding:clamp(18px,2vw,30px);
  }

  .audio-station-kicker{
    align-self:end;
    margin:0;
    line-height:1;
  }

  .audio-detail-main h2{
    display:flex;
    align-items:center;
    width:min(100%,820px);
    height:150px;
    margin:0;
    overflow:hidden;
    font-size:clamp(38px,3.5vw,56px);
    line-height:1.03;
  }

  .audio-player{
    align-self:center;
    width:min(100%,760px);
    margin:0;
  }

  .audio-playall-row{
    align-self:center;
    width:min(100%,760px);
    margin:0;
  }

  .audio-nav{
    align-self:center;
    width:min(100%,760px);
    margin:0;
  }

  /*
   * Bei besonders breiten Displays kann der Titel größer sein,
   * ohne dass sich die nachfolgenden Elemente verschieben.
   */
  @media(min-width:1800px){
    .audio-detail-main{
      grid-template-rows:
        24px
        170px
        62px
        58px
        62px;
    }

    .audio-detail-main h2{
      height:170px;
      font-size:clamp(44px,3vw,64px);
    }
  }
}


/*
 * Etwas niedrigere Desktop-Fenster:
 * gleiche feste Reihenfolge, nur kompakter.
 */
@media(min-width:1181px) and (max-height:820px){

  .audio-detail-main{
    grid-template-rows:
      20px
      120px
      58px
      54px
      58px;
    row-gap:9px;
  }

  .audio-detail-main h2{
    height:120px;
    font-size:clamp(34px,3vw,48px);
  }
}


/*
 * Mobil/Tablet bleiben im natürlichen Dokumentfluss.
 * Dort wäre eine starre Titelhöhe kontraproduktiv.
 */
@media(max-width:1180px){

  .audio-detail-main{
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
  }

  .audio-detail-main h2{
    display:block;
    height:auto;
    overflow:visible;
  }

  .audio-player,
  .audio-playall-row,
  .audio-nav{
    margin-top:16px;
  }
}


/* =========================================================
   v17 – Ansprechpersonen & Gruppen
   ========================================================= */
.contact-block a,
.content-card a[href^="mailto:"],
.content-card a[href^="tel:"]{
  color:var(--green);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}

.offers-wrap{
  min-height:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  gap:12px;
}

.all-groups-link{
  min-height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:14px 18px;
  color:var(--ink);
}

.all-groups-link div{
  display:grid;
  gap:3px;
}

.all-groups-link strong{
  font-family:Georgia,serif;
  font-size:17px;
}

.all-groups-link span{
  color:var(--muted);
  font-size:11px;
}

.all-groups-link > span{
  color:var(--green);
  font-weight:800;
  white-space:nowrap;
}

.groups-directory{
  display:grid;
  align-content:start;
  gap:15px;
}

.groups-note,
.source-note{
  margin:0;
  padding:10px 12px;
  border-radius:8px;
  background:#f7f3eb;
  color:var(--muted);
  font-size:11px;
}

.groups-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.group-card{
  padding:16px;
}

.group-category{
  color:var(--gold);
  font-size:9.5px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.group-card h2{
  margin:6px 0 11px;
  font-family:Georgia,serif;
  font-size:19px;
}

.group-card dl{
  display:grid;
  gap:7px;
  margin:0;
}

.group-card dl > div{
  display:grid;
  grid-template-columns:55px minmax(0,1fr);
  gap:8px;
}

.group-card dt{
  color:var(--muted);
  font-size:10px;
  font-weight:800;
}

.group-card dd{
  margin:0;
  color:var(--ink);
  font-size:10.5px;
  line-height:1.35;
}

@media(max-width:1180px){
  .offers-wrap{
    display:block;
  }

  .all-groups-link{
    margin-top:16px;
  }

  .groups-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:720px){
  .all-groups-link{
    align-items:flex-start;
    flex-direction:column;
  }

  .groups-grid{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   v18 – ausführliche Gottesdienstlisten
   ========================================================= */
.services-columns-detailed{
  height:min(100%,720px) !important;
  min-height:0;
  align-self:start;
}

.venue-panel-detailed{
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) !important;
  gap:12px;
  padding:20px;
  overflow:hidden;
}

.venue-head-detailed{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.service-count{
  flex:0 0 auto;
  padding:5px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  background:#faf7f1;
  font-size:10px;
  white-space:nowrap;
}

.service-list-detailed{
  min-height:0;
  overflow:auto;
  display:grid;
  align-content:start;
  gap:8px;
  padding-right:5px;
  scrollbar-gutter:stable;
}

.event-line-detailed{
  display:grid;
  grid-template-columns:68px minmax(0,1fr);
  gap:13px;
  padding:12px 14px;
  border:1px solid #eee5d8;
  border-radius:10px;
  background:var(--paper);
}

.event-date-detailed{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  align-self:start;
  color:var(--gold);
  line-height:1;
}

.event-date-detailed strong{
  font-family:Georgia,serif;
  font-size:25px;
}

.event-date-detailed span{
  margin-top:4px;
  font-family:Georgia,serif;
  font-size:12px;
  font-weight:700;
}

.event-date-detailed small{
  margin-top:8px;
  color:var(--muted);
  font-family:inherit;
  font-size:9.5px;
  font-weight:800;
  text-transform:uppercase;
}

.event-body-detailed{
  min-width:0;
}

.event-title-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
}

.event-title-row h3{
  margin:0;
  color:var(--ink);
  font-size:14px;
  line-height:1.25;
}

.event-title-row time{
  color:var(--ink);
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
}

.event-features{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:7px;
}

.service-feature{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:23px;
  padding:4px 7px;
  border:1px solid #ded4c5;
  border-radius:999px;
  background:#fff;
  color:#5e5b54;
  font-size:9.5px;
  line-height:1.15;
}

.communion-feature{
  border-color:#c69b29;
  background:#fffaf0;
  color:#725500;
  font-weight:800;
}

.communion-icon{
  width:13px;
  height:13px;
  flex:0 0 13px;
}

.event-location{
  margin-top:7px;
  color:var(--muted);
  font-size:10px;
}

.event-leaders{
  display:flex;
  align-items:baseline;
  gap:7px;
  margin-top:8px;
  padding-top:7px;
  border-top:1px solid rgba(214,204,190,.7);
  font-size:10px;
}

.event-leaders span{ color:var(--muted); }

.event-leaders strong{
  color:var(--ink);
  font-size:10.5px;
}

.services-empty{
  padding:22px;
  border:1px dashed #d9cfbf;
  border-radius:10px;
  color:var(--muted);
  text-align:center;
}

@media(max-width:1500px){
  .services-columns-detailed{
    grid-template-columns:1fr;
    height:auto !important;
    max-height:none !important;
    overflow:visible;
  }

  .venue-panel-detailed{
    height:auto;
    max-height:620px;
  }

  .service-list-detailed{
    max-height:500px;
  }
}

@media(max-width:720px){
  .venue-panel-detailed{
    padding:15px;
    max-height:none;
  }

  .service-list-detailed{
    max-height:none;
    overflow:visible;
  }

  .event-line-detailed{
    grid-template-columns:55px minmax(0,1fr);
    padding:11px;
  }

  .event-title-row{
    grid-template-columns:1fr;
    gap:4px;
  }

  .event-title-row time{ font-size:12px; }
}


/* =========================================================
   v19 – Footer-sicher + Gottesdienste wieder im 2-Spalten-Layout
   ========================================================= */

/*
 * Allgemeine Desktop-Sicherheit:
 * Header, Inhaltsbereich und Footer sind echte Grid-Zeilen.
 * Nichts darf in den Footer hineinragen.
 */
@media(min-width:1181px){
  html,
  body:not(.reader-mode){
    height:100%;
  }

  body:not(.reader-mode){
    height:100dvh;
    min-height:0;
    display:grid;
    grid-template-rows:var(--header) minmax(0,1fr) var(--footer);
    overflow:hidden;
    padding-bottom:0;
  }

  body:not(.reader-mode) .page-main{
    height:auto !important;
    min-height:0 !important;
    overflow:hidden !important;
  }

  body:not(.reader-mode) .site-footer{
    position:static !important;
    height:var(--footer);
    min-height:var(--footer);
  }

  body:not(.reader-mode) .subpage{
    height:100% !important;
    min-height:0 !important;
    overflow:hidden;
  }

  body:not(.reader-mode) .page-grid{
    height:100%;
    min-height:0;
    grid-template-rows:auto minmax(0,1fr);
  }

  /*
   * Startseite:
   * Der Hero wird bei normalen Desktop-Höhen etwas niedriger,
   * damit beide Gottesdienstzeilen sicher oberhalb des Footers bleiben.
   */
  body:not(.reader-mode) .home-main{
    height:100% !important;
    min-height:0 !important;
    grid-template-rows:clamp(270px,36dvh,395px) minmax(0,1fr) !important;
    overflow:hidden;
  }

  .hero{
    min-height:0;
  }

  .home-dashboard{
    min-height:0;
    overflow:hidden;
  }

  .services,
  .news{
    min-height:0;
    overflow:hidden;
  }
}

/* Kompaktere Startseite bei geringerer Fensterhöhe. */
@media(min-width:1181px) and (max-height:920px){
  body:not(.reader-mode) .home-main{
    grid-template-rows:clamp(255px,34dvh,320px) minmax(0,1fr) !important;
  }

  .services,
  .news{
    padding-top:14px;
    padding-bottom:10px;
  }

  .panel-head{
    margin-bottom:8px;
  }

  .panel-head h2{
    font-size:24px;
  }

  .service-row{
    gap:8px;
  }

  .service-row + .service-row{
    margin-top:7px;
    padding-top:7px;
  }

  .service-card{
    min-height:88px;
    padding:8px 10px;
  }

  .service-card h4{
    margin-top:6px;
  }

  .news-item{
    padding:6px 0;
  }
}

/*
 * Gottesdienstseite Desktop:
 * Immer zwei gleichberechtigte Spalten.
 * Jede Spalte besitzt ihren eigenen Scrollbereich.
 */
@media(min-width:1181px){
  .services-subpage{
    padding-bottom:clamp(8px,1.2dvh,14px) !important;
  }

  .services-columns-v19{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:22px;
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    align-self:stretch !important;
    overflow:hidden;
  }

  .service-venue-panel{
    height:100% !important;
    min-height:0 !important;
    display:grid !important;
    grid-template-rows:auto minmax(0,1fr) !important;
    gap:12px;
    padding:24px;
    overflow:hidden;
  }

  .service-venue-scroll{
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    display:grid;
    align-content:start;
    gap:10px;
    padding-right:6px;
    scrollbar-gutter:stable;
  }
}

.service-venue-head{
  align-items:flex-start;
}

.service-count{
  flex:0 0 auto;
  padding:5px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#faf7f1;
  color:var(--muted);
  font-size:10px;
  white-space:nowrap;
}

.service-detail-card{
  display:grid;
  grid-template-columns:94px minmax(0,1fr) 95px;
  gap:18px;
  align-items:center;
  min-height:126px;
  padding:14px 16px;
  border:1px solid #eee5d8;
  border-radius:10px;
  background:var(--paper);
}

.service-detail-date{
  align-self:center;
  font-family:Georgia,serif;
  color:var(--gold);
  line-height:.92;
}

.service-detail-date strong{
  display:block;
  font-size:29px;
}

.service-detail-date span{
  display:block;
  margin-top:5px;
  font-size:14px;
  font-weight:700;
}

.service-detail-copy{
  min-width:0;
}

.service-detail-copy h3{
  margin:0 0 7px;
  color:var(--ink);
  font-size:14px;
  line-height:1.22;
}

.service-detail-meta{
  display:flex;
  flex-wrap:wrap;
  gap:5px 7px;
  align-items:center;
  color:var(--muted);
  font-size:10.5px;
  line-height:1.25;
}

.service-detail-note{
  color:#5d665f;
}

.service-detail-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px 7px;
  border:1px solid #dccb9e;
  border-radius:999px;
  background:#fffaf0;
  color:#725500;
  font-size:9.5px;
  font-weight:800;
}

.service-detail-badge svg{
  width:13px;
  height:13px;
  flex:0 0 13px;
}

.service-detail-leaders{
  display:flex;
  flex-wrap:wrap;
  gap:5px 8px;
  margin-top:7px;
  color:var(--muted);
  font-size:10px;
}

.service-detail-leaders strong{
  color:var(--ink);
  font-weight:600;
}

.service-detail-time{
  text-align:right;
  color:var(--ink);
  font-size:11px;
}

.service-detail-time span{
  display:block;
  margin-bottom:3px;
}

.service-detail-time strong{
  display:block;
  font-size:15px;
  white-space:nowrap;
}

/* Schmale Desktops: gleiche zwei Spalten, nur etwas kompakter. */
@media(min-width:1181px) and (max-width:1500px){
  .service-venue-panel{
    padding:18px;
  }

  .service-detail-card{
    grid-template-columns:72px minmax(0,1fr) 82px;
    gap:12px;
    min-height:112px;
    padding:12px;
  }

  .service-detail-date strong{
    font-size:25px;
  }

  .service-detail-copy h3{
    font-size:13px;
  }

  .service-detail-meta,
  .service-detail-leaders{
    font-size:9.5px;
  }

  .service-detail-time strong{
    font-size:14px;
  }
}

/* Tablet/Mobil: Orte untereinander, ohne versteckte Inhalte. */
@media(max-width:1180px){
  .services-columns-v19{
    display:grid;
    grid-template-columns:1fr !important;
    height:auto !important;
    max-height:none !important;
    gap:18px;
    overflow:visible;
  }

  .service-venue-panel{
    height:auto !important;
    max-height:none !important;
    display:grid !important;
    grid-template-rows:auto auto !important;
    overflow:visible;
  }

  .service-venue-scroll{
    max-height:none;
    overflow:visible;
    display:grid;
    gap:10px;
  }
}

@media(max-width:720px){
  .service-detail-card{
    grid-template-columns:58px minmax(0,1fr);
    gap:11px;
  }

  .service-detail-time{
    grid-column:2;
    text-align:left;
  }
}


/* =========================================================
   v20 – vollständige Archivbeiträge
   ========================================================= */
.archive-story{
  max-width:100%;
  padding:clamp(22px,2.8vw,38px);
}

.archive-story-intro{
  max-width:980px;
  margin-bottom:26px;
}

.archive-lead{
  margin:7px 0 0;
  color:var(--ink);
  font-family:Georgia,serif;
  font-size:clamp(21px,2vw,30px);
  line-height:1.35;
}

.archive-story-section{
  max-width:1050px;
  padding:20px 0;
  border-top:1px solid var(--line);
}

.archive-story-section h2{
  margin:0 0 12px;
  font-size:24px;
}

.archive-story-section p{
  max-width:900px;
  margin:0 0 12px;
  color:var(--muted);
  font-size:13px;
  line-height:1.65;
}

.archive-document-list{
  columns:2;
  column-gap:34px;
  margin:14px 0 0;
  padding-left:24px;
}

.archive-document-list li{
  break-inside:avoid;
  margin:0 0 8px;
  padding-left:3px;
  color:var(--ink);
  font-size:11.5px;
  line-height:1.4;
}

.archive-resource-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}

.archive-resource{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:48px;
  padding:10px 13px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#faf8f3;
  color:var(--ink);
  font-size:11px;
}

.archive-resource:hover{
  border-color:var(--gold);
}

.archive-resource strong{
  flex:0 0 auto;
  color:var(--green);
}

.archive-source-note{
  display:grid;
  gap:4px;
  max-width:1050px;
  margin-top:20px;
  padding:13px 15px;
  border-left:3px solid var(--gold);
  background:#f7f3eb;
}

.archive-source-note strong{
  font-size:11px;
}

.archive-source-note span{
  color:var(--muted);
  font-size:10.5px;
  line-height:1.45;
}

.archive-story-footer{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
  padding-top:18px;
  border-top:1px solid var(--line);
}

@media(max-width:900px){
  .archive-document-list{
    columns:1;
  }

  .archive-resource-list{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   v21 – Archiv: footer-sicherer Scrollbereich + Weihnachten 2020
   ========================================================= */

/*
 * Desktop:
 * Der Titel bleibt oben stehen, das Kartenraster bekommt exakt die
 * verbleibende Höhe und scrollt bei Bedarf innerhalb dieser Fläche.
 * Dadurch kann keine dritte Kartenreihe mehr hinter dem Footer verschwinden.
 */
@media(min-width:1181px){
  .archive-grid{
    height:100% !important;
    min-height:0 !important;
    max-height:100% !important;
    overflow-y:auto !important;
    overflow-x:hidden;
    align-content:start !important;
    padding-right:6px;
    padding-bottom:8px;
    scrollbar-gutter:stable;
  }

  .archive-card{
    min-height:0 !important;
    height:auto !important;
    padding:22px 24px;
  }

  .archive-card h2{
    margin-bottom:10px;
  }

  .archive-card p{
    margin-bottom:14px;
  }
}

/*
 * Auf sehr großen Displays können die Karten etwas kompakter werden,
 * damit oft sogar alle sieben Archivthemen ohne Scrollen sichtbar sind.
 */
@media(min-width:1800px) and (min-height:900px){
  .archive-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
  }

  .archive-card{
    padding:20px 24px;
  }
}

/* Tablet/Mobil: normales Seiten-Scrollen, kein interner Zwang. */
@media(max-width:1180px){
  .archive-grid{
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    padding-right:0;
    padding-bottom:0;
  }
}


/* =========================================================
   v22 – Rechtliche Seiten & Produktionshinweise
   ========================================================= */
.legal-subpage .page-grid{
  min-height:0;
}

.legal-document{
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:clamp(22px,2.6vw,36px);
  scrollbar-gutter:stable;
}

.legal-document > section{
  max-width:1080px;
  padding:0 0 20px;
  margin:0 0 20px;
  border-bottom:1px solid var(--line);
}

.legal-document > section:last-of-type{
  margin-bottom:8px;
}

.legal-document h2{
  margin:6px 0 10px;
  font-family:Georgia,serif;
  color:var(--ink);
  font-size:clamp(20px,1.6vw,25px);
  line-height:1.18;
}

.legal-document h3{
  margin:0 0 7px;
  color:var(--ink);
  font-size:14px;
}

.legal-document p,
.legal-document li{
  color:var(--muted);
  font-size:12.5px;
  line-height:1.65;
}

.legal-document p{
  margin:0 0 10px;
}

.legal-document ul{
  display:grid;
  gap:5px;
  margin:8px 0 0;
  padding-left:20px;
}

.legal-document a{
  color:var(--green);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}

.legal-highlight{
  padding:18px 20px !important;
  border:1px solid #ded4c5 !important;
  border-radius:10px;
  background:#faf7f1;
}

.legal-small{
  font-size:10.5px !important;
}

.legal-updated{
  margin:14px 0 0;
  color:var(--muted);
  font-size:10.5px;
}

.legal-limitations{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}

.legal-limitations article{
  padding:14px 15px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}

.legal-limitations article p{
  margin:0;
  font-size:11.5px;
}

/* Footer with restrained technical credit. */
.footer-branding{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:10px;
  white-space:nowrap;
  overflow:hidden;
}

.footer-credit{
  flex:0 1 auto;
  padding-left:10px;
  border-left:1px solid rgba(255,255,255,.22);
  color:#b9cbc5;
  font-size:9px;
  line-height:1;
  overflow:hidden;
  text-overflow:ellipsis;
}

.footer-credit a{
  color:#e1ebe7;
}

@media(min-width:1181px){
  .legal-subpage{
    overflow:hidden !important;
  }

  .legal-subpage .legal-document{
    height:100%;
    max-height:100%;
  }
}

@media(max-width:1180px){
  .legal-document{
    overflow:visible;
  }

  .legal-limitations{
    grid-template-columns:1fr;
  }

  .footer-branding{
    display:block;
    white-space:normal;
  }

  .footer-credit{
    margin-top:4px;
    padding-left:0;
    border-left:0;
    font-size:9px;
  }
}


/* =========================================================
   v23 – Datenschutz-/Cookie-Einstellungen
   ========================================================= */
.footer-consent-link{
  appearance:none;
  border:0;
  padding:0;
  background:transparent;
  color:inherit;
  font:inherit;
  cursor:pointer;
}

.footer-consent-link:hover{
  text-decoration:underline;
}

.consent-banner[hidden],
.consent-modal[hidden]{
  display:none !important;
}

.consent-banner{
  position:fixed;
  left:18px;
  right:18px;
  bottom:calc(var(--footer) + 14px);
  z-index:1000;
  display:flex;
  justify-content:center;
  pointer-events:none;
}

.consent-banner-inner{
  width:min(1180px,100%);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:28px;
  align-items:center;
  padding:20px 22px;
  border:1px solid #d8cfbf;
  border-radius:14px;
  background:#fff;
  box-shadow:0 20px 60px rgba(15,45,39,.20);
  pointer-events:auto;
}

.consent-copy h2{
  margin:4px 0 7px;
  font-family:Georgia,serif;
  color:var(--ink);
  font-size:22px;
}

.consent-copy p{
  max-width:760px;
  margin:0;
  color:var(--muted);
  font-size:11.5px;
  line-height:1.5;
}

.consent-copy .consent-note{
  margin-top:6px;
  font-size:10.5px;
}

.consent-copy a{
  color:var(--green);
  text-decoration:underline;
  text-underline-offset:2px;
}

.consent-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.consent-actions .btn{
  cursor:pointer;
  font:inherit;
}

.consent-modal{
  position:fixed;
  inset:0;
  z-index:1100;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(10,28,25,.48);
  backdrop-filter:blur(4px);
}

.consent-dialog{
  position:relative;
  width:min(680px,100%);
  max-height:min(760px,calc(100dvh - 36px));
  overflow:auto;
  padding:26px;
  border-radius:14px;
  background:#fff;
  box-shadow:0 26px 80px rgba(0,0,0,.26);
}

.consent-dialog h2{
  margin:5px 34px 8px 0;
  font-family:Georgia,serif;
  color:var(--ink);
  font-size:28px;
}

.consent-dialog > p{
  color:var(--muted);
  font-size:12px;
  line-height:1.55;
}

.consent-close{
  position:absolute;
  top:14px;
  right:14px;
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:50%;
  background:#fff;
  color:var(--ink);
  font-size:22px;
  line-height:1;
  cursor:pointer;
}

.consent-category{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:center;
  margin-top:12px;
  padding:16px 0;
  border-top:1px solid var(--line);
}

.consent-category strong{
  display:block;
  color:var(--ink);
  font-size:13px;
}

.consent-category span{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}

.consent-switch{
  position:relative;
  display:inline-flex;
  align-items:center;
}

.consent-switch input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.consent-switch > span{
  position:relative;
  width:44px;
  height:24px;
  margin:0;
  border-radius:999px;
  background:#bbb8b1;
  cursor:pointer;
  transition:.18s ease;
}

.consent-switch > span::after{
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.25);
  transition:.18s ease;
}

.consent-switch input:checked + span{
  background:var(--green);
}

.consent-switch input:checked + span::after{
  transform:translateX(20px);
}

.consent-switch--locked{
  opacity:.62;
}

.consent-switch--locked > span{
  cursor:not-allowed;
}

.consent-status{
  margin:14px 0 0 !important;
  min-height:1.3em;
  color:var(--green) !important;
  font-size:10.5px !important;
  font-weight:700;
}

.consent-dialog-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
}

.consent-dialog-actions .btn{
  cursor:pointer;
  font:inherit;
}

.consent-reset{
  margin-left:auto;
  color:var(--muted);
}

.reader-consent-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.reader-consent-actions .btn{
  cursor:pointer;
  font:inherit;
}

@media(max-width:900px){
  .consent-banner{
    left:10px;
    right:10px;
    bottom:10px;
  }

  .consent-banner-inner{
    grid-template-columns:1fr;
    gap:14px;
    padding:17px;
  }

  .consent-actions{
    justify-content:stretch;
  }

  .consent-actions .btn{
    flex:1 1 160px;
    text-align:center;
  }
}

@media(max-width:620px){
  .consent-dialog{
    padding:20px;
  }

  .consent-dialog-actions{
    flex-direction:column;
  }

  .consent-reset{
    margin-left:0;
  }

  .consent-category{
    gap:12px;
  }
}


/* =========================================================
   v24 – individuelles Kirchenlogo in der Kopfzeile
   ========================================================= */

.brand-logo{
  display:block;
  flex:0 0 auto;
  width:48px;
  height:58px;
  object-fit:contain;
  object-position:center bottom;
}

.brand{
  gap:10px;
}

/*
 * Das Motiv darf optisch etwas über die bisherige 44px-Marke hinausgehen,
 * ohne die 72px hohe Kopfzeile zu vergrößern.
 */
@media(min-width:1181px){
  .brand-logo{
    width:48px;
    height:60px;
  }
}

@media(max-width:1180px){
  .brand-logo{
    width:43px;
    height:54px;
  }
}

@media(max-width:520px){
  .brand-logo{
    width:39px;
    height:50px;
  }

  .brand{
    gap:8px;
  }
}


/* =========================================================
   v25 – neues Kirchenlogo mit beiden Kirchen
   ========================================================= */
.brand-logo{
  width:74px !important;
  height:58px !important;
  object-fit:contain;
  object-position:center;
}

@media(min-width:1181px){
  .brand-logo{
    width:78px !important;
    height:60px !important;
  }
}

@media(max-width:1180px){
  .brand-logo{
    width:66px !important;
    height:54px !important;
  }
}

@media(max-width:520px){
  .brand-logo{
    width:58px !important;
    height:50px !important;
  }
}


/* =========================================================
   v26 – Archivkarten gleichmäßig ausrichten
   ========================================================= */

/*
 * Desktop:
 * Einheitliche Funktionsbereiche innerhalb jeder Archivkarte.
 * Dadurch sitzen Titel, Beschreibung und Link unabhängig von
 * ein- oder zweizeiligen Überschriften ruhig auf einer Linie.
 */
@media(min-width:1181px){

  .archive-card{
    display:grid !important;
    grid-template-rows:
      auto
      minmax(62px, auto)
      minmax(54px, auto)
      1fr
      auto;
    align-content:stretch;
    row-gap:0;
    padding:24px 26px 26px !important;
  }

  .archive-card .archive-type{
    align-self:start;
    margin:0 0 10px;
  }

  .archive-card h2{
    align-self:start;
    display:flex;
    align-items:flex-start;
    min-height:62px;
    margin:0 !important;
    line-height:1.18;
  }

  .archive-card p{
    align-self:start;
    min-height:54px;
    margin:8px 0 0 !important;
    line-height:1.45;
  }

  .archive-card .small-link{
    align-self:end;
    justify-self:start;
    margin-top:18px;
    margin-bottom:0;
  }
}

/*
 * Sehr breite Bildschirme:
 * etwas großzügiger, ohne die Karten unnötig hoch zu ziehen.
 */
@media(min-width:1800px) and (min-height:900px){

  .archive-card{
    grid-template-rows:
      auto
      minmax(66px, auto)
      minmax(58px, auto)
      1fr
      auto;
    padding:26px 28px 28px !important;
  }

  .archive-card h2{
    min-height:66px;
  }

  .archive-card p{
    min-height:58px;
  }

  .archive-card .small-link{
    margin-top:20px;
  }
}

/*
 * Tablet und Mobil:
 * natürliche Höhe, damit lange Titel oder größere Schrift
 * nicht künstlich abgeschnitten werden.
 */
@media(max-width:1180px){

  .archive-card{
    display:flex !important;
    flex-direction:column;
    padding:22px !important;
  }

  .archive-card h2{
    min-height:0;
    margin:10px 0 8px !important;
  }

  .archive-card p{
    min-height:0;
    margin:0 0 18px !important;
  }

  .archive-card .small-link{
    margin-top:auto;
  }
}


/* =========================================================
   v27 – Archivkarten: einfache, robuste Ausrichtung
   ========================================================= */

/*
 * Die v26-Unterteilung in künstliche Kartenzeilen wird vollständig
 * überschrieben. Das äußere Archiv-Grid sorgt für gleich hohe Karten
 * innerhalb einer Zeile; die Karte selbst ist nur noch eine Flexbox.
 */
@media(min-width:1181px){

  .archive-grid{
    align-items:stretch !important;
    grid-auto-rows:minmax(225px, auto);
  }

  .archive-card{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch;
    justify-content:flex-start;
    min-height:225px !important;
    height:100% !important;
    padding:24px 28px 26px !important;
    overflow:hidden;
  }

  .archive-card .archive-type{
    flex:0 0 auto;
    margin:0 0 15px !important;
  }

  .archive-card h2{
    display:block !important;
    flex:0 0 auto;
    min-height:0 !important;
    height:auto !important;
    margin:0 0 13px !important;
    line-height:1.16;
  }

  .archive-card p{
    display:block;
    flex:0 0 auto;
    min-height:0 !important;
    height:auto !important;
    margin:0 !important;
    line-height:1.48;
  }

  .archive-card .small-link{
    display:inline-block;
    flex:0 0 auto;
    align-self:flex-start !important;
    justify-self:auto !important;
    margin-top:auto !important;
    margin-bottom:0 !important;
    padding-top:22px;
  }
}

/*
 * Große Monitore: nicht unnötig aufblasen. Die Karte bleibt ruhig,
 * bekommt aber einen etwas komfortableren Innenabstand.
 */
@media(min-width:1800px) and (min-height:900px){

  .archive-grid{
    grid-auto-rows:minmax(235px, auto);
  }

  .archive-card{
    min-height:235px !important;
    padding:26px 30px 28px !important;
  }

  .archive-card .small-link{
    padding-top:24px;
  }
}

/*
 * Tablet und Mobil verwenden ebenfalls Flexbox, aber ohne Mindesthöhe.
 */
@media(max-width:1180px){

  .archive-card{
    display:flex !important;
    flex-direction:column !important;
    min-height:0 !important;
    height:auto !important;
    overflow:visible;
    padding:22px !important;
  }

  .archive-card .archive-type{
    margin:0 0 10px !important;
  }

  .archive-card h2{
    display:block !important;
    min-height:0 !important;
    height:auto !important;
    margin:0 0 10px !important;
  }

  .archive-card p{
    min-height:0 !important;
    height:auto !important;
    margin:0 !important;
  }

  .archive-card .small-link{
    margin-top:18px !important;
    padding-top:0;
  }
}


/* =========================================================
   v34 – Kontaktseite
   ========================================================= */

.contact-v34{
  display:grid;
  grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);
  gap:20px;
  height:100%;
  min-height:0;
}

.contact-directory,
.contact-form-card{
  min-height:0;
  padding:24px;
  overflow:hidden;
}

.contact-directory{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:18px;
}

.contact-form-card{
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  align-content:start;
  gap:12px;
}

.contact-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:22px;
}

.contact-section-head h2{
  margin:4px 0 0;
  font-family:Georgia,serif;
  font-size:29px;
  line-height:1.05;
  font-weight:500;
}

.contact-section-head > p{
  max-width:310px;
  margin:2px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
  text-align:right;
}

.contact-card-grid{
  min-height:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
  gap:10px;
}

.contact-mini-card{
  min-width:0;
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  gap:12px;
  align-content:start;
  padding:15px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fbf9f4;
}

.contact-icon{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:1px solid #d9cfbf;
  border-radius:50%;
  color:var(--green);
  background:#fff;
  font-family:Georgia,serif;
  font-size:17px;
}

.contact-label{
  display:block;
  margin-bottom:3px;
  color:var(--gold);
  font-size:9px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}

.contact-mini-card h3{
  margin:0 0 6px;
  color:var(--ink);
  font-size:13px;
  line-height:1.2;
}

.contact-mini-card p{
  margin:2px 0;
  color:var(--muted);
  font-size:10px;
  line-height:1.35;
}

.contact-links{
  display:grid;
  gap:3px;
  margin-top:7px;
  font-size:9.7px;
  line-height:1.35;
}

.contact-links a{
  color:var(--green);
  text-decoration:underline;
  text-decoration-color:rgba(195,136,42,.65);
  text-underline-offset:2px;
  overflow-wrap:anywhere;
}

.contact-links span{
  color:var(--muted);
}

.contact-links--compact{
  gap:2px;
}

.contact-form-head{
  padding-bottom:2px;
}

.contact-form-grid{
  min-height:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px 11px;
  align-content:start;
}

.contact-form-grid .field{
  display:grid;
  align-content:start;
  gap:4px;
  min-width:0;
}

.contact-form-grid .field.full,
.contact-form-grid .full{
  grid-column:1 / -1;
}

.contact-form-grid .field label{
  color:var(--ink);
  font-size:9.5px;
  font-weight:800;
}

.field-optional{
  color:var(--muted);
  font-size:8.5px;
  font-weight:400;
}

.contact-form-grid input,
.contact-form-grid select,
.contact-form-grid textarea{
  width:100%;
  min-width:0;
  border:1px solid #d9d0c2;
  border-radius:7px;
  background:#fbfaf7;
  color:var(--ink);
  outline:none;
}

.contact-form-grid input,
.contact-form-grid select{
  height:38px;
  padding:7px 10px;
}

.contact-form-grid textarea{
  min-height:102px;
  max-height:145px;
  padding:9px 10px;
  resize:vertical;
}

.contact-form-grid input:focus,
.contact-form-grid select:focus,
.contact-form-grid textarea:focus{
  border-color:var(--green);
  box-shadow:0 0 0 3px rgba(18,63,56,.09);
  background:#fff;
}

.field-error{
  color:#a02d2d;
  font-size:8.7px;
  line-height:1.25;
}

.contact-privacy{
  display:grid;
  grid-template-columns:16px minmax(0,1fr);
  gap:8px;
  align-items:start;
  margin-top:2px;
  color:var(--muted);
  font-size:9px;
  line-height:1.35;
}

.contact-privacy input{
  width:15px;
  height:15px;
  margin:1px 0 0;
}

.contact-privacy a{
  color:var(--green);
  text-decoration:underline;
  text-underline-offset:2px;
}

.contact-form-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:2px;
}

.contact-form-footer p{
  max-width:430px;
  margin:0;
  color:var(--muted);
  font-size:8.7px;
  line-height:1.3;
}

.contact-form-footer .send{
  flex:0 0 auto;
  min-height:38px;
  cursor:pointer;
}

.contact-form-footer .send:disabled{
  opacity:.45;
  cursor:not-allowed;
}

.contact-status{
  display:grid;
  gap:2px;
  padding:9px 11px;
  border-radius:8px;
  font-size:9.5px;
  line-height:1.35;
}

.contact-status strong{
  color:inherit;
}

.contact-status span{
  color:inherit;
  opacity:.88;
}

.contact-status--success{
  color:#285f3d;
  border:1px solid #b9d9c4;
  background:#edf7f0;
}

.contact-status--error{
  color:#812c2c;
  border:1px solid #e4b8b8;
  background:#fff1f1;
}

.contact-status--config{
  color:#735900;
  border:1px solid #ead59a;
  background:#fff8e3;
}

.contact-honeypot{
  position:absolute !important;
  left:-10000px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}

@media(min-width:1181px){
  .contact-subpage{
    overflow:hidden;
  }

  .contact-subpage .page-grid{
    grid-template-rows:auto minmax(0,1fr);
  }

  .contact-v34{
    max-height:100%;
  }
}

/* Lower desktop windows: slightly denser without clipping. */
@media(min-width:1181px) and (max-height:840px){
  .contact-directory,
  .contact-form-card{
    padding:18px;
  }

  .contact-section-head{
    gap:14px;
  }

  .contact-section-head h2{
    font-size:25px;
  }

  .contact-card-grid{
    gap:8px;
  }

  .contact-mini-card{
    padding:11px;
    grid-template-columns:30px minmax(0,1fr);
    gap:9px;
  }

  .contact-icon{
    width:30px;
    height:30px;
    font-size:14px;
  }

  .contact-mini-card h3{
    font-size:12px;
  }

  .contact-mini-card p,
  .contact-links{
    font-size:8.9px;
  }

  .contact-form-grid{
    gap:7px 10px;
  }

  .contact-form-grid input,
  .contact-form-grid select{
    height:34px;
  }

  .contact-form-grid textarea{
    min-height:78px;
    max-height:100px;
  }
}

@media(max-width:1180px){
  .contact-v34{
    grid-template-columns:1fr;
    height:auto;
  }

  .contact-directory,
  .contact-form-card{
    overflow:visible;
  }

  .contact-card-grid{
    grid-template-rows:auto;
  }
}

@media(max-width:700px){
  .contact-directory,
  .contact-form-card{
    padding:18px;
  }

  .contact-section-head{
    display:block;
  }

  .contact-section-head > p{
    margin-top:7px;
    max-width:none;
    text-align:left;
  }

  .contact-card-grid,
  .contact-form-grid{
    grid-template-columns:1fr;
  }

  .contact-form-grid .field.full,
  .contact-form-grid .full{
    grid-column:auto;
  }

  .contact-form-footer{
    align-items:stretch;
    flex-direction:column;
  }

  .contact-form-footer .send{
    width:100%;
  }
}


/* =========================================================
   v35 – Kontaktseite ruhiger und großzügiger
   ========================================================= */

.contact-v35-page .page-grid{
  min-height:0;
}

.contact-v35-shell{
  min-height:0;
  height:100%;
  display:grid;
  grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);
  overflow:hidden;
  padding:0;
}

.contact-v35-info,
.contact-v35-form{
  min-width:0;
  min-height:0;
  padding:clamp(24px,2vw,34px);
}

.contact-v35-info{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:20px;
  border-right:1px solid var(--line);
}

.contact-v35-form{
  display:grid;
  align-content:start;
  gap:16px;
  overflow-y:auto;
  scrollbar-gutter:stable;
}

.contact-v35-heading h2{
  margin:5px 0 8px;
  font-family:Georgia,serif;
  font-size:clamp(30px,2.2vw,38px);
  line-height:1.08;
  font-weight:500;
}

.contact-v35-heading > p{
  max-width:620px;
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}

.contact-v35-list{
  min-height:0;
  display:grid;
  align-content:start;
}

.contact-v35-item{
  padding:17px 0;
  border-top:1px solid var(--line);
}

.contact-v35-item:first-child{
  border-top:0;
  padding-top:4px;
}

.contact-v35-item:last-child{
  padding-bottom:0;
}

.contact-v35-item-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:18px;
  margin-bottom:7px;
}

.contact-v35-item h3{
  margin:0;
  color:var(--ink);
  font-size:17px;
  line-height:1.2;
}

.contact-v35-item-head > span{
  flex:0 0 auto;
  color:var(--gold);
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em;
}

.contact-v35-item p{
  margin:3px 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}

.contact-v35-item strong{
  color:var(--ink);
}

.contact-v35-item a{
  color:var(--green);
  text-decoration:underline;
  text-decoration-color:rgba(195,136,42,.65);
  text-underline-offset:2px;
  overflow-wrap:anywhere;
}

.contact-v35-lines{
  display:flex;
  flex-wrap:wrap;
  gap:5px 16px;
  margin-top:4px;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}

.contact-v35-form-heading{
  padding-bottom:2px;
}

.contact-v35-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px 14px;
  align-content:start;
}

.contact-v35-form-grid .field{
  display:grid;
  gap:5px;
  min-width:0;
}

.contact-v35-form-grid .full{
  grid-column:1 / -1;
}

.contact-v35-form-grid label{
  color:var(--ink);
  font-size:11px;
  font-weight:800;
}

.contact-v35-form-grid input,
.contact-v35-form-grid select,
.contact-v35-form-grid textarea{
  width:100%;
  min-width:0;
  border:1px solid #d7cfc1;
  border-radius:8px;
  background:#fbfaf7;
  color:var(--ink);
  outline:none;
  font-size:13px;
}

.contact-v35-form-grid input,
.contact-v35-form-grid select{
  height:44px;
  padding:9px 11px;
}

.contact-v35-form-grid textarea{
  min-height:124px;
  max-height:180px;
  padding:10px 11px;
  resize:vertical;
  line-height:1.45;
}

.contact-v35-form-grid input:focus,
.contact-v35-form-grid select:focus,
.contact-v35-form-grid textarea:focus{
  border-color:var(--green);
  box-shadow:0 0 0 3px rgba(18,63,56,.09);
  background:#fff;
}

.contact-v35-privacy{
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  gap:9px;
  align-items:start;
  color:var(--muted) !important;
  font-size:10.5px !important;
  line-height:1.45;
  font-weight:400 !important;
}

.contact-v35-privacy input{
  width:16px;
  height:16px;
  margin:2px 0 0;
}

.contact-v35-privacy a{
  color:var(--green);
  text-decoration:underline;
  text-underline-offset:2px;
}

.contact-v35-submit{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:2px;
}

.contact-v35-submit p{
  max-width:430px;
  margin:0;
  color:var(--muted);
  font-size:9.5px;
  line-height:1.35;
}

.contact-v35-submit .send{
  flex:0 0 auto;
  min-height:42px;
}

@media(min-width:1181px){
  .contact-v35-page{
    overflow:hidden !important;
  }

  .contact-v35-page .page-grid{
    grid-template-rows:auto minmax(0,1fr);
  }

  .contact-v35-shell{
    max-height:100%;
  }
}

/* Bei geringerer Höhe verkleinern wir Abstände, nicht die Schrift. */
@media(min-width:1181px) and (max-height:860px){
  .contact-v35-info,
  .contact-v35-form{
    padding:20px 24px;
  }

  .contact-v35-heading h2{
    font-size:30px;
  }

  .contact-v35-heading > p{
    font-size:12px;
  }

  .contact-v35-info{
    gap:12px;
  }

  .contact-v35-item{
    padding:11px 0;
  }

  .contact-v35-item h3{
    font-size:15px;
  }

  .contact-v35-item p,
  .contact-v35-lines{
    font-size:11.5px;
  }

  .contact-v35-form{
    gap:10px;
  }

  .contact-v35-form-grid{
    gap:9px 12px;
  }

  .contact-v35-form-grid input,
  .contact-v35-form-grid select{
    height:39px;
  }

  .contact-v35-form-grid textarea{
    min-height:88px;
    max-height:110px;
  }
}

@media(max-width:1180px){
  .contact-v35-shell{
    grid-template-columns:1fr;
    height:auto;
    overflow:visible;
  }

  .contact-v35-info{
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  .contact-v35-form{
    overflow:visible;
  }
}

@media(max-width:700px){
  .contact-v35-info,
  .contact-v35-form{
    padding:20px;
  }

  .contact-v35-form-grid{
    grid-template-columns:1fr;
  }

  .contact-v35-form-grid .full{
    grid-column:auto;
  }

  .contact-v35-item-head{
    display:block;
  }

  .contact-v35-item-head > span{
    display:block;
    margin-top:3px;
  }

  .contact-v35-submit{
    align-items:stretch;
    flex-direction:column;
  }

  .contact-v35-submit .send{
    width:100%;
  }
}


/* =========================================================
   v40 – Gemeindebrief-Archiv zuverlässig sichtbar
   ========================================================= */

.archive-panel-v40{
  min-height:0;
  height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  padding:22px;
  overflow:hidden !important;
}

.archive-head-v40{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding-bottom:16px;
  margin-bottom:14px;
  border-bottom:1px solid var(--line);
}

.archive-head-v40 h2{
  margin:3px 0 0;
  font-size:25px;
}

.brief-archive-list-v40{
  min-height:0;
  display:grid;
  align-content:start;
  gap:12px;
  overflow-y:auto;
  padding-right:4px;
  scrollbar-gutter:stable;
}

.brief-archive-entry-v40{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fbfaf7;
}

.brief-archive-cover-v40{
  display:block;
  width:92px;
  aspect-ratio:210 / 297;
  overflow:hidden;
  border:1px solid #ddd4c7;
  border-radius:6px;
  background:#fff;
  box-shadow:0 6px 16px rgba(15,45,39,.08);
}

.brief-archive-cover-v40 img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
}

.brief-archive-copy-v40{
  min-width:0;
}

.brief-archive-year-v40{
  margin-bottom:4px;
  color:var(--gold);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
}

.brief-archive-copy-v40 h3{
  margin:0;
  color:var(--ink);
  font-size:17px;
  line-height:1.2;
}

.brief-archive-copy-v40 p{
  margin:6px 0 0;
  color:var(--muted);
  font-size:11px;
}

.brief-archive-actions-v40{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:11px;
}

.brief-archive-actions-v40 .btn{
  min-height:34px;
  padding:7px 10px;
  font-size:10.5px;
}

@media(max-width:1180px){
  .archive-panel-v40{
    height:auto;
    overflow:visible !important;
  }

  .brief-archive-list-v40{
    overflow:visible;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:720px){
  .archive-panel-v40{
    padding:18px;
  }

  .brief-archive-list-v40{
    grid-template-columns:1fr;
  }

  .brief-archive-entry-v40{
    grid-template-columns:74px minmax(0,1fr);
  }

  .brief-archive-cover-v40{
    width:74px;
  }

  .brief-archive-actions-v40{
    flex-direction:column;
  }

  .brief-archive-actions-v40 .btn{
    width:100%;
  }
}


/* =========================================================
   v43 – vollständiger migrierte Inhaltsseiten
   ========================================================= */

.detail-intro-v43{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);
  gap:26px;
  align-items:start;
  margin-bottom:24px;
}

.detail-intro-v43 h2{
  margin:4px 0 10px;
  font-size:30px;
  line-height:1.15;
}

.detail-intro-v43 p{
  max-width:900px;
}

.detail-facts-v43{
  display:grid;
  gap:0;
  border:1px solid var(--line);
  border-radius:11px;
  overflow:hidden;
  background:#fbfaf7;
}

.detail-facts-v43 div{
  display:grid;
  gap:3px;
  padding:12px 14px;
  border-top:1px solid var(--line);
}

.detail-facts-v43 div:first-child{
  border-top:0;
}

.detail-facts-v43 span{
  color:var(--gold);
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.detail-facts-v43 strong{
  color:var(--ink);
  font-size:12.5px;
  line-height:1.35;
}

.detail-section-grid-v43{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.detail-section-v43{
  padding:20px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
}

.detail-section-v43 h2{
  margin:0 0 9px;
  font-size:21px;
}

.detail-section-v43 p{
  margin:7px 0;
}

.detail-contact-v43{
  display:grid;
  gap:4px;
  margin:10px 0 12px;
}

.detail-contact-v43 a{
  color:var(--green);
  text-decoration:underline;
  text-underline-offset:2px;
}

.music-service-grid-v43{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:26px;
}

.music-service-v43{
  padding:18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fbfaf7;
}

.music-service-v43 h2{
  margin:5px 0 8px;
  font-size:20px;
}

.music-service-v43 p{
  margin:0 0 10px;
}

.inline-links-v43{
  display:flex;
  flex-wrap:wrap;
  gap:7px 14px;
}

.inline-links-v43 a{
  color:var(--green);
  font-size:11px;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:2px;
}

.section-heading-v43{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  padding-top:4px;
  margin-bottom:12px;
}

.section-heading-v43 h2{
  margin:4px 0 0;
}

.section-heading-v43 > span{
  padding:5px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  font-size:10px;
}

.music-events-list-v43{
  display:grid;
  gap:8px;
}

.music-event-v43{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:13px 15px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fbfaf7;
}

.music-event-date-v43{
  display:grid;
  justify-items:center;
  color:var(--gold);
}

.music-event-date-v43 strong{
  font-size:22px;
  line-height:1;
}

.music-event-date-v43 span{
  margin-top:3px;
  font-size:9px;
  font-weight:700;
}

.music-event-copy-v43 h3{
  margin:3px 0 4px;
  font-size:16px;
}

.music-event-copy-v43 p{
  margin:0;
  font-size:11.5px;
}

.monthly-song-v43{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:20px;
  align-items:start;
  margin-top:20px;
  padding:18px;
  border-top:1px solid var(--line);
  background:#fbfaf7;
}

.monthly-song-v43 h2{
  margin:4px 0 0;
  font-size:20px;
}

.monthly-song-v43 p{
  margin:0;
}

.music-info-strip-v43{
  min-height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  margin-top:12px;
  padding:14px 18px;
  color:var(--ink);
}

.music-info-strip-v43 div{
  display:grid;
  gap:3px;
}

.music-info-strip-v43 strong{
  font-size:14px;
}

.music-info-strip-v43 div span,
.music-info-strip-v43 > span{
  font-size:10.5px;
}

.music-info-strip-v43 div span{
  color:var(--muted);
}

.music-info-strip-v43 > span{
  flex:0 0 auto;
  color:var(--green);
  font-weight:800;
}

/* Leitbild */
.historical-note-v43{
  display:grid;
  gap:5px;
  margin-bottom:22px;
  padding:13px 15px;
  border:1px solid #e6d39e;
  border-radius:9px;
  background:#fff9e7;
}

.historical-note-v43 strong{
  color:#745b00;
  font-size:11px;
}

.historical-note-v43 span{
  color:#6c6245;
  font-size:11px;
  line-height:1.45;
}

.leitbild-layout-v43{
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  gap:28px;
  align-items:start;
}

.leitbild-nav-v43{
  position:sticky;
  top:0;
  display:grid;
  gap:2px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fbfaf7;
}

.leitbild-nav-v43 strong{
  padding:4px 7px 8px;
  font-size:11px;
}

.leitbild-nav-v43 a{
  padding:7px;
  border-radius:6px;
  color:var(--muted);
  font-size:10.5px;
  line-height:1.25;
}

.leitbild-nav-v43 a:hover{
  color:var(--green);
  background:#f2efe7;
}

.leitbild-document-v43{
  min-width:0;
}

.leitbild-intro-v43{
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
}

.leitbild-intro-v43 h2{
  max-width:820px;
  margin:5px 0 12px;
  font-size:30px;
  line-height:1.15;
}

.leitbild-section-v43{
  position:relative;
  padding:26px 0;
  border-bottom:1px solid var(--line);
  scroll-margin-top:18px;
}

.leitbild-section-v43:last-child{
  border-bottom:0;
}

.leitbild-section-v43 h2{
  margin:0 0 11px;
  font-size:23px;
}

.leitbild-section-v43 p{
  max-width:980px;
  margin:8px 0;
  line-height:1.65;
}

.leitbild-number-v43{
  margin-bottom:7px;
  color:var(--gold);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}

.principles-grid-v43{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.principles-grid-v43 div{
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fbfaf7;
}

.principles-grid-v43 strong{
  font-size:12px;
}

.principles-grid-v43 span{
  color:var(--muted);
  font-size:11px;
  line-height:1.4;
}

.leitbild-closing-v43 blockquote{
  margin:18px 0;
  padding:16px 18px;
  border-left:3px solid var(--gold);
  background:#fbfaf7;
  color:var(--ink);
  font-size:15px;
  line-height:1.5;
}

.leitbild-closing-v43 blockquote span{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:10px;
}

.leitbild-signature-v43{
  font-size:11px !important;
  color:var(--muted) !important;
}

@media(max-width:1180px){
  .detail-intro-v43,
  .leitbild-layout-v43{
    grid-template-columns:1fr;
  }

  .detail-facts-v43{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .detail-facts-v43 div{
    border-top:1px solid var(--line);
  }

  .leitbild-nav-v43{
    position:static;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .leitbild-nav-v43 strong{
    grid-column:1/-1;
  }
}

@media(max-width:720px){
  .detail-section-grid-v43,
  .music-service-grid-v43,
  .principles-grid-v43{
    grid-template-columns:1fr;
  }

  .detail-facts-v43{
    grid-template-columns:1fr;
  }

  .music-event-v43{
    grid-template-columns:54px minmax(0,1fr);
  }

  .monthly-song-v43{
    grid-template-columns:1fr;
  }

  .music-info-strip-v43{
    align-items:flex-start;
    flex-direction:column;
  }

  .leitbild-nav-v43{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   v44 – Chorfoto und bereinigtes Leitbild
   ========================================================= */

.choir-photo-v44{
  width:100%;
  margin:0 0 24px;
  padding:0;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#f7f4ed;
}

.choir-photo-v44 img{
  display:block;
  width:100%;
  max-height:430px;
  object-fit:contain;
  object-position:center;
  background:#f7f4ed;
}

.leitbild-v43 .page-title{
  align-items:end;
}

@media(max-width:1180px){
  .choir-photo-v44 img{
    max-height:none;
  }
}


/* =========================================================
   v45 - Abendmusiken, neue Konfirmanden, Bewerbung
   ========================================================= */

.music-program-document-v45{
  display:grid;
  grid-template-columns:250px minmax(0,1fr);
  gap:28px;
  align-items:center;
  padding:4px 0 26px;
  border-bottom:1px solid var(--line);
}

.music-program-cover-v45{
  display:block;
  width:100%;
  max-width:250px;
  aspect-ratio:595 / 842;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  box-shadow:0 14px 30px rgba(15,45,39,.12);
}

.music-program-cover-v45 img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
}

.music-program-copy-v45{
  max-width:760px;
}

.music-program-copy-v45 h2{
  margin:5px 0 10px;
  font-size:34px;
  line-height:1.1;
}

.music-program-copy-v45 p{
  margin:0;
  max-width:690px;
}

.music-service-strip-v45{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:18px 0 26px;
}

.music-service-strip-v45 article{
  display:grid;
  align-content:start;
  gap:5px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fbfaf7;
}

.music-service-strip-v45 strong{
  color:var(--ink);
  font-size:12px;
}

.music-service-strip-v45 article > span{
  color:var(--muted);
  font-size:10.5px;
  line-height:1.4;
}

.music-program-footer-v45{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:20px;
  padding:18px 0 2px;
  border-top:1px solid var(--line);
}

.music-program-footer-v45 h2{
  margin:4px 0 6px;
  font-size:20px;
}

.music-program-footer-v45 p{
  margin:0;
  max-width:760px;
}

.music-no-events-v45{
  background:#fbfaf7;
}

/* Neue Konfirmanden */
.new-konfi-intro-v45{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:28px;
  align-items:start;
  margin-bottom:22px;
}

.new-konfi-intro-v45 h2{
  margin:5px 0 10px;
  font-size:32px;
  line-height:1.12;
}

.new-konfi-grid-v45,
.application-grid-v45{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.new-konfi-grid-v45 section,
.application-grid-v45 section{
  padding:18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fbfaf7;
}

.new-konfi-grid-v45 h2,
.application-grid-v45 h2{
  margin:5px 0 8px;
  font-size:19px;
}

.new-konfi-grid-v45 p,
.application-grid-v45 p{
  margin:0;
}

.new-konfi-contact-v45,
.application-contact-v45{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:16px;
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}

.new-konfi-contact-v45 > div:first-child,
.application-contact-v45 > div:first-child{
  display:grid;
  gap:3px;
}

.new-konfi-contact-v45 > div:last-child{
  display:grid;
  gap:4px;
  text-align:right;
}

.new-konfi-contact-v45 a,
.application-grid-v45 a{
  color:var(--green);
}

.konfi-actions-v45{
  margin-top:14px;
}

/* Bewerbung */
.application-intro-v45{
  max-width:900px;
  margin-bottom:20px;
}

.application-intro-v45 h2{
  margin:5px 0 10px;
  font-size:30px;
}

.music-info-strip-secondary-v45{
  margin-top:8px;
  background:#fbfaf7;
}

@media(max-width:1180px){
  .music-program-document-v45,
  .new-konfi-intro-v45{
    grid-template-columns:1fr;
  }

  .music-program-cover-v45{
    max-width:220px;
  }
}

@media(max-width:720px){
  .music-service-strip-v45,
  .new-konfi-grid-v45,
  .application-grid-v45{
    grid-template-columns:1fr;
  }

  .music-program-footer-v45,
  .new-konfi-contact-v45,
  .application-contact-v45{
    align-items:flex-start;
    flex-direction:column;
  }

  .new-konfi-contact-v45 > div:last-child{
    text-align:left;
  }

  .music-program-copy-v45 h2,
  .new-konfi-intro-v45 h2{
    font-size:26px;
  }
}


/* v46 – Musikprogramm ohne Meta-Chips */
.music-program-copy-v45 .brief-actions{
  margin-top:18px;
}


/* v47 – Neue Konfirmanden: Mobil- und WhatsApp-Kontakt */
.new-konfi-contact-v45 > div:last-child{
  gap:5px;
}

.new-konfi-contact-v45 > div:last-child a{
  color:var(--green);
  text-decoration:underline;
  text-decoration-color:rgba(195,136,42,.55);
  text-underline-offset:2px;
}


/* =========================================================
   v49 – Offene Kirche
   ========================================================= */

.open-church-scroll-v49{
  display:grid;
  align-content:start;
  gap:22px;
}

.open-church-intro-v49{
  display:grid;
  grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);
  gap:28px;
  align-items:center;
}

.open-church-photo-v49{
  min-height:280px;
  height:100%;
  overflow:hidden;
  border-radius:12px;
  background:#eae7de;
}

.open-church-photo-v49 img{
  display:block;
  width:100%;
  height:100%;
  min-height:280px;
  object-fit:cover;
  object-position:center;
}

.open-church-welcome-v49 h2{
  margin:5px 0 12px;
  font-size:32px;
  line-height:1.1;
}

.open-church-welcome-v49 p{
  max-width:760px;
  margin:8px 0;
}

.open-church-times-v49{
  padding:18px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fbfaf7;
}

.open-church-section-head-v49{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:13px;
}

.open-church-section-head-v49 h2{
  margin:4px 0 0;
  font-size:22px;
}

.open-church-section-head-v49 > span{
  padding:5px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  background:#fff;
  font-size:10px;
}

.open-church-slot-grid-v49{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}

.open-church-slot-v49{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:11px;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
}

.open-church-slot-date-v49{
  display:grid;
  justify-items:center;
  padding-right:10px;
  border-right:1px solid var(--line);
  color:var(--gold);
}

.open-church-slot-date-v49 strong{
  font-size:19px;
  line-height:1;
}

.open-church-slot-date-v49 span{
  margin-top:3px;
  font-size:9px;
  font-weight:800;
}

.open-church-slot-v49 > div:last-child{
  display:grid;
  gap:3px;
}

.open-church-slot-v49 > div:last-child strong{
  color:var(--ink);
  font-size:10.5px;
}

.open-church-slot-v49 > div:last-child span{
  color:var(--muted);
  font-size:11px;
}

.open-church-no-slots-v49{
  display:grid;
  gap:4px;
  padding:16px;
  border:1px dashed var(--line);
  border-radius:9px;
  color:var(--muted);
}

.open-church-no-slots-v49 strong{
  color:var(--ink);
}

.open-church-info-grid-v49{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.open-church-info-grid-v49 section{
  padding:18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}

.open-church-info-grid-v49 h2{
  margin:5px 0 8px;
  font-size:20px;
}

.open-church-info-grid-v49 p{
  margin:6px 0;
}

.news-thumb.open-church{
  background:#edf2ed;
  color:var(--green);
  font-size:24px;
}

@media(max-width:1180px){
  .open-church-intro-v49{
    grid-template-columns:1fr;
  }

  .open-church-photo-v49{
    max-height:360px;
  }

  .open-church-slot-grid-v49{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:720px){
  .open-church-slot-grid-v49,
  .open-church-info-grid-v49{
    grid-template-columns:1fr;
  }

  .open-church-photo-v49,
  .open-church-photo-v49 img{
    min-height:220px;
  }

  .open-church-welcome-v49 h2{
    font-size:26px;
  }
}


/* =========================================================
   v50 – Taufgedenken
   ========================================================= */

.baptism-memorial-scroll-v50{
  display:grid;
  align-content:start;
  gap:22px;
}

.baptism-memorial-hero-v50{
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
  gap:30px;
  align-items:center;
}

.baptism-memorial-main-image-v50{
  margin:0;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#f7f4ed;
  box-shadow:0 14px 30px rgba(15,45,39,.10);
}

.baptism-memorial-main-image-v50 img{
  display:block;
  width:100%;
  max-height:570px;
  object-fit:contain;
  background:#f7f4ed;
}

.baptism-memorial-intro-v50 h2{
  margin:5px 0 12px;
  max-width:760px;
  font-size:32px;
  line-height:1.1;
}

.baptism-memorial-intro-v50 p{
  max-width:820px;
  margin:8px 0;
}

.baptism-memorial-facts-v50{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  margin:18px 0 0;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.baptism-memorial-facts-v50 > div{
  display:grid;
  gap:3px;
  padding:11px 13px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fbfaf7;
}

.baptism-memorial-facts-v50 dt{
  color:var(--gold);
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.baptism-memorial-facts-v50 dd{
  margin:0;
  color:var(--ink);
  font-size:12px;
  font-weight:700;
}

.baptism-memorial-grid-v50{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.baptism-memorial-card-v50{
  padding:18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fbfaf7;
}

.baptism-memorial-card-v50 h2{
  margin:5px 0 9px;
  font-size:20px;
}

.baptism-memorial-card-v50 p{
  margin:7px 0;
}

.baptism-memorial-inscriptions-v50{
  padding:20px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
}

.baptism-memorial-section-head-v50{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:22px;
  margin-bottom:16px;
}

.baptism-memorial-section-head-v50 h2{
  margin:4px 0 0;
  font-size:22px;
}

.baptism-memorial-section-head-v50 > p{
  max-width:520px;
  margin:0;
  color:var(--muted);
  font-size:11px;
  text-align:right;
}

.baptism-memorial-detail-images-v50{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.baptism-memorial-detail-images-v50 figure{
  margin:0;
  display:grid;
  grid-template-columns:minmax(160px,.58fr) minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:12px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fbfaf7;
}

.baptism-memorial-detail-images-v50 img{
  display:block;
  width:100%;
  border-radius:6px;
  background:#fff;
}

.baptism-memorial-detail-images-v50 figcaption{
  display:grid;
  gap:5px;
}

.baptism-memorial-detail-images-v50 figcaption strong{
  color:var(--ink);
  font-size:13px;
}

.baptism-memorial-detail-images-v50 figcaption span{
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}

.baptism-memorial-meaning-v50{
  padding:20px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.baptism-memorial-meaning-v50 > h2{
  margin:5px 0 16px;
  font-size:24px;
}

.baptism-memorial-meaning-grid-v50{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}

.baptism-memorial-meaning-grid-v50 > div{
  padding:14px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fbfaf7;
}

.baptism-memorial-meaning-grid-v50 h3{
  margin:0 0 6px;
  font-size:13px;
}

.baptism-memorial-meaning-grid-v50 p{
  margin:0;
  font-size:10.5px;
  line-height:1.5;
}

.baptism-memorial-closing-v50{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);
  gap:24px;
  align-items:start;
}

.baptism-memorial-closing-v50 h2{
  margin:5px 0 10px;
  font-size:23px;
}

.baptism-memorial-closing-v50 p{
  margin:7px 0;
}

.baptism-memorial-source-v50{
  margin-top:14px !important;
  color:var(--muted);
  font-size:10.5px;
  font-style:italic;
}

.baptism-memorial-contact-v50{
  padding:17px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fbfaf7;
}

.baptism-memorial-contact-v50 h2{
  font-size:20px;
}

.baptism-memorial-contact-v50 .btn{
  margin-top:8px;
}

@media(max-width:1180px){
  .baptism-memorial-hero-v50,
  .baptism-memorial-closing-v50{
    grid-template-columns:1fr;
  }

  .baptism-memorial-main-image-v50{
    max-width:520px;
  }

  .baptism-memorial-meaning-grid-v50{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:820px){
  .baptism-memorial-grid-v50,
  .baptism-memorial-detail-images-v50{
    grid-template-columns:1fr;
  }

  .baptism-memorial-section-head-v50{
    align-items:start;
    flex-direction:column;
  }

  .baptism-memorial-section-head-v50 > p{
    text-align:left;
  }
}

@media(max-width:620px){
  .baptism-memorial-facts-v50,
  .baptism-memorial-meaning-grid-v50{
    grid-template-columns:1fr;
  }

  .baptism-memorial-detail-images-v50 figure{
    grid-template-columns:1fr;
  }

  .baptism-memorial-main-image-v50 img{
    max-height:none;
  }

  .baptism-memorial-intro-v50 h2{
    font-size:26px;
  }
}


/* =========================================================
   v51 – ausführliche Kirchenporträts
   ========================================================= */

.church-detail-scroll-v51{
  display:grid;
  align-content:start;
  gap:22px;
}

.church-detail-hero-v51{
  display:grid;
  grid-template-columns:minmax(340px,.9fr) minmax(0,1.1fr);
  gap:30px;
  align-items:center;
}

.church-detail-image-v51{
  margin:0;
  min-height:330px;
  height:100%;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f3efe6;
  box-shadow:0 14px 30px rgba(15,45,39,.10);
}

.church-detail-image-v51 img{
  display:block;
  width:100%;
  height:100%;
  min-height:330px;
  max-height:500px;
  object-fit:cover;
  object-position:center;
}

.church-detail-intro-v51 h2{
  max-width:790px;
  margin:5px 0 12px;
  font-size:32px;
  line-height:1.1;
}

.church-detail-intro-v51 p{
  max-width:800px;
  margin:8px 0;
}

.church-facts-v51{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  margin:18px 0;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.church-facts-v51 > div{
  display:grid;
  gap:3px;
  padding:11px 12px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fbfaf7;
}

.church-facts-v51 dt{
  color:var(--gold);
  font-size:8.5px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.church-facts-v51 dd{
  margin:0;
  color:var(--ink);
  font-size:11.5px;
  font-weight:700;
  line-height:1.3;
}

.church-section-head-v51{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:13px;
}

.church-section-head-v51 h2{
  margin:4px 0 0;
  font-size:23px;
}

.church-history-v51{
  padding-top:4px;
}

.church-timeline-v51{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}

.church-timeline-v51 article{
  padding:15px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fbfaf7;
}

.church-timeline-v51 article > strong{
  display:block;
  margin-bottom:6px;
  color:var(--gold);
  font-size:10px;
  letter-spacing:.05em;
}

.church-timeline-v51 h3{
  margin:0 0 7px;
  font-size:14px;
}

.church-timeline-v51 p{
  margin:0;
  font-size:10.5px;
  line-height:1.5;
}

.church-detail-grid-v51{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.church-card-v51{
  padding:18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}

.church-card-v51 h2{
  margin:5px 0 9px;
  font-size:20px;
}

.church-card-v51 p{
  margin:7px 0;
}

.church-music-history-v51{
  padding:18px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fbfaf7;
}

.church-music-grid-v51{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.church-music-grid-v51 article{
  padding:15px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
}

.church-music-grid-v51 h3{
  margin:0 0 8px;
  font-size:17px;
}

.church-music-grid-v51 p{
  margin:7px 0;
}

.church-stolpe-specials-v51{
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:22px;
  align-items:center;
  padding:18px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.church-stolpe-specials-v51 h2{
  margin:5px 0 8px;
  font-size:22px;
}

.church-stolpe-specials-v51 p{
  margin:0;
}

.church-special-links-v51{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.church-special-links-v51 a{
  display:grid;
  gap:5px;
  padding:16px;
  color:var(--ink);
}

.church-special-links-v51 strong{
  font-size:14px;
}

.church-special-links-v51 span{
  color:var(--muted);
  font-size:10.5px;
  line-height:1.4;
}

.church-detail-footer-v51{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);
  gap:26px;
  align-items:start;
  padding:18px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
}

.church-detail-footer-v51 h2{
  margin:5px 0 8px;
  font-size:22px;
}

.church-detail-footer-v51 p{
  margin:0;
  max-width:800px;
}

.church-link-stack-v51{
  display:grid;
  gap:0;
  border-top:1px solid var(--line);
}

.church-link-stack-v51 a{
  padding:9px 2px;
  border-bottom:1px solid var(--line);
  color:var(--green);
  font-size:11px;
  font-weight:800;
}

@media(max-width:1180px){
  .church-detail-hero-v51{
    grid-template-columns:1fr;
  }

  .church-detail-image-v51{
    max-height:380px;
  }

  .church-facts-v51{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .church-timeline-v51{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .church-stolpe-specials-v51,
  .church-detail-footer-v51{
    grid-template-columns:1fr;
  }
}

@media(max-width:720px){
  .church-detail-grid-v51,
  .church-music-grid-v51,
  .church-special-links-v51,
  .church-timeline-v51,
  .church-facts-v51{
    grid-template-columns:1fr;
  }

  .church-detail-image-v51,
  .church-detail-image-v51 img{
    min-height:240px;
    max-height:none;
  }

  .church-detail-intro-v51 h2{
    font-size:26px;
  }
}


/* =========================================================
   v52 – 360°-Panoramen & Bildergalerien der Kirchen
   ========================================================= */

.church-panorama-v52{
  display:grid;
  grid-template-columns:minmax(360px,1.15fr) minmax(0,.85fr);
  gap:24px;
  align-items:center;
  padding:18px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fbfaf7;
}

.church-panorama-preview-v52{
  position:relative;
  display:block;
  height:220px;
  overflow:hidden;
  border-radius:9px;
  background:#192823;
  color:#fff;
}

.church-panorama-preview-v52::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.34));
  pointer-events:none;
}

.church-panorama-preview-v52 img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.church-panorama-badge-v52{
  position:absolute;
  z-index:2;
  top:14px;
  left:14px;
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:50%;
  background:rgba(5,53,45,.72);
  color:#fff;
  font-size:12px;
  font-weight:900;
  backdrop-filter:blur(6px);
}

.church-panorama-open-v52{
  position:absolute;
  z-index:2;
  right:15px;
  bottom:13px;
  color:#fff;
  font-size:11px;
  font-weight:800;
}

.church-panorama-copy-v52 h2{
  margin:5px 0 9px;
  font-size:22px;
}

.church-panorama-copy-v52 p{
  margin:0 0 14px;
  max-width:620px;
}

.church-gallery-v52{
  padding:20px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
}

.church-gallery-head-v52{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:22px;
  padding-bottom:15px;
  border-bottom:1px solid var(--line);
}

.church-gallery-head-v52 h2{
  margin:4px 0 6px;
  font-size:24px;
}

.church-gallery-head-v52 p{
  margin:0;
  max-width:780px;
}

.church-gallery-head-v52 > span{
  flex:0 0 auto;
  padding:5px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  background:#fbfaf7;
  font-size:10px;
}

.church-gallery-groups-v52{
  display:grid;
  gap:24px;
  padding-top:18px;
}

.church-gallery-group-head-v52{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:10px;
}

.church-gallery-group-head-v52 h3{
  margin:0;
  color:var(--ink);
  font-size:16px;
}

.church-gallery-group-head-v52 p{
  margin:0;
  max-width:620px;
  color:var(--muted);
  font-size:10.5px;
  text-align:right;
}

.church-gallery-grid-v52{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
}

.church-gallery-item-v52{
  min-width:0;
  display:grid;
  grid-template-rows:150px auto;
  gap:7px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fbfaf7;
  color:var(--ink);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.church-gallery-item-v52:hover,
.church-gallery-item-v52:focus-visible{
  transform:translateY(-2px);
  border-color:#c9b88d;
  box-shadow:0 9px 18px rgba(15,45,39,.09);
  outline:none;
}

.church-gallery-image-v52{
  position:relative;
  display:grid;
  place-items:center;
  min-width:0;
  height:150px;
  overflow:hidden;
  border-radius:6px;
  background:#eeeae1;
}

.church-gallery-image-v52 img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.church-gallery-zoom-v52{
  position:absolute;
  right:7px;
  bottom:7px;
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:50%;
  background:rgba(4,55,47,.82);
  color:#fff;
  font-size:12px;
  opacity:0;
  transform:translateY(3px);
  transition:opacity .15s ease, transform .15s ease;
}

.church-gallery-item-v52:hover .church-gallery-zoom-v52,
.church-gallery-item-v52:focus-visible .church-gallery-zoom-v52{
  opacity:1;
  transform:none;
}

.church-gallery-caption-v52{
  min-width:0;
  color:var(--ink);
  font-size:10.5px;
  font-weight:700;
  line-height:1.3;
}

html.gallery-open{
  overflow:hidden;
}

.church-lightbox-v52{
  width:100vw;
  max-width:none;
  height:100dvh;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  background:rgba(8,17,14,.92);
  color:#fff;
}

.church-lightbox-v52::backdrop{
  background:rgba(8,17,14,.92);
}

.church-lightbox-inner-v52{
  position:relative;
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  padding:54px 76px 62px;
}

.church-lightbox-figure-v52{
  width:min(1200px,calc(100vw - 170px));
  height:calc(100dvh - 125px);
  margin:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  place-items:center;
  gap:12px;
}

.church-lightbox-figure-v52 img{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  box-shadow:0 18px 55px rgba(0,0,0,.35);
}

.church-lightbox-figure-v52 figcaption{
  max-width:900px;
  color:#fff;
  font-size:12px;
  font-weight:700;
  text-align:center;
}

.church-lightbox-close-v52,
.church-lightbox-nav-v52{
  position:absolute;
  z-index:3;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.4);
  background:rgba(0,0,0,.26);
  color:#fff;
  cursor:pointer;
  backdrop-filter:blur(5px);
}

.church-lightbox-close-v52:hover,
.church-lightbox-nav-v52:hover,
.church-lightbox-close-v52:focus-visible,
.church-lightbox-nav-v52:focus-visible{
  background:rgba(255,255,255,.15);
  outline:none;
}

.church-lightbox-close-v52{
  top:16px;
  right:18px;
  width:40px;
  height:40px;
  border-radius:50%;
  font-size:25px;
}

.church-lightbox-nav-v52{
  top:50%;
  width:46px;
  height:62px;
  transform:translateY(-50%);
  border-radius:9px;
  font-size:36px;
}

.church-lightbox-prev-v52{
  left:18px;
}

.church-lightbox-next-v52{
  right:18px;
}

.church-lightbox-counter-v52{
  position:absolute;
  bottom:18px;
  left:50%;
  transform:translateX(-50%);
  color:rgba(255,255,255,.78);
  font-size:10px;
  font-weight:700;
}

@media(max-width:1180px){
  .church-panorama-v52{
    grid-template-columns:1fr;
  }

  .church-gallery-grid-v52{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:820px){
  .church-gallery-grid-v52{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .church-gallery-group-head-v52{
    align-items:start;
    flex-direction:column;
    gap:4px;
  }

  .church-gallery-group-head-v52 p{
    text-align:left;
  }

  .church-lightbox-inner-v52{
    padding:50px 48px 58px;
  }

  .church-lightbox-figure-v52{
    width:calc(100vw - 106px);
  }
}

@media(max-width:560px){
  .church-panorama-v52{
    padding:12px;
  }

  .church-panorama-preview-v52{
    height:180px;
  }

  .church-gallery-v52{
    padding:14px;
  }

  .church-gallery-head-v52{
    align-items:start;
    flex-direction:column;
  }

  .church-gallery-grid-v52{
    grid-template-columns:1fr 1fr;
    gap:7px;
  }

  .church-gallery-item-v52{
    grid-template-rows:118px auto;
    padding:6px;
  }

  .church-gallery-image-v52{
    height:118px;
  }

  .church-gallery-caption-v52{
    font-size:9.5px;
  }

  .church-lightbox-inner-v52{
    padding:48px 12px 56px;
  }

  .church-lightbox-figure-v52{
    width:100%;
    height:calc(100dvh - 110px);
  }

  .church-lightbox-nav-v52{
    top:auto;
    bottom:14px;
    width:42px;
    height:38px;
    transform:none;
    font-size:28px;
  }

  .church-lightbox-prev-v52{
    left:12px;
  }

  .church-lightbox-next-v52{
    right:12px;
  }
}


/* =========================================================
   v53 – Bildnachweise / CC-Lizenzen
   ========================================================= */

.church-gallery-item-v52{
  grid-template-rows:auto auto auto;
  align-content:start;
}

.church-gallery-open-v53{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  cursor:pointer;
  text-align:left;
}

.church-gallery-open-v53:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
  border-radius:7px;
}

.church-gallery-credit-v53{
  display:block;
  color:var(--muted);
  font-size:8.7px;
  line-height:1.38;
}

.church-gallery-credit-v53 a{
  color:var(--green);
  text-decoration:underline;
  text-decoration-color:rgba(195,136,42,.5);
  text-underline-offset:2px;
}

.church-lightbox-caption-v53{
  display:grid;
  gap:4px;
  justify-items:center;
}

.church-lightbox-caption-v53 > strong{
  color:#fff;
  font-size:12px;
}

.church-lightbox-credit-v53{
  color:rgba(255,255,255,.72);
  font-size:9.5px;
  font-weight:400;
  line-height:1.4;
  text-align:center;
}

.church-lightbox-credit-v53 a{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:2px;
}

@media(max-width:560px){
  .church-gallery-credit-v53{
    font-size:8px;
  }

  .church-lightbox-credit-v53{
    max-width:94vw;
    font-size:8.5px;
  }
}




/* =========================================================
   v55 – Google Maps / Anfahrt
   ========================================================= */

.church-feature .white-chip{
  margin-bottom:6px;
}

.church-map-v55{
  scroll-margin-top:96px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
}

.church-map-head-v55{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:14px;
}

.church-map-head-v55 h2{
  margin:4px 0 5px;
  font-size:23px;
}

.church-map-head-v55 p{
  margin:0;
  color:var(--muted);
}

.church-map-actions-v55{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.church-map-canvas-v55{
  position:relative;
  min-height:330px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:10px;
  background:
    linear-gradient(135deg,rgba(5,67,57,.06),rgba(195,136,42,.07)),
    #f7f4ed;
}

.church-map-frame-v55{
  display:block;
  width:100%;
  height:330px;
  border:0;
  background:#f7f4ed;
}

.church-map-gate-v55{
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:24px;
  background:
    radial-gradient(circle at 15% 50%,rgba(5,67,57,.08),transparent 30%),
    #f7f4ed;
}

.church-map-gate-v55[hidden]{
  display:none;
}

.church-map-gate-icon-v55{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border:1px solid var(--line);
  border-radius:50%;
  background:#fff;
  color:var(--green);
  font-size:26px;
}

.church-map-gate-v55 strong{
  display:block;
  margin-bottom:5px;
  color:var(--ink);
  font-size:14px;
}

.church-map-gate-v55 p{
  max-width:690px;
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
}

.church-map-gate-actions-v55{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:190px;
}

.church-map-privacy-v55{
  margin:9px 0 0;
  color:var(--muted);
  font-size:9.5px;
  line-height:1.45;
}

@media(max-width:920px){
  .church-map-head-v55{
    align-items:flex-start;
    flex-direction:column;
  }

  .church-map-actions-v55{
    justify-content:flex-start;
  }

  .church-map-gate-v55{
    grid-template-columns:auto minmax(0,1fr);
  }

  .church-map-gate-actions-v55{
    grid-column:1/-1;
    flex-direction:row;
    flex-wrap:wrap;
    min-width:0;
  }
}

@media(max-width:620px){
  .church-map-v55{
    padding:12px;
  }

  .church-map-canvas-v55{
    min-height:390px;
  }

  .church-map-frame-v55{
    height:390px;
  }

  .church-map-gate-v55{
    align-content:center;
    grid-template-columns:1fr;
    gap:12px;
    padding:18px;
  }

  .church-map-gate-icon-v55{
    width:48px;
    height:48px;
  }

  .church-map-gate-actions-v55{
    grid-column:auto;
    flex-direction:column;
  }

  .church-map-gate-actions-v55 .btn,
  .church-map-actions-v55 .btn{
    width:100%;
    text-align:center;
  }
}


/* =========================================================
   v57 – Gemeindekirchenrat
   ========================================================= */

.page-title-inline-link-v57{
  margin-left:10px;
  color:var(--green);
  font-weight:800;
  white-space:nowrap;
}

.gkr-scroll-v57{
  display:grid;
  align-content:start;
  gap:20px;
}

.gkr-hero-v57{
  display:grid;
  grid-template-columns:minmax(520px,1.2fr) minmax(0,.8fr);
  gap:28px;
  align-items:center;
}

.gkr-photo-v57{
  margin:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f7f4ed;
  box-shadow:0 14px 30px rgba(15,45,39,.09);
}

.gkr-photo-v57 img{
  display:block;
  width:100%;
  max-height:430px;
  object-fit:contain;
  background:#f7f4ed;
}

.gkr-photo-v57 figcaption{
  display:grid;
  gap:4px;
  padding:11px 13px 12px;
  border-top:1px solid var(--line);
  background:#fff;
}

.gkr-photo-v57 figcaption strong{
  color:var(--ink);
  font-size:11px;
}

.gkr-photo-v57 figcaption span{
  color:var(--muted);
  font-size:9.5px;
  line-height:1.45;
}

.gkr-intro-v57 h2{
  margin:5px 0 10px;
  max-width:700px;
  font-size:30px;
  line-height:1.1;
}

.gkr-intro-v57 p{
  max-width:760px;
  margin:8px 0;
}

.gkr-keyfacts-v57{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:17px;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.gkr-keyfacts-v57 > div{
  display:grid;
  gap:3px;
  padding:10px 12px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fbfaf7;
}

.gkr-keyfacts-v57 span{
  color:var(--gold);
  font-size:8.5px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.gkr-keyfacts-v57 strong{
  color:var(--ink);
  font-size:11.5px;
}

.gkr-info-grid-v57{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.gkr-card-v57{
  padding:18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fbfaf7;
}

.gkr-card-v57 h2{
  margin:5px 0 8px;
  font-size:20px;
}

.gkr-card-v57 p{
  margin:7px 0;
}

.gkr-list-v57{
  margin:12px 0 0;
  padding-left:19px;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
}

.gkr-list-v57 li + li{
  margin-top:4px;
}

.gkr-meeting-highlight-v57{
  display:grid;
  gap:4px;
  margin:12px 0 !important;
  padding:13px 14px;
  border-left:3px solid var(--gold);
  background:#fff;
}

.gkr-meeting-highlight-v57 strong{
  color:var(--ink);
  font-size:14px;
}

.gkr-meeting-highlight-v57 span{
  color:var(--muted);
  font-size:10.5px;
}

.gkr-members-v57{
  padding:18px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
}

.gkr-members-head-v57{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:13px;
}

.gkr-members-head-v57 h2{
  margin:4px 0 0;
  font-size:22px;
}

.gkr-members-head-v57 > span{
  padding:5px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  background:#fbfaf7;
  font-size:9.5px;
}

.gkr-members-grid-v57{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}

.gkr-members-grid-v57 > span{
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fbfaf7;
  color:var(--ink);
  font-size:10.5px;
  line-height:1.35;
}

@media(max-width:1180px){
  .gkr-hero-v57{
    grid-template-columns:1fr;
  }

  .gkr-photo-v57 img{
    max-height:none;
  }

  .gkr-members-grid-v57{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:720px){
  .page-title-inline-link-v57{
    display:block;
    margin:6px 0 0;
  }

  .gkr-info-grid-v57,
  .gkr-keyfacts-v57,
  .gkr-members-grid-v57{
    grid-template-columns:1fr;
  }

  .gkr-intro-v57 h2{
    font-size:25px;
  }

  .gkr-members-head-v57{
    align-items:start;
    flex-direction:column;
  }
}


/* =========================================================
   v58 – GKR-Zusammensetzung nach Funktion und Wahlergebnis
   ========================================================= */

.gkr-members-v58{
  padding:18px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
}

.gkr-members-section-v58 + .gkr-members-section-v58{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--line);
}

.gkr-members-section-head-v58{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:9px;
}

.gkr-members-section-head-v58 h3{
  margin:0;
  color:var(--ink);
  font-size:17px;
}

.gkr-members-section-head-v58 p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:9.5px;
}

.gkr-member-table-v58{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
}

.gkr-member-row-v58{
  display:grid;
  grid-template-columns:62px minmax(0,1fr) 160px;
  align-items:center;
  min-height:42px;
}

.gkr-member-row-v58 + .gkr-member-row-v58{
  border-top:1px solid var(--line);
}

.gkr-member-row-v58 > span{
  min-width:0;
  padding:9px 12px;
  color:var(--ink);
  font-size:10.8px;
}

.gkr-member-row-v58 > span:first-child{
  color:var(--gold);
  font-weight:900;
  text-align:center;
}

.gkr-member-row-v58 > span:last-child{
  color:var(--muted);
  font-weight:800;
  text-align:right;
}

.gkr-member-row-v58 small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:8.8px;
  font-weight:400;
}

.gkr-member-header-v58{
  min-height:32px;
  background:#f7f4ed;
}

.gkr-member-header-v58 > span{
  color:var(--muted) !important;
  font-size:8px;
  font-weight:900 !important;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.gkr-member-chair-v58{
  background:rgba(5,67,57,.045);
}

.gkr-member-chair-v58 > span:nth-child(2){
  color:var(--green);
}

.gkr-status-pill-v58{
  display:inline-block;
  padding:4px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fbfaf7;
  color:var(--green);
  font-size:8.5px;
  font-weight:800;
}

@media(max-width:720px){
  .gkr-members-v58{
    padding:12px;
  }

  .gkr-member-row-v58{
    grid-template-columns:42px minmax(0,1fr) 102px;
  }

  .gkr-member-row-v58 > span{
    padding:8px;
    font-size:9.7px;
  }

  .gkr-member-header-v58 > span{
    font-size:7px;
  }

  .gkr-members-section-head-v58{
    align-items:start;
    flex-direction:column;
  }
}

@media(max-width:480px){
  .gkr-member-row-v58{
    grid-template-columns:34px minmax(0,1fr);
  }

  .gkr-member-row-v58 > span:last-child{
    grid-column:2;
    padding-top:0;
    text-align:left;
  }

  .gkr-member-header-v58 > span:last-child{
    display:none;
  }
}


/* v59 – Funktionen statt Wahlergebnis auf der öffentlichen GKR-Seite */
.gkr-member-deputy-v59{
  background:rgba(5,67,57,.025);
}

.gkr-function-note-v59{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:8.5px;
  font-weight:500;
}
