/*
Theme Name: KSV Nesselblatt
Description: Theme für den Kreisschützenverband Nesselblatt. Schützengrün und Gold, Schriften lokal eingebunden. Benötigt das Plugin „KSV Nesselblatt – Inhalte“.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Author: Kreisschützenverband Nesselblatt
License: GPL-2.0-or-later
Text Domain: ksv
*/

@font-face{font-family:"KSV Display";src:url(assets/fonts/bricolage-grotesque.woff) format("woff");font-weight:500 800;font-style:normal;font-display:swap}
@font-face{font-family:"KSV Text";src:url(assets/fonts/instrument-sans.woff) format("woff");font-weight:400 700;font-style:normal;font-display:swap}

/* Layout: schwebende Navigation, tannengrüne Bühne mit Ringscheibe und Logo, darunter luftige Karten. Schützengrün trägt, Gold zeichnet aus, Rot bleibt dem Scheibenzentrum und den Meisterschaften vorbehalten. */
:root{
  --bg:#f4f3ec; --surface:#ffffff; --soft:#e8e9df; --ink:#14241c; --muted:#5a6a60; --line:#d9dccf;
  --stage:#14402f; --stage-2:#1f5a41; --stage-ink:#f7f3e6; --stage-mut:#b8cdbf;
  --green:#1c5a41; --gold:#a8822a; --gold-bright:#c8a24a; --red:#b3202a; --on-red:#ffffff;
  --mark:#ffe9a8; --mark-ink:#5a4300;
  --shadow:0 1px 2px rgba(20,36,28,.06),0 12px 32px -14px rgba(20,36,28,.2);
  --display:"KSV Display","Arial Narrow",system-ui,sans-serif; --body:"KSV Text","Segoe UI",system-ui,sans-serif;
  --r:20px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0c1511; --surface:#15211b; --soft:#1c2a23; --ink:#eef2ea; --muted:#9db0a4; --line:#27372e;
  --stage:#123a2b; --stage-2:#1c543d; --stage-ink:#f7f3e6; --stage-mut:#b8cdbf;
  --green:#7fcaa3; --gold:#d9b560; --gold-bright:#d9b560; --red:#e2525c; --on-red:#1c0306;
  --mark:#4a3d10; --mark-ink:#ffe39a;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px -14px rgba(0,0,0,.6); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0c1511; --surface:#15211b; --soft:#1c2a23; --ink:#eef2ea; --muted:#9db0a4; --line:#27372e;
  --stage:#123a2b; --stage-2:#1c543d; --stage-ink:#f7f3e6; --stage-mut:#b8cdbf;
  --green:#7fcaa3; --gold:#d9b560; --gold-bright:#d9b560; --red:#e2525c; --on-red:#1c0306;
  --mark:#4a3d10; --mark-ink:#ffe39a;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px -14px rgba(0,0,0,.6); color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font:400 17px/1.55 var(--body);-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:3px}
a:focus-visible,button:focus-visible{outline:3px solid var(--gold-bright);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-family:var(--display);line-height:1.05;text-wrap:balance;margin:0;letter-spacing:-.02em}
h1{font-size:clamp(2.4rem,7vw,4.4rem);font-weight:800}
h2{font-size:clamp(1.5rem,3.2vw,2.1rem);font-weight:800}
h3{font-size:1.2rem;font-weight:600;letter-spacing:-.01em}
p{margin:0}
.num,time{font-variant-numeric:tabular-nums}
.mut{color:var(--muted)}
.wrap{max-width:72rem;margin-inline:auto;padding-inline:20px}

.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;padding-block:12px;background:color-mix(in srgb,var(--bg) 84%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.bar .wrap{display:flex;align-items:center;gap:16px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font:800 1.15rem var(--display);letter-spacing:-.02em;margin-right:auto;min-width:0}
.brand svg{width:44px;height:44px;flex:none}
.brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav{display:flex;gap:2px;list-style:none;margin:0;padding:4px;background:var(--surface);border-radius:999px;box-shadow:var(--shadow)}
.nav a{display:block;padding:8px 16px;border-radius:999px;text-decoration:none;font-weight:600;font-size:.97rem;color:var(--muted);transition:background .15s,color .15s}
.nav a:hover{color:var(--ink);background:var(--soft)}
.nav a[aria-current="page"]{background:var(--stage);color:var(--stage-ink)}
.burger{display:none;border:0;background:var(--stage);color:var(--stage-ink);font:600 .95rem var(--body);padding:9px 16px;border-radius:999px;cursor:pointer}
@media (max-width:760px){
  .burger{display:block}
  .nav{display:none;position:absolute;left:20px;right:20px;top:calc(100% - 2px);flex-direction:column;border-radius:var(--r);padding:8px}
  .nav.open{display:flex}
  .nav a{padding:11px 14px;font-size:1.05rem}
}

main{padding-block:12px 72px}
section.blk{display:flex;flex-direction:column;gap:20px}
.head{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:baseline;justify-content:space-between}
.more{font-weight:600;text-decoration:none;color:var(--green);white-space:nowrap}
.more:hover{text-decoration:underline}

.stage{position:relative;overflow:hidden;border-radius:calc(var(--r) + 8px);background:radial-gradient(120% 140% at 85% 20%,var(--stage-2),var(--stage) 62%);color:var(--stage-ink);padding:clamp(28px,6vw,72px)}
.stage::before{content:"";position:absolute;inset:10px;border:1px solid color-mix(in srgb,var(--gold-bright) 45%,transparent);border-radius:calc(var(--r) + 0px);pointer-events:none}
.stage.sm{padding:clamp(24px,4vw,48px)}
.stage.sm h1{font-size:clamp(2rem,5.4vw,3.4rem)}
.stage .in{position:relative;z-index:1;max-width:38rem;display:flex;flex-direction:column;gap:18px}
.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-bright)}
.stage .lead{font-size:clamp(1.05rem,2vw,1.25rem);color:var(--stage-mut);max-width:33rem}
.stage h1 em{font-style:normal;color:var(--gold-bright)}
.target{position:absolute;right:-70px;top:50%;width:min(560px,70vw);aspect-ratio:1;transform:translateY(-50%);pointer-events:none}
.stage.sm .target{width:340px;right:-110px;opacity:.8}
.target circle{fill:none;stroke:var(--stage-ink);stroke-opacity:.17;stroke-width:1.2}
.target .blk{fill:var(--stage-ink);fill-opacity:.05}
.target .ten{fill:var(--gold-bright);stroke:none}
.target text{fill:var(--stage-ink);fill-opacity:.4;font:600 9px var(--body);text-anchor:middle}
@media (prefers-reduced-motion:no-preference){.target .ten{animation:pulse 3.2s ease-in-out infinite;transform-origin:150px 150px}}
@keyframes pulse{50%{transform:scale(1.18)}}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.btn{display:inline-block;padding:12px 22px;border-radius:999px;font-weight:700;text-decoration:none;background:var(--gold-bright);color:#1d1705;transition:transform .15s}
.btn.ghost{background:transparent;color:var(--stage-ink);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--stage-ink) 40%,transparent)}
.btn:hover{transform:translateY(-2px)}
@media (max-width:700px){.target{opacity:.5;right:-45%;top:auto;bottom:-34%;transform:none;width:120%}.stage.sm .target{display:none}}

