/*
Theme Name: Vereinsblatt
Description: Leichtes, helles Theme im Stil einer Tageszeitung der 1920er Jahre – Zeitungskopf mit Datumszeile und Doppellinien, Rubrikenleiste als Menü, Serifenschrift, ziegelroter Akzent, keine Effekte. Abgestimmt auf das Plugin „Vereinsportal“ (Gruppenseiten, Unterstützungs- und Checklisten, Berichte, Struktur-Menü). Schriften liegen im Theme (keine Verbindung zu Google).
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vereinsblatt
*/

/* ---------- Schriften (im Theme, SIL Open Font License) ---------- */
@font-face{font-family:"Old Standard TT";font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/old-standard-tt-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Old Standard TT";font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/old-standard-tt-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Old Standard TT";font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/old-standard-tt-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/source-serif-4-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/source-serif-4-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/source-serif-4-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:900;font-display:swap;src:url(assets/fonts/playfair-display-latin-900-normal.woff2) format("woff2")}
@font-face{font-family:"Oswald";font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/oswald-latin-600-normal.woff2) format("woff2")}

/* ---------- Grundwerte ---------- */
:root{
	--vb-papier:#fbfaf6;
	--vb-tinte:#23201d;
	--vb-grau:#5f5852;
	--vb-linie:#d8d2ca;
	--vb-akzent:#a8361f;
	--vb-flaeche:#efebe4;
	--vb-text:"Source Serif 4",Georgia,"Times New Roman",serif;
	--vb-titel:"Old Standard TT",Georgia,"Times New Roman",serif;
	--vb-breite:1180px;
	--vb-rand:clamp(16px,3vw,24px);
	--vp-farbe:var(--vb-akzent);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--vb-papier);color:var(--vb-tinte);font-family:var(--vb-text);font-size:1.0625rem;line-height:1.6;overflow-x:clip}
img,video,iframe{max-width:100%;height:auto}
a{color:var(--vb-tinte);text-decoration-color:var(--vb-akzent);text-underline-offset:.15em;text-decoration-thickness:1px}
a:hover,a:focus{color:var(--vb-akzent)}
:focus-visible{outline:2px solid var(--vb-akzent);outline-offset:2px}
h1,h2,h3,h4,h5,h6{font-family:var(--vb-titel);font-weight:700;line-height:1.15;margin:1.6em 0 .5em;text-wrap:balance}
h1{font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.01em}
h2{font-size:clamp(1.6rem,3vw,2.1rem)}
h3{font-size:1.35rem}
p{margin:0 0 1em}
hr{border:0;border-top:1px solid var(--vb-tinte);margin:2rem 0}
blockquote{margin:1.5em 0;padding:0 1.5em;border-left:1px solid var(--vb-tinte);font-style:italic}
table{border-collapse:collapse;width:100%}
th,td{border-bottom:1px solid var(--vb-linie);padding:.4em .5em;text-align:left}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.vb-sprung{position:absolute;left:-999px;top:0;background:var(--vb-tinte);color:var(--vb-papier);padding:.5em 1em;z-index:100}
.vb-sprung:focus{left:1rem;color:var(--vb-papier)}
.vb-rahmen{max-width:var(--vb-breite);margin:0 auto;padding-left:var(--vb-rand);padding-right:var(--vb-rand)}

/* Kleine Versalzeile (Datumszeile, Rubriken, Fuß) */
.vb-versal{font-family:var(--vb-titel);font-size:.8125rem;text-transform:uppercase;letter-spacing:.12em}

/* ---------- Zeitungskopf ---------- */
.vb-kopf{padding-top:1.25rem}
.vb-datumszeile{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1.5rem;color:var(--vb-grau);border-bottom:1px solid var(--vb-tinte);padding-bottom:.4rem}
.vb-datumszeile a{color:var(--vb-grau);text-decoration:none}
.vb-datumszeile a:hover{color:var(--vb-akzent)}
.vb-datumszeile .vp-kopf{display:inline-flex;flex-wrap:wrap;gap:.35em}
.vb-titelblock{display:block;text-align:center;text-decoration:none;color:var(--vb-tinte);padding:.9rem 0 .5rem}
.vb-titelblock:hover{color:var(--vb-tinte)}
.vb-titel{display:block;line-height:1;overflow-wrap:anywhere}
.vb-untertitel{display:block;font-family:var(--vb-titel);font-style:italic;font-size:1.05rem;color:var(--vb-grau);margin-top:.5rem}
.vb-logo img{max-height:110px;width:auto;display:block;margin:0 auto .5rem}
/* drei Schriften für den Seitentitel (Customizer) */
.vb-kopf-antiqua .vb-titel{font-family:"Playfair Display",Georgia,serif;font-weight:900;font-size:clamp(2.6rem,8vw,5.5rem);letter-spacing:-.01em}
.vb-kopf-versal .vb-titel{font-family:var(--vb-titel);font-weight:700;font-size:clamp(2rem,6.5vw,4.5rem);text-transform:uppercase;letter-spacing:.14em}
.vb-kopf-grotesk .vb-titel{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:clamp(2.8rem,9vw,6rem);text-transform:uppercase;letter-spacing:.04em}
.vb-doppellinie{border-top:3px solid var(--vb-tinte);border-bottom:1px solid var(--vb-tinte);height:6px}

