/*
Theme Name: Netzwerk Senioren Mainz-Hechtsheim
Author: Walhall Media / Kai Schütz
Description: Barrierearmes, vollständig editierbares WordPress-Block-Theme im Erscheinungsbild des Netzwerks Senioren Mainz-Hechtsheim.
Version: 1.2.0
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 8.2
Text Domain: seniorennetzwerk
License: GPL-2.0-or-later
*/
:root{--sn-petrol:#006fad;--sn-dark:#004b78;--sn-cream:#f3f9fd;--sn-paper:#fff;--sn-sage:#0893f0;--sn-terra:#d81c04;--sn-ink:#1b1f21;--sn-muted:#4d5960;--sn-line:#d6e4ec;--sn-logo-blue:#0893f0;--sn-logo-red:#d81c04}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:9rem}body{background:var(--sn-paper);color:var(--sn-ink)}a{text-underline-offset:.2em}:focus-visible{outline:4px solid #ffbf47!important;outline-offset:4px;border-radius:4px}.sn-skip{position:fixed;z-index:10000;left:1rem;top:-8rem;background:#fff;color:#000;padding:.7rem 1rem;font-weight:800}.sn-skip:focus{top:1rem}.sn-utility{background:var(--sn-dark);color:#fff;font-size:.88rem}.sn-utility a{color:#fff;font-weight:800}.sn-header{position:sticky;z-index:100;top:0;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(0,111,173,.16);backdrop-filter:blur(10px)}.sn-header .wp-block-navigation a{font-weight:750}.sn-logo-lockup{display:inline-flex;align-items:center;gap:.7rem;color:var(--sn-ink);line-height:1.05;text-decoration:none}.sn-logo-mark{display:block;width:4.4rem;height:3.4rem;flex:0 0 auto;background:#fff url('assets/images/netzwerk-senioren-marke.png') center/contain no-repeat}.sn-logo-copy,.sn-logo-copy strong,.sn-logo-copy small{display:block}.sn-logo-copy strong{font-family:"Arial Narrow","Segoe UI",Arial,sans-serif;font-size:1.08rem;font-weight:900;letter-spacing:-.025em}.sn-logo-copy small{margin-top:.25rem;font-size:.78rem;font-weight:750}.sn-mainz{color:var(--sn-logo-red)}.sn-hechtsheim{color:var(--sn-logo-blue)}.sn-brand{font-family:"Arial Narrow","Segoe UI",Arial,sans-serif;font-weight:900}.wp-block-button__link{min-height:3.15rem;display:inline-flex;align-items:center;justify-content:center;font-weight:800}.sn-hero{min-height:38rem}.sn-hero .wp-block-cover__background{background:linear-gradient(90deg,rgba(0,47,77,.94),rgba(0,75,120,.7) 45%,rgba(0,75,120,.06) 82%)!important;opacity:1!important}.sn-hero-copy{max-width:43rem;margin-right:auto!important}.sn-eyebrow{color:#8fd2ff;text-transform:uppercase;letter-spacing:.11em;font-size:.8rem;font-weight:900}.sn-hero h1{font-size:clamp(3.1rem,7vw,5.8rem)!important;line-height:.98!important;letter-spacing:-.035em;font-weight:900!important}.sn-edit-hint{font-size:.75rem;font-style:italic;color:var(--sn-muted)}.sn-hero .sn-edit-hint{display:inline-block;background:rgba(0,0,0,.6);color:#fff;padding:.2rem .5rem}.sn-section{padding-top:clamp(4rem,8vw,7rem);padding-bottom:clamp(4rem,8vw,7rem)}.sn-quick{position:relative;z-index:2;margin-top:-3rem!important}.sn-card{height:100%;overflow:hidden;border:1px solid var(--sn-line);border-radius:.65rem;background:#fff;box-shadow:0 14px 35px rgba(0,75,120,.1)}.sn-card:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(0,75,120,.15)}.sn-card,.sn-card:hover{transition:.18s ease}.sn-icon{width:3rem;height:3rem;display:grid;place-items:center;border-radius:50%;background:#e5f5ff;color:var(--sn-petrol);font-weight:900}.sn-help{background:var(--sn-petrol);color:#fff}.sn-help h2,.sn-help a{color:#fff}.sn-notice{padding:1.2rem 1.3rem;border-left:.45rem solid var(--sn-terra);background:#fff4ed;color:#421d11}.sn-form{background:#fff;border-radius:.7rem;padding:clamp(1.3rem,3vw,2.4rem);color:var(--sn-ink);box-shadow:0 16px 40px rgba(0,75,120,.13)}.sn-map{min-height:16rem;display:grid;place-items:center;text-align:center;background:#edf7fd;border:1px solid #b8d4e3;padding:2rem}.sn-footer{background:var(--sn-dark);color:#fff}.sn-footer a{color:#fff}.sn-footer .sn-logo-lockup{color:#fff}.sn-footer .sn-logo-mark{border-radius:.4rem}.sn-footer .sn-mainz{color:#ff8072}.sn-footer .sn-hechtsheim{color:#8fd2ff}.sn-footer-bottom{border-top:1px solid rgba(255,255,255,.23)}.sn-high-contrast{--sn-petrol:#00517f;--sn-dark:#002f4d;--sn-cream:#fff;--sn-paper:#fff;--sn-terra:#a91403;--sn-ink:#000;--sn-muted:#111;--sn-line:#444}
@media(max-width:800px){body{font-size:17px}.sn-hours{display:none}.sn-logo-mark{width:3.6rem;height:2.8rem}.sn-logo-copy strong{font-size:.92rem}.sn-hero{min-height:44rem;align-items:flex-end!important}.sn-hero .wp-block-cover__background{background:linear-gradient(0deg,rgba(0,47,77,.96),rgba(0,75,120,.82) 58%,rgba(0,75,120,.2))!important}.sn-quick{margin-top:0!important;padding-top:1rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.sn-utility,.sn-header,.sn-footer,.wp-block-buttons,.sn-form{display:none!important}body{background:#fff;color:#000;font-size:12pt}.sn-card{box-shadow:none;break-inside:avoid}}

/* ============================================================
   Kontaktformular & Eventkalender (v1.2.0)
   ============================================================ */
.sn-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* --- Formularfelder --- */
.sn-form__titel{margin-top:0}
.sn-field{margin:0 0 1.15rem}
.sn-field label{display:block;font-weight:700;margin-bottom:.35rem}
.sn-field input[type=text],.sn-field input[type=email],.sn-field input[type=tel],.sn-field textarea{width:100%;padding:.75rem .9rem;font:inherit;color:var(--sn-ink);background:#fff;border:2px solid var(--sn-line);border-radius:.45rem}
.sn-field input:focus,.sn-field textarea:focus{border-color:var(--sn-petrol);outline:3px solid #ffbf47;outline-offset:1px}
.sn-field input[aria-invalid=true],.sn-field textarea[aria-invalid=true]{border-color:var(--sn-terra);background:#fff5f3}
.sn-field textarea{resize:vertical;min-height:8rem}
.sn-req{color:var(--sn-terra);font-weight:900}
.sn-field__fehler{display:block;margin-top:.35rem;color:#a3140b;font-weight:700;font-size:.95rem}
.sn-field--check label{display:flex;gap:.6rem;align-items:flex-start;font-weight:500}
.sn-field--check input{margin-top:.25rem;width:1.3rem;height:1.3rem;flex:0 0 auto}
.sn-form__pflicht{margin:.4rem 0 0;font-size:.85rem;color:var(--sn-muted)}
.sn-form__hinweis{padding:.9rem 1.1rem;border-radius:.5rem;font-weight:700;margin:0 0 1.2rem}
.sn-form__hinweis--ok{background:#e5f7ec;border-left:.4rem solid #1a7f43;color:#0f5b2e}
.sn-form__hinweis--fehler{background:#fdecea;border-left:.4rem solid var(--sn-terra);color:#8f1105}
.sn-help .sn-form,.sn-help .sn-form label{color:var(--sn-ink)}
/* Honeypot ausblenden */
.sn-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* --- Kalender --- */
.sn-kalender__nav{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:1.4rem}
.sn-kalender__titel{margin:0;text-transform:capitalize}
.sn-kalender__blaettern{font-weight:800;text-decoration:none;padding:.55rem .9rem;border:2px solid var(--sn-line);border-radius:.5rem;background:#fff;white-space:nowrap}
.sn-kalender__blaettern:hover,.sn-kalender__blaettern:focus{border-color:var(--sn-petrol);background:var(--sn-cream)}
.sn-kalender__gitter{width:100%;border-collapse:collapse;table-layout:fixed;margin:0 0 2.4rem;background:#fff}
.sn-kalender__gitter th{background:var(--sn-petrol);color:#fff;padding:.5rem;font-size:.95rem;border:1px solid var(--sn-dark)}
.sn-kalender__gitter td{vertical-align:top;height:6.5rem;padding:.4rem;border:1px solid var(--sn-line)}
.sn-kalender__leer{background:#f6fafd}
.sn-kalender__zahl{display:block;font-weight:800;color:var(--sn-muted);margin-bottom:.25rem}
.sn-kalender__tag.has-events{background:#eaf6ff}
.sn-kalender__tag.is-heute{outline:3px solid var(--sn-petrol);outline-offset:-3px}
.sn-kalender__tag.is-heute .sn-kalender__zahl{color:var(--sn-petrol)}
.sn-kalender__eintraege{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.sn-kalender__eintraege a{display:block;font-size:.82rem;line-height:1.25;padding:.25rem .35rem;border-radius:.3rem;background:var(--sn-petrol);color:#fff;text-decoration:none}
.sn-kalender__eintraege a:hover,.sn-kalender__eintraege a:focus{background:var(--sn-dark)}
.sn-kalender__liste-titel{margin:0 0 1rem;text-transform:capitalize}
.sn-kalender__karten{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr))}
.sn-kalender__leer-hinweis{padding:1.2rem;background:var(--sn-cream);border-radius:.5rem}
.sn-ev-karte{padding:1.4rem;display:flex;flex-direction:column;gap:.6rem}
.sn-ev-karte__datum{color:#a84528;margin:0}
.sn-ev-karte__titel{margin:0}
.sn-ev-karte__titel a{text-decoration:none}
.sn-ev-karte__meta{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;color:var(--sn-muted)}
.sn-ev-karte__cta{margin:.3rem 0 0}
.sn-ev-detail__liste{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;margin:0 0 1rem}
.sn-ev-detail__liste dt{font-weight:800;color:var(--sn-dark)}
.sn-ev-detail__liste dd{margin:0}

@media(max-width:800px){
  .sn-kalender__gitter,.sn-kalender__gitter thead,.sn-kalender__gitter tbody,.sn-kalender__gitter tr,.sn-kalender__gitter th,.sn-kalender__gitter td{display:block;width:auto}
  .sn-kalender__gitter thead{position:absolute;left:-9999px}
  .sn-kalender__gitter td{height:auto;border:1px solid var(--sn-line);border-top:0}
  .sn-kalender__gitter tr:first-child td:first-child{border-top:1px solid var(--sn-line)}
  .sn-kalender__leer{display:none}
  .sn-kalender__tag.has-events{padding:.7rem}
  .sn-kalender__eintraege a{font-size:1rem}
}
