/* =====================================================================
   fs-basis.css · Gestaltung der öffentlichen Seiten der Fachschaft
   Agrarwissenschaften (Entwurf B, Oktober 2026)
   Gilt für fs.bauernschwoof.de (WordPress), k.bauernschwoof.de,
   legal.bauernschwoof.de und stellen.bauernschwoof.de.

   Grundsätze (Markenhandbuch):
   - Papier und Tinte, Weidegrün nur für Hover, Unterstrich, einzelne Felder.
   - Archivo als Grundschrift, Piazzolla für Lesetext, Stack Sans Notch
     nur für Veranstaltungsnamen. Fell und Maul gibt es hier nicht.
   - Keine fremden Server, keine Cookies.
   Aufbau einer Seite:
     <body class="fs"> <div class="bau"> <aside class="leiste">…</aside>
     <main id="inhalt">…</main> </div> … </body>
   ===================================================================== */
@font-face{font-family:Archivo;src:url(schriften/archivo.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:Archivo;font-style:italic;src:url(schriften/archivo-italic.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:Piazzolla;src:url(schriften/piazzolla.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:Piazzolla;font-style:italic;src:url(schriften/piazzolla-italic.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Stack Sans Notch";src:url(schriften/stack-sans-notch.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  --tinte:#000;--papier:#fff;--grau:#6b6b6b;--linie:#DCDCDC;--hell:#F3F3F3;--ak:#2F4A23;
  --rand:clamp(16px,2.6vw,40px);--zu:68px;--auf:300px;
  --klapp:.9s cubic-bezier(.65,.05,.25,1);--weich:cubic-bezier(.2,.7,.2,1);
  --lese:Piazzolla,Georgia,serif;--grund:Archivo,system-ui,-apple-system,"Segoe UI",sans-serif;--fest:"Stack Sans Notch",Archivo,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body.fs{margin:0;font-family:var(--grund);font-size:17px;line-height:1.5;color:var(--tinte);background:var(--papier);overflow-x:hidden}
.fs a{color:inherit;text-decoration:none}
.fs button{font:inherit;color:inherit;cursor:pointer}
.fs button:where(:not(.knopf)){background:none;border:0;padding:0}
.fs img{max-width:100%;height:auto}
.fs :focus-visible{outline:2px solid var(--ak);outline-offset:3px}
.nur-vorlesen{position:absolute!important;left:0;top:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sprung{position:absolute;left:12px;top:-60px;z-index:100;background:var(--tinte);color:var(--papier)!important;padding:10px 14px}
.sprung:focus{top:12px}
.kuh{display:inline-block;width:34px;aspect-ratio:240/208;background:currentColor;flex:0 0 auto;-webkit-mask:url(kuhmaske.png) center/contain no-repeat;mask:url(kuhmaske.png) center/contain no-repeat}
.meta{font-size:13px;color:var(--grau)}
.zahl{font-variant-numeric:tabular-nums}
.u{background:linear-gradient(var(--ak),var(--ak)) 0 100%/0 2px no-repeat;transition:background-size .5s var(--weich)}
a:hover .u,a:focus-visible .u,button:hover .u,a.u:hover,a.u:focus-visible{background-size:100% 2px}
.unterstrichen{border-bottom:1px solid currentColor}
.kl{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin:0 0 16px;display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.kl span{font-weight:400;letter-spacing:0;text-transform:none;font-size:13px;color:var(--grau)}
.kl2{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.ev-name{font-family:var(--fest);font-weight:600;letter-spacing:-.01em}

/* ---------- Rücken: schmale Leiste, klappt langsam auf, schiebt den Inhalt ---------- */
.bau{display:grid;grid-template-columns:var(--zu) minmax(0,1fr);min-height:100vh;overflow-x:clip}
/* overflow-x:clip (nicht hidden): der beim Aufklappen verschobene Inhalt erzeugt keinen
   waagerechten Überlauf mehr, und .bau wird kein Scroll-Container – die Leiste bleibt sticky. */
.leiste{position:sticky;top:0;height:100vh;z-index:20}
.ruecken{position:absolute;inset:0 auto 0 0;width:var(--zu);background:var(--papier);border-right:1px solid var(--tinte);overflow:hidden;transition:width var(--klapp)}
.leiste:hover .ruecken,.leiste:focus-within .ruecken{width:var(--auf);transition-delay:.12s}
.innen{width:var(--auf);height:100%;display:flex;flex-direction:column;gap:26px;padding:22px 18px 22px 17px;overflow-y:auto;overflow-x:hidden}
.innen .oben{display:flex;align-items:flex-start;gap:16px;font-size:13px;line-height:1.5}
.innen .oben .kuh{margin-top:2px}
.spr{opacity:0;transition:opacity .4s;display:flex;flex-wrap:wrap;gap:0 6px}
.spr a,.spr button{white-space:nowrap}
.spr [aria-current],.spr [aria-pressed="true"]{border-bottom:1px solid currentColor}
.senkrecht{position:absolute;left:0;top:92px;width:var(--zu);display:flex;justify-content:center;transition:opacity .35s;pointer-events:none}
.senkrecht span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:24px;font-weight:600;letter-spacing:-.02em;white-space:nowrap}
.titel{display:block;font-size:30px;line-height:1.03;letter-spacing:-.03em;font-weight:600;margin:0;opacity:0;transform:translateX(-14px);transition:opacity .45s,transform .7s var(--weich);hyphens:manual}
.nav{display:grid;gap:2px;font-size:15px;margin:4px 0 0;padding:0;list-style:none;opacity:0;transition:opacity .3s}
.nav a{display:flex;gap:14px;padding:3px 0;white-space:nowrap}
.nav a b{font-weight:400;color:var(--grau);font-size:11px;width:18px;padding-top:3px;text-align:center;flex:0 0 18px}
.nav a span{opacity:0;transform:translateX(-10px);transition:opacity .4s,transform .6s var(--weich)}
.nav a[aria-current] b{color:var(--ak);font-weight:700}
.nav a[aria-current] .u{background-size:100% 2px}
.nav .unter{display:grid;gap:0;margin:0 0 6px 32px;padding:0;list-style:none;font-size:14px}
.nav .unter a{padding:2px 0;color:var(--grau)}
.leiste-fuss{margin-top:auto;font-size:13px;color:var(--grau);opacity:0;transition:opacity .4s}
.leiste:hover .spr,.leiste:hover .titel,.leiste:hover .nav,.leiste:hover .nav a span,.leiste:hover .leiste-fuss,
.leiste:focus-within .spr,.leiste:focus-within .titel,.leiste:focus-within .nav,.leiste:focus-within .nav a span,.leiste:focus-within .leiste-fuss{opacity:1;transform:none;transition-delay:.35s}
.leiste:hover .senkrecht,.leiste:focus-within .senkrecht{opacity:0}
.nav li:nth-child(2) a span{transition-delay:.38s}.nav li:nth-child(3) a span{transition-delay:.41s}.nav li:nth-child(4) a span{transition-delay:.44s}
.nav li:nth-child(5) a span{transition-delay:.47s}.nav li:nth-child(6) a span{transition-delay:.5s}.nav li:nth-child(7) a span{transition-delay:.53s}.nav li:nth-child(8) a span{transition-delay:.56s}
main#inhalt{padding:22px var(--rand) 140px;min-width:0;transition:transform var(--klapp)}
.bau:has(.leiste:hover) main#inhalt,.bau:has(.leiste:focus-within) main#inhalt{transform:translateX(calc(var(--auf) - var(--zu)));transition-delay:.12s}
.menu-knopf{display:none}

/* ---------- Bausteine ---------- */
.such{display:flex;justify-content:space-between;align-items:center;width:100%;border-bottom:1px solid var(--tinte);padding:6px 0 10px;font-size:15px;color:var(--grau);text-align:left}
.such kbd{font-family:inherit;border:1px solid var(--linie);padding:0 6px;font-size:12px}
.pfad{font-size:13px;color:var(--grau);margin-top:26px}.pfad a{border-bottom:1px solid var(--linie)}
.satz{font-size:clamp(32px,4.6vw,74px);line-height:1.03;letter-spacing:-.03em;font-weight:500;margin:76px 0 72px;max-width:14em;text-wrap:balance;hyphens:auto}
.satz.klein{font-size:clamp(30px,3.8vw,58px);margin:40px 0 56px}
.satz b,.satz strong{font-weight:700}
.stets{background:linear-gradient(var(--ak),var(--ak)) 0 92%/100% 3px no-repeat}
.lesen{max-width:38em}
.lesen p,.lese{font-family:var(--lese);font-size:21px;line-height:1.5;margin:0 0 18px}
.zweispalt{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:56px;margin-bottom:100px;align-items:start}
.knopf{display:inline-block;background:var(--tinte);color:var(--papier)!important;padding:14px 22px;font-size:15px;border:1px solid var(--tinte);transition:background .3s,border-color .3s}
.knopf.hell{background:var(--papier);color:var(--tinte)!important}
.knopf:hover{background:var(--ak);border-color:var(--ak);color:#fff!important}
.pfeil{font-size:15px;border-bottom:2px solid var(--ak)}
/* Pfeile: eine Zeichnung (pfeil.svg, Strich 2 bei 16, eckige Enden, offene Spitze), gedreht je Richtung.
   <span class="pf pf--weiter" aria-hidden="true"></span>  weiter (intern) · pf--raus (extern) · pf--zurueck · pf--runter · pf--hoch
   Farbe = Schriftfarbe, Größe = 1em. Ein Textpfeil im Span bleibt nur als Ersatz ohne CSS sichtbar. */
.pf{display:inline-block;position:relative;width:1em;height:1em;vertical-align:-.15em;flex:none;overflow:hidden;text-indent:2em;white-space:nowrap;line-height:1}
.pf::before{content:"";position:absolute;inset:0;background:currentColor;-webkit-mask:url(pfeil.svg) center/100% 100% no-repeat;mask:url(pfeil.svg) center/100% 100% no-repeat}
.pf--raus::before{transform:rotate(-45deg)}.pf--zurueck::before{transform:rotate(180deg)}.pf--runter::before{transform:rotate(90deg)}.pf--hoch::before{transform:rotate(-90deg)}
.nav a b .pf{font-size:14px;vertical-align:-3px}
@media (forced-colors:active){.pf::before{forced-color-adjust:none}}
.tab{display:grid;grid-template-columns:8em 1fr;margin:0 0 30px;border-top:1px solid var(--tinte)}
.tab dt,.tab dd{margin:0;padding:10px 0;border-bottom:1px solid var(--linie)}.tab dt{color:var(--grau);font-size:15px}
.fuss{border-top:1px solid var(--tinte);padding-top:18px;margin-top:40px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--grau)}
.fuss a{border-bottom:1px solid var(--linie)}.fuss a:hover{border-color:var(--ak);color:var(--tinte)}
/* Begriffe: Einschub im Text */
.begriff{border-bottom:1px dotted currentColor;cursor:help}
.begriff:hover,.begriff:focus,.begriff[aria-expanded="true"]{border-bottom:2px solid var(--ak);outline:none}
.einschub{display:block;font-family:var(--grund);font-size:15px;line-height:1.45;border-left:2px solid var(--ak);padding:6px 0 6px 14px;margin:-4px 0 20px;animation:ein .45s var(--weich)}
.einschub[hidden]{display:none}
.einschub b{font-family:var(--lese);font-style:italic;font-weight:400;font-size:18px;margin-right:6px}
@keyframes ein{from{opacity:0;transform:translateY(-4px)}}
/* Bilder: grau, unter dem Zeiger in Farbe (Taschenlampe); data-bilder="bunt" schaltet ab */
@property --r{syntax:"<length>";inherits:true;initial-value:0px}
.bild{position:relative;overflow:hidden;background:var(--hell)}
.bild > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.bild .grau{filter:grayscale(1) contrast(1.08) brightness(1.04)}
.bild .farbe{-webkit-mask:radial-gradient(circle var(--r) at var(--mx,50%) var(--my,50%),#000 60%,transparent 100%);mask:radial-gradient(circle var(--r) at var(--mx,50%) var(--my,50%),#000 60%,transparent 100%);transition:--r .5s}
.lampe:hover .bild .farbe,.bild.lampe:hover .farbe{--r:150px}
[data-bilder="bunt"] .bild .grau,.bild.bunt .grau{filter:none}
[data-bilder="bunt"] .bild .farbe,.bild.bunt .farbe{display:none}
/* Touch-Geräte (Handy, Tablet) haben keinen Zeiger für die Taschenlampe: dort immer bunt */
@media (hover:none){.bild .grau{filter:none}.bild .farbe{display:none}}
.bild .ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--grau);font-size:13px;text-align:center;padding:20px}
.bildnachweis{font-size:12px;color:var(--grau);margin-top:4px}
/* Zeiger nach der Kunsthalle */
.zeiger{position:fixed;left:0;top:0;width:86px;height:86px;margin:-43px 0 0 -43px;border-radius:50%;background:var(--tinte);color:var(--papier);display:grid;place-items:center;font-size:13px;pointer-events:none;z-index:50;transform:scale(0);transition:transform .3s var(--weich)}
.zeiger.an{transform:scale(1)}
/* Formulare */
.formular{display:grid;gap:20px}
.formular label{display:grid;gap:6px;font-size:15px}
.formular select,.formular textarea,.formular input:not([type=checkbox]):not([type=radio]):not([type=file]){font:inherit;font-size:18px;border:0;border-bottom:1px solid var(--tinte);padding:8px 0;background:transparent;color:inherit;border-radius:0;width:100%}
.formular textarea{border:1px solid var(--tinte);padding:10px;resize:vertical}
.formular select:focus,.formular textarea:focus,.formular input:focus{outline:2px solid var(--ak);outline-offset:2px}
.formular .knopf{justify-self:start}
.meldung{border-left:2px solid var(--ak);padding:8px 0 8px 14px;margin:0 0 20px;font-size:16px}
.meldung.fehler{border-color:#B00020}
.honig{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* ---------- Frag die Fachschaft ---------- */
.frag{position:fixed;inset:0;background:var(--papier);z-index:60;display:none;padding:26px var(--rand) 60px;overflow:auto}
.frag.auf{display:block;animation:fragauf .5s var(--weich)}
@keyframes fragauf{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
.frag .kz{display:flex;justify-content:space-between;font-size:14px}
.frag .feld{position:relative}
.frag input{width:100%;border:0;border-bottom:2px solid var(--tinte);background:transparent;color:var(--tinte);font:inherit;font-size:clamp(28px,4.6vw,68px);letter-spacing:-.03em;padding:40px 0 10px;outline:none;border-radius:0}
.frag .geist{position:absolute;left:0;bottom:12px;font-size:clamp(28px,4.6vw,68px);letter-spacing:-.03em;color:var(--linie);pointer-events:none;white-space:nowrap;overflow:hidden;max-width:100%}
.frag .geist i{font-style:normal;color:transparent}
.frag .hilfe{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:10px 0 34px;font-size:13px;color:var(--grau)}
.frag .vor{display:flex;gap:8px;flex-wrap:wrap}
.frag .vor button{border:1px solid var(--tinte);padding:5px 11px;font-size:14px}
.frag .vor button:hover{background:var(--tinte);color:var(--papier)}
.frag .ant{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:56px}
.frag .eins .art{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ak);margin-bottom:8px}
.frag .eins h3{font-size:clamp(24px,2.4vw,34px);font-weight:500;letter-spacing:-.02em;margin:0 0 12px;line-height:1.1}
.frag .eins p{font-family:var(--lese);font-size:21px;line-height:1.45;margin:0 0 16px}
.frag .eins .los{display:inline-block;border-bottom:2px solid var(--ak);margin-right:18px}
.frag .tag{position:relative;height:30px;border-bottom:1px solid var(--tinte);margin:16px 0 26px;max-width:420px}
.frag .tag i{position:absolute;bottom:0;height:10px;background:var(--ak)}
.frag .tag b{position:absolute;bottom:0;width:1px;height:30px;background:var(--tinte)}
.frag .tag span{position:absolute;bottom:-18px;font-size:10px;color:var(--grau);transform:translateX(-50%)}
.frag .liste div{display:grid;grid-template-columns:8em 1fr;padding:8px 0;border-top:1px solid var(--linie);font-size:16px}
.frag .liste div span{color:var(--grau);font-size:14px}
.frag .gut{margin-top:26px;font-size:13px;color:var(--grau);display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.frag .gut button{border:1px solid var(--linie);padding:3px 10px}
.frag .weitere h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin:0 0 8px;color:var(--grau)}
.frag .weitere button{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;border-top:1px solid var(--linie);padding:10px 0;font-size:16px}
.frag .weitere button span{font-size:12px;color:var(--grau);white-space:nowrap}
.frag .weitere button.aktiv,.frag .weitere button:hover{color:var(--ak)}
.frag .nicht{margin-top:24px;border-top:1px solid var(--tinte);padding-top:12px;font-size:14px;color:var(--grau)}
.frag .nicht a{color:var(--tinte);border-bottom:1px solid var(--tinte)}
.frag mark{background:none;color:inherit;box-shadow:inset 0 -.32em 0 rgba(47,74,35,.22)}

/* ---------- Handy ---------- */
@media (max-width:860px){
  .bau{display:block}
  .leiste{position:sticky;top:0;height:auto}
  .ruecken,.leiste:hover .ruecken,.leiste:focus-within .ruecken{position:relative;width:auto;height:auto;border-right:0;border-bottom:1px solid var(--tinte);overflow:visible}
  .innen{width:auto;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px 16px;gap:12px;overflow:visible}
  .innen .oben{order:3;flex-basis:100%;display:none}
  .senkrecht,.leiste-fuss{display:none}
  .titel{opacity:1;transform:none;font-size:17px;flex:1}
  .fs .menu-knopf{display:block;border:1px solid var(--tinte);padding:5px 10px;font-size:14px}
  .titel{display:flex;align-items:center;gap:10px}
  .titel::before{content:"";width:30px;aspect-ratio:240/208;background:currentColor;-webkit-mask:url(kuhmaske.png) center/contain no-repeat;mask:url(kuhmaske.png) center/contain no-repeat;flex:0 0 auto}
  .nav{display:none;flex-basis:100%;opacity:1}
  .nav a span{opacity:1;transform:none}
  .leiste.offen .nav,.leiste.offen .innen .oben{display:grid}
  .leiste.offen .innen .oben{display:flex}
  .leiste.offen .nav{font-size:19px;gap:6px;padding:10px 0 6px;animation:ein .4s var(--weich)}
  .spr{opacity:1}
  main#inhalt,.bau:has(.leiste:hover) main#inhalt,.bau:has(.leiste:focus-within) main#inhalt{transform:none}
  .satz{margin:40px 0 48px}
  .zweispalt,.frag .ant{grid-template-columns:1fr;gap:30px}
  .tab{grid-template-columns:6.5em 1fr}
  .zeiger{display:none}
}
@media (prefers-reduced-motion:reduce){.fs *{transition:none!important;animation:none!important}}

/* ---------- Barrierefrei (Schalter in der Leiste, gespeichert nur im Browser) ---------- */
body.a11y{font-size:19px;--grau:#4d4d4d}
body.a11y *{transition:none!important;animation:none!important}
body.a11y .zeiger{display:none}
@media (min-width:861px){
  body.a11y .bau{grid-template-columns:var(--auf) minmax(0,1fr)}
  body.a11y .ruecken{width:var(--auf)!important}
  body.a11y .senkrecht{display:none}
  body.a11y .spr,body.a11y .titel,body.a11y .nav,body.a11y .nav a span,body.a11y .leiste-fuss{opacity:1!important;transform:none!important}
}
body.a11y main#inhalt{transform:none!important}
body.a11y .u{background-size:100% 1px}
body.a11y a:hover .u,body.a11y a:focus-visible .u{background-size:100% 3px}
body.a11y .lesen a,body.a11y main p a{text-decoration:underline}
body.a11y .bild .grau{filter:none}body.a11y .bild .farbe{display:none}
body.a11y .begriff{border-bottom:2px solid var(--ak)}
body.a11y :focus-visible{outline:3px solid var(--tinte);outline-offset:3px}
/* Frag-Feld: Fokus über die Unterlinie statt Kasten (hat schon eine Linie) */
.fs .frag input:focus-visible{outline:none;border-bottom-color:var(--ak);box-shadow:0 2px 0 var(--ak)}
body.a11y .frag input:focus-visible{outline:none;border-bottom-color:var(--tinte);box-shadow:0 3px 0 var(--tinte)}
body.a11y .satz{font-size:clamp(30px,3.6vw,54px)}
body.a11y .such{color:var(--tinte)}
