/* =========================================================
   Polysport – Ergänzungen für die PHP-Seiten
   (Skip-Link, Meldungen, Honeypot, Verfügbarkeit, Rechtstexte, 404)
   ========================================================= */

[hidden]{display:none!important}

/* Skip-Link */
.skip-link{position:absolute;left:16px;top:-80px;z-index:100;padding:12px 20px;border-radius:var(--r-pill);background:var(--ink);color:#fff;font-weight:700;text-decoration:none}
.skip-link:focus{top:12px;color:#fff}

/* Honeypot (für Menschen unsichtbar) */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Meldungen (flash) */
.flash{margin:0 0 20px;padding:14px 18px;border-radius:var(--r-sm);font-weight:600;font-size:15px;border:1px solid var(--line);background:#fff}
.flash-success{background:var(--tint-teal);border-color:var(--teal);color:var(--teal-dark)}
.flash-error{background:var(--tint-coral);border-color:var(--coral);color:var(--coral-dark)}
.flash-info{background:var(--tint-sky);border-color:var(--sky);color:var(--sky-text)}

/* Verfügbarkeit: Farbe nur als Zusatz, Wort + Symbol tragen die Information */
.avail{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.avail.is-frei{color:var(--ok-text)}
.avail.is-wenige{color:var(--gold-text)}
.avail.is-voll,.avail.is-geschlossen{color:var(--coral-dark)}
.camp-card-head .avail{padding:5px 12px 5px 9px;border-radius:var(--r-pill);background:#fff;font-size:12px;font-weight:800}
.camp-free.is-wenige{color:var(--gold-text)}
.camp-free.is-voll,.camp-free.is-geschlossen{color:var(--coral-dark)}
.btn.is-disabled{background:#E8E3D9;color:var(--muted);box-shadow:none;pointer-events:none}

/* Fotos in den Rahmen */
.photo-frame>img,.photo-frame>.photo-slot,.g-big>img,.gallery>img{width:100%;height:100%;object-fit:cover}
.gallery>img{border-radius:var(--r-md)}
.photo-frame>.photo-slot,.g-big>.photo-slot{width:100%;height:100%}

/* Leer-Hinweis (keine Wochen) */
.empty-box{padding:36px 32px;border-radius:var(--r-lg);background:#fff;border:2px dashed var(--line);text-align:center}
.empty-box h3{margin:0 0 8px;font-size:22px}
.empty-box p{margin:0 auto;max-width:56ch;color:var(--muted)}

/* Rechtstexte */
.legal-head{padding:24px 0 56px}
.legal-head h1{margin:8px 0 0;font-size:clamp(34px,5vw,56px);line-height:1.05}
.legal-body{max-width:78ch;margin:0 auto;padding:56px 0 24px;font-size:17px;line-height:1.75}
.legal-body p{margin:0 0 1.1em}
.legal-body h2{font-family:var(--font-text);font-size:22px;font-weight:800;margin:1.8em 0 .5em;line-height:1.25}
.legal-body a{color:var(--coral-text)}
.breadcrumb{font-size:14px;color:var(--muted);margin:0 0 4px}
.breadcrumb a{color:var(--muted)}

/* 404 */
.notfound{text-align:center;padding:24px 0 72px}
.notfound .big{font-size:clamp(90px,18vw,180px);line-height:1;margin:0}
.notfound h1{margin:8px 0 12px;font-size:clamp(28px,4vw,44px)}
.notfound p{margin:0 auto 28px;max-width:52ch;color:var(--muted)}
.notfound .actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* Wartungsseite */
.maint{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 20px}
.maint-card{max-width:620px;text-align:center;padding:48px 32px;background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-card)}
.maint-card h1{margin:20px 0 14px;font-size:clamp(28px,5vw,44px);line-height:1.05}
.maint-card p{margin:0 0 18px;color:var(--muted);font-size:17px}
.maint-contact{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
