/* Ergänzungen für WordPress-Inhalte, Menüs, Formulare, Galerie */

.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:var(--r)}
.skip-link:focus{left:12px}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}

/* Kopf mit Admin-Leiste */
header.site{top:var(--wp-admin--admin-bar--height,0px)}
.brand img{height:50px;width:auto}
.custom-logo-link img{height:50px;width:auto}
nav.main ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
nav.main li{margin:0}
nav.main .current-menu-item>a,nav.main .current-page-ancestor>a,nav.main .current-menu-parent>a,nav.main a[aria-current="page"]{background:var(--ink);color:var(--bg)}
nav.main .sub-menu{display:none}

/* Inhalte aus dem Editor */
.entry{max-width:72ch}
.entry.wide{max-width:none}
.entry>*+*{margin-top:1.1em}
.entry h2{font-size:clamp(1.5rem,3vw,2.1rem);margin-top:1.6em}
.entry h3{font-size:1.35rem;margin-top:1.4em}
.entry p,.entry li{font-size:1.06rem}
.entry a{color:var(--fir);text-underline-offset:3px}
.entry img{height:auto;border-radius:6px}
.entry blockquote{margin:1.5em 0;padding:4px 0 4px 22px;border-left:4px solid var(--orange);font:600 italic 1.3rem/1.4 var(--f-display);color:var(--ink)}
.entry figure{margin:1.5em 0}
.entry figcaption{font:400 .8rem/1.4 var(--f-mono);color:var(--muted);margin-top:8px}
.entry table{border-collapse:collapse;width:100%}
.entry th,.entry td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left}
.entry .wp-block-gallery{gap:10px}
.entry hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.alignwide{max-width:min(1100px,100%)}
.alignfull{max-width:none}
.wp-block-button__link{background:var(--fir);color:#fff;border-radius:var(--r);padding:12px 20px;text-decoration:none;font-weight:600}

/* Beiträge / Aktuelles */
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:28px}
.post-card{display:flex;flex-direction:column;gap:10px}
.post-card .ph{aspect-ratio:16/9;border-radius:6px}
.post-card h2,.post-card h3{font-size:1.3rem}
.post-card h2 a,.post-card h3 a{color:var(--ink);text-decoration:none}
.post-card h2 a:hover,.post-card h3 a:hover{text-decoration:underline}
.post-card time,.post-meta{font:500 .8rem var(--f-mono);color:var(--oak)}
.pagination{display:flex;gap:6px;flex-wrap:wrap;margin-top:40px}
.pagination .page-numbers{padding:8px 14px;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);background:var(--surface)}
.pagination .current{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.post-nav{display:flex;justify-content:space-between;gap:16px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line);flex-wrap:wrap}
.post-nav a{text-decoration:none;font-weight:600}

