/* Schriften – lokal eingebunden (keine Verbindung zu Google-Servern) */
@font-face{font-family:'Fraunces'; src:url('fonts/fraunces-latin-600-normal.woff2') format('woff2'); font-weight:400 700; font-style:normal; font-display:swap;}
@font-face{font-family:'Work Sans'; src:url('fonts/WorkSans-Regular.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap;}
@font-face{font-family:'Work Sans'; src:url('fonts/WorkSans-Italic.ttf') format('truetype'); font-weight:400; font-style:italic; font-display:swap;}
@font-face{font-family:'Work Sans'; src:url('fonts/WorkSans-Bold.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:swap;}

:root{
  --sand:#FBF7EF;
  --sand-deep:#F1EAD8;
  --ink:#2F3B31;
  --ink-soft:#5B6B5F;
  --forest:#3E5C46;
  --forest-deep:#2C4432;
  --water:#6E93A6;
  --water-deep:#3E6B7A;
  --herb:#D9A441;
  --herb-deep:#8A6423;
  --fruit:#C77B4C;
  --fruit-deep:#A5522E;
  --line:#E8E0CE;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Work Sans', sans-serif;
  color:var(--ink);
  background:var(--sand);
  line-height:1.6;
}
h1,h2,h3,.serif{
  font-family:'Fraunces', serif;
  font-weight:500;
  margin:0;
  color:var(--ink);
}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
img,svg{display:block; max-width:100%;}

/* Header */
header{
  position:sticky; top:0; z-index:20;
  background:rgba(251,247,239,0.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
header .wrap{display:flex; align-items:center; justify-content:space-between; height:88px; gap:24px;}
.logo img{height:52px; width:auto;}
nav a:hover, nav a.active{color:var(--forest-deep);}
.menu-toggle{
  display:none; width:40px; height:40px; flex:none;
  background:none; border:none; cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.menu-toggle span{display:block; width:22px; height:2px; background:var(--ink); border-radius:1px; transition:transform .25s ease, opacity .2s ease;}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.cta-btn{
  display:inline-block; background:var(--forest); color:var(--sand);
  padding:12px 24px; border-radius:24px; font-size:14px; font-weight:500;
  white-space:nowrap;
}
.cta-btn:hover{background:var(--forest-deep);}
.cta-ghost{
  display:inline-block; border:1px solid var(--ink); color:var(--ink);
  padding:11px 22px; border-radius:24px; font-size:14px;
}

/* Hero */
.hero{
  padding:80px 0 72px;
  background:linear-gradient(180deg, var(--sand-deep) 0%, var(--sand) 100%);
}
.hero .wrap{display:grid; grid-template-columns:1.05fr 1fr; gap:56px; align-items:center;}
.element-bar{display:flex; gap:8px; margin-bottom:26px;}
.element-bar span{width:40px; height:5px; border-radius:3px;}
.hero h1{font-size:50px; line-height:1.15; margin-bottom:22px;}
.hero p.lead{font-size:18px; color:var(--ink-soft); max-width:460px; margin:0 0 34px;}
.hero .buttons{display:flex; gap:16px;}
.hero-photo{border-radius:20px; overflow:hidden; box-shadow:0 18px 40px rgba(47,59,49,.14); transition:box-shadow .35s ease;}
.hero-photo img{width:100%; height:420px; object-fit:cover; transition:transform .5s ease;}
.hero-photo:hover{box-shadow:0 22px 48px rgba(47,59,49,.22);}
.hero-photo:hover img{transform:scale(1.06);}

/* Sections */
section{padding:88px 0;}
.eyebrow{font-size:14px; color:var(--ink-soft); margin-bottom:10px;}
.section-head{max-width:640px; margin-bottom:48px;}
.section-head h2{font-size:34px; line-height:1.25;}
.section-head p.intro{font-size:16px; color:var(--ink-soft); margin:14px 0 0;}

/* Kneipp elements */
.elements{display:grid; grid-template-columns:repeat(5,1fr); gap:20px;}
.element-card{
  background:#fff; border:1px solid var(--line); border-radius:16px;
  padding:26px 20px;
}
.element-card .icon{width:34px; height:34px; margin-bottom:18px;}
.element-card h3{font-size:17px; margin-bottom:8px;}
.element-card p{font-size:13.5px; color:var(--ink-soft); margin:0;}

/* Concept */
.concept-wrap{background:var(--sand-deep);}
.concept-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.concept-card{background:var(--sand); border-radius:16px; padding:32px 28px;}
.concept-card h3{font-size:22px; margin-bottom:12px;}
.concept-card p{font-size:14.5px; color:var(--ink-soft); margin:0;}

/* Gallery */
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:150px 150px; gap:14px;}
.gallery-grid div{border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:13px; color:var(--ink-soft); overflow:hidden;}
.gallery-grid img{width:100%; height:100%; object-fit:cover; transition:transform .45s ease;}
.gallery-grid div:hover img{transform:scale(1.08);}
.gallery-more{display:flex; justify-content:center; margin-top:22px;}
.g1{background:#E7EEF1; grid-column:span 2; grid-row:span 2;}
.g2{background:#F6EBDD;}
.g3{background:#F1E4D8;}
.g4{background:#EEF2E8;}
.g5{background:#F1EAD8;}

/* Anmeldung */
.anmeldung{background:var(--forest); color:var(--sand); border-radius:24px; padding:56px; display:flex; justify-content:space-between; align-items:center; gap:40px;}
.anmeldung h2{color:var(--sand); font-size:30px; margin-bottom:14px;}
.anmeldung p{color:#D9E3DA; font-size:15px; max-width:360px; margin:0;}
.date-list{display:flex; flex-direction:column; gap:10px; min-width:300px;}
.date-row{display:flex; justify-content:space-between; gap:20px; font-size:14.5px; border-bottom:1px solid rgba(255,255,255,0.15); padding-bottom:10px;}
.date-row .day{color:#BFD3C3;}

/* Dropdown nav */
nav{position:relative; display:flex; gap:28px; font-size:15px; color:var(--ink-soft); align-items:center;}
.nav-item{position:relative;}
.nav-item > a{display:inline-flex; align-items:center; gap:5px; padding:8px 0;}
.nav-item .caret{width:8px; height:8px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-top:-3px; opacity:.6;}
.dropdown{
  position:absolute; top:100%; left:-16px; min-width:230px;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:8px; box-shadow:0 16px 32px rgba(47,59,49,.14);
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}
.nav-item:hover .dropdown{opacity:1; visibility:visible; transform:translateY(0);}
.dropdown a{display:block; padding:9px 12px; border-radius:8px; font-size:14px; color:var(--ink);}
.dropdown a:hover{background:var(--sand-deep); color:var(--forest-deep);}

/* Page header (used by all inner pages) */
.page-head{padding:64px 0 40px; background:linear-gradient(180deg, var(--sand-deep) 0%, var(--sand) 100%);}
.page-head h1{font-size:42px; margin-bottom:18px;}
.page-head p{font-size:16.5px; color:var(--ink-soft); max-width:680px; margin:0 0 16px;}
.page-head ul{color:var(--ink-soft); font-size:15px; max-width:680px; padding-left:20px; margin:0;}
.page-head ul li{margin-bottom:8px;}

/* Simple content page blocks */
.prose{max-width:760px;}
.prose p{font-size:16px; color:var(--ink-soft); margin:0 0 18px;}
.prose h2{font-size:26px; margin:0 0 16px;}
.prose h2:not(:first-child){margin-top:8px;}

.info-card{background:#fff; border:1px solid var(--line); border-radius:16px; padding:26px 24px;}
.info-card h3{font-size:16px; margin-bottom:10px;}
.info-card p{font-size:14.5px; color:var(--ink-soft); margin:0 0 6px;}
a.info-card{transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;}
a.info-card:hover{transform:translateY(-3px); box-shadow:0 14px 28px rgba(47,59,49,.12); border-color:var(--forest);}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.three-col{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.week-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}

.timeline{border-left:2px solid var(--line); padding-left:28px; display:flex; flex-direction:column; gap:26px; max-width:640px;}
.timeline-item{position:relative;}
.timeline-item::before{content:""; position:absolute; left:-33.5px; top:4px; width:9px; height:9px; border-radius:50%; background:var(--forest);}
.timeline-item .time{font-family:'Fraunces',serif; font-size:16px; color:var(--forest-deep); margin-bottom:4px;}
.timeline-item p{font-size:14.5px; color:var(--ink-soft); margin:0;}

.big-mailto{
  display:inline-flex; align-items:center; gap:10px; background:var(--forest); color:var(--sand);
  padding:16px 26px; border-radius:14px; font-size:15px; font-weight:500;
}
.big-mailto:hover{background:var(--forest-deep);}
.legal-note{background:var(--sand-deep); border-radius:12px; padding:16px 18px; font-size:13.5px; color:var(--ink-soft); margin-top:24px;}

/* Team */
.group-label{display:inline-flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-size:26px; margin-bottom:28px;}
.group-dot{width:14px; height:14px; border-radius:50%;}
.team-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}

.team-card{
  background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden;
  position:relative; transition:transform .25s ease, box-shadow .25s ease;
}
.team-card:hover{transform:translateY(-4px) scale(1.035); box-shadow:0 22px 44px rgba(47,59,49,.18); z-index:5;}
.team-card .photo{position:relative; width:100%; aspect-ratio:3/4; background:var(--sand-deep); overflow:hidden;}
.team-card .photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2; transition:transform .35s ease;}
.team-card:hover .photo img{transform:scale(1.08);}
.team-card .avatar-fallback{position:absolute; inset:0; z-index:1; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-size:30px; color:var(--forest); text-align:center; padding:10px;}
.team-card .quote-overlay{
  position:absolute; inset:0; z-index:3; display:flex; align-items:flex-end; padding:18px;
  background:linear-gradient(180deg, rgba(47,59,49,0) 35%, rgba(44,68,50,.94) 100%);
  opacity:0; transition:opacity .25s ease;
}
.team-card:hover .quote-overlay{opacity:1;}
.team-card .quote-overlay blockquote{margin:0; color:#F3EEE3; font-size:13px; font-style:italic; line-height:1.5;}
.team-card .quote-overlay cite{display:block; font-style:normal; font-size:11.5px; margin-top:8px; color:#BFD3C3;}
.team-card .caption{padding:16px 18px 18px;}
.team-card h3{font-size:17px; margin-bottom:4px;}
.team-card .role{font-size:13px; color:var(--ink-soft); margin:0;}

.leader-card{grid-column:span 3; display:flex; flex-direction:row; align-items:center; gap:28px; background:var(--sand-deep); border:none; padding:28px;}
.leader-card:hover{transform:none; box-shadow:none;}
.leader-card .photo{width:130px; height:130px; min-width:130px; border-radius:50%; aspect-ratio:auto;}
.leader-card .quote-overlay{position:static; background:none; opacity:1; padding:0; margin-top:10px; display:block;}
.leader-card .quote-overlay blockquote{color:var(--ink-soft); font-size:14.5px;}
.leader-card .quote-overlay cite{color:var(--water-deep);}
.leader-card .caption{padding:0;}

/* Anmeldedaten als Mailto-Zeilen */
a.date-row{color:inherit; border-radius:8px; padding:10px 8px; margin:0 -8px; transition:background .15s ease;}
a.date-row:hover{background:rgba(255,255,255,.1);}
a.date-row .mail-hint{font-size:11.5px; color:#9FB6A5; margin-left:8px;}
a.date-row.is-past{opacity:.5; pointer-events:none; cursor:default; text-decoration:line-through; text-decoration-thickness:1.5px;}
a.date-row.is-past:hover{background:none;}
a.date-row.is-past .mail-hint{display:none;}

/* Kapitel-Navigation (Konzept-Unterseiten) */
.chapter-nav{background:var(--sand-deep); border-bottom:1px solid var(--line); padding:14px 0;}
.chapter-nav .wrap{display:flex; align-items:center; gap:8px; overflow-x:auto; -webkit-overflow-scrolling:touch;}
.chapter-nav .back-link{font-size:13px; color:var(--ink-soft); white-space:nowrap; margin-right:6px; text-decoration:underline; text-underline-offset:2px;}
.chapter-pill{
  width:32px; height:32px; min-width:32px; border-radius:50%; flex:none;
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-size:13px; color:var(--ink-soft);
  background:#fff; border:1px solid var(--line);
}
.chapter-pill:hover{border-color:var(--forest); color:var(--forest-deep);}
.chapter-pill.active{background:var(--forest); border-color:var(--forest); color:var(--sand);}

/* Vollständige Bildergalerie */
.full-gallery{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:1fr; gap:16px;}
.full-gallery figure{margin:0; border-radius:14px; overflow:hidden; position:relative; aspect-ratio:4/3; background:var(--sand-deep);}
.full-gallery img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s ease, filter .45s ease;}
.full-gallery figure::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(47,59,49,0) 60%, rgba(44,68,50,.55) 100%);
  opacity:0; transition:opacity .35s ease;
}
.full-gallery figure:hover img{transform:scale(1.08); filter:saturate(1.08);}
.full-gallery figure:hover::after{opacity:1;}
.full-gallery figcaption{
  position:absolute; left:14px; right:14px; bottom:12px; z-index:2;
  color:#fff; font-size:12.5px; opacity:0; transform:translateY(6px);
  transition:opacity .35s ease, transform .35s ease;
}
.full-gallery figure:hover figcaption{opacity:1; transform:translateY(0);}
.full-gallery figure.wide{grid-column:span 2; grid-row:span 2; aspect-ratio:auto;}

/* Aktuelles */
.news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.news-card{background:#fff; border:1px solid var(--line); border-radius:16px; padding:26px 24px; display:flex; flex-direction:column; gap:10px;}
.news-tag{display:inline-block; font-size:11px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; padding:4px 10px; border-radius:12px; align-self:flex-start;}
.news-tag.job{background:#EEF2E8; color:var(--forest-deep);}
.news-tag.info{background:#E7EEF1; color:var(--water-deep);}
.news-tag.event{background:#F6EBDD; color:var(--herb-deep);}
.news-date{font-size:12.5px; color:var(--ink-soft);}
.news-card h3{font-size:18px; margin:0;}
.news-card p{font-size:14.5px; color:var(--ink-soft); margin:0;}
.news-card .news-cta{margin-top:auto; padding-top:6px; font-size:13.5px; color:var(--forest-deep); text-decoration:underline; text-underline-offset:2px;}
.news-actions{margin-top:auto; padding-top:6px; display:flex; flex-wrap:wrap; gap:6px 18px;}
.news-actions .news-cta{margin-top:0; padding-top:0;}
.news-card{scroll-margin-top:110px;}
.news-card.featured{grid-column:1 / -1;}
.news-card.featured h3{font-size:22px;}
.news-card ul{margin:4px 0 0; padding-left:20px; font-size:14.5px; color:var(--ink-soft);}
.news-card ul li{margin-bottom:8px;}
.news-card.featured ul{columns:2; column-gap:40px;}
.news-card.featured ul li{break-inside:avoid;}
.news-card p a, .news-card li a{color:var(--forest-deep); text-decoration:underline; text-underline-offset:2px;}

/* Lightbox */
.full-gallery figure, .gallery-grid div{cursor:pointer;}
#lightbox-overlay{
  position:fixed; inset:0; z-index:200; background:rgba(20,24,21,.94);
  display:none; align-items:center; justify-content:center; padding:24px;
}
#lightbox-overlay.is-open{display:flex;}
#lightbox-overlay figure{margin:0; max-width:92vw; max-height:88vh; display:flex; flex-direction:column; align-items:center;}
#lightbox-overlay img{max-width:92vw; max-height:80vh; width:auto; height:auto; object-fit:contain; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5);}
#lightbox-overlay figcaption{color:#F3EEE3; font-size:13.5px; margin-top:14px; text-align:center; max-width:640px;}
#lightbox-close{
  position:absolute; top:20px; right:24px; background:none; border:none; cursor:pointer;
  color:#F3EEE3; font-size:28px; line-height:1; padding:8px; opacity:.85;
}
#lightbox-close:hover{opacity:1;}
#lightbox-counter{position:absolute; top:26px; left:28px; color:#D9E3DA; font-size:13px;}
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); color:#fff;
  width:48px; height:48px; border-radius:50%; font-size:20px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.lightbox-nav:hover{background:rgba(255,255,255,.18);}
#lightbox-prev{left:16px;}
#lightbox-next{right:16px;}
@media (max-width:640px){
  .lightbox-nav{width:40px; height:40px; font-size:17px;}
  #lightbox-close{top:12px; right:12px;}
  #lightbox-counter{top:18px; left:18px;}
}

/* Footer */
footer{padding:64px 0 40px; border-top:1px solid var(--line);}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; margin-bottom:40px;}
footer h3{font-size:15px; margin-bottom:14px;}
footer p, footer a{font-size:14px; color:var(--ink-soft); display:block; margin-bottom:8px;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; font-size:13px; color:var(--ink-soft); padding-top:24px; border-top:1px solid var(--line);}
.footer-bottom a{text-decoration:underline; text-underline-offset:2px;}
.footer-bottom .links{display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; line-height:1;}
.footer-bottom .links a, .footer-bottom .links span{line-height:1; vertical-align:baseline;}

@media (max-width:980px){
  .menu-toggle{display:flex;}
  header .wrap{position:relative; flex-wrap:nowrap; gap:10px; padding:0 20px;}
  header .logo{flex:none;}
  header .cta-btn{order:2; margin-left:auto; padding:9px 15px; font-size:13px; line-height:1.3;}
  .menu-toggle{order:3;}
  header nav{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:#FBF7EF; border-top:1px solid var(--line);
    box-shadow:0 16px 32px rgba(47,59,49,.14);
    padding:6px 24px 20px; z-index:19; max-height:calc(100vh - 76px); overflow-y:auto;
  }
  header nav.is-open{display:flex;}
  header nav > a{padding:14px 0; border-bottom:1px solid var(--line);}
  .nav-item{position:static;}
  .nav-item > a{padding:14px 0; border-bottom:1px solid var(--line); width:100%; justify-content:space-between;}
  .dropdown{
    position:static; opacity:1; visibility:visible; transform:none;
    box-shadow:none; border:none; padding:0 0 4px 14px; display:block; background:none;
  }
  .dropdown a{padding:11px 0; border-bottom:1px dashed var(--line); font-size:13.5px;}
  .hero .wrap{grid-template-columns:1fr;}
  .hero h1{font-size:36px;}
  .hero .buttons{flex-direction:column; align-items:stretch; gap:12px;}
  .hero .buttons a{text-align:center;}
  .elements{grid-template-columns:repeat(2,minmax(0,1fr));}
  .concept-grid{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:1fr;}
  .leader-card{grid-column:span 1; flex-direction:column; align-items:flex-start;}
  .gallery-grid{grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(3,130px);}
  .g1{grid-column:span 2; grid-row:span 1;}
  .anmeldung{flex-direction:column; align-items:flex-start; padding:36px;}
  .footer-grid{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column; gap:8px;}
  .two-col, .three-col{grid-template-columns:1fr;}
  .week-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .full-gallery{grid-template-columns:repeat(2,1fr);}
  .news-grid{grid-template-columns:1fr;}
  .news-card.featured ul{columns:1;}
  .full-gallery figure.wide{grid-column:span 2; grid-row:span 2; aspect-ratio:auto;}
  .leader-card{flex-direction:column; align-items:flex-start;}
}

@media (max-width:370px){
  header .cta-btn{padding:8px 11px; font-size:12px;}
  header .logo img{height:46px;}
}
@media (max-width:330px){
  header .cta-btn{display:none;}
}

/* Touch-Geräte (Handy/Tablet): Zitate der Teamkarten immer sichtbar statt Mouseover */
@media (hover: none){
  .team-card:hover{transform:none; box-shadow:none;}
  .team-card:hover .photo img{transform:none;}
  .team-card:not(.leader-card){display:flex; flex-direction:column;}
  .team-card:not(.leader-card) .photo{order:1;}
  .team-card:not(.leader-card) .caption{order:2; padding-bottom:12px;}
  .team-card:not(.leader-card) .quote-overlay{
    order:3; position:static; inset:auto; opacity:1; background:none;
    display:block; padding:0 18px 20px;
  }
  .team-card:not(.leader-card) .quote-overlay blockquote{
    color:var(--ink-soft); font-size:13.5px; line-height:1.55;
    border-left:2px solid var(--line); padding-left:12px;
  }
  .team-card:not(.leader-card) .quote-overlay cite{color:var(--water-deep); font-size:12.5px;}
}

/* Raster mit festen Spaltenzahlen (Inline-Angaben) auf dem Handy einspaltig */
@media (max-width:700px){
  [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr) !important;}
}

/* Lange deutsche Wörter in Überschriften dürfen umbrechen, statt die Seite zu verbreitern */
h1, h2, h3{overflow-wrap:break-word; hyphens:auto;}
@media (max-width:700px){
  .page-head h1{font-size:32px;}
  [style*="columns"]{columns:1 !important;}
  [style*="grid-column"]{grid-column:1 / -1 !important;}
}

/* Anmeldetage auf schmalen Handys */
@media (max-width:480px){
  .anmeldung{padding:30px 20px;}
  .date-list{min-width:0; width:100%;}
  .date-row{flex-wrap:wrap; gap:2px 14px;}
  a.date-row .mail-hint{margin-left:0;}
}

/* Sehr schmale Handys: Karten untereinander */
@media (max-width:400px){
  .elements, .week-grid{grid-template-columns:minmax(0,1fr);}
}

/* Link zum Anmeldeformular im Bereich Anmeldetage */
.anmeldung .form-link{
  display:inline-block; margin-top:20px; padding:12px 22px; border-radius:24px;
  background:var(--sand); color:var(--forest-deep); font-size:14px; font-weight:500; text-decoration:none;
}
.anmeldung .form-link:hover{background:#fff;}

/* Illustration statt Foto (Karte ohne Portrait) */
.team-card .avatar-fallback.avatar-art-wrap{padding:0; font-size:0;}
.avatar-art{display:block; width:100%; height:100%;}
.avatar-art .sky1{stop-color:#E6F0F3;}
.avatar-art .sky2{stop-color:var(--sand-deep);}
.avatar-art .b{fill:none; stroke-width:10;}
.avatar-art .b1{stroke:var(--pink, var(--fruit-deep));}
.avatar-art .b2{stroke:var(--fruit);}
.avatar-art .b3{stroke:var(--herb);}
.avatar-art .b4{stroke:var(--green, var(--forest));}
.avatar-art .b5{stroke:var(--water);}
.avatar-art .b6{stroke:var(--purple, var(--water-deep));}
.avatar-art .sun circle{fill:var(--herb);}
.avatar-art .rays line{stroke:var(--herb); stroke-width:4; stroke-linecap:round;}
.avatar-art .cloud{fill:#fff;}
.avatar-art .ik{fill:var(--forest); font-family:'Fraunces', Georgia, serif; font-size:46px; font-weight:600;}
.avatar-art .k1{fill:var(--fruit);} .avatar-art .k2{fill:var(--water);} .avatar-art .k3{fill:var(--forest);}
.avatar-art .k4{fill:var(--herb);} .avatar-art .k5{fill:var(--green, var(--forest));} .avatar-art .k6{fill:var(--pink, var(--fruit));}

/* Eckdaten in Neuigkeiten (Datum, Uhrzeit, Ort) */
.news-card ul.news-facts{list-style:none; padding-left:0; margin:2px 0 4px;}
.news-card ul.news-facts li{margin-bottom:4px;}

.hero-photo img[hidden]{display:none;}

/* Titelbild: Platz reservieren, damit beim Laden nichts verspringt */
.hero-photo{min-height:420px;}
@media (max-width:980px){ .hero-photo{min-height:300px;} }

/* Links in Fließtexten erkennbar machen */
.prose a, .route a{color:var(--forest-deep); text-decoration:underline; text-underline-offset:2px;}
.route h2{margin-bottom:14px;}
.route p{margin:0 0 14px;}

/* Zusatzlink im Anmeldetage-Bereich der Startseite */
.anmeldung .more-link{display:block; margin-top:14px; font-size:14px; color:#EEE8FF; text-decoration:underline; text-underline-offset:3px;}
.anmeldung .more-link:hover{color:#fff;}

/* Links in Karten erkennbar machen */
.info-card p a{color:var(--forest-deep); text-decoration:underline; text-underline-offset:2px;}

/* Termine und Kalender */
.calendar-card .mini-list{display:flex; flex-direction:column; gap:10px; margin:2px 0 4px;}
.mini-termin{display:flex; gap:12px; align-items:center; color:var(--ink); border-radius:12px;}
.mini-termin:hover strong{text-decoration:underline; text-underline-offset:2px;}
.mt-date{flex:0 0 46px; text-align:center; background:var(--sand-deep); border-radius:10px; padding:6px 0 5px; line-height:1.05;}
.mt-date b{display:block; font-family:'Fraunces',serif; font-weight:500; font-size:20px; color:var(--forest-deep);}
.mt-date i{display:block; font-style:normal; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft);}
.mt-text{display:flex; flex-direction:column; min-width:0;}
.mt-text strong{font-size:14.5px; font-weight:600; line-height:1.3;}
.mt-text small{font-size:12.5px; color:var(--ink-soft);}
.kalender-links{display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:auto; padding-top:6px;}
.kalender-links .news-cta{margin-top:0; padding-top:0;}
.termine-leer{font-size:14.5px; color:var(--ink-soft); margin:0;}

.abo-card{display:grid; grid-template-columns:1.1fr 1fr; gap:32px; background:#fff; border:1px solid var(--line); border-radius:20px; padding:32px;}
.abo-card h2{font-size:24px; margin-bottom:10px;}
.abo-card h3{font-size:16px; margin-bottom:8px;}
.abo-card p{font-size:15px; color:var(--ink-soft); margin:0 0 16px;}
.abo-buttons{display:flex; flex-wrap:wrap; gap:12px;}
.abo-hilfe ul{margin:0 0 12px; padding-left:20px; font-size:14.5px; color:var(--ink-soft);}
.abo-hilfe li{margin-bottom:6px;}
.abo-url{font-size:13px !important; word-break:break-all;}
.abo-url code{background:var(--sand-deep); padding:2px 6px; border-radius:6px; font-size:12.5px; color:var(--ink);}

.termin-liste{max-width:none;}
.termin-monat{margin-bottom:8px;}
.termin-monat-titel{font-size:24px; margin:28px 0 14px;}
.termin{display:grid; grid-template-columns:76px 1fr; gap:20px; background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px 22px; margin-bottom:16px; scroll-margin-top:110px;}
.termin-date{text-align:center; background:var(--sand-deep); border-radius:12px; padding:12px 4px 10px; line-height:1.05; align-self:start;}
.termin-date b{display:block; font-family:'Fraunces',serif; font-weight:500; font-size:30px; color:var(--forest-deep);}
.termin-date i{display:block; font-style:normal; font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); margin-top:2px;}
.termin-body h3{font-size:19px; margin:8px 0 4px;}
.termin-body p{font-size:14.5px; color:var(--ink-soft); margin:0 0 6px;}
.termin-wann{color:var(--ink) !important; font-weight:600;}
.termin-actions{display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; margin-top:12px;}
.termin-btn{display:inline-block; background:var(--forest); color:#fff; font-size:13.5px; font-weight:600; padding:9px 16px; border-radius:999px;}
.termin-btn:hover{background:var(--forest-deep);}
.termin-link{font-size:13.5px; color:var(--forest-deep); text-decoration:underline; text-underline-offset:2px;}
.termin.is-past, .mini-termin.is-past{display:none;}
@media (max-width:760px){
  .abo-card{grid-template-columns:1fr; padding:24px 20px;}
  .termin{grid-template-columns:60px 1fr; gap:14px; padding:16px;}
  .termin-date b{font-size:24px;}
}

/* Menü: mit dem Punkt "Termine" bei mittleren Breiten enger setzen, nichts umbrechen */
nav a, .nav-item > a{white-space:nowrap;}
@media (min-width:981px) and (max-width:1140px){
  header .wrap{gap:14px;}
  nav{gap:16px; font-size:14.5px;}
  header .cta-btn{padding-left:18px; padding-right:18px; font-size:13.5px;}
}

/* Termine: mehr Luft auf kleinen Bildschirmen */
@media (max-width:760px){
  .abo-card{gap:28px;}
  .abo-buttons{flex-direction:column; align-items:stretch; gap:20px;}
  .abo-buttons a{text-align:center; justify-content:center;}
  .abo-hilfe{border-top:1px solid var(--line); padding-top:22px;}
  .abo-card h2{hyphens:manual; -webkit-hyphens:manual;}
}

/* Termine: sehr schmale Bildschirme (320 px) */
.termin-body{min-width:0;}
.termin-body h3, .termin-body p{overflow-wrap:anywhere;}
@media (max-width:760px){
  .termin{grid-template-columns:60px minmax(0,1fr);}
  .termin-btn{white-space:normal; text-align:center;}
}
@media (max-width:360px){
  .termin{grid-template-columns:52px minmax(0,1fr); gap:12px; padding:14px;}
  .termin-date b{font-size:22px;}
}

/* Termine: beide Knöpfe gleich hoch, ohne überstehenden Schatten */
.abo-buttons{align-items:center;}
.abo-buttons .big-mailto, .abo-buttons .cta-ghost{box-sizing:border-box; min-height:56px; display:inline-flex; align-items:center; justify-content:center; margin:0; box-shadow:none !important;}
@media (max-width:360px){
  .abo-buttons .big-mailto, .abo-buttons .cta-ghost{padding:10px 12px; font-size:14px; line-height:1.25;}
}