/* ---------- Rubrikenleiste (Menü) ---------- */
.vb-rubriken{border-bottom:1px solid var(--vb-tinte);position:relative}
.vb-rubriken ul{list-style:none;margin:0;padding:0}
.vb-menue{display:flex;flex-wrap:wrap;justify-content:center;gap:.15rem 1.75rem;padding:.5rem 0}
.vb-menue>li{position:relative}
.vb-menue a{display:inline-block;font-family:var(--vb-titel);font-size:.875rem;text-transform:uppercase;letter-spacing:.14em;text-decoration:none;color:var(--vb-tinte);padding:.25rem 0}
.vb-menue a:hover,.vb-menue a:focus,.vb-menue .current-menu-item>a,.vb-menue .current-menu-ancestor>a{color:var(--vb-akzent)}
.vb-menue .menu-item-has-children>a::after{content:" ▾";font-size:.8em}
.vb-menue .sub-menu{display:none;position:absolute;left:50%;transform:translateX(-50%);top:100%;min-width:15rem;background:var(--vb-papier);border:1px solid var(--vb-tinte);outline:1px solid var(--vb-tinte);outline-offset:2px;padding:.5rem 0;z-index:50;text-align:left}
.vb-menue .sub-menu .sub-menu{left:100%;top:-.5rem;transform:none}
.vb-menue .sub-menu li{position:relative}
.vb-menue .sub-menu a{display:block;padding:.35rem 1rem;font-family:var(--vb-text);font-size:1rem;text-transform:none;letter-spacing:0}
.vb-menue .sub-menu .menu-item-has-children>a::after{content:" ▸"}
.vb-menue li:hover>.sub-menu,.vb-menue li:focus-within>.sub-menu,.vb-menue li.is-open>.sub-menu{display:block}
.vp-struktur-inaktiv>a{opacity:.7}
.vb-menue-knopf{display:none;margin:.5rem auto;background:none;border:1px solid var(--vb-tinte);color:var(--vb-tinte);font-family:var(--vb-titel);font-size:.875rem;text-transform:uppercase;letter-spacing:.14em;padding:.45rem 1.1rem;cursor:pointer;min-height:44px}
@media (max-width:781px){
	.vb-datumszeile{justify-content:center;text-align:center}
	.vb-datumszeile .vb-mitte{display:none}
	.vb-menue-knopf{display:block}
	.vb-rubriken .vb-menue{display:none;flex-direction:column;align-items:stretch;gap:0;padding:.25rem 0 .75rem}
	.vb-rubriken.is-open .vb-menue{display:flex}
	.vb-menue a{display:block;padding:.6rem .25rem;border-top:1px solid var(--vb-linie)}
	.vb-menue .sub-menu,.vb-menue .sub-menu .sub-menu{display:none;position:static;transform:none;border:0;outline:0;padding:0 0 0 1rem;min-width:0;background:none}
	.vb-menue li:hover>.sub-menu,.vb-menue li:focus-within>.sub-menu{display:none}
	.vb-menue li.is-open>.sub-menu{display:block}
}

/* ---------- Inhalt ---------- */
.vb-haupt{padding-top:1.75rem;padding-bottom:3.5rem}
.vb-kopfzeile-artikel{text-align:center;margin-bottom:1.5rem}
.vb-dachzeile{color:var(--vb-grau);margin:0 0 .25rem}
.vb-dachzeile a{color:var(--vb-grau);text-decoration:none}
.vb-kopfzeile-artikel h1{margin:.1em 0 .2em}
.vb-unterzeile{font-family:var(--vb-titel);font-style:italic;color:var(--vb-grau);margin:0}
.vb-artikel{border-top:1px solid var(--vb-tinte);padding-top:1.5rem}
.vb-artikel-text{max-width:46rem;margin:0 auto}
.vb-artikel-text>p:first-of-type::first-letter{float:left;font-family:var(--vb-titel);font-size:4.1em;line-height:.85;padding:.08em .12em 0 0;color:var(--vb-akzent)}
.vb-artikelbild{margin:0 0 1.5rem;border:1px solid var(--vb-tinte);padding:4px;background:var(--vb-papier)}
.vb-artikelbild img{display:block;width:100%}
.vb-blocksatz p{text-align:justify;hyphens:auto}
.alignwide{max-width:var(--vb-breite)}
.alignfull{max-width:none}
figcaption,.wp-caption-text{font-style:italic;color:var(--vb-grau);font-size:.9rem;margin-top:.4rem}

