/*
Theme Name: Norderney Vereine
Theme URI: https://norderney-vereine.de
Author: Norderney Vereine
Description: Modernes Vereinsportal mit filterbarem Verzeichnis und redaktioneller Pflege.
Version: 2.2.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: neyvereine
*/
:root{--navy:#0c2840;--blue:#147c94;--aqua:#d6edf0;--sand:#f7f4ee;--ink:#18354a;--muted:#647986;--line:#dce5e8;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f9fbfb;color:var(--ink);font:16px/1.65 system-ui,-apple-system,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.wrap{width:min(1180px,calc(100% - 40px));margin:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}.header-inner{height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:13px;font-size:20px;font-weight:850;letter-spacing:-.5px;line-height:1.12}.brand-icon{display:grid;place-items:center;width:45px;height:45px;color:white;background:var(--blue);border-radius:14px;font-size:27px}.brand small{display:block;font-size:11px;letter-spacing:2px;color:#66838d;text-transform:uppercase;margin-top:5px}.nav{display:flex;align-items:center;gap:28px;font-weight:650;font-size:14px}.nav a:hover{color:var(--blue)}.nav .nav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:100px;padding:13px 22px;background:var(--blue);color:white;font-weight:750;cursor:pointer}.nav .nav-cta{padding:10px 18px;color:white}.hero{background:var(--navy);color:white;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:850px;height:850px;border:125px solid rgba(100,187,196,.09);border-radius:50%;right:-300px;top:-470px}.hero:after{content:"";position:absolute;right:4%;bottom:-160px;width:540px;height:290px;border-radius:50%;border:70px solid rgba(100,187,196,.08);transform:rotate(-20deg)}.hero-inner{min-height:480px;display:flex;align-items:center;position:relative;z-index:1;padding:76px 0}.hero-copy{max-width:770px}.eyebrow{font-size:12px;font-weight:850;letter-spacing:2.2px;text-transform:uppercase;color:#65d1dc;margin-bottom:22px}.hero h1{font-size:clamp(43px,6.2vw,83px);line-height:1.04;letter-spacing:-3.5px;margin:0 0 24px;font-weight:850}.hero h1 em{font-style:normal;color:#8edbe1}.hero p{font-size:19px;max-width:640px;color:#d2e4e9;margin:0 0 30px}.hero-buttons{display:flex;gap:12px;flex-wrap:wrap}.btn.alt{background:transparent;color:#fff;border:1px solid #6d8998}.wave{height:31px;background:var(--sand);clip-path:polygon(0 30%, 15% 70%, 36% 20%, 56% 60%, 76% 23%, 100% 55%,100% 100%,0 100%);margin-top:-30px;position:relative}.intro{background:var(--sand);padding:65px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;flex-wrap:wrap}.section-head h2,h2{font-size:clamp(29px,3.3vw,43px);line-height:1.2;letter-spacing:-1.4px;margin:7px 0}.section-head p{max-width:660px;color:var(--muted);margin:8px 0 0}.caps{font-size:12px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--blue)}.category-grid{margin-top:28px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.cat-tile{display:flex;gap:14px;align-items:center;padding:22px;background:white;border:1px solid #e5e9e6;border-radius:16px;box-shadow:0 6px 24px #17374808;transition:transform .2s,border-color .2s;cursor:pointer;text-align:left;color:var(--ink)}.cat-tile:hover,.cat-tile.active{border-color:var(--blue);transform:translateY(-2px)}.cat-emoji{font-size:29px}.cat-tile strong{display:block;font-size:15px;line-height:1.28}.cat-tile small{color:var(--muted)}.directory{padding:78px 0 90px}.toolbar{margin-top:30px;display:grid;grid-template-columns:1fr 235px;gap:12px}.searchbox{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;background:white;padding:0 16px}.searchbox input{border:0;background:none;outline:none;padding:18px 0;min-width:0;width:100%;color:var(--ink)}.toolbar select{border:1px solid var(--line);padding:0 16px;border-radius:14px;background:#fff;color:var(--ink)}.results{color:var(--muted);font-size:14px;margin:16px 0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.club-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);padding:26px;border-radius:18px;min-height:255px;box-shadow:0 9px 30px #17374808}.club-card:hover{border-color:#9bcad0}.tag{font-size:11px;font-weight:800;color:#17798e;letter-spacing:.6px;text-transform:uppercase}.club-card h3{font-size:21px;letter-spacing:-.55px;line-height:1.25;margin:13px 0 10px}.club-card p{margin:0 0 22px;color:#657782;font-size:14px}.club-link{margin-top:auto;color:var(--blue);font-size:14px;font-weight:800}.club-link:hover{text-decoration:underline}.empty{display:none;border:1px dashed var(--line);padding:40px;text-align:center;border-radius:18px}.callout{padding:70px 0;background:#e7f2f3}.callout-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}.callout p{max-width:620px;color:#536c78}.foot{background:var(--navy);color:#d0dfe6;padding:45px 0}.foot-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.foot a{text-decoration:underline}.foot small{color:#aabecb}.simple-content{padding:75px 0;min-height:50vh}.simple-content article{max-width:800px}.simple-content h1{font-size:44px}.mobile-toggle{display:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:900px){.category-grid{grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:repeat(2,1fr)}.nav{gap:16px}.hero h1{letter-spacing:-2px}}@media(max-width:650px){.header-inner{height:70px}.brand{font-size:17px}.mobile-toggle{display:inline-block;border:0;background:none;font-size:27px}.nav{display:none;position:absolute;top:70px;left:0;right:0;background:white;padding:24px;box-shadow:0 18px 30px #0001;flex-direction:column;align-items:start}.nav.open{display:flex}.hero-inner{min-height:440px;padding:60px 0 70px}.hero p{font-size:17px}.category-grid,.cards,.toolbar{grid-template-columns:1fr}.cat-tile{padding:17px}.intro,.directory{padding:48px 0}.section-head h2{font-size:32px}.club-card{min-height:210px}}

.club-card[hidden]{display:none!important}.skip-link{position:absolute;top:-80px;left:10px;background:white;color:#123;padding:8px;z-index:100}.skip-link:focus{top:8px}.listing{border-bottom:1px solid var(--line);padding:20px 0}.listing h2{font-size:24px}.back-link{display:inline-block;margin:0 0 25px;color:var(--blue);font-weight:700}.profile-photo{max-width:100%;height:auto;border-radius:18px}.profile-content{font-size:18px}.source-note{font-size:13px;color:var(--muted);margin-top:25px}.source-note a{text-decoration:underline}.club-card:focus-within,.cat-tile:focus-visible,.btn:focus-visible{outline:3px solid #f5b55a;outline-offset:3px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Nachrichten, Termine und redaktionelles Meldeformular */
.content-section{padding:70px 0}.news-section{background:#f3f8f8}.events-section{background:#fff}.editorial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.editorial-card{display:flex;flex-direction:column;padding:26px;border:1px solid var(--line);border-radius:18px;background:white;min-height:205px;box-shadow:0 6px 22px #123408}.editorial-card h3{font-size:23px;line-height:1.25;margin:12px 0}.editorial-card p{color:var(--muted);font-size:14px}.editorial-card .club-link{margin-top:auto}.quiet-text{color:var(--muted);grid-column:1/-1;padding:24px;background:white;border:1px dashed var(--line);border-radius:14px}.event-place{font-weight:650}.form-section{padding:78px 0;background:var(--sand)}.submission-wrap{max-width:800px;margin:auto}.submission-wrap>p{color:var(--muted)}.submission-form{margin-top:25px;display:grid;grid-template-columns:1fr 1fr;gap:19px}.submission-form>label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700}.submission-form>label:nth-of-type(4),.submission-form .consent-label{grid-column:1/-1}.submission-form input:not([type=checkbox]),.submission-form select,.submission-form textarea{background:white;border:1px solid #b9cbce;border-radius:9px;padding:12px;width:100%;color:var(--ink)}.submission-form .consent-label{display:block;font-weight:400;line-height:1.55}.consent-label input{margin-right:9px}.consent-label a{text-decoration:underline}.submission-form button{justify-self:start}.submission-form>small{align-self:center;color:var(--muted)}.form-honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-notice,.form-error{padding:14px 18px;border-radius:8px;background:#e4f5ef;color:#18573f}.form-error{background:#feece8;color:#963b27}@media(max-width:900px){.nav{gap:11px;font-size:12px}.editorial-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.editorial-grid,.submission-form{grid-template-columns:1fr}.submission-form>label:nth-of-type(4),.submission-form .consent-label{grid-column:auto}.content-section,.form-section{padding:48px 0}}

/* V1.3: echte Kategorie-Links und zuverlässiges Filtern */
.club-card[hidden]{display:none!important}
.reset-categories{align-self:center;color:var(--blue);font-size:14px;font-weight:700;text-decoration:underline}
.toolbar{grid-template-columns:minmax(0,1fr) 235px auto}
@media(max-width:650px){.toolbar{grid-template-columns:1fr}}
#vereine{scroll-margin-top:92px}
.cat-tile:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

/* V1.4 Vereinskontakte */
.profile-contact{margin:34px 0;padding:25px;background:#eef7f8;border:1px solid #cde4e7;border-radius:18px}.profile-contact h2{font-size:26px;margin:0 0 14px}.profile-contact-list{margin:0}.profile-contact-list>div{display:grid;grid-template-columns:160px 1fr;border-top:1px solid #cfdee1;padding:10px 0;gap:12px}.profile-contact-list dt{font-weight:750}.profile-contact-list dd{margin:0;overflow-wrap:anywhere}.profile-contact-list a{text-decoration:underline;color:#006b85}@media(max-width:560px){.profile-contact-list>div{grid-template-columns:1fr;gap:0}}

/* 1.5: dedicated correction form */
.update-contact-section{margin-top:38px;padding:25px;border:1px solid #d4e7e9;border-radius:20px;background:#f8fbfc}.update-contact-section>h2{margin:0 0 10px}.update-contact-form{margin-top:20px}.update-contact-form input:disabled{opacity:.75;background:#eaf0f1}.update-contact-form textarea{min-height:115px}.update-contact-form .btn{cursor:pointer}

/* Pflege & Unterstützer v1.7 */
.hero[style*="background-image"]{background-position:center;background-size:cover;background-repeat:no-repeat}
.ney-intro-photo{max-width:100%;margin:0 0 1.5rem;overflow:hidden;border-radius:18px}
.ney-intro-photo img{width:100%;max-height:300px;object-fit:cover;display:block}
.ney-supporters{padding:3.5rem 0;background:#f4f8fa}
.ney-supporters-footer{padding:2rem 0;background:#e9f0f4}
.ney-supporters .caps{text-transform:uppercase;letter-spacing:.1em}
.ney-supporters h2{font-size:clamp(1.4rem,3vw,2rem);margin:.3rem 0 .5rem}
.ney-supporters-note{font-size:.9rem;color:#52636e;margin:0 0 1.5rem}
.ney-supporters-note span{font-size:.78rem;white-space:nowrap}
.ney-supporters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:1rem}
.ney-supporter-card{background:white;border:1px solid #dbe4ea;border-radius:14px;padding:1.1rem;text-align:center;min-height:125px;display:flex;align-items:center;justify-content:center}
.ney-supporter-card a{display:flex;flex-direction:column;align-items:center;justify-content:center;color:inherit;text-decoration:none;gap:.6rem;width:100%;height:100%}
.ney-supporter-logo{height:75px;display:flex;align-items:center;justify-content:center}
.ney-supporter-logo img{max-width:100%;max-height:75px;width:auto;height:auto;object-fit:contain}
.ney-supporter-card strong{font-size:.92rem}

/* 1.8: Logo and public supporters page */
.brand{display:flex;align-items:center;gap:11px}
.brand-logo{width:58px;height:58px;object-fit:contain;border-radius:50%;flex-shrink:0}
.brand-name{display:block;line-height:1.15}
.supporters-hero{padding:85px 0 75px;color:#fff;background:linear-gradient(125deg,#072e47,#0b6680)}
.supporters-hero .caps{color:#8adfe8}
.supporters-hero h1{font-size:clamp(36px,6vw,72px);line-height:1.05;margin:12px 0 17px}
.supporters-hero p{max-width:750px;color:#d5edf0;font-size:19px}
.supporters-page-content{padding:55px 0 90px;background:#f7fafb}
.supporters-disclosure{font-size:14px;color:#617784;margin-bottom:30px}
.supporters-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.supporter-profile{background:#fff;border:1px solid #deeaed;border-radius:20px;overflow:hidden;display:grid;grid-template-columns:175px 1fr;min-height:230px;box-shadow:0 10px 30px #123408}
.supporter-profile-logo{background:#f1f6f8;display:flex;align-items:center;justify-content:center;padding:18px}
.supporter-profile-logo img{width:100%;max-height:150px;object-fit:contain}
.supporter-logo-placeholder{font-size:56px;color:#78bdc7}
.supporter-profile-body{padding:24px}
.supporter-profile-body h2{font-size:23px;letter-spacing:-.5px;line-height:1.25;margin:8px 0}
.supporter-description{color:#5d7180;font-size:14px}
.supporter-description p{margin:8px 0}
.supporter-visit{color:#067b93;font-weight:750;display:inline-block;margin-top:13px;text-decoration:underline}
.supporter-empty{background:#fff;border:1px dashed #b4ced5;border-radius:15px;padding:30px}
.supporters-become{margin-top:65px;padding:40px;border-radius:22px;background:#e4f1f4}
.supporters-become h2{font-size:30px}
.supporters-become p{max-width:670px}
@media(max-width:850px){.supporters-profile-grid{grid-template-columns:1fr}}
@media(max-width:500px){.brand-logo{width:44px;height:44px}.brand-name{font-size:13px}.supporter-profile{grid-template-columns:1fr}.supporter-profile-logo{min-height:140px}.supporters-become{padding:24px}}

/* 1.9: Reliable logo and sponsor media layouts */
.brand-logo{display:block;min-width:58px;max-width:58px;max-height:64px;width:58px;height:58px;object-fit:contain;border-radius:0}.brand-name{flex-shrink:0}.supporter-profile-logo img,.ney-supporter-logo img{display:block;max-width:100%;height:auto;object-fit:contain}.supporter-profile-logo{min-height:170px}@media(max-width:650px){.brand-logo{min-width:44px;max-width:44px;width:44px;height:44px}.nav{max-height:calc(100vh - 70px);overflow-y:auto}}

/* 2.0 logo visibility */
.site-header .brand img.brand-logo{display:block!important;visibility:visible!important;opacity:1!important;object-fit:contain!important;flex:0 0 58px;height:58px;width:58px}
@media(max-width:650px){.site-header .brand img.brand-logo{width:44px;height:44px;flex-basis:44px}}

/* Version 2.1: Bild/Logo rechts im großen Startbereich. */
.hero-inner{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(260px,.80fr);gap:clamp(20px,4vw,76px);align-items:center}
.hero-copy{max-width:720px;min-width:0}
.hero h1{font-size:clamp(40px,5.1vw,72px)}
.hero-side-image{width:100%;min-width:0;display:flex;align-items:center;justify-content:center;position:relative;z-index:2}
.hero-side-logo{display:block;width:min(100%,460px);height:auto;aspect-ratio:1/1;object-fit:contain;filter:drop-shadow(0 18px 32px rgba(0,0,0,.19))}
@media (max-width:900px){.hero-inner{grid-template-columns:minmax(0,1.15fr) minmax(200px,.7fr);gap:18px}.hero h1{font-size:clamp(39px,5.5vw,60px)}.hero-side-logo{width:min(100%,330px)}}
@media (max-width:650px){.hero-inner{display:flex;flex-direction:column;align-items:stretch;gap:25px}.hero-copy{max-width:100%}.hero-side-image{justify-content:center}.hero-side-logo{width:min(74%,310px)}.hero h1{font-size:clamp(39px,9.2vw,56px)}}