/* Jahrgang */
.jg-meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:6px}
.jg-meta div{display:flex;flex-direction:column}
.jg-meta dt{font:500 .72rem var(--f-mono);text-transform:uppercase;letter-spacing:.1em;color:#F7B24A}
.jg-meta dd{margin:0;font-weight:600;color:#fff}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.gallery a{display:block;border-radius:6px;overflow:hidden;aspect-ratio:4/3;background:var(--line)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gallery a:hover img{transform:scale(1.04)}
.gallery a:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.winners{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.winners th,.winners td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}
.winners th{font:500 .74rem var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--bg)}
.table-scroll{overflow-x:auto}

/* Lightbox */
.lb{position:fixed;inset:0;z-index:1000;background:rgba(20,14,8,.94);display:flex;align-items:center;justify-content:center;padding:56px 16px}
.lb[hidden]{display:none!important}
.lb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;width:48px;height:48px;border-radius:50%;font-size:1.6rem;cursor:pointer;display:grid;place-items:center}
.lb button:hover{background:rgba(255,255,255,.25)}
.lb .lb-close{top:14px;right:14px}
.lb .lb-prev{left:14px;top:50%;transform:translateY(-50%)}
.lb .lb-next{right:14px;top:50%;transform:translateY(-50%)}
.lb .lb-count{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:#ddd;font:400 .8rem var(--f-mono)}

/* Karte (OpenStreetMap nach Zustimmung) */
.osm{height:440px;border-radius:6px;overflow:hidden}
.osm-consent{display:flex;flex-direction:column;gap:8px;padding:10px 4px 2px}
.osm-consent p{font:400 .74rem/1.4 var(--f-mono);color:var(--muted)}
.leaflet-container{font:inherit}
.leaflet-popup-content{font:500 .9rem/1.4 var(--f-body)}
.leaflet-popup-content a{color:var(--fir)}

/* Formulare */
.form{display:grid;gap:14px}
.form label{font-weight:600;display:flex;flex-direction:column;gap:6px}
.form .check{flex-direction:row;font-weight:500}
.form .hp{position:absolute;left:-9999px}
.notice{padding:14px 16px;border-radius:var(--r);font-weight:500}
.notice.ok{background:var(--fir-soft)}
.notice.err{background:#fde2e1;color:#7a1c17}
input[type=search].s{min-width:0}

/* Fußbereich */
footer ul.menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
footer .credits{max-width:100%;overflow-wrap:anywhere}

/* Funktion bei Betrieb */
.honor{display:inline-flex;gap:8px;align-items:center;font:600 .82rem var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:#F7B24A}

/* Ganze Betriebskarte anklickbar (Link des Namens wird über die Karte gelegt) */
.card{position:relative;cursor:pointer}
.card h3 a::after{content:"";position:absolute;inset:0;z-index:1;border-radius:8px}
.card h3 a:focus-visible{outline:none}
.card h3 a:focus-visible::after{outline:3px solid var(--orange);outline-offset:2px}
.card .acts{position:relative;z-index:2}
.card:hover h3 a{color:var(--fir)}

/* Betriebsprofil: Adresse vorn, Karte daneben, weitere Betriebe darunter */
.profile-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:stretch;margin-top:28px}
.profile-top .contact{display:flex;flex-direction:column;gap:18px;padding:28px}
.profile-top .contact .addr{font:600 1.35rem/1.35 var(--f-display)}
.profile-top .contact .lines{display:flex;flex-direction:column;gap:8px;font-size:1.05rem}
.profile-top .contact .lines a{overflow-wrap:anywhere}
.profile-top .contact .lines span{display:inline-block;min-width:76px;font:500 .74rem var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.profile-top .mapbox{height:100%}
.profile-about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;margin-top:28px}
.near{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:14px}
@media (max-width:860px){.profile-top,.profile-about{grid-template-columns:1fr}}

/* Kontaktseite: Ansprechpartner */
.contact-people{display:flex;flex-direction:column;gap:14px}
.cperson{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px}
.cperson .foto{width:96px;height:96px;border-radius:50%;overflow:hidden;display:grid;place-items:center}
.cperson .foto img{width:100%;height:100%;object-fit:cover}
.cperson .foto.ini{font:700 1.6rem var(--f-display);color:#fff}
.cperson .fn{font:500 .72rem var(--f-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--oak)}
.cperson h3{font-size:1.2rem;margin:2px 0}
.cperson p{font-size:.95rem}
.cperson a{overflow-wrap:anywhere}

/* Gesellenstücke: Jahrgangs-Reiter */
.jg-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px}
.jg-tabs button{font:600 1rem var(--f-mono);padding:9px 16px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.jg-tabs button[aria-selected="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.jg-panel{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:32px;align-items:start}
.jg-panel .cover{aspect-ratio:3/2;border-radius:8px}
.jg-panel .facts-row{display:flex;flex-wrap:wrap;gap:8px 24px;font:500 .8rem var(--f-mono);color:var(--muted)}
.jg-panel .facts-row b{color:var(--ink);font-family:var(--f-body);font-weight:600;font-size:.95rem}
.jg-panel + .gallery,.jg-gal{margin-top:24px}
@media (max-width:860px){.jg-panel{grid-template-columns:1fr}}

/* Ausbildungsbetriebe */
.azubi-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:24px}

/* Kontaktpersonen */
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-top:24px}
.person{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.person .ph{aspect-ratio:4/3}
.person .t{padding:18px 20px;display:flex;flex-direction:column;gap:4px}
.person .fn{font:500 .74rem var(--f-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--oak)}
.person a{overflow-wrap:anywhere}

@media (max-width:860px){.hero{padding-block:84px 120px}}
[hidden]{display:none!important}
@media (max-width:700px){.hero::before,.pagehead::before{background:linear-gradient(180deg,rgba(24,16,9,.55),rgba(24,16,9,.86))}}