/* Rubrikkopf: zwischen doppelter und einfacher Linie */
.vb-rubrik,.vp-gruppe-layout h3,.vp-gruppe-layout h2.vp-berichte-titel{font-family:var(--vb-titel);font-weight:700;font-size:.9375rem;text-transform:uppercase;letter-spacing:.16em;text-align:center;margin:0 0 .9rem;padding:.3rem 0;border-top:3px double var(--vb-tinte);border-bottom:1px solid var(--vb-tinte)}

/* ---------- Übersichten (Berichte, Archiv, Suche) ---------- */
.vb-liste{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 2.25rem}
.vb-liste>article{min-width:0;padding-bottom:1.25rem;border-bottom:1px solid var(--vb-linie)}
.vb-liste>article:first-child{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:1.75rem;align-items:start}
.vb-liste>article:first-child .vb-eintrag-titel{font-size:clamp(1.7rem,3.4vw,2.4rem)}
.vb-liste>article:first-child .vb-eintrag-bild{order:2}
.vb-eintrag-bild{display:block;margin:0 0 .75rem;border:1px solid var(--vb-tinte);padding:3px}
.vb-eintrag-bild img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.vb-eintrag-titel{font-size:1.4rem;margin:0 0 .3rem}
.vb-eintrag-titel a{text-decoration:none}
.vb-eintrag-meta{font-style:italic;color:var(--vb-grau);font-size:.9375rem;margin:0 0 .5rem}
.vb-eintrag-meta .vp-badge,.vb-eintrag-meta .vp-chip{font-style:normal}
.vb-eintrag-auszug p{margin:0;text-align:justify;hyphens:auto}
@media (max-width:900px){.vb-liste{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.vb-liste,.vb-liste>article:first-child{grid-template-columns:minmax(0,1fr)}.vb-liste>article:first-child .vb-eintrag-bild{order:0}}
/* [vp_berichte darstellung="archiv"] nutzt dieselbe Vorlage */
.vp-berichte-archiv{display:grid;gap:2rem 2.25rem}
.vp-berichte-archiv>article:first-child{grid-column:auto;display:block}
.vb-blaettern{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:.75rem;border-top:3px double var(--vb-tinte)}
.vb-blaettern .nav-links{display:flex;flex-wrap:wrap;gap:.5rem 1rem;width:100%;justify-content:center}
.vb-blaettern .page-numbers{font-family:var(--vb-titel);text-decoration:none}
.vb-blaettern .current{color:var(--vb-akzent);font-weight:700}

/* ---------- Vereinsportal: Gruppenseite ---------- */
.vb-theme .vp-gruppe-klassisch .vp-gruppe-layout,body.vp-gruppe-klassisch.vb-theme .vp-gruppe-layout{width:auto;max-width:none;margin:0;padding:0}
.vb-theme .vp-gruppe-pfad{font-family:var(--vb-titel);font-size:.8125rem;text-transform:uppercase;letter-spacing:.12em;color:var(--vb-grau);margin:0 0 1.25rem}
.vb-theme .vp-gruppe-pfad a{color:var(--vb-grau)}
@media (min-width:782px){
	.vb-theme .vp-gruppe-layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:0}
	.vb-theme .vp-gruppe-haupt{padding-right:2rem}
	.vb-theme .vp-gruppe-seite{border-left:1px solid var(--vb-tinte);padding-left:1.75rem}
}
.vb-theme .vp-gruppe-haupt>section,.vb-theme .vp-gruppe-seite>*{margin-bottom:1.75rem}
.vb-theme .vp-untergruppen{list-style:none;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem 1.75rem}
.vb-theme .vp-gruppe-seite .vp-kontakte{border:1px solid var(--vb-tinte);outline:1px solid var(--vb-tinte);outline-offset:3px;padding:1rem 1.1rem;margin:4px 4px 1.75rem;text-align:center}
.vb-theme .vp-gruppe-seite .vp-kontakte h2,.vb-theme .vp-gruppe-seite .vp-kontakte h3{border:0;padding:0;margin:0 0 .4rem}
.vb-theme .vp-kontakt-liste{list-style:none;padding:0;margin:0}
.vb-theme .vp-kontakt-pos{font-style:italic;color:var(--vb-grau)}
.vb-theme .vp-gruppe-seite h2,.vb-theme .vp-gruppe-seite h3,.vb-theme .vp-gruppe-seite .vp-bl-website-titel{text-align:left;border-top:0;padding-top:0}
.vb-theme .vp-bl-web-titel{font-weight:600}
.vb-theme .vp-bl-web-details{font-style:italic}
.vb-theme .vp-bl-web-laeuft{color:var(--vb-akzent)}
.vb-theme .vp-bl-ganz>h2.vp-bl-website-titel{font-size:clamp(1.8rem,4vw,2.6rem);text-transform:none;letter-spacing:0;border:0;text-align:left;padding:0}
.vb-theme .vp-cl-punkte,.vb-theme .vp-bl-schichtliste{border-color:var(--vb-tinte);border-radius:0}
.vb-theme .vp-cl-check{accent-color:var(--vb-akzent)}
.vb-theme .vp-cl-balken{background:linear-gradient(90deg,var(--vb-akzent) var(--vp-cl,0%),var(--vb-linie) var(--vp-cl,0%))}
.vb-theme .wp-element-button,.vb-theme .vp-bl-website .button,.vb-theme button[type=submit]{background:var(--vb-tinte);color:var(--vb-papier);border:1px solid var(--vb-tinte);border-radius:0;font-family:var(--vb-titel);text-transform:uppercase;letter-spacing:.1em;font-size:.875rem;padding:.6em 1.2em;cursor:pointer}
.vb-theme .wp-element-button:hover,.vb-theme button[type=submit]:hover{background:var(--vb-akzent);border-color:var(--vb-akzent);color:#fff}
.vb-theme .vp-bl-absage,.vb-theme .vp-bl-reserve,.vb-theme .vp-cl-leise{background:transparent!important;color:var(--vb-tinte)!important}
.vb-theme .vp-termine-liste,.vb-theme .vp-termine{font-size:1rem}

/* ---------- Kommentare (WordPress) ---------- */
.vb-kommentare{max-width:46rem;margin:3rem auto 0}
.vb-kommentare ol{list-style:none;padding:0}
.vb-kommentare textarea,.vb-kommentare input[type=text],.vb-kommentare input[type=email],.vb-kommentare input[type=url]{width:100%;font:inherit;border:1px solid var(--vb-tinte);background:#fff;padding:.4em}

/* ---------- Formulare und Suche ---------- */
input,select,textarea{font:inherit;color:inherit}
.search-form{display:flex;gap:.5rem;flex-wrap:wrap}
.search-form input[type=search]{flex:1 1 14rem;border:1px solid var(--vb-tinte);background:#fff;padding:.5em}

/* ---------- Fuß ---------- */
.vb-fuss{padding-bottom:1.75rem}
.vb-fuss-zeile{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;padding-top:.6rem;color:var(--vb-grau)}
.vb-fuss-zeile a{color:var(--vb-grau);text-decoration:none}
.vb-fuss-zeile a:hover{color:var(--vb-akzent)}
.vb-fussmenue{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin:0;padding:0}
.vb-fuss .widget-area{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.5rem;padding:1.5rem 0}

@media print{.vb-rubriken,.vb-menue-knopf,.vb-fussmenue{display:none}body{background:#fff}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- Vereinsportal: Termine und Kleinigkeiten im Zeitungsstil ---------- */
.vb-theme .vp-gruppe-seite .vp-kontakte h2{font-family:var(--vb-titel);font-weight:700;font-size:.9375rem;text-transform:uppercase;letter-spacing:.16em}
.vb-theme .vp-gruppe-termine::before{content:"Termine";display:block;font-family:var(--vb-titel);font-weight:700;font-size:.9375rem;text-transform:uppercase;letter-spacing:.16em;padding-bottom:.3rem;margin-bottom:.6rem;border-bottom:1px solid var(--vb-tinte)}
.vb-theme .vp-termin-link{background:none;border:0;border-bottom:1px solid var(--vb-linie);border-radius:0;padding:.5em 0;transition:none}
.vb-theme .vp-termin-link:hover,.vb-theme .vp-termin-link:focus-within{background:none;box-shadow:none}
.vb-theme .vp-termine-karten{gap:0}
.vb-theme .vp-datumblock{border-radius:0}
.vb-theme .vp-termine-karten .vp-titel{font-family:var(--vb-titel);font-size:1.15em}
.vb-theme .vp-badge,.vb-theme .vp-chip-wehr{background:none!important;color:var(--vb-grau)!important;font-style:italic;font-size:.9em;padding:0;border-radius:0}
.vb-theme .vp-berichte .vp-bericht-bild{border:1px solid var(--vb-tinte);padding:2px;border-radius:0}
.vb-theme .vp-berichte .vp-titel{font-family:var(--vb-titel);font-size:1.2em}