.about{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:clamp(24px,5vw,56px);align-items:center}
.about svg{width:100%;height:auto;max-width:220px;filter:drop-shadow(0 14px 22px rgba(20,36,28,.25))}
.about .txt{display:flex;flex-direction:column;gap:14px;max-width:40rem}
.about p{font-size:1.1rem;color:var(--muted)}
@media (max-width:640px){.about{grid-template-columns:minmax(0,1fr)}.about svg{max-width:150px}}
.note{background:var(--soft);border-radius:var(--r);padding:16px 20px;max-width:52rem}

.dates{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:14px}
.dates li{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:14px;display:flex;gap:14px;align-items:center;min-width:0}
.day{flex:none;width:62px;height:66px;border-radius:14px;background:var(--stage);color:var(--stage-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.day b{font:800 1.6rem/1 var(--display)}
.day small{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-bright);margin-top:3px}
.dates .km .day{background:var(--red);color:var(--on-red)}
.dates .km .day small{color:inherit;opacity:.85}
.day.open{background:var(--soft);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.day.open small{color:var(--muted)}
.dates .kreis .day.open{background:var(--gold-bright);color:#1d1705;box-shadow:none}
.dates .kreis .day.open small{color:inherit}
.dt{min-width:0;display:flex;flex-direction:column;gap:2px}
.dt b{font-weight:600;line-height:1.25}
.dt span{color:var(--muted);font-size:.9rem}
.month{font:800 1.3rem var(--display);margin:26px 0 12px}
.month:first-child{margin-top:0}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters button{font:600 .95rem var(--body);padding:8px 16px;border:0;background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;box-shadow:var(--shadow)}
.filters button[aria-pressed="true"]{background:var(--stage);color:var(--stage-ink)}

.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:14px}
.tile{display:flex;flex-direction:column;gap:8px;background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:22px;border-top:4px solid var(--gold-bright)}
.tile p{color:var(--muted);font-size:.97rem}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{display:flex;align-items:center;gap:9px;padding:6px 16px 6px 6px;background:var(--surface);border-radius:999px;box-shadow:var(--shadow);text-decoration:none;font-weight:600;font-size:.95rem;transition:transform .15s}
.chip:hover{transform:translateY(-2px)}
.chip i{width:34px;height:34px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--stage);color:var(--gold-bright);font:800 .85rem var(--display);font-style:normal;font-variant-numeric:tabular-nums}

.people{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(17.5rem,1fr));gap:14px}
.person{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:18px;display:flex;gap:14px;align-items:flex-start;min-width:0}
.person>div:last-child{min-width:0;display:flex;flex-direction:column;gap:1px}
.av{flex:none;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--stage);color:var(--gold-bright);font:800 1rem var(--display)}
.vacant{box-shadow:none;background:transparent;border:1.5px dashed var(--line)}
.vacant .av{background:var(--soft);color:var(--muted)}
.vacant .name{color:var(--muted)}
.role{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.name{font:600 1.15rem/1.25 var(--display);margin-bottom:4px}
.ph,.mail{font-size:.92rem;color:var(--muted);overflow-wrap:anywhere}

.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:16px}
.verein{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:20px;display:flex;gap:16px;align-items:flex-start;min-width:0}
.vph{width:52px;height:52px;flex:none;display:grid;place-items:center;background:var(--stage);border-radius:50%;box-shadow:inset 0 0 0 3px var(--stage),inset 0 0 0 4.5px var(--gold-bright);font:800 1.05rem var(--display);color:var(--gold-bright)}
.vbody{min-width:0;display:flex;flex-direction:column;gap:2px}
.vfull{color:var(--muted);font-size:.92rem}
dl{margin:10px 0 0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;font-size:.92rem}
dt{color:var(--muted)}
dd{margin:0;overflow-wrap:anywhere}

.contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:16px}
.card{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:24px;display:flex;flex-direction:column;gap:6px}
.card h2{font-size:1.3rem;margin-bottom:4px}
.big{font:600 1.2rem var(--display);overflow-wrap:anywhere}
form.kf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:clamp(18px,3vw,28px);max-width:46rem}
form.kf label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:.95rem;min-width:0}
form.kf .full{grid-column:1/-1}
form.kf input,form.kf select,form.kf textarea{font:400 1rem var(--body);padding:11px 13px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
form.kf input:focus,form.kf select:focus,form.kf textarea:focus{outline:3px solid var(--gold-bright);outline-offset:1px;border-color:transparent}
form.kf .chk{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}
form.kf .chk input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:var(--stage)}
form.kf button{justify-self:start;border:0;cursor:pointer;font:700 1rem var(--body);padding:12px 26px;border-radius:999px;background:var(--stage);color:var(--stage-ink)}
@media (max-width:560px){form.kf{grid-template-columns:minmax(0,1fr)}}
.prose{max-width:40rem;display:flex;flex-direction:column;gap:8px}
.prose h2{font-size:1.25rem;margin-top:14px}

a.tile{text-decoration:none;color:var(--ink);transition:transform .15s}
a.tile:hover{transform:translateY(-3px)}
.tile .go{margin-top:auto;padding-top:6px;font-weight:700;color:var(--green);font-size:.95rem}
.wkcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:14px}
.pill{align-self:flex-start;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:999px;background:var(--soft);color:var(--muted)}
.pill.live{background:var(--stage);color:var(--stage-ink)}
.pill.live::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gold-bright);margin-right:6px;vertical-align:1px}
.detail{display:flex;flex-direction:column;gap:18px}
.detail .dh{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;justify-content:space-between}
.groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(21rem,1fr));gap:16px;align-items:start}
.grp{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:18px 20px;display:flex;flex-direction:column;gap:6px;min-width:0}
.grp h3{font-size:1.1rem;display:flex;gap:10px;align-items:baseline}
.grp h3 .disc{font:800 .85rem var(--display);color:var(--gold);font-variant-numeric:tabular-nums}
.flist{list-style:none;margin:0;padding:0}
.flist li{border-top:1px solid var(--line)}
.flist a{display:flex;gap:12px;align-items:center;padding:10px 0;text-decoration:none;min-width:0}
.flist a:hover b{text-decoration:underline}
.flist .ft{flex:none;font:800 .66rem var(--display);letter-spacing:.06em;padding:5px 7px;border-radius:7px;background:var(--red);color:#fff}
.flist b{font-weight:600;min-width:0;overflow-wrap:anywhere}
.flist small{margin-left:auto;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.new{font-size:.7rem;font-weight:800;letter-spacing:.05em;padding:2px 7px;border-radius:999px;background:var(--gold-bright);color:#1d1705;margin-left:6px;vertical-align:2px}
.empty{color:var(--muted);padding:10px 0;border-top:1px solid var(--line)}
footer.site{background:var(--stage);color:var(--stage-mut);padding-block:40px 48px;font-size:.95rem}
footer.site .wrap{display:flex;flex-wrap:wrap;gap:20px 40px;justify-content:space-between;align-items:center}
.fb{display:flex;gap:16px;align-items:center}
.fb svg{width:64px;height:64px;flex:none}
footer.site b{display:block;font:800 1.3rem var(--display);color:var(--stage-ink);letter-spacing:-.02em}
footer.site a{color:var(--stage-ink)}
.fl{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}

/* ---------- WordPress ---------- */
main.wrap{display:flex;flex-direction:column;gap:56px}
body.admin-bar .bar{top:calc(32px + env(safe-area-inset-top,0px))}
@media (max-width:782px){body.admin-bar .bar{top:calc(46px + env(safe-area-inset-top,0px))}}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:50;background:var(--stage);color:var(--stage-ink);padding:10px 16px;border-radius:999px;font-weight:700}
.skip:focus{top:12px}
.nav .current-menu-item>a,.nav .current_page_item>a{background:var(--stage);color:var(--stage-ink)}
.nav li{list-style:none}
.entry{max-width:44rem;display:flex;flex-direction:column;gap:14px}
.entry>*{margin:0}
.entry h2{font-size:1.4rem;margin-top:12px}
.entry h3{margin-top:8px}
.entry a{color:var(--green)}
.entry ul,.entry ol{padding-left:1.3rem}
.entry .wp-block-shortcode{max-width:none}
.entry-wide{max-width:none}
.about .entry p{font-size:1.1rem;color:var(--muted)}
.empty-state{background:var(--soft);border-radius:var(--r);padding:20px 22px;color:var(--muted);max-width:44rem}
.wkcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:14px}
.wkc{display:flex;flex-direction:column;gap:8px;background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:20px;border:2px solid transparent;text-decoration:none;color:var(--ink);transition:transform .15s,border-color .15s}
.wkc:hover{transform:translateY(-3px)}
.wkc[aria-current="true"]{border-color:var(--stage);background:color-mix(in srgb,var(--surface) 88%,var(--gold-bright))}
.wkc h3{font-size:1.25rem}
.wkc .meta{color:var(--muted);font-size:.9rem}
.kf-msg{border-radius:14px;padding:12px 16px;margin:0 0 14px;max-width:46rem}
.kf-msg.ok{background:var(--stage);color:var(--stage-ink)}
.kf-msg.err{background:color-mix(in srgb,var(--red) 14%,var(--surface));color:var(--ink)}
.kf-msg ul{margin:0;padding-left:1.1rem}
.kf-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.filters a{font:600 .95rem var(--body);padding:8px 16px;background:var(--surface);color:var(--muted);border-radius:999px;box-shadow:var(--shadow);text-decoration:none}
.filters a[aria-current="true"]{background:var(--stage);color:var(--stage-ink)}
.verein .site{font-size:.92rem}
.verein img.wappen{width:56px;height:56px;object-fit:contain;flex:none}
.flist a[target] small::after{content:""}
.fl-menu{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;margin:0;padding:0}
a.ph{display:block;text-decoration:none}
a.ph:hover{color:var(--ink)}
a.big{text-decoration:none;color:var(--ink)}
.about>svg{width:100%;height:auto;max-width:220px;filter:drop-shadow(0 14px 22px rgba(20,36,28,.25))}
@media (max-width:640px){.about>svg{max-width:150px}}
