/* ------------------------------------------------------------------
   Familien- und Sporthunde Hochwald e.V.
   Grundgestaltung. Farben: Tannengruen als Flaeche, Gold als einziger
   Akzent. Schriften liegen lokal, damit keine Einwilligung noetig ist.
   ------------------------------------------------------------------ */

@font-face{font-family:"Bricolage Grotesque";src:url(../fonts/bricolage-grotesque-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Bricolage Grotesque";src:url(../fonts/bricolage-grotesque-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Caveat";src:url(../fonts/caveat-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"DM Sans";src:url(../fonts/dm-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"DM Sans";src:url(../fonts/dm-sans-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"DM Sans";src:url(../fonts/dm-sans-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --tief:#0C2418;
  --wald:#164430;
  --gold:#D8A33C;
  --gold-dunkel:#BE8B2C;
  --nebel:#F1F3EE;
  --weiss:#FFFFFF;
  --text:#0C2418;
  --grau:#5E6B62;
  --linie:rgba(12,36,24,.14);
  --display:"Bricolage Grotesque",system-ui,sans-serif;
  --body:"DM Sans",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
body{font-family:var(--body);background:var(--nebel);color:var(--text);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:.98;letter-spacing:-.035em}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
img{max-width:100%;display:block}
.wrap{width:min(1560px,100% - 4rem);margin-inline:auto}
.skip{position:absolute;left:-9999px;background:var(--gold);color:var(--tief);padding:.7rem 1.2rem;font-weight:700}
.skip:focus{left:1rem;top:1rem;z-index:99}

/* Kopf ------------------------------------------------------------ */
.kopfleiste{position:sticky;top:0;z-index:40;background:var(--weiss);color:var(--text);border-bottom:1px solid var(--linie)}
.kopf{display:flex;align-items:center;gap:1.1rem;padding:1.1rem 0;transition:padding .18s ease}
.marke{display:flex;align-items:center;gap:.75rem;text-decoration:none}
.marke img{width:clamp(52px,5vw,84px);height:auto;object-fit:contain;flex:0 0 auto;transition:width .18s ease}
.zeichen{width:46px;height:46px;border-radius:50%;background:var(--gold);color:var(--tief);display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:.85rem;letter-spacing:-.04em;flex:0 0 auto}
.marke b{font-family:var(--display);font-weight:800;font-size:clamp(1.05rem,1.5vw,1.45rem);letter-spacing:-.035em;line-height:1.05;display:block;color:var(--tief);transition:font-size .18s ease}
.marke span{font-size:clamp(.78rem,.9vw,.92rem);color:var(--grau);letter-spacing:.01em}
.hauptnav{margin-left:auto;display:flex;align-items:center;gap:.2rem}
.hauptnav a{padding:.55rem .8rem;text-decoration:none;font-size:.97rem;font-weight:500;color:var(--grau);border-radius:999px}
.hauptnav a:hover{background:var(--nebel);color:var(--tief)}
.hauptnav a[aria-current="page"]{color:var(--tief);background:var(--nebel)}
.pille{display:inline-flex;align-items:center;gap:.5rem;background:var(--gold);color:var(--tief);padding:.62rem 1.2rem;border-radius:999px;font-weight:700;font-size:.94rem;text-decoration:none;border:none;cursor:pointer}
.pille:hover{background:var(--gold-dunkel)}
.pille-rand{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.35)}
.pille-rand:hover{background:rgba(255,255,255,.1)}
.navknopf{display:none;background:none;border:1.5px solid var(--linie);color:var(--tief);border-radius:999px;padding:.5rem .9rem;font:inherit;font-size:.9rem;cursor:pointer}
@media(max-width:1080px){
  .hauptnav a{display:none}
  .navknopf{display:inline-block}
  .hauptnav.offen{position:absolute;left:0;right:0;top:100%;background:var(--weiss);border-bottom:1px solid var(--linie);flex-direction:column;align-items:stretch;padding:.6rem 1.25rem 1.2rem;gap:.1rem}
  .hauptnav.offen a{display:block;padding:.75rem .4rem;border-radius:0;border-bottom:1px solid var(--linie)}
  .kopfleiste{position:relative}
}

/* Hero ------------------------------------------------------------ */
.hero{background:var(--tief);color:#fff;padding:3rem 0 0;overflow:hidden}
.hero-raster{display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:end}
.hero h1{font-size:clamp(2.4rem,6.6vw,5.6rem);text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero-text{max-width:44ch;color:#B6C7BB;margin-top:1.6rem;font-size:1.08rem}
.hero-aktionen{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.9rem 0 3rem}
.hero-bild{aspect-ratio:3/4;background:
   linear-gradient(160deg,rgba(216,163,60,.16),rgba(12,36,24,.85)),
   repeating-linear-gradient(120deg,#1B5038 0 34px,#1F5A3F 34px 68px);
   margin-bottom:-4rem;position:relative;z-index:2}
.hero-fakten{border-top:1px solid rgba(255,255,255,.16);display:flex;flex-wrap:wrap;gap:2.5rem;padding:1.1rem 0 1.4rem;font-size:.92rem;color:#8FA697}
.hero-fakten b{color:#fff;font-weight:500}
@media(max-width:900px){.hero-raster{grid-template-columns:1fr}.hero-bild{aspect-ratio:16/10;margin-bottom:0}}

/* Abschnitte ------------------------------------------------------ */
section{padding:5rem 0}
.block-kopf{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:2.5rem}
.block-kopf h2{font-size:clamp(1.9rem,4.2vw,3.2rem);max-width:24ch}
.block-kopf p{max-width:52ch;color:var(--grau)}

/* Gruppenzeilen --------------------------------------------------- */
.reihen{border-top:1px solid var(--linie)}
.reihe{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.5rem;padding:1.3rem 1.1rem;border-bottom:1px solid var(--linie);text-decoration:none;transition:background .18s ease,padding .18s ease,color .18s ease}
.reihe h3{font-size:clamp(1.4rem,3vw,2.2rem);font-weight:600;letter-spacing:-.03em}
.reihe p{color:var(--grau);font-size:.95rem;margin-top:.25rem;max-width:80ch}
.reihe .pfeil{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--linie);display:grid;place-items:center;flex:0 0 auto;font-size:1.1rem}
.reihe:hover{background:var(--tief);color:#fff;padding-left:1.8rem}
.reihe:hover p{color:#B6C7BB}
.reihe:hover .pfeil{background:var(--gold);color:var(--tief);border-color:var(--gold)}

/* Trainingszeiten ------------------------------------------------- */
.zeiten{background:var(--weiss)}
.plan{width:100%;border-collapse:collapse;margin-top:1.6rem;font-size:1rem}
.plan th,.plan td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--linie);vertical-align:top}
.plan thead th{font-family:var(--body);font-weight:700;font-size:.86rem;color:var(--grau);border-bottom:2px solid var(--tief)}
.plan .tag{font-weight:700;white-space:nowrap}
.plan .uhr{white-space:nowrap;font-variant-numeric:tabular-nums}
.plan tbody tr:hover{background:var(--nebel)}
.zusatz{margin-top:1.4rem;color:var(--grau);font-size:.95rem;max-width:80ch}
@media(max-width:680px){
  .plan thead{display:none}
  .plan tr{display:block;border-bottom:1px solid var(--linie);padding:.7rem 0}
  .plan td{display:block;border:0;padding:.15rem 0}
  .plan .tag{font-size:.85rem;color:var(--grau)}
}

/* Auswahl --------------------------------------------------------- */
.auswahl-raster{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem}
@media(max-width:860px){.auswahl-raster{grid-template-columns:1fr;gap:2.5rem}}
.auswahl h3{font-size:1.4rem;font-weight:600;letter-spacing:-.02em;margin-bottom:1.2rem}
.merkmale{list-style:none}
.merkmale li{display:flex;gap:.85rem;padding:.7rem 0;border-bottom:1px solid var(--linie)}
.punkt{width:20px;height:20px;border-radius:50%;background:var(--gold);flex:0 0 auto;margin-top:.25rem}
.punkt-offen{background:transparent;border:1.5px dashed var(--grau)}

/* Kooperation ----------------------------------------------------- */
.koop{background:var(--wald);color:#fff}
.koop-satz{font-family:var(--display);font-weight:600;font-size:clamp(1.5rem,3.4vw,2.6rem);letter-spacing:-.03em;line-height:1.12;max-width:30ch}
.koop-text{color:#A9BFB0;max-width:80ch;margin-top:1.5rem}
.koop .pille{margin-top:2rem}

/* Kontakt --------------------------------------------------------- */
.kontakt-feld{background:var(--tief);color:#fff;padding:clamp(2rem,5vw,4rem);display:grid;grid-template-columns:1.3fr .7fr;gap:2.5rem;align-items:center}
@media(max-width:800px){.kontakt-feld{grid-template-columns:1fr}}
.kontakt-feld h2{font-size:clamp(1.8rem,3.8vw,2.8rem)}
.kontakt-feld p{color:#B6C7BB;margin-top:1rem;max-width:62ch}

/* Fuss ------------------------------------------------------------ */
footer{background:var(--tief);color:#8FA697;padding:4rem 0 2rem;font-size:.94rem}
.fuss{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2.5rem}
@media(max-width:800px){.fuss{grid-template-columns:1fr;gap:2rem}}
footer h4{color:#fff;font-family:var(--body);font-size:.88rem;font-weight:700;margin-bottom:.9rem}
footer ul{list-style:none}
footer li{padding:.2rem 0}
footer a{text-decoration:none}
footer a:hover{color:var(--gold)}
.wortmarke{font-family:var(--display);font-weight:800;font-size:clamp(2.2rem,6vw,4.2rem);color:#173A28;letter-spacing:-.045em;line-height:.9;margin-top:3rem}
.verbaende{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem;margin-top:1.4rem;background:var(--weiss);padding:.7rem 1rem;width:fit-content;border-radius:2px}
.verband{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.3rem .8rem;font-size:.78rem}
.schluss{border-top:1px solid rgba(255,255,255,.12);margin-top:2rem;padding-top:1.2rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.86rem}

/* Einwilligung ---------------------------------------------------- */
.consent{position:fixed;inset:auto 1rem 1rem auto;max-width:420px;background:var(--weiss);padding:1.4rem;box-shadow:0 18px 50px rgba(12,36,24,.28);z-index:60}
.consent p{font-size:.92rem;color:var(--grau)}
.consent-knoepfe{display:flex;gap:.6rem;margin-top:1.1rem}
.consent .pille{font-size:.9rem;padding:.55rem 1.1rem}
.consent .schlicht{background:transparent;border:1.5px solid var(--linie);color:var(--text)}
@media(max-width:520px){.consent{inset:auto .75rem .75rem .75rem;max-width:none}}

/* Kontaktseite ----------------------------------------------------- */
.seitenkopf{background:var(--nebel);color:var(--text);padding:4.2rem 0 3.4rem;border-bottom:1px solid var(--linie)}
.seitenkopf h1{font-size:clamp(2.1rem,5vw,4rem);max-width:none;color:var(--tief)}
.seitenkopf p{color:var(--grau);max-width:none;margin-top:1.2rem;font-size:1.06rem}

.kontakt-raster{display:grid;grid-template-columns:1fr .8fr;gap:3.5rem;align-items:start}
@media(max-width:900px){.kontakt-raster{grid-template-columns:1fr;gap:2.5rem}}

.formular{background:var(--weiss);padding:clamp(1.5rem,3vw,2.5rem)}
.feld{margin-bottom:1.2rem}
.feld label{display:block;font-weight:700;font-size:.92rem;margin-bottom:.4rem}
.feld input,.feld select,.feld textarea{
  width:100%;font:inherit;font-size:1rem;padding:.75rem .9rem;
  border:1.5px solid var(--linie);background:var(--nebel);color:var(--text);border-radius:2px}
.feld input:focus,.feld select:focus,.feld textarea:focus{
  outline:none;border-color:var(--tief);background:var(--weiss)}
.feld textarea{min-height:150px;resize:vertical}
.feld .hinweis{font-size:.85rem;color:var(--grau);margin-top:.35rem}
.feld-zwei{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
@media(max-width:560px){.feld-zwei{grid-template-columns:1fr}}
.zustimmung{display:flex;gap:.7rem;align-items:flex-start;font-size:.92rem;color:var(--grau);margin:1.4rem 0}
.zustimmung input{width:20px;height:20px;flex:0 0 auto;margin-top:.15rem}
.falle{position:absolute;left:-9999px}

.meldung{padding:1.1rem 1.3rem;margin-bottom:1.6rem;border-left:5px solid}
.meldung-ok{background:#EAF3EC;border-color:var(--wald)}
.meldung-fehler{background:#FBF0DF;border-color:var(--gold)}
.meldung h2{font-family:var(--body);font-size:1.02rem;font-weight:700;letter-spacing:0;margin-bottom:.3rem}
.meldung ul{margin:.4rem 0 0 1.1rem;font-size:.94rem}

.infokarte{background:var(--weiss);padding:1.8rem;margin-bottom:1.4rem}
.infokarte h2{font-size:1.3rem;font-weight:600;letter-spacing:-.02em;margin-bottom:.9rem}
.infokarte p{color:var(--grau);margin-bottom:.7rem}
.infokarte a{color:var(--tief);font-weight:500}
.infokarte address{font-style:normal;color:var(--grau);line-height:1.7}

/* Trainerteam ------------------------------------------------------ */
.team{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.1rem 2.5rem;margin-top:1.6rem}
.team li{border-top:1px solid var(--linie);padding:.8rem .1rem}
.team b{display:block;font-weight:700}
.team span{color:var(--grau);font-size:.93rem}
.textblock{max-width:82ch;margin-inline:auto}
.textblock p{margin-bottom:1rem}
.textblock h2{font-size:clamp(1.5rem,3vw,2.2rem);margin:2.6rem 0 1rem}
.textblock h2:first-child{margin-top:0}

/* Cookie-Einstellungen --------------------------------------------- */
.schalter{background:var(--weiss);border:1px solid var(--linie);padding:1.4rem 1.6rem;margin-bottom:1rem;display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:center}
.schalter h3{font-family:var(--body);font-size:1.02rem;font-weight:700;letter-spacing:0;margin-bottom:.25rem}
.schalter p{color:var(--grau);font-size:.94rem;margin:0}
.schalter .fest{color:var(--grau);font-size:.9rem;white-space:nowrap}
.schalter label{display:flex;align-items:center;gap:.6rem;white-space:nowrap;font-weight:700;font-size:.94rem}
.schalter input{width:22px;height:22px}
.stand{padding:1rem 1.3rem;background:var(--weiss);border-left:5px solid var(--gold);margin-bottom:1.8rem;font-size:.95rem}
.tabelle{width:100%;border-collapse:collapse;margin:1rem 0 2.2rem;font-size:.95rem}
.tabelle th,.tabelle td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--linie);vertical-align:top}
.tabelle thead th{font-size:.84rem;color:var(--grau);border-bottom:2px solid var(--tief)}
@media(max-width:640px){
  .schalter{grid-template-columns:1fr}
  .tabelle thead{display:none}
  .tabelle tr{display:block;padding:.6rem 0;border-bottom:1px solid var(--linie)}
  .tabelle td{display:block;border:0;padding:.1rem 0}
}

/* Heller Hero mit Bild ---------------------------------------------- */
.hero-hell{position:relative;background:var(--nebel);overflow:hidden}
.hero-hell .bild{position:absolute;inset:0;background:url(/assets/img/hero-hund-wiese.jpg) center right/cover no-repeat}
.hero-hell .innen{min-height:min(70vh,620px)}
.hero-hell .schleier{position:absolute;inset:0;
  background:linear-gradient(100deg,var(--nebel) 0%,rgba(241,243,238,.94) 22%,rgba(241,243,238,.62) 38%,rgba(241,243,238,0) 58%)}
.hero-hell .innen{position:relative;padding:5rem 0 4rem;min-height:min(76vh,620px);display:flex;align-items:center}
.hero-hell h1{font-size:clamp(2.4rem,5.2vw,4.6rem);max-width:13ch;color:var(--tief)}
.hero-hell .vorspann{max-width:40ch;margin-top:1.4rem;color:var(--grau);font-size:1.08rem}
.hero-hell .hero-aktionen{margin-bottom:0}
@media(max-width:820px){
  /* Hochformat fuers Handy. Das Querformat schneidet auf schmalen
     Bildschirmen den Hund weg. */
  .hero-hell .bild{background-image:url(/assets/img/hero-hund-wiese-hoch.jpg);
    background-position:center top;background-size:cover}
  .hero-hell .schleier{background:linear-gradient(180deg,
    rgba(241,243,238,.96) 0%,rgba(241,243,238,.9) 34%,rgba(241,243,238,.35) 56%,
    rgba(241,243,238,0) 74%)}
  .hero-hell h1{max-width:none;font-size:clamp(2.1rem,8.5vw,3rem)}
  .hero-hell .innen{min-height:clamp(520px,88vh,760px);align-items:flex-start;padding:2.6rem 0 2rem}
  .hero-hell .vorspann{max-width:none}
}


/* Merkmalzeile unter dem Hero --------------------------------------- */
.merkmalzeile{background:var(--weiss)}
.merkmalzeile ul{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.merkmalzeile li{padding:1.5rem 1.6rem}

.merkmalzeile b{display:block;font-size:1rem}
.merkmalzeile span{color:var(--grau);font-size:.92rem}
@media(max-width:900px){.merkmalzeile ul{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.merkmalzeile ul{grid-template-columns:1fr;gap:.2rem}
  .merkmalzeile li{padding:.9rem 1.6rem}}

/* Bildkarten -------------------------------------------------------- */
.karten{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1.6rem;margin-top:2.4rem}
.karte{background:var(--weiss);text-decoration:none;display:flex;flex-direction:column;
  border:1px solid var(--linie);transition:transform .18s ease,box-shadow .18s ease}
.karte img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.karte .rumpf{padding:1.1rem 1.2rem 1.4rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.karte h3{font-size:1.22rem;font-weight:600;letter-spacing:-.02em;display:flex;justify-content:space-between;align-items:center;gap:.6rem}
.karte h3 span{color:var(--gold);font-size:1.3rem;line-height:1}
.karte p{color:var(--grau);font-size:.94rem}
.karte:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(12,36,24,.12)}
.karte:hover h3 span{color:var(--tief)}

/* Kontaktkasten mit Bild -------------------------------------------- */
.kontakt-bild{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;gap:0}
.kontakt-bild img{width:100%;height:100%;object-fit:cover;min-height:260px}
@media(max-width:820px){.kontakt-bild{grid-template-columns:1fr}.kontakt-bild img{order:-1}}


/* Handschrift im Hero ----------------------------------------------- */
.handschrift{position:absolute;right:clamp(2rem,7vw,7rem);top:40%;z-index:2;
  transform:rotate(-6deg);color:var(--weiss);text-align:center;
  text-shadow:0 2px 14px rgba(12,36,24,.45);pointer-events:none}
.handschrift span{font-family:"Caveat",cursive;font-weight:600;
  font-size:clamp(1.6rem,2.6vw,2.6rem);line-height:1.1;display:block;max-width:9ch}
.handschrift svg{display:block;margin:.2rem auto 0;width:clamp(110px,12vw,190px);height:auto}
@media(max-width:1100px){.handschrift{display:none}}

/* Wellenlinie am Uebergang ------------------------------------------ */
.welle{position:absolute;left:0;right:0;bottom:-1px;z-index:3;line-height:0;pointer-events:none}
.welle svg{display:block;width:100%;height:clamp(46px,5vw,86px)}
.welle path{fill:var(--weiss)}


/* Lesespalte: Seitenkopf und Fliesstext teilen dieselbe Achse und
   stehen mittig im Fenster, statt links im breiten Raster zu kleben. */
.seitenkopf .wrap{width:min(82ch,100% - 4rem)}
.seitenkopf h1::after{content:"";display:block;width:72px;height:4px;background:var(--gold);margin-top:1.4rem}
.seitenkopf.breit .wrap{width:min(1560px,100% - 4rem)}

.verbaende img{height:44px;width:auto;display:block}


/* Blog --------------------------------------------------------------- */
.beitrag-meta{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;
  font-size:.85rem;color:var(--grau);margin-bottom:.2rem}
.beitrag-meta span{background:var(--nebel);padding:.18rem .6rem;border-radius:999px;
  color:var(--tief);font-weight:500}
.karte .beitrag-meta{margin-bottom:.35rem}

.kategorien{display:flex;flex-wrap:wrap;gap:.5rem}
.kategorien a{text-decoration:none;font-size:.92rem;padding:.4rem .9rem;border-radius:999px;
  border:1px solid var(--linie);color:var(--grau)}
.kategorien a:hover{border-color:var(--tief);color:var(--tief)}
.kategorien a.aktiv{background:var(--tief);border-color:var(--tief);color:#fff}
.kategorien a span{opacity:.6;font-size:.82rem}

.beitrag{font-size:1.06rem}
.beitrag h2{font-size:clamp(1.4rem,2.6vw,2rem);margin:2.4rem 0 .9rem}
.beitrag h3{font-size:1.2rem;font-weight:600;letter-spacing:-.02em;margin:1.8rem 0 .6rem}
.beitrag p{margin-bottom:1.1rem}
.beitrag ul{margin:0 0 1.2rem 1.3rem}
.beitrag li{margin-bottom:.4rem}

.beitrag img{margin:1.8rem 0;width:auto;max-width:min(100%,360px);height:auto;border:1px solid var(--linie)}
.beitrag img + em{display:block;margin:-1.2rem 0 1.8rem;font-size:.9rem;color:var(--grau);font-style:normal}
.beitrag img.breit{max-width:100%;border:0}
.beitrag blockquote{border-left:4px solid var(--gold);padding:.2rem 0 .2rem 1.2rem;
  margin:1.6rem 0;color:var(--grau)}

/* Beitragsbild im Text ---------------------------------------------- */
.titelbild{margin:2rem 0 2.2rem}
.titelbild img{width:100%;max-width:100%;height:auto;border:0;margin:0;display:block;
  aspect-ratio:3/2;object-fit:cover}

/* Termine ------------------------------------------------------------ */
.terminliste{list-style:none;max-width:82ch;margin-inline:auto}
.terminliste li{display:grid;grid-template-columns:92px 1fr;gap:1.6rem;
  padding:1.6rem 0;border-bottom:1px solid var(--linie)}
.terminliste li:first-child{border-top:1px solid var(--linie)}
.termin-datum{text-align:center;background:var(--weiss);border:1px solid var(--linie);
  padding:.7rem .4rem;align-self:start}
.termin-datum b{display:block;font-family:var(--display);font-weight:800;font-size:1.7rem;
  line-height:1;color:var(--tief)}
.termin-datum span{display:block;font-size:.8rem;color:var(--grau);margin-top:.25rem}
.termin-inhalt h2{font-size:1.3rem;font-weight:600;letter-spacing:-.02em}
.termin-inhalt p{color:var(--grau);margin-top:.4rem}
.termin-fuss{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}
.termin-fuss span{background:var(--nebel);border-radius:999px;padding:.2rem .7rem;
  font-size:.85rem;color:var(--tief)}
@media(max-width:520px){.terminliste li{grid-template-columns:70px 1fr;gap:1rem}}

/* Galerie ------------------------------------------------------------ */
/* Spaltensatz: jedes Bild behaelt sein eigenes Format, nichts wird beschnitten. */
.galerie{column-count:4;column-gap:1.4rem}
.galerie figure{margin:0 0 1.4rem;background:var(--weiss);border:1px solid var(--linie);
  break-inside:avoid;-webkit-column-break-inside:avoid}
.galerie img{width:100%;height:auto;display:block}
.galerie figcaption{padding:.6rem .9rem;font-size:.88rem;color:var(--grau)}
@media(max-width:1200px){.galerie{column-count:3}}
@media(max-width:820px){.galerie{column-count:2}}
@media(max-width:520px){.galerie{column-count:1}}

/* Interner Bereich ---------------------------------------------------- */
.alslink{background:none;border:0;padding:0;font:inherit;color:inherit;
  text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.dateiliste{list-style:none;margin:1rem 0 2rem}
.dateiliste li{display:flex;align-items:center;gap:1rem;border-bottom:1px solid var(--linie)}
.dateiliste li:first-child{border-top:1px solid var(--linie)}
.dateiliste a{flex:1;display:block;padding:.9rem .2rem;text-decoration:none}
.dateiliste b{display:block;font-weight:600}
.dateiliste span{display:block;font-size:.9rem;color:var(--grau)}
.dateiliste .art{flex:0 0 auto;font-size:.75rem;letter-spacing:.04em;color:var(--grau);
  border:1px solid var(--linie);border-radius:999px;padding:.15rem .6rem}
.dateiliste a:hover b{color:var(--moos,var(--tief))}

/* Zeichenzahl im Kontaktformular ------------------------------------- */
.zaehler{margin-left:.4rem;font-variant-numeric:tabular-nums}
.zaehler-offen{color:#9A6B12}
.zaehler-gut{color:var(--wald)}

/* Mitgliedsantrag, Druckansicht --------------------------------------- */
.antrag-druck{max-width:82ch;margin-inline:auto;background:var(--weiss);
  border:1px solid var(--linie);padding:clamp(1.4rem,4vw,3rem)}
.antrag-kopf{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;
  border-bottom:2px solid var(--tief);padding-bottom:1rem;margin-bottom:1.6rem;
  font-size:.92rem;line-height:1.5}
.antrag-titel{font-family:var(--display);font-weight:800;font-size:1.5rem;
  letter-spacing:-.03em;white-space:nowrap}
.antrag-druck h2{font-size:1.1rem;font-family:var(--body);font-weight:700;
  letter-spacing:0;margin:1.8rem 0 .6rem;color:var(--tief)}
.antrag-tabelle{width:100%;border-collapse:collapse;font-size:.95rem}
.antrag-tabelle th{text-align:left;width:38%;font-weight:500;color:var(--grau);
  padding:.45rem .6rem .45rem 0;vertical-align:top;border-bottom:1px solid var(--linie)}
.antrag-tabelle td{padding:.45rem 0;border-bottom:1px solid var(--linie)}
.antrag-text{font-size:.92rem;color:var(--grau);margin:.6rem 0}
.antrag-unterschrift{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;margin-top:3rem}
.antrag-unterschrift span{display:block;border-bottom:1px solid var(--tief);height:2.4rem;
  margin-bottom:.35rem}
.antrag-unterschrift div{font-size:.85rem;color:var(--grau)}
.antrag-fuss{font-size:.8rem;color:var(--grau);margin-top:2rem}

@media print{
  .kopfleiste,footer,.consent,.nichtdrucken,.seitenkopf{display:none !important}
  body{background:#fff;font-size:11pt}
  section{padding:0}
  .wrap{width:100%}
  .antrag-druck{border:0;padding:0;max-width:none}
  .antrag-tabelle th,.antrag-tabelle td{padding:.3rem 0}
  a{text-decoration:none;color:#000}
}

/* Kopfbereich schrumpft beim Scrollen -------------------------------- */
.kopfleiste.kompakt .kopf{padding:.5rem 0}
.kopfleiste.kompakt .marke img{width:clamp(40px,3vw,52px)}
.kopfleiste.kompakt .marke b{font-size:clamp(1rem,1.2vw,1.15rem)}
.kopfleiste.kompakt .marke span{display:none}
.kopfleiste{box-shadow:0 0 0 rgba(12,36,24,0);transition:box-shadow .18s ease}
.kopfleiste.kompakt{box-shadow:0 6px 20px rgba(12,36,24,.08)}
@media (prefers-reduced-motion:reduce){
  .kopfleiste,.kopf,.marke img,.marke b{transition:none}
}

/* Verweiskasten in Beiträgen ------------------------------------------ */
.beitrag .verweis{background:var(--weiss);border:1px solid var(--linie);
  border-left:5px solid var(--gold);padding:1.4rem 1.6rem;margin:2.4rem 0}
.beitrag .verweis p{margin:0}
.verweis-kopf{font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;
  color:var(--grau);margin-bottom:.5rem !important}
.verweis-titel{font-family:var(--display);font-weight:600;font-size:1.2rem;
  line-height:1.25;letter-spacing:-.02em}
.verweis-titel a{text-decoration:none;color:var(--tief)}
.verweis-titel a:hover{text-decoration:underline;text-underline-offset:3px}
.verweis-titel a::after{content:" ›";color:var(--gold)}
.verweis-fuss{font-size:.88rem;color:var(--grau);margin-top:.5rem !important}

/* Beitragstext etwas ruhiger ------------------------------------------ */
.beitrag h2{font-size:clamp(1.35rem,2.4vw,1.8rem)}
.beitrag h3{font-size:1.15rem;color:var(--tief)}
.beitrag > p:first-of-type{font-size:1.12rem;color:var(--tief)}

/* Links im Beitragstext sichtbar machen ------------------------------- */
.beitrag p a, .beitrag li a, .beitrag blockquote a,
.textblock p a, .textblock li a{
  color:var(--wald);
  font-weight:500;
  text-decoration:underline;
  text-decoration-color:var(--gold);
  text-decoration-thickness:2px;
  text-underline-offset:3px;
  transition:background-color .15s ease,color .15s ease}
.beitrag p a:hover, .beitrag li a:hover,
.textblock p a:hover, .textblock li a:hover{
  background:rgba(216,163,60,.18);
  color:var(--tief);
  text-decoration-color:var(--tief)}
/* Der Kasten am Ende bleibt davon unberührt */
.verweis-titel a, .verweis-titel a:hover{
  font-weight:600;text-decoration:none;background:none}
.verweis-titel a:hover{text-decoration:underline;text-decoration-color:var(--gold)}
@media (prefers-reduced-motion:reduce){.beitrag p a,.textblock p a{transition:none}}
