:root{--p-green:#1f4f69;--p-green-dark:#102b3a;--p-green-mid:#265875;--p-mint:#eef2f4;--p-ink:#121f26;--p-muted:#637681;--p-line:#dadfe2;--p-white:#fff;--p-surface:#f3f8fb;--p-shadow:0 24px 70px rgba(14,38,52,.12)}
html{scroll-behavior:smooth}body.portal-body{margin:0;background:var(--p-surface);color:var(--p-ink);font-family:'ssm',Arial,sans-serif;line-height:1.55}.portal-body a{text-decoration:none}.portal-body a:hover{text-decoration:none}.portal-shell{width:min(1280px,calc(100% - 48px));margin-inline:auto}
/* HOME */
.portal-home-hero{position:relative;min-height:790px;overflow:hidden;background:#172a35;color:#fff}.portal-home-bg,.portal-home-bg-layer,.portal-home-bg-shade{position:absolute;inset:0}.portal-home-bg-layer{background-size:cover;background-position:center;opacity:0;transform:scale(1);transition:opacity 1.4s ease,transform 8s ease}.portal-home-bg-layer.is-active{opacity:1;transform:scale(1.07)}.portal-home-bg-shade{background:linear-gradient(90deg,rgba(7,19,26,.18),rgba(7,19,26,.48) 45%,rgba(7,19,26,.74))}.portal-home-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(310px,27vw) 1fr;min-height:790px}.portal-home-brandpanel{background:#fff;color:var(--p-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;border-right:1px solid rgba(255,255,255,.25)}.portal-home-brandpanel>a{display:block;width:100%;max-width:330px}.portal-home-brandpanel img{display:block;width:100%;height:auto}.portal-home-brandpanel>span{margin-top:38px;color:var(--p-green);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}.portal-home-brandpanel>strong{font-size:1.65rem;font-weight:400}.portal-home-socials{display:flex;gap:14px;margin-top:38px}.portal-home-socials a{color:var(--p-muted);font-size:.8rem;border-bottom:1px solid var(--p-line)}.portal-home-stage{position:relative;display:flex;flex-direction:column;padding:34px clamp(34px,5vw,80px) 44px}.portal-home-top{display:flex;justify-content:space-between;align-items:center;font-size:.73rem;letter-spacing:.12em}.portal-home-top>a{color:#fff;border:1px solid rgba(255,255,255,.38);border-radius:999px;padding:9px 15px}.portal-home-copy{margin:auto 0;max-width:890px}.portal-kicker{display:block;color:#90b9d1;font-size:.76rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.portal-home-copy h1{font-size:clamp(4rem,7.7vw,8.5rem);line-height:.86;letter-spacing:-.065em;margin:18px 0 28px;font-weight:300}.portal-home-copy h1 em{font-style:normal;color:#b7d9e8}.portal-home-copy p{max-width:760px;font-size:1.2rem;color:rgba(255,255,255,.82)}.portal-home-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.portal-btn{display:inline-flex;align-items:center;min-height:52px;padding:0 24px;border-radius:13px;font-weight:700}.portal-btn-primary{background:#fff;color:var(--p-green-dark)}.portal-btn-glass{color:#fff;border:1px solid rgba(255,255,255,.38);background:rgba(255,255,255,.08);backdrop-filter:blur(10px)}.portal-home-quick{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.28)}.portal-home-quick a{display:grid;grid-template-columns:40px 1fr;padding:22px 20px;color:#fff;border-right:1px solid rgba(255,255,255,.2)}.portal-home-quick a:last-child{border:0}.portal-home-quick span{grid-row:1/3;color:#90b9d1;font-size:.72rem}.portal-home-quick strong{font-size:1rem}.portal-home-quick small{color:rgba(255,255,255,.62)}
.portal-home-main{background:#f3f8fb}.portal-home-section{padding:100px 0}.portal-section-head{display:flex;justify-content:space-between;align-items:end;gap:44px;margin-bottom:38px}.portal-section-head h2{font-size:clamp(2.6rem,4.5vw,4.7rem);line-height:.96;letter-spacing:-.045em;margin:8px 0 0;font-weight:300;color:var(--p-ink)}.portal-section-head>p{max-width:480px;color:var(--p-muted);margin:0;text-align:right}.portal-area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.portal-area-card{min-height:300px;background:#fff;border:1px solid var(--p-line);border-radius:22px;padding:28px;display:flex;flex-direction:column;color:var(--p-ink);box-shadow:0 10px 30px rgba(15,42,57,.035);transition:.25s}.portal-area-card:hover{transform:translateY(-5px);box-shadow:var(--p-shadow);border-color:#b0bec6}.portal-area-card>span{color:var(--p-green);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.portal-area-card h3{font-size:1.8rem;color:var(--p-ink);margin:auto 0 10px}.portal-area-card p{color:var(--p-muted);margin:0}.portal-area-card b{margin-top:24px;color:var(--p-green)}.portal-area-primary{background:linear-gradient(145deg,var(--p-green-dark),var(--p-green));border-color:transparent;color:#fff}.portal-area-primary>span,.portal-area-primary b{color:#b7d9e8}.portal-area-primary h3{color:#fff}.portal-area-primary p{color:rgba(255,255,255,.72)}.portal-area-disabled{opacity:.58;background:#eef0f1}.portal-area-disabled:hover{transform:none;box-shadow:none;border-color:var(--p-line)}
.portal-news-band{padding:100px 0;background:var(--p-green-dark);color:#fff}.portal-section-head-light h2{color:#fff}.portal-section-head-light>a{color:#b7d9e8}.portal-news-layout{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:18px}.portal-news-tile{overflow:hidden;background:#fff;color:var(--p-ink);border-radius:20px}.portal-news-media{height:170px;display:block;background-size:cover;background-position:center;position:relative;background-color:#d9e7ee}.portal-news-feature .portal-news-media{height:270px}.portal-news-media.is-placeholder{background:linear-gradient(140deg,#d9e7ee,#aebfc9)}.portal-news-media span{position:absolute;left:16px;bottom:16px;background:rgba(13,35,47,.9);color:#fff;border-radius:999px;padding:6px 10px;font-size:.7rem}.portal-news-body{padding:24px}.portal-news-body small{color:var(--p-green)}.portal-news-body h3{font-size:1.35rem;line-height:1.15;margin:8px 0 10px}.portal-news-feature .portal-news-body h3{font-size:1.8rem}.portal-news-body h3 a{color:var(--p-ink)}.portal-news-body p{color:var(--p-muted);margin:0}.portal-news-more{display:inline-block;color:var(--p-green);font-weight:700;margin-top:18px}.portal-news-layout .portal-news-tile:nth-child(4){display:none}.portal-empty{padding:30px;border:1px solid rgba(255,255,255,.25);border-radius:18px;color:rgba(255,255,255,.75)}
.portal-home-sport{padding:100px 0;display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center}.portal-home-sport h2{font-size:clamp(2.6rem,4vw,4.3rem);line-height:.98;font-weight:300;letter-spacing:-.045em;margin:8px 0 20px;color:var(--p-ink)}.portal-home-sport p{color:var(--p-muted);font-size:1.06rem}.portal-sport-stack{display:grid;gap:12px}.portal-sport-stack a{display:grid;grid-template-columns:52px 1fr auto;align-items:center;padding:21px;background:#fff;border:1px solid var(--p-line);border-radius:16px;color:var(--p-ink)}.portal-sport-stack span{color:var(--p-green);font-weight:700}.portal-sport-stack b{color:var(--p-green);font-size:1.2rem}
/* CONTENT HEADER/NAV */
.portal-site-header{background:#fff;border-bottom:1px solid var(--p-line)}.portal-site-header-inner{min-height:118px;display:flex;align-items:center;justify-content:space-between;gap:30px}.portal-site-brand{display:flex;align-items:center;gap:18px;color:var(--p-ink)}.portal-site-logo{width:180px;height:90px;display:flex;align-items:center}.portal-site-logo img{max-width:100%;max-height:100%;object-fit:contain}.portal-site-name{padding-left:18px;border-left:1px solid var(--p-line);display:flex;flex-direction:column}.portal-site-name small{color:var(--p-green);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem}.portal-site-name strong{font-size:1.2rem;font-weight:400}.portal-site-tools{display:flex;align-items:center;gap:9px}.portal-site-tools>a:not(.portal-contact-pill){width:34px;height:34px;border-radius:50%;overflow:hidden}.portal-site-tools img{width:100%;height:100%;object-fit:cover}.portal-contact-pill{margin-left:8px;padding:9px 15px;border:1px solid var(--p-line);border-radius:999px;color:var(--p-green)}
.portal-nav{position:sticky;top:0;z-index:50;background:rgba(16,43,58,.96);backdrop-filter:blur(12px);box-shadow:0 7px 24px rgba(9,25,35,.12)}.portal-nav-inner{min-height:64px;display:flex;align-items:center}.portal-nav-links{display:flex;align-items:stretch;min-height:64px}.portal-nav-links>a,.portal-nav-group>a{display:flex;align-items:center;padding:0 18px;color:rgba(255,255,255,.83);font-weight:500}.portal-nav-links>a:hover,.portal-nav-group>a:hover,.portal-nav-links .is-active{background:rgba(255,255,255,.1);color:#fff}.portal-nav-group{position:relative;display:flex}.portal-subnav{position:absolute;left:0;top:100%;min-width:250px;padding:10px;background:#fff;border-radius:0 0 13px 13px;box-shadow:var(--p-shadow);display:none}.portal-subnav a{display:block;padding:10px 12px;color:var(--p-ink);border-radius:8px}.portal-subnav a:hover{background:var(--p-mint);color:var(--p-green)}.portal-nav-group:hover .portal-subnav{display:block}.portal-nav-toggle{display:none}.portal-page-title{background:#ebeff2;border-bottom:1px solid var(--p-line)}.portal-page-title .portal-shell{padding:13px 0;color:var(--p-green);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700}
.portal-main{padding:42px 0 70px}.portal-content-shell{width:min(1180px,calc(100% - 48px));margin:0 auto}.portal-legacy-content{background:rgba(255,255,255,.94);border:1px solid var(--p-line);border-radius:22px;padding:28px;box-shadow:0 15px 50px rgba(14,38,52,.055)}.portal-legacy-content>section:first-child{margin-top:0}.portal-legacy-content main{width:100%}.portal-legacy-content .default,.portal-legacy-content .news,.portal-legacy-content .rk,.portal-legacy-content .km{max-width:none}.portal-legacy-content article:hover{transform:none}
/* Info from new admin */
.portal-info-strip{margin-bottom:24px;background:#fff;border:1px solid var(--p-line);border-radius:20px;padding:22px}.portal-info-strip-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:14px}.portal-info-strip-head span{color:var(--p-green);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.portal-info-strip-head strong{font-weight:400}.portal-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.portal-info-card{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:17px;background:var(--p-mint);border-radius:14px}.portal-info-card:hover{box-shadow:none}.portal-info-icon{width:30px;height:30px;border-radius:50%;background:var(--p-green);color:#fff;display:grid;place-items:center;font-family:Arial;font-weight:bold}.portal-info-card h2{font-size:1rem;margin:1px 0 6px;color:var(--p-ink)}.portal-info-card p{font-size:.88rem;color:var(--p-muted);margin:0}.portal-info-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.portal-info-actions a{font-size:.78rem;font-weight:700;color:var(--p-green)}
/* share */
.portal-sharebar{margin-bottom:22px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid var(--p-line);border-radius:17px;padding:16px 18px}.portal-sharebar>span{display:flex;flex-direction:column}.portal-sharebar small{color:var(--p-muted)}.portal-sharebar>div{display:flex;flex-wrap:wrap;gap:8px}.portal-sharebar a,.portal-sharebar button{font:inherit;font-size:.8rem;border:1px solid var(--p-line);border-radius:999px;padding:8px 12px;background:#fff;color:var(--p-green);cursor:pointer}.portal-sharebar .portal-share-native{background:var(--p-green);color:#fff;border-color:var(--p-green)}
/* footer */
.portal-footer{background:#0c202c;color:#fff;padding:54px 0 0}.portal-footer-grid{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:40px}.portal-footer-grid>div:not(.portal-footer-brand){display:flex;flex-direction:column;gap:8px}.portal-footer-grid>div>strong{margin-bottom:5px}.portal-footer a{color:rgba(255,255,255,.7)}.portal-footer-brand{display:flex;gap:18px;align-items:flex-start}.portal-footer-brand img{width:130px;background:#fff;border-radius:10px;padding:6px}.portal-footer-brand p{margin:5px 0;color:rgba(255,255,255,.58)}.portal-footer-muted{color:rgba(255,255,255,.38);font-size:.85rem}.portal-footer-bottom{margin-top:44px;border-top:1px solid rgba(255,255,255,.12);padding:18px 0;color:rgba(255,255,255,.52);font-size:.78rem}.portal-footer-bottom .portal-shell{display:flex;justify-content:space-between}.portal-scroll-top{position:fixed;right:20px;bottom:20px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--p-green);color:#fff;box-shadow:0 10px 24px rgba(0,0,0,.18);z-index:70}
@media(max-width:1000px){.portal-home-grid{grid-template-columns:250px 1fr}.portal-home-brandpanel{padding:28px}.portal-home-copy h1{font-size:clamp(3.7rem,8vw,6.4rem)}.portal-area-grid{grid-template-columns:repeat(2,1fr)}.portal-news-layout{grid-template-columns:1fr 1fr}.portal-news-feature{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr}.portal-news-feature .portal-news-media{height:auto}.portal-news-layout .portal-news-tile:nth-child(4){display:block}.portal-home-sport{grid-template-columns:1fr}.portal-info-grid{grid-template-columns:1fr}.portal-footer-grid{grid-template-columns:1fr 1fr}.portal-site-name{display:none}}
@media(max-width:760px){.portal-shell,.portal-content-shell{width:min(100% - 24px,1280px)}.portal-home-hero,.portal-home-grid{min-height:auto}.portal-home-grid{display:block}.portal-home-brandpanel{min-height:250px}.portal-home-brandpanel>a{max-width:245px}.portal-home-brandpanel>span,.portal-home-brandpanel>strong,.portal-home-socials{display:none}.portal-home-stage{min-height:600px;padding:24px}.portal-home-top span{display:none}.portal-home-copy{text-align:center}.portal-home-copy h1{font-size:clamp(3.6rem,17vw,5.3rem)}.portal-home-copy p{font-size:1rem}.portal-home-actions{justify-content:center}.portal-home-quick{grid-template-columns:1fr}.portal-home-quick a{border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}.portal-home-section,.portal-news-band,.portal-home-sport{padding:64px 0}.portal-section-head{display:block}.portal-section-head>p{text-align:left;margin-top:15px}.portal-area-grid,.portal-news-layout{grid-template-columns:1fr}.portal-news-feature{display:block;grid-column:auto}.portal-news-feature .portal-news-media{height:200px}.portal-site-header-inner{min-height:90px}.portal-site-logo{width:135px;height:70px}.portal-site-tools>a:not(.portal-contact-pill){display:none}.portal-contact-pill{font-size:.8rem}.portal-nav-inner{display:block}.portal-nav-toggle{min-height:58px;display:flex;align-items:center;gap:5px;background:none;border:0;color:#fff}.portal-nav-toggle span{display:block;width:18px;height:1px;background:#fff;position:absolute}.portal-nav-toggle span:nth-child(1){transform:translateY(-6px)}.portal-nav-toggle span:nth-child(3){transform:translateY(6px)}.portal-nav-toggle b{margin-left:28px}.portal-nav-links{display:none;min-height:0;padding-bottom:10px;flex-direction:column}.portal-nav-links.is-open{display:flex}.portal-nav-links>a,.portal-nav-group>a{min-height:46px;padding:0 12px}.portal-nav-group{display:block}.portal-subnav{display:none!important}.portal-main{padding-top:20px}.portal-legacy-content{padding:15px;border-radius:16px}.portal-sharebar{align-items:flex-start;flex-direction:column}.portal-footer-grid{grid-template-columns:1fr}.portal-footer-brand img{width:105px}.portal-footer-bottom .portal-shell{display:block}.portal-footer-bottom span{display:block;margin-top:4px}}

/* ========================================================================== 
   FRONTEND V 0.1.1 – Portal-Unterseiten, News-Detail, Sporthinweise
   ========================================================================== */
.portal-page-hero{background:linear-gradient(135deg,#eef2f4 0%,#f8fafb 58%,#e7ecee 100%);border-bottom:1px solid var(--p-line);position:relative;overflow:hidden}.portal-page-hero:after{content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(26,72,99,.09);border-radius:50%;right:-130px;top:-190px;box-shadow:0 0 0 70px rgba(26,72,99,.025),0 0 0 140px rgba(26,72,99,.018)}.portal-page-hero-inner{position:relative;z-index:1;min-height:245px;display:flex;align-items:flex-end;justify-content:space-between;gap:50px;padding:54px 0 42px}.portal-breadcrumb{display:flex;align-items:center;gap:9px;font-size:.76rem;margin-bottom:24px;color:var(--p-muted)}.portal-breadcrumb a{color:var(--p-green)}.portal-breadcrumb strong{font-weight:500;color:var(--p-muted)}.portal-page-hero h1{margin:5px 0 10px;font-size:clamp(2.5rem,5vw,4.5rem);font-weight:400;letter-spacing:-.035em;line-height:1}.portal-page-hero p{max-width:700px;margin:0;color:var(--p-muted);font-size:1.02rem}.portal-page-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;max-width:430px}.portal-page-actions a{padding:10px 15px;border:1px solid var(--p-line);border-radius:999px;background:#fff;color:var(--p-green);font-size:.83rem;font-weight:700;box-shadow:0 8px 24px rgba(14,38,52,.045)}.portal-page-actions a.is-primary{background:var(--p-green);border-color:var(--p-green);color:#fff}.portal-page-title{display:none}

.portal-home-alerts{padding:78px 0}.portal-home-alert-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.portal-home-alert-grid article{background:#fff;border:1px solid var(--p-line);border-radius:20px;padding:23px;box-shadow:0 13px 38px rgba(14,38,52,.055)}.portal-alert-type{display:inline-flex;padding:5px 9px;border-radius:999px;background:var(--p-mint);color:var(--p-green);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.portal-alert-type.is-km{background:#eef2f8;color:#3d5877}.portal-home-alert-grid h3{font-size:1.2rem;margin:13px 0 7px;font-weight:500}.portal-home-alert-grid p{color:var(--p-muted);margin:0 0 15px}.portal-home-alert-grid article>div{display:flex;gap:13px;flex-wrap:wrap}.portal-home-alert-grid article>div a{font-size:.8rem;font-weight:800;color:var(--p-green)}

.portal-article{background:#fff;border:1px solid var(--p-line);border-radius:24px;padding:clamp(24px,5vw,58px);box-shadow:0 18px 55px rgba(14,38,52,.07)}.portal-back-link{display:inline-flex;margin-bottom:34px;color:var(--p-green);font-size:.83rem;font-weight:700}.portal-article-header{max-width:900px}.portal-article-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.portal-article-meta span,.portal-article-meta time{font-size:.73rem;color:var(--p-muted)}.portal-article-meta span:first-child{padding:5px 9px;border-radius:999px;background:var(--p-mint);color:var(--p-green);font-weight:800;text-transform:uppercase;letter-spacing:.07em}.portal-article-header h1{font-size:clamp(2.6rem,6vw,5.6rem);line-height:.98;letter-spacing:-.045em;font-weight:400;margin:0 0 24px;max-width:1050px}.portal-article-lead{font-size:1.12rem;color:var(--p-muted);max-width:780px;margin:0}.portal-article-image{margin:42px 0 28px;border-radius:20px;overflow:hidden;background:var(--p-mint);max-height:680px}.portal-article-image img{width:100%;height:100%;max-height:680px;display:block;object-fit:cover}.portal-article .portal-sharebar{margin:28px 0;border-radius:14px;background:#f8fafb;box-shadow:none}.portal-article-body{max-width:850px;margin:42px auto 0;font-size:1.05rem;line-height:1.78;color:#273238}.portal-article-body p{margin:0 0 1.35em}.portal-article-body img{max-width:100%;height:auto}.portal-article-body a{color:var(--p-green);text-decoration:underline;text-underline-offset:3px}.portal-article-links{max-width:850px;margin:32px auto 0;padding-top:24px;border-top:1px solid var(--p-line);display:flex;gap:12px;flex-wrap:wrap}.portal-article-links a{padding:10px 14px;border-radius:10px;background:var(--p-mint);color:var(--p-green);font-weight:700;font-size:.85rem}.portal-related-news{margin-top:34px}.portal-related-news>header{margin-bottom:18px}.portal-related-news h2{margin:4px 0 0;font-size:2rem;font-weight:400}.portal-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.portal-related-grid>a{display:flex;flex-direction:column;min-height:230px;padding:22px;background:#fff;border:1px solid var(--p-line);border-radius:18px;color:var(--p-ink);transition:.2s ease}.portal-related-grid>a:hover{transform:translateY(-3px);box-shadow:0 13px 34px rgba(14,38,52,.07)}.portal-related-grid small{color:var(--p-muted)}.portal-related-grid strong{font-size:1.12rem;line-height:1.25;margin:10px 0}.portal-related-grid span{font-size:.88rem;color:var(--p-muted)}.portal-related-grid b{margin-top:auto;padding-top:18px;color:var(--p-green);font-size:.8rem}

/* Alte RK/KM-Inhalte in der neuen Hülle ruhiger darstellen */
.portal-legacy-sid-400 .rk-highlight,.portal-legacy-sid-500 .km-highlight{border-radius:18px!important;overflow:hidden}.portal-legacy-sid-400 .rk-archiv-wrapper,.portal-legacy-sid-500 .km-archiv-wrapper{gap:12px!important;align-items:end!important}.portal-legacy-sid-400 #rkSuche,.portal-legacy-sid-500 #kmSuche,.portal-legacy-sid-400 select,.portal-legacy-sid-500 select{border:1px solid var(--p-line)!important;border-radius:11px!important;padding:11px 13px!important;background:#fff!important;font:inherit!important}.portal-legacy-sid-400 .rk-item,.portal-legacy-sid-500 .km-item{border-radius:15px!important;border-color:var(--p-line)!important;box-shadow:none!important}.portal-legacy-sid-400 .rk-item:hover,.portal-legacy-sid-500 .km-item:hover{border-color:#bbc5cb!important}

@media(max-width:900px){.portal-page-hero-inner{display:block;padding:42px 0 36px}.portal-page-actions{justify-content:flex-start;max-width:none;margin-top:24px}.portal-home-alert-grid,.portal-related-grid{grid-template-columns:1fr 1fr}.portal-related-grid>a:last-child{grid-column:1/-1}}
@media(max-width:760px){.portal-page-hero-inner{min-height:auto;padding:34px 0 28px}.portal-page-hero h1{font-size:2.7rem}.portal-breadcrumb{margin-bottom:18px}.portal-page-actions{gap:7px}.portal-page-actions a{font-size:.76rem;padding:8px 11px}.portal-home-alerts{padding:55px 0}.portal-home-alert-grid,.portal-related-grid{grid-template-columns:1fr}.portal-related-grid>a:last-child{grid-column:auto}.portal-article{border-radius:18px;padding:22px 18px}.portal-article-header h1{font-size:2.65rem}.portal-article-lead{font-size:1rem}.portal-article-image{margin-top:28px;border-radius:14px}.portal-article-body{font-size:1rem;margin-top:30px}.portal-related-grid>a{min-height:190px}}


/* ==========================================================================
   Frontend V 0.1.2 – Hero-Kontrast, Schnellbereiche, Branding & Socials
   ========================================================================== */

/* Wechselnde Fotos bleiben sichtbar, erhalten aber einen zuverlässigeren
   Kontrast für die helle Hero-Typografie. */
.portal-home-bg-shade{
    background:
        linear-gradient(90deg,
            rgba(7,19,26,.25) 0%,
            rgba(7,19,26,.52) 44%,
            rgba(7,19,26,.76) 100%);
}
.portal-home-copy{
    text-shadow:0 2px 18px rgba(0,0,0,.20);
}
.portal-home-copy p{
    color:rgba(255,255,255,.92);
    text-shadow:0 1px 8px rgba(0,0,0,.32);
}

/* Wappen bewusst nur moderat vergrößern. */
.portal-home-brandpanel>a{
    max-width:365px;
}

/* Social-Media-Auftritt wieder mit den vorhandenen Original-Icons. */
.portal-home-socials{
    gap:20px;
    align-items:flex-start;
}
.portal-home-socials a{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:7px;
    min-width:48px;
    color:var(--p-muted);
    font-size:.72rem;
    border:0;
    text-decoration:none;
}
.portal-home-socials img{
    width:32px;
    height:32px;
    object-fit:contain;
    display:block;
    transition:transform .18s ease;
}
.portal-home-socials a:hover img{
    transform:translateY(-2px);
}
.portal-home-socials a:hover{
    color:var(--p-green);
}

/* Die drei Schnellbereiche im Hero klar voneinander abheben, ohne den
   bisherigen Aufbau zu verändern. */
.portal-home-quick{
    gap:10px;
    border-top:0;
}
.portal-home-quick a{
    position:relative;
    border:1px solid rgba(255,255,255,.18);
    border-radius:14px;
    padding:20px 20px;
    overflow:hidden;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.portal-home-quick a:nth-child(1){
    background:rgba(24,66,90,.54);
}
.portal-home-quick a:nth-child(2){
    background:rgba(121,91,18,.48);
}
.portal-home-quick a:nth-child(3){
    background:rgba(31,79,105,.50);
}
.portal-home-quick a:last-child{
    border:1px solid rgba(255,255,255,.18);
}
.portal-home-quick a:hover{
    transform:translateY(-3px);
    border-color:rgba(255,255,255,.38);
}
.portal-home-quick a:nth-child(1):hover{background:rgba(24,66,90,.68)}
.portal-home-quick a:nth-child(2):hover{background:rgba(121,91,18,.62)}
.portal-home-quick a:nth-child(3):hover{background:rgba(31,79,105,.64)}
.portal-home-quick span{
    color:rgba(255,255,255,.72);
}
.portal-home-quick small{
    color:rgba(255,255,255,.76);
}

@media(max-width:760px){
    .portal-home-brandpanel>a{
        max-width:270px;
    }
    .portal-home-quick{
        gap:8px;
    }
    .portal-home-quick a{
        border:1px solid rgba(255,255,255,.18);
    }
}


/* ==========================================================================
   Frontend V 0.1.3 – Portal-Feinschliff & Sportbetrieb
   ========================================================================== */

/* Hero-Aktionen: gleiche Größe und etwas hochwertigeres Feedback */
.portal-home-actions .portal-btn{
    width:230px;
    justify-content:center;
    transition:
        transform .20s ease,
        box-shadow .20s ease,
        background-color .20s ease,
        border-color .20s ease;
}
.portal-home-actions .portal-btn:hover{
    transform:translateY(-3px);
}
.portal-home-actions .portal-btn-primary:hover{
    box-shadow:0 12px 28px rgba(0,0,0,.18);
}
.portal-home-actions .portal-btn-glass:hover{
    background:rgba(255,255,255,.16);
    border-color:rgba(255,255,255,.58);
}

/* Mehr Luft zwischen Hero-Aktionen und den drei Schnellzugriffen */
.portal-home-quick{
    margin-top:28px;
}
.portal-home-quick a strong,
.portal-home-quick a small{
    transition:transform .20s ease;
}
.portal-home-quick a:hover strong,
.portal-home-quick a:hover small{
    transform:translateX(3px);
}

/* Sportbetrieb: weiterhin der bestehende zweispaltige Portalbereich,
   aber fachlich sauber in KM / RK / Kreisjugend gegliedert. */
.portal-home-sport{
    align-items:start;
}
.portal-sport-intro{
    position:sticky;
    top:34px;
}
.portal-sport-groups{
    display:grid;
    gap:16px;
}
.portal-sport-group{
    --sport-accent:var(--p-green);
    background:#fff;
    border:1px solid var(--p-line);
    border-radius:20px;
    padding:18px;
    box-shadow:0 10px 30px rgba(15,42,57,.035);
}
.portal-sport-group.is-km{--sport-accent:#87691d}
.portal-sport-group.is-rk{--sport-accent:#1f4f69}
.portal-sport-group.is-youth{--sport-accent:#286682}

.portal-sport-group>header{
    display:flex;
    align-items:center;
    gap:15px;
    padding:3px 4px 17px;
}
.portal-sport-group>header>span{
    display:grid;
    place-items:center;
    flex:0 0 42px;
    width:42px;
    height:42px;
    border-radius:13px;
    color:#fff;
    background:var(--sport-accent);
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.08em;
}
.portal-sport-group>header div{
    min-width:0;
}
.portal-sport-group>header strong{
    display:block;
    color:var(--p-ink);
    font-size:1.12rem;
}
.portal-sport-group>header small{
    display:block;
    margin-top:2px;
    color:var(--p-muted);
}
.portal-sport-links{
    display:grid;
    gap:8px;
}
.portal-sport-links a{
    display:grid;
    grid-template-columns:86px minmax(0,1fr) 26px;
    align-items:center;
    gap:12px;
    min-height:64px;
    padding:12px 15px;
    border:1px solid #e4e8ea;
    border-radius:13px;
    background:#fbfdfe;
    color:var(--p-ink);
    transition:
        transform .18s ease,
        border-color .18s ease,
        background-color .18s ease,
        box-shadow .18s ease;
}
.portal-sport-links a>span{
    color:var(--sport-accent);
    font-size:.72rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.portal-sport-links a>strong{
    font-size:.94rem;
}
.portal-sport-links a>b{
    color:var(--sport-accent);
    font-size:1.05rem;
    transition:transform .18s ease;
}
.portal-sport-links a:hover{
    transform:translateY(-2px);
    border-color:color-mix(in srgb, var(--sport-accent) 35%, #dde2e4);
    background:#fff;
    box-shadow:0 8px 20px rgba(12,32,43,.06);
}
.portal-sport-links a:hover>b{
    transform:translateX(4px);
}

/* Dezentere Bewegung an bereits bestehenden Portal-Karten */
.portal-area-card,
.portal-news-tile,
.portal-home-alert-grid article{
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease;
}
.portal-news-tile:hover,
.portal-home-alert-grid article:hover{
    transform:translateY(-3px);
}

/* Responsiv: mehr Luft im Hero und keine zusammenklebenden Bereiche */
@media(max-width:1000px){
    .portal-sport-intro{
        position:static;
    }
}

@media(max-width:760px){
    .portal-home-actions{
        display:grid;
        grid-template-columns:1fr;
        width:min(100%,310px);
        margin-left:auto;
        margin-right:auto;
        gap:12px;
    }
    .portal-home-actions .portal-btn{
        width:100%;
    }
    .portal-home-quick{
        margin-top:34px;
        gap:12px;
    }
    .portal-home-quick a{
        min-height:118px;
        padding:22px 24px;
    }

    .portal-home-sport{
        gap:34px;
    }
    .portal-sport-groups{
        gap:14px;
    }
    .portal-sport-group{
        padding:14px;
        border-radius:17px;
    }
    .portal-sport-links a{
        grid-template-columns:1fr 24px;
        gap:5px 10px;
        padding:13px 14px;
    }
    .portal-sport-links a>span{
        grid-column:1;
        font-size:.66rem;
    }
    .portal-sport-links a>strong{
        grid-column:1;
    }
    .portal-sport-links a>b{
        grid-column:2;
        grid-row:1/3;
        align-self:center;
    }
}

@media(prefers-reduced-motion:reduce){
    .portal-home-actions .portal-btn,
    .portal-home-quick a,
    .portal-home-quick a strong,
    .portal-home-quick a small,
    .portal-sport-links a,
    .portal-sport-links a>b,
    .portal-area-card,
    .portal-news-tile,
    .portal-home-alert-grid article{
        transition:none!important;
        transform:none!important;
    }
}


/* ==========================================================================
   Frontend V 0.1.4 – optischer Feinschliff
   ========================================================================== */

/* Navigation: ruhiger aktiver Marker statt nur Flächenwechsel */
.portal-nav-links>a,
.portal-nav-group>a{
    position:relative;
    transition:background-color .18s ease,color .18s ease;
}
.portal-nav-links>a::after,
.portal-nav-group>a::after{
    content:"";
    position:absolute;
    left:18px;
    right:18px;
    bottom:0;
    height:2px;
    border-radius:2px 2px 0 0;
    background:#a7c3d3;
    transform:scaleX(0);
    transform-origin:center;
    transition:transform .20s ease;
}
.portal-nav-links>a:hover::after,
.portal-nav-group>a:hover::after,
.portal-nav-links>.is-active::after{
    transform:scaleX(1);
}

/* Dropdowns weich ein-/ausblenden */
@media(min-width:761px){
    .portal-subnav{
        display:block;
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transform:translateY(-7px);
        transition:opacity .18s ease,transform .18s ease,visibility .18s;
    }
    .portal-nav-group:hover .portal-subnav,
    .portal-nav-group:focus-within .portal-subnav{
        opacity:1;
        visibility:visible;
        pointer-events:auto;
        transform:translateY(0);
    }
}

/* Hintergrundbilder bleiben lebendig, aber sehr dezent. */
.portal-home-bg-layer{
    will-change:opacity,transform;
    transition:opacity 1.7s ease,transform 9s ease;
}
.portal-home-bg-layer.is-active{
    transform:scale(1.055);
}

/* Karten: feinere Tiefenstaffelung */
.portal-area-card,
.portal-news-tile,
.portal-sport-group,
.portal-home-alert-grid article{
    box-shadow:0 12px 34px rgba(15,42,57,.045);
}
.portal-area-card:hover,
.portal-news-tile:hover,
.portal-sport-group:hover,
.portal-home-alert-grid article:hover{
    box-shadow:0 18px 42px rgba(14,38,51,.09);
}

/* Newsbilder reagieren nur minimal auf Hover. */
.portal-news-media{
    overflow:hidden;
    transform:translateZ(0);
    transition:filter .24s ease;
}
.portal-news-tile:hover .portal-news-media{
    filter:saturate(1.05) contrast(1.02);
}
.portal-news-body h3{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
}

/* Sektionen bekommen etwas mehr optischen Rhythmus. */
.portal-home-section,
.portal-news-band,
.portal-home-sport,
.portal-home-alerts{
    scroll-margin-top:82px;
}

/* Footer komplett ohne weiß hinterlegtes Logo */
.portal-footer{
    background:
      radial-gradient(circle at 10% 0%,rgba(128,173,199,.08),transparent 32%),
      #0b1f2a;
    padding:58px 0 0;
}
.portal-footer-grid{
    grid-template-columns:1.55fr repeat(3,1fr);
    gap:46px;
}
.portal-footer-intro{
    max-width:360px;
}
.portal-footer-kicker{
    display:block;
    color:#96bed5;
    font-size:.72rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.13em;
    margin-bottom:8px;
}
.portal-footer-intro>strong{
    display:block;
    font-size:1.45rem;
    font-weight:400;
}
.portal-footer-intro>p{
    color:rgba(255,255,255,.56);
    line-height:1.55;
    margin:9px 0 20px;
}
.portal-footer-socials{
    display:flex;
    gap:10px;
}
.portal-footer-socials a{
    display:flex;
    align-items:center;
    gap:7px;
    padding:7px 9px;
    border:1px solid rgba(255,255,255,.11);
    border-radius:999px;
    font-size:.72rem;
    transition:border-color .18s ease,background-color .18s ease,transform .18s ease;
}
.portal-footer-socials a:hover{
    background:rgba(255,255,255,.06);
    border-color:rgba(255,255,255,.25);
    transform:translateY(-2px);
}
.portal-footer-socials img{
    width:18px;
    height:18px;
    object-fit:contain;
}
.portal-footer-stat-link{
    margin:2px 0 4px;
    padding:11px 12px;
    border:1px solid rgba(161,191,208,.18);
    border-radius:12px;
    background:rgba(161,191,208,.055);
}
.portal-footer-stat-link span,
.portal-footer-stat-link b{
    display:block;
}
.portal-footer-stat-link span{
    color:rgba(255,255,255,.46);
    font-size:.68rem;
    text-transform:uppercase;
    letter-spacing:.09em;
}
.portal-footer-stat-link b{
    color:#b1c9d7;
    margin-top:2px;
    font-size:.93rem;
}
.portal-footer-bottom{
    margin-top:46px;
    padding:18px 0;
}
.portal-footer-bottom .portal-shell{
    align-items:center;
    gap:22px;
}
.portal-footer-tech{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
}
.portal-footer-tech a{
    color:rgba(255,255,255,.62);
}
.portal-footer-tech b{
    color:#afc6d4;
    font-weight:500;
}
.portal-footer-tech i{
    color:rgba(255,255,255,.22);
    font-style:normal;
}

/* Scroll-to-top erst beim Hover kräftiger */
.portal-scroll-top{
    opacity:.78;
    transition:opacity .18s ease,transform .18s ease,box-shadow .18s ease;
}
.portal-scroll-top:hover{
    opacity:1;
    transform:translateY(-3px);
    box-shadow:0 14px 30px rgba(0,0,0,.23);
}

@media(max-width:1000px){
    .portal-footer-grid{
        grid-template-columns:1fr 1fr;
    }
    .portal-footer-intro{
        max-width:none;
    }
}

@media(max-width:760px){
    .portal-nav-links>a::after,
    .portal-nav-group>a::after{
        display:none;
    }

    .portal-footer{
        padding-top:44px;
    }
    .portal-footer-grid{
        grid-template-columns:1fr;
        gap:30px;
    }
    .portal-footer-socials{
        flex-wrap:wrap;
    }
    .portal-footer-bottom .portal-shell{
        display:flex;
        flex-direction:column;
        align-items:flex-start;
        gap:8px;
    }
    .portal-footer-tech{
        justify-content:flex-start;
    }
}

@media(prefers-reduced-motion:reduce){
    .portal-home-bg-layer,
    .portal-nav-links>a::after,
    .portal-nav-group>a::after,
    .portal-subnav,
    .portal-footer-socials a,
    .portal-scroll-top{
        transition:none!important;
        transform:none!important;
    }
}


/* ==========================================================================
   Frontend V 0.1.5 – Aktuelles, RK & KM
   ========================================================================== */
.portal-section-heading{
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(280px,.7fr);
    gap:50px;
    align-items:end;
    margin:0 0 30px;
}
.portal-section-heading h2{
    margin:8px 0 0;
    font-size:clamp(2rem,4vw,3.6rem);
    line-height:1;
    font-weight:400;
    letter-spacing:-.035em;
}
.portal-section-heading>p{
    color:var(--p-muted);
    line-height:1.65;
    margin:0;
}
.portal-empty-state{
    padding:32px;
    border:1px dashed var(--p-line);
    border-radius:18px;
    background:#fbfdfe;
    color:var(--p-muted);
}

/* News */
.portal-news-page{padding-bottom:25px}
.portal-news-lead{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    min-height:420px;
    overflow:hidden;
    border:1px solid var(--p-line);
    border-radius:24px;
    background:#fff;
    box-shadow:0 18px 46px rgba(15,42,57,.07);
    color:var(--p-ink);
}
.portal-news-lead-media{
    min-height:360px;
    background:linear-gradient(135deg,#e1e5e7,#edf4f8);
    overflow:hidden;
}
.portal-news-lead-media img{
    width:100%;height:100%;object-fit:cover;
    transition:transform .55s ease;
}
.portal-news-lead:hover .portal-news-lead-media img{transform:scale(1.025)}
.portal-news-lead-copy{
    display:flex;flex-direction:column;justify-content:center;
    padding:48px;
}
.portal-news-meta{
    display:flex;gap:10px;align-items:center;flex-wrap:wrap;
    color:var(--p-green);font-size:.72rem;text-transform:uppercase;
    letter-spacing:.07em;font-weight:700;
}
.portal-news-meta span+span,.portal-news-meta time+span{padding-left:10px;border-left:1px solid var(--p-line)}
.portal-news-lead-copy h2{
    margin:13px 0 16px;font-size:clamp(2rem,3.5vw,3.25rem);
    line-height:1.03;font-weight:400;letter-spacing:-.035em;
}
.portal-news-lead-copy p{margin:0;color:var(--p-muted);line-height:1.65}
.portal-news-lead-copy>strong,
.portal-news-archive-copy>strong{
    margin-top:25px;color:var(--p-green);font-size:.86rem;
}
.portal-news-lead-copy>strong b,
.portal-news-archive-copy>strong b{display:inline-block;margin-left:6px;transition:transform .18s ease}
.portal-news-lead:hover strong b,.portal-news-archive-card:hover strong b{transform:translateX(4px)}
.portal-news-archive-grid{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;margin-top:22px;
}
.portal-news-archive-card{
    min-width:0;border:1px solid var(--p-line);border-radius:18px;
    background:#fff;overflow:hidden;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.portal-news-archive-card:hover{
    transform:translateY(-4px);border-color:#c0c9ce;
    box-shadow:0 17px 36px rgba(15,42,57,.08);
}
.portal-news-archive-card>a{display:block;color:var(--p-ink);height:100%}
.portal-news-archive-media{height:190px;background:#edf4f8;overflow:hidden;display:grid;place-items:center}
.portal-news-archive-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.portal-news-archive-card:hover img{transform:scale(1.03)}
.portal-news-archive-media>span{font-size:2rem;color:#a8b3b9}
.portal-news-archive-copy{padding:22px}
.portal-news-archive-copy h3{margin:11px 0 10px;font-size:1.25rem;line-height:1.2}
.portal-news-archive-copy p{color:var(--p-muted);line-height:1.55;margin:0;font-size:.9rem}

/* Sport pages */
.portal-sport-page{padding-bottom:20px}
.portal-sport-page>.portal-info-strip{margin-bottom:24px}
.portal-sport-toolbar{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.78fr);
    gap:35px;align-items:end;padding:28px;
    border:1px solid var(--p-line);border-radius:20px;background:#fff;
}
.portal-sport-toolbar h2{margin:7px 0 7px;font-size:clamp(2rem,4vw,3rem);font-weight:400;letter-spacing:-.03em}
.portal-sport-toolbar p{margin:0;color:var(--p-muted);line-height:1.55;max-width:720px}
.portal-sport-controls{display:grid;grid-template-columns:.7fr 1.3fr;gap:10px}
.portal-sport-controls label{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--p-muted);font-weight:700}
.portal-sport-controls select,.portal-sport-controls input{
    display:block;width:100%;margin-top:6px;padding:13px 14px;border:1px solid var(--p-line);
    border-radius:11px;background:#fbfdfe;color:var(--p-ink);font:inherit;font-size:.9rem;
    outline:none;
}
.portal-sport-controls select:focus,.portal-sport-controls input:focus{border-color:#6f9fb8;box-shadow:0 0 0 3px rgba(51,93,117,.08)}
.portal-km-direct-actions{
    display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0;
}
.portal-km-direct-actions a{
    display:grid;grid-template-columns:90px 1fr 25px;gap:12px;align-items:center;
    min-height:72px;padding:14px 18px;border:1px solid #e0e4e7;border-radius:15px;
    background:#fbfdfe;color:var(--p-ink);
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.portal-km-direct-actions a:hover{transform:translateY(-2px);border-color:#aebbc3;box-shadow:0 9px 24px rgba(13,35,47,.06)}
.portal-km-direct-actions span{color:var(--p-green);font-size:.7rem;font-weight:800;text-transform:uppercase}
.portal-km-direct-actions b{color:var(--p-green)}
.portal-sport-downloads{
    display:grid;grid-template-columns:220px 1fr;gap:20px;
    margin:14px 0;padding:22px;border:1px solid var(--p-line);border-radius:18px;background:#f6fafd;
}
.portal-sport-downloads h3{margin:5px 0 0;font-size:1.25rem}
.portal-sport-downloads>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.portal-sport-downloads a{
    display:grid;grid-template-columns:40px 1fr 20px;align-items:center;gap:10px;
    padding:12px;border-radius:12px;background:#fff;border:1px solid #e5e9eb;color:var(--p-ink);
}
.portal-sport-downloads a>span{
    grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:9px;
    background:#ebeff2;color:var(--p-green);font-size:.66rem;font-weight:900;
}
.portal-sport-downloads a>small{grid-column:2;color:var(--p-muted);font-size:.72rem}
.portal-sport-downloads a>b{grid-column:3;grid-row:1/3;color:var(--p-green)}
.portal-sport-result-count{
    margin:22px 0 10px;color:var(--p-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em
}
.portal-sport-result-count strong{color:var(--p-green);font-size:1rem}
.portal-sport-document-grid{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;
}
.portal-sport-no-results{grid-column:1/-1;padding:25px;border:1px dashed var(--p-line);border-radius:14px;color:var(--p-muted)}
.portal-sport-discipline{
    border:1px solid var(--p-line);border-radius:18px;background:#fff;overflow:hidden;
    transition:transform .18s ease,box-shadow .18s ease;
}
.portal-sport-discipline:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(15,42,57,.06)}
.portal-sport-discipline>header{
    display:flex;justify-content:space-between;gap:15px;align-items:center;padding:18px 20px;border-bottom:1px solid #e7eff4;background:#f7fbfd
}
.portal-sport-discipline>header>div{display:flex;align-items:center;gap:10px}
.portal-sport-discipline>header span{
    display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#1f4f69;color:#fff;font-size:.66rem;font-weight:800
}
.portal-sport-discipline>header h3{margin:0;font-size:1.05rem}
.portal-sport-discipline>header small{color:var(--p-muted)}
.portal-sport-discipline ul{list-style:none;margin:0;padding:8px 18px}
.portal-sport-discipline li{
    display:grid;grid-template-columns:40px 1fr 20px;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #e9f0f4
}
.portal-sport-discipline li:last-child{border-bottom:0}
.portal-pdf-badge{
    display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#edf4f8;color:var(--p-green);font-size:.61rem;font-weight:900
}
.portal-sport-discipline li>a{display:block;color:var(--p-ink);min-width:0}
.portal-sport-discipline li>a strong{display:block;font-size:.88rem}
.portal-sport-discipline li>a small{display:block;color:var(--p-muted);margin-top:2px;font-size:.72rem}
.portal-sport-discipline li>a em{
    display:inline-block;margin-left:7px;padding:2px 5px;border-radius:5px;background:#e2ebf1;color:#1f4f69;font-size:.55rem;font-style:normal;vertical-align:2px
}
.portal-sport-discipline li>b{color:var(--p-green)}
.portal-sport-discipline[hidden]{display:none!important}

@media(max-width:1000px){
    .portal-section-heading,.portal-news-lead,.portal-sport-toolbar{grid-template-columns:1fr}
    .portal-news-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .portal-sport-downloads{grid-template-columns:1fr}
}
@media(max-width:760px){
    .portal-section-heading{gap:15px}
    .portal-news-lead-copy{padding:26px}
    .portal-news-lead-media{min-height:250px}
    .portal-news-archive-grid,.portal-sport-document-grid,.portal-km-direct-actions{grid-template-columns:1fr}
    .portal-sport-controls{grid-template-columns:1fr}
    .portal-sport-toolbar{padding:20px}
    .portal-km-direct-actions a{grid-template-columns:74px 1fr 20px}
    .portal-sport-downloads>div{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
    .portal-news-lead-media img,.portal-news-archive-card,.portal-news-archive-media img,
    .portal-sport-discipline,.portal-km-direct-actions a{transition:none!important;transform:none!important}
}


/* ==========================================================================
   Frontend V 0.1.6 – kompaktere Desktop-Typografie & News-Redesign
   ========================================================================== */

/* Desktop: die Portalüberschriften etwas zurücknehmen.
   Mobile bleibt über die bestehenden Media-Queries bewusst unverändert. */
@media(min-width:901px){
    .portal-page-hero h1{
        font-size:clamp(2.35rem,3.7vw,3.7rem);
    }
    .portal-page-hero-inner{
        min-height:215px;
        padding-top:45px;
        padding-bottom:36px;
    }
    .portal-section-heading h2{
        font-size:clamp(1.9rem,3vw,2.85rem);
        line-height:1.05;
    }
    .portal-sport-toolbar h2{
        font-size:clamp(1.9rem,3vw,2.6rem);
    }
}

/* Newsübersicht */
.portal-section-heading-compact{
    margin-bottom:22px;
}
.portal-news-filterbar{
    display:grid;
    grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(150px,.72fr)) auto;
    gap:10px;
    align-items:end;
    padding:16px;
    margin-bottom:9px;
    border:1px solid var(--p-line);
    border-radius:16px;
    background:#fff;
}
.portal-news-filterbar label{
    display:block;
    color:var(--p-muted);
    font-size:.66rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.portal-news-filterbar input,
.portal-news-filterbar select{
    display:block;
    width:100%;
    margin-top:6px;
    padding:11px 12px;
    border:1px solid var(--p-line);
    border-radius:10px;
    background:#fbfdfe;
    color:var(--p-ink);
    font:inherit;
    font-size:.82rem;
    outline:none;
}
.portal-news-filterbar input:focus,
.portal-news-filterbar select:focus{
    border-color:#6f9fb8;
    box-shadow:0 0 0 3px rgba(51,93,117,.07);
}
.portal-news-reset{
    min-height:42px;
    padding:0 13px;
    border:1px solid var(--p-line);
    border-radius:10px;
    background:#fff;
    color:var(--p-green);
    font:inherit;
    font-size:.78rem;
    font-weight:700;
    cursor:pointer;
}
.portal-news-filter-result{
    display:flex;
    justify-content:flex-end;
    margin:0 2px 13px;
    color:var(--p-muted);
    font-size:.7rem;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.portal-news-filter-result strong{
    color:var(--p-green);
}
.portal-news-filter-result b{
    font-weight:500;
}

.portal-news-archive-grid-compact{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:15px;
    margin-top:0;
}
.portal-news-archive-grid-compact .portal-news-archive-card[hidden]{
    display:none!important;
}
.portal-news-archive-grid-compact .portal-news-archive-media{
    height:165px;
}
.portal-news-archive-grid-compact .portal-news-archive-copy{
    padding:17px 18px 18px;
}
.portal-news-meta-primary{
    min-height:18px;
}
.portal-news-archive-grid-compact .portal-news-meta{
    font-size:.62rem;
}
.portal-news-archive-grid-compact .portal-news-archive-copy h3{
    margin:8px 0 7px;
    font-size:1.05rem;
    line-height:1.24;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
}
.portal-news-archive-grid-compact .portal-news-archive-copy>p{
    font-size:.82rem;
    line-height:1.48;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
}
.portal-news-byline{
    display:flex;
    gap:6px 10px;
    flex-wrap:wrap;
    margin-top:13px;
    padding-top:11px;
    border-top:1px solid #e9f0f4;
    color:var(--p-muted);
    font-size:.66rem;
}
.portal-news-byline span:first-child{
    color:#566873;
}
.portal-news-archive-grid-compact .portal-news-archive-copy>strong{
    display:block;
    margin-top:14px;
    font-size:.74rem;
}
.portal-news-loadmore-wrap{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:12px;
    margin-top:24px;
}
.portal-news-loadmore-wrap .portal-btn{
    min-width:210px;
}
.portal-news-loadmore-wrap p{
    color:var(--p-muted);
}

/* Newsdetail: keine doppelte Kurzfassung, kleinere Headline und ein
   bewusst begrenztes Artikelbild. */
.portal-article-news{
    padding:clamp(24px,4vw,46px);
}
.portal-article-news .portal-back-link{
    margin-bottom:25px;
}
.portal-article-news .portal-article-header{
    max-width:920px;
    margin:0 auto;
}
.portal-article-meta-news{
    margin-bottom:14px;
}
.portal-article-meta-news span,
.portal-article-meta-news time{
    padding:5px 8px;
    border-radius:999px;
    background:#f3f8fb;
    color:#617168;
    font-size:.66rem;
}
.portal-article-meta-news time{
    color:var(--p-green);
    font-weight:700;
}
.portal-article-meta-news span:first-of-type{
    background:#edf5f9;
    color:#43555f;
    font-weight:600;
    text-transform:none;
    letter-spacing:0;
}
.portal-article-news .portal-article-header h1{
    max-width:900px;
    margin:0;
    font-size:clamp(2.1rem,4vw,3.75rem);
    line-height:1.02;
    letter-spacing:-.035em;
}
.portal-article-image-news{
    max-width:820px;
    max-height:480px;
    margin:30px auto 20px;
    border-radius:16px;
    background:#f4f8fb;
}
.portal-article-image-news img{
    width:100%;
    max-height:480px;
    height:auto;
    object-fit:contain;
}
.portal-article-news .portal-sharebar{
    max-width:820px;
    margin:18px auto 0;
}
.portal-article-news .portal-article-body{
    max-width:780px;
    margin-top:34px;
    font-size:1rem;
    line-height:1.72;
}
.portal-article-news .portal-article-links{
    max-width:780px;
}
.portal-related-news h2{
    font-size:1.6rem;
}

/* Tablet */
@media(max-width:1100px){
    .portal-news-filterbar{
        grid-template-columns:1fr 1fr;
    }
    .portal-news-reset{
        width:max-content;
    }
    .portal-news-archive-grid-compact{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

/* Mobile: bewusst kompakt, aber die bisher guten Titelgrößen behalten. */
@media(max-width:760px){
    .portal-news-filterbar{
        grid-template-columns:1fr;
        padding:13px;
    }
    .portal-news-reset{
        width:100%;
    }
    .portal-news-filter-result{
        justify-content:flex-start;
        margin-top:10px;
    }
    .portal-news-archive-grid-compact{
        grid-template-columns:1fr;
    }
    .portal-news-archive-grid-compact .portal-news-archive-media{
        height:190px;
    }
    .portal-article-news .portal-article-header h1{
        font-size:2.35rem;
    }
    .portal-article-image-news{
        margin-top:23px;
        max-height:390px;
    }
    .portal-article-image-news img{
        max-height:390px;
    }
}


/* ==========================================================================
   Frontend V 0.1.8 – Newsübersicht ruhiger und kompakter
   ========================================================================== */
.portal-news-page{
    padding-top:0;
}

.portal-news-toolbar-calm{
    margin-bottom:22px;
}

.portal-news-levels{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:13px;
}

.portal-news-levels button{
    border:1px solid var(--p-line);
    border-radius:999px;
    padding:8px 13px;
    background:#fff;
    color:var(--p-muted);
    font:inherit;
    font-size:.76rem;
    cursor:pointer;
    transition:
        background-color .18s ease,
        color .18s ease,
        border-color .18s ease,
        transform .18s ease;
}

.portal-news-levels button:hover{
    transform:translateY(-1px);
    border-color:#bbc4ca;
    color:var(--p-green);
}

.portal-news-levels button.is-active{
    background:var(--p-green);
    border-color:var(--p-green);
    color:#fff;
}

.portal-news-toolbar-row{
    display:flex;
    align-items:center;
    gap:10px;
}

.portal-news-search-compact{
    position:relative;
    flex:1 1 360px;
    max-width:520px;
}

.portal-news-search-compact input{
    width:100%;
    min-height:46px;
    padding:11px 14px 11px 40px;
    border:1px solid var(--p-line);
    border-radius:12px;
    background:#fff;
    color:var(--p-ink);
    font:inherit;
    font-size:.84rem;
    outline:none;
}

.portal-news-search-compact input:focus{
    border-color:#6f9fb8;
    box-shadow:0 0 0 3px rgba(51,93,117,.07);
}

.portal-news-search-icon{
    position:absolute;
    left:14px;
    top:50%;
    transform:translateY(-50%);
    color:var(--p-muted);
    pointer-events:none;
    font-size:1rem;
}

.portal-news-morefilters-toggle{
    min-height:46px;
    padding:0 15px;
    border:1px solid var(--p-line);
    border-radius:12px;
    background:#fff;
    color:var(--p-green);
    font:inherit;
    font-size:.8rem;
    font-weight:700;
    cursor:pointer;
}

.portal-news-morefilters-toggle span{
    display:inline-block;
    margin-left:5px;
    transition:transform .18s ease;
}

.portal-news-morefilters-toggle[aria-expanded="true"] span{
    transform:rotate(180deg);
}

.portal-news-morefilters{
    display:grid;
    grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;
    gap:10px;
    align-items:end;
    max-width:760px;
    margin-top:10px;
    padding:14px;
    border:1px solid var(--p-line);
    border-radius:14px;
    background:#fff;
}

.portal-news-morefilters[hidden]{
    display:none!important;
}

.portal-news-morefilters label{
    color:var(--p-muted);
    font-size:.64rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.portal-news-morefilters select{
    display:block;
    width:100%;
    margin-top:6px;
    padding:10px 11px;
    border:1px solid var(--p-line);
    border-radius:10px;
    background:#fbfdfe;
    color:var(--p-ink);
    font:inherit;
    font-size:.82rem;
}

.portal-news-count-calm{
    color:var(--p-muted);
    font-size:.72rem;
    letter-spacing:.03em;
}

.portal-news-count-calm span:first-child{
    color:var(--p-green);
    font-weight:700;
}

.portal-news-count-calm i{
    margin:0 5px;
    color:#b6bec3;
    font-style:normal;
}

.portal-news-loadmore-wrap{
    margin-top:26px;
}

@media(max-width:760px){
    .portal-news-toolbar-row{
        align-items:stretch;
        flex-direction:column;
    }

    .portal-news-search-compact{
        flex-basis:auto;
        width:100%;
        max-width:none;
    }

    .portal-news-morefilters-toggle{
        width:100%;
    }

    .portal-news-morefilters{
        grid-template-columns:1fr;
        max-width:none;
    }

    .portal-news-levels{
        gap:7px;
    }

    .portal-news-levels button{
        padding:8px 11px;
        font-size:.72rem;
    }
}


/* ==========================================================================
   Frontend V 0.1.9 – ruhige Unterseiten + Vereine + Downloads
   ========================================================================== */

/* RK/KM wie Aktuelles: keine zweite große Titelzone */
.portal-sport-filter-calm{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    margin-bottom:16px;
}
.portal-sport-years{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
}
.portal-sport-years a{
    display:flex;
    align-items:center;
    gap:6px;
    padding:8px 12px;
    border:1px solid var(--p-line);
    border-radius:999px;
    background:#fff;
    color:var(--p-muted);
    font-size:.76rem;
    transition:all .18s ease;
}
.portal-sport-years a:hover{
    color:var(--p-green);
    border-color:#bbc4ca;
    transform:translateY(-1px);
}
.portal-sport-years a.is-active{
    background:var(--p-green);
    border-color:var(--p-green);
    color:#fff;
}
.portal-sport-years small{
    opacity:.72;
    font-size:.61rem;
}
.portal-sport-search-compact,
.portal-content-search{
    position:relative;
    display:block;
    width:min(100%,430px);
}
.portal-sport-search-compact span,
.portal-content-search>span{
    position:absolute;
    left:14px;
    top:50%;
    transform:translateY(-50%);
    color:var(--p-muted);
    pointer-events:none;
}
.portal-sport-search-compact input,
.portal-content-search input{
    width:100%;
    min-height:44px;
    padding:10px 14px 10px 39px;
    border:1px solid var(--p-line);
    border-radius:12px;
    background:#fff;
    color:var(--p-ink);
    font:inherit;
    font-size:.82rem;
    outline:none;
}
.portal-sport-search-compact input:focus,
.portal-content-search input:focus{
    border-color:#6f9fb8;
    box-shadow:0 0 0 3px rgba(51,93,117,.07);
}
.portal-km-direct-actions-calm{
    margin:0 0 16px;
}
.portal-sport-service{
    margin-bottom:16px;
    border:1px solid var(--p-line);
    border-radius:15px;
    background:#fff;
    overflow:hidden;
}
.portal-sport-service summary{
    display:grid;
    grid-template-columns:90px 1fr 24px;
    align-items:center;
    gap:10px;
    min-height:58px;
    padding:11px 16px;
    cursor:pointer;
    list-style:none;
}
.portal-sport-service summary::-webkit-details-marker{display:none}
.portal-sport-service summary>span{
    color:var(--p-green);
    font-size:.66rem;
    font-weight:800;
    text-transform:uppercase;
}
.portal-sport-service summary>b{
    color:var(--p-green);
    font-size:1.15rem;
}
.portal-sport-service[open] summary>b{transform:rotate(45deg)}
.portal-sport-service>div{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    padding:0 14px 14px;
}
.portal-sport-service>div>a{
    display:grid;
    grid-template-columns:38px 1fr 20px;
    gap:10px;
    align-items:center;
    padding:11px;
    border:1px solid #e6e9eb;
    border-radius:11px;
    color:var(--p-ink);
}
.portal-sport-service>div>a>span{
    grid-row:1/3;
    display:grid;
    place-items:center;
    width:36px;height:36px;
    border-radius:8px;
    background:#edf4f8;
    color:var(--p-green);
    font-size:.61rem;
    font-weight:900;
}
.portal-sport-service>div>a>small{grid-column:2;color:var(--p-muted);font-size:.7rem}
.portal-sport-service>div>a>b{grid-column:3;grid-row:1/3;color:var(--p-green)}
.portal-sport-result-count-calm{
    display:flex;
    align-items:center;
    gap:7px;
    margin:18px 2px 10px;
}
.portal-sport-result-count-calm i{
    color:#b6bec3;
    font-style:normal;
}
.portal-sport-result-count-calm em{
    margin-left:auto;
    color:var(--p-muted);
    font-style:normal;
}

/* Vereinssuche */
.portal-content-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
}
.portal-content-count,
.portal-download-count{
    color:var(--p-muted);
    font-size:.75rem;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.portal-content-count strong,
.portal-download-count strong{
    color:var(--p-green);
    font-size:.95rem;
}
.portal-club-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.portal-content-empty{
    grid-column:1/-1;
    padding:24px;
    border:1px dashed var(--p-line);
    border-radius:14px;
    color:var(--p-muted);
}
.portal-club-card{
    border:1px solid var(--p-line);
    border-radius:18px;
    background:#fff;
    padding:20px;
    min-width:0;
}
.portal-club-card[hidden],
.portal-download-group[hidden]{display:none!important}
.portal-club-card-head{
    display:flex;
    align-items:center;
    gap:16px;
}
.portal-club-logo{
    flex:0 0 70px;
    width:70px;height:70px;
    display:grid;
    place-items:center;
    border:1px solid #e4e8ea;
    border-radius:14px;
    background:#fbfdfe;
    overflow:hidden;
}
.portal-club-logo img{
    max-width:90%;
    max-height:90%;
    object-fit:contain;
}
.portal-club-logo span{
    color:#a6afb5;
    font-weight:800;
}
.portal-club-number{
    color:var(--p-green);
    font-size:.65rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.portal-club-card h2{
    margin:4px 0 3px;
    font-size:1.18rem;
}
.portal-club-card-head p{
    margin:0;
    color:var(--p-muted);
}
.portal-club-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin:17px 0 0;
}
.portal-club-actions a,
.portal-club-social-link{
    display:inline-flex;
    padding:8px 11px;
    border:1px solid var(--p-line);
    border-radius:999px;
    color:var(--p-green);
    font-size:.73rem;
    font-weight:700;
}
.portal-club-details{
    margin-top:14px;
    border-top:1px solid #e9f0f4;
}
.portal-club-details summary{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 0 0;
    color:var(--p-muted);
    cursor:pointer;
    list-style:none;
    font-size:.78rem;
}
.portal-club-details summary::-webkit-details-marker{display:none}
.portal-club-details[open] summary b{transform:rotate(45deg)}
.portal-club-details-body{
    padding-top:17px;
}
.portal-club-contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:13px;
}
.portal-club-contact-grid section{
    padding:14px;
    border-radius:12px;
    background:#f6fafd;
}
.portal-club-contact-grid section>span{
    display:block;
    margin-bottom:8px;
    color:var(--p-green);
    font-size:.64rem;
    font-weight:800;
    text-transform:uppercase;
}
.portal-club-contact-grid strong{display:block;margin-bottom:5px}
.portal-club-contact-grid p{margin:2px 0;color:var(--p-muted);font-size:.78rem}
.portal-club-contact-grid a{display:block;margin-top:6px;color:var(--p-green);font-size:.76rem}
.portal-club-note{
    margin:14px 0 0;
    color:var(--p-muted);
    line-height:1.55;
    font-size:.8rem;
}
.portal-club-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:7px;
    margin-top:14px;
}
.portal-club-gallery a{
    aspect-ratio:4/3;
    overflow:hidden;
    border-radius:9px;
    background:#eef5f8;
}
.portal-club-gallery img{
    width:100%;height:100%;
    object-fit:cover;
    transition:transform .22s ease;
}
.portal-club-gallery a:hover img{transform:scale(1.04)}

/* Downloads */
.portal-download-toolbar{
    margin-bottom:10px;
}
.portal-download-categories{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin-bottom:12px;
}
.portal-download-categories button{
    padding:8px 12px;
    border:1px solid var(--p-line);
    border-radius:999px;
    background:#fff;
    color:var(--p-muted);
    font:inherit;
    font-size:.74rem;
    cursor:pointer;
}
.portal-download-categories button.is-active{
    background:var(--p-green);
    border-color:var(--p-green);
    color:#fff;
}
.portal-download-search{max-width:430px}
.portal-download-count{
    text-align:right;
    margin:0 2px 10px;
}
.portal-download-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.portal-download-group{
    border:1px solid var(--p-line);
    border-radius:18px;
    background:#fff;
    overflow:hidden;
}
.portal-download-group>header{
    padding:18px 20px 14px;
    background:#f7fbfd;
    border-bottom:1px solid #e7eff4;
}
.portal-download-group>header span{
    color:var(--p-green);
    font-size:.63rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.portal-download-group>header h2{
    margin:5px 0 2px;
    font-size:1.1rem;
}
.portal-download-group>header small{
    color:var(--p-muted);
}
.portal-download-group ul{
    list-style:none;
    margin:0;
    padding:8px 18px;
}
.portal-download-group li{
    display:grid;
    grid-template-columns:40px 1fr 20px;
    align-items:center;
    gap:10px;
    padding:12px 0;
    border-bottom:1px solid #e9f0f4;
}
.portal-download-group li:last-child{border-bottom:0}
.portal-download-group li>a{
    color:var(--p-ink);
}
.portal-download-group li>a strong{display:block;font-size:.87rem}
.portal-download-group li>a small{
    display:block;
    margin-top:3px;
    color:var(--p-muted);
    font-size:.72rem;
    line-height:1.4;
}
.portal-download-group li>a em{
    display:block;
    margin-top:4px;
    color:#79878f;
    font-size:.64rem;
    font-style:normal;
}
.portal-download-group li>b{color:var(--p-green)}

@media(max-width:900px){
    .portal-sport-filter-calm,
    .portal-content-toolbar{
        align-items:stretch;
        flex-direction:column;
    }
    .portal-sport-search-compact,
    .portal-content-search{width:100%;max-width:none}
    .portal-club-grid,
    .portal-download-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
    .portal-sport-service>div{grid-template-columns:1fr}
    .portal-club-contact-grid{grid-template-columns:1fr}
    .portal-club-gallery{grid-template-columns:repeat(2,1fr)}
    .portal-download-count{text-align:left}
    .portal-sport-result-count-calm{flex-wrap:wrap}
    .portal-sport-result-count-calm em{width:100%;margin-left:0}
}

/* ==========================================================================
   Frontend V 0.2.0 – KM-Anmeldung / KM-Abmeldung
   ========================================================================== */
.portal-km-form-page{max-width:1120px;margin:0 auto}.portal-km-form-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);gap:40px;align-items:end;margin-bottom:22px}.portal-km-form-intro h2{margin:7px 0 0;font-size:clamp(1.8rem,3vw,2.7rem);font-weight:400;line-height:1.06;letter-spacing:-.03em}.portal-km-form-intro>p{margin:0;color:var(--p-muted);line-height:1.6}.portal-km-success,.portal-km-error{display:flex;gap:14px;margin-bottom:20px;padding:17px 19px;border-radius:15px}.portal-km-success{background:#eff4f6;border:1px solid #beccd4}.portal-km-success>span{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:50%;background:var(--p-green);color:#fff;font-weight:800}.portal-km-success h2{margin:3px 0 6px;font-size:1.35rem}.portal-km-success p{margin:0 0 5px;color:#43525a}.portal-km-success small{color:#67767f}.portal-km-error{display:block;background:#fff4f1;border:1px solid #efc9c0;color:#93493b}.portal-km-form{display:grid;gap:14px}.portal-km-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.portal-km-form-card{border:1px solid var(--p-line);border-radius:18px;background:#fff;overflow:hidden}.portal-km-form-card>header{display:flex;gap:13px;align-items:center;padding:17px 20px;border-bottom:1px solid #e7eff4;background:#f7fbfd}.portal-km-form-card>header>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--p-green);color:#fff;font-size:.68rem;font-weight:800}.portal-km-form-card h3{margin:0;font-size:1.05rem}.portal-km-form-card header p{margin:2px 0 0;color:var(--p-muted);font-size:.78rem}.portal-km-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:20px}.portal-km-form label{display:flex;flex-direction:column;gap:7px;color:#4e5a61;font-size:.74rem;font-weight:700}.portal-km-form input,.portal-km-form select{width:100%;min-height:46px;padding:11px 13px;border:1px solid var(--p-line);border-radius:11px;background:#fff;color:var(--p-ink);font:inherit;font-size:.9rem;outline:none}.portal-km-form input:focus,.portal-km-form select:focus{border-color:#6f9fb8;box-shadow:0 0 0 3px rgba(51,93,117,.07)}.portal-km-athletes{padding:12px 20px 2px}.portal-km-athlete{display:grid;grid-template-columns:30px 150px minmax(190px,1.2fr) 105px minmax(180px,1fr) 32px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #e9f0f4}.portal-km-row-number{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#edf4f8;color:var(--p-green);font-size:.68rem;font-weight:800}.portal-km-athlete input{min-height:42px;font-size:.82rem}.portal-km-athlete button{width:30px;height:30px;border:0;border-radius:50%;background:#f7eded;color:#a54f45;font-size:1.1rem;cursor:pointer}.portal-km-add-row{margin:12px 20px 18px;padding:8px 11px;border:1px solid var(--p-line);border-radius:999px;background:#fff;color:var(--p-green);font:inherit;font-size:.75rem;font-weight:700;cursor:pointer}.portal-km-sender-grid{grid-template-columns:1fr 1fr .8fr}.portal-km-submitbar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:17px 19px;border:1px solid var(--p-line);border-radius:16px;background:#f7fbfd}.portal-km-submitbar strong,.portal-km-submitbar small{display:block}.portal-km-submitbar small{margin-top:3px;color:var(--p-muted)}.portal-km-submitbar button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:900px){.portal-km-form-intro{grid-template-columns:1fr;gap:10px}.portal-km-athlete{grid-template-columns:28px 1fr 1fr 32px}.portal-km-athlete input:nth-of-type(3),.portal-km-athlete input:nth-of-type(4){grid-column:2/4}.portal-km-sender-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.portal-km-form-grid,.portal-km-sender-grid{grid-template-columns:1fr}.portal-km-athlete{grid-template-columns:28px 1fr 32px;padding:12px 0}.portal-km-athlete input{grid-column:2}.portal-km-athlete button{grid-column:3;grid-row:1}.portal-km-row-number{grid-row:1}.portal-km-submitbar{align-items:stretch;flex-direction:column}.portal-km-submitbar .portal-btn{width:100%;justify-content:center}}


/* ==========================================================================
   Frontend V0.2.1 – KM-An/Abmeldung ruhiger + 5er-Zeilen
   ========================================================================== */

.portal-km-form-page{
    padding-top:0;
}

.portal-km-form-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    margin-bottom:18px;
    padding:14px 0 2px;
}

.portal-km-form-toolbar>p{
    max-width:680px;
    margin:0;
    color:var(--p-muted);
    line-height:1.55;
    font-size:.88rem;
}

.portal-km-form-year{
    display:flex;
    align-items:center;
    gap:9px;
    flex:0 0 auto;
}

.portal-km-form-year span{
    color:var(--p-muted);
    font-size:.68rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.portal-km-form-year strong{
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:0 12px;
    border-radius:999px;
    background:var(--p-green);
    color:#fff;
    font-size:.82rem;
}

.portal-km-shooter-row.is-hidden{
    display:none!important;
}

.portal-km-more-rows{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-top:14px;
}

.portal-km-more-rows small{
    color:var(--p-muted);
    font-size:.72rem;
}

.portal-km-more-rows button[hidden]{
    display:none!important;
}

@media(max-width:760px){
    .portal-km-form-toolbar{
        align-items:flex-start;
        flex-direction:column;
        gap:10px;
    }

    .portal-km-more-rows{
        align-items:stretch;
        flex-direction:column;
    }

    .portal-km-more-rows .portal-btn{
        width:100%;
    }
}


/* ==========================================================================
   Frontend V0.2.1b – kompakter +5-Zeilen-Button
   ========================================================================== */
.portal-km-more-rows{
    justify-content:flex-start;
    gap:14px;
}

.portal-km-add-rows{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:40px;
    padding:8px 14px;
    border:1px solid var(--p-green);
    border-radius:999px;
    background:#edf6fa;
    color:var(--p-green);
    font:inherit;
    font-size:.76rem;
    font-weight:700;
    cursor:pointer;
    transition:
        background-color .18s ease,
        color .18s ease,
        transform .18s ease,
        box-shadow .18s ease;
}

.portal-km-add-rows span{
    font-size:1rem;
    line-height:1;
}

.portal-km-add-rows:hover{
    background:var(--p-green);
    color:#fff;
    transform:translateY(-1px);
    box-shadow:0 8px 18px rgba(23,64,88,.12);
}

.portal-km-more-rows small{
    margin-left:auto;
}

@media(max-width:760px){
    .portal-km-add-rows{
        width:auto;
        align-self:flex-start;
    }
    .portal-km-more-rows small{
        margin-left:0;
    }
}


/* Frontend V0.2.1c – Hinweis für automatische KM-Zeilen */
.portal-km-auto-rows-note{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:12px;
    color:var(--p-muted);
}

.portal-km-auto-rows-note span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:24px;
    flex:0 0 24px;
    border-radius:50%;
    background:#edf6fa;
    color:var(--p-green);
    font-size:.85rem;
    font-weight:700;
}

.portal-km-auto-rows-note small{
    font-size:.72rem;
    line-height:1.45;
}


/* Frontend V0.2.1d – mehr Luft beim Hinweis für automatische KM-Zeilen */
.portal-km-auto-rows-note{
    margin-top:16px;
    padding:12px 14px;
}


/* ==========================================================================
   Frontend V0.2.2 – Schützenkreis, Jugend, Galerien, Kontakt, Statistik
   Ruhige Portal-Linie ohne doppelte Überschriften.
   ========================================================================== */
.portal-content-toolbar-calm{margin-bottom:18px}
.portal-content-toolbar-calm>p{margin:0;color:var(--p-muted);line-height:1.55}
.portal-text-action{color:var(--p-green);font-size:.78rem;font-weight:700;white-space:nowrap}

/* Vorstand */
.portal-board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.portal-board-card{display:grid;grid-template-columns:112px 1fr;gap:18px;align-items:center;padding:18px;border:1px solid var(--p-line);border-radius:18px;background:#fff}
.portal-board-photo{width:112px;aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:#eff2f3;display:grid;place-items:center}
.portal-board-photo img{width:100%;height:100%;object-fit:cover}
.portal-board-photo>span{color:#7a878f;font-size:1.25rem;font-weight:800}
.portal-board-copy>span{color:var(--p-green);font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.portal-board-copy h2{margin:5px 0 5px;font-size:1.15rem}
.portal-board-copy p{margin:0;color:var(--p-muted);font-size:.8rem}
.portal-board-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.portal-board-actions a{padding:7px 10px;border:1px solid var(--p-line);border-radius:999px;color:var(--p-green);font-size:.7rem;font-weight:700}
.portal-board-copy>small{display:block;margin-top:10px;color:var(--p-muted);line-height:1.45}

/* Jugend */
.portal-youth-intro{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1fr);gap:30px;align-items:center;margin-bottom:18px}
.portal-youth-image{aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#eef5f8}
.portal-youth-image img{width:100%;height:100%;object-fit:cover}
.portal-youth-intro h2{margin:7px 0 9px;font-size:clamp(1.75rem,3vw,2.55rem);font-weight:400;letter-spacing:-.03em}
.portal-youth-intro p{margin:0;color:var(--p-muted);line-height:1.65}
.portal-youth-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.portal-youth-grid>section{padding:20px;border:1px solid var(--p-line);border-radius:17px;background:#fff}
.portal-youth-grid>section>span{color:var(--p-green);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.portal-youth-grid h3{margin:6px 0 9px;font-size:1.1rem}
.portal-youth-grid p{color:var(--p-muted);line-height:1.55;font-size:.82rem}
.portal-youth-grid a{color:var(--p-green);font-weight:700}
.portal-youth-grid small{color:var(--p-muted);line-height:1.5}
.portal-youth-placeholder{background:#f7fbfd!important}

/* Galerie */
.portal-gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:17px}
.portal-gallery-years{display:flex;gap:7px;flex-wrap:wrap}
.portal-gallery-years button{padding:8px 12px;border:1px solid var(--p-line);border-radius:999px;background:#fff;color:var(--p-muted);font:inherit;font-size:.73rem;cursor:pointer}
.portal-gallery-years button.is-active{background:var(--p-green);border-color:var(--p-green);color:#fff}
.portal-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.portal-gallery-card{overflow:hidden;border:1px solid var(--p-line);border-radius:18px;background:#fff;color:var(--p-ink);transition:transform .2s ease,box-shadow .2s ease}
.portal-gallery-card[hidden]{display:none!important}.portal-gallery-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,42,57,.07)}
.portal-gallery-cover{aspect-ratio:16/10;background:#eef5f8;overflow:hidden;display:grid;place-items:center}.portal-gallery-cover img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.portal-gallery-card:hover img{transform:scale(1.025)}
.portal-gallery-cover>span{color:#83958a;font-weight:700}
.portal-gallery-card>div:last-child{padding:16px 17px 18px}
.portal-gallery-card>div:last-child>span{color:var(--p-muted);font-size:.67rem}
.portal-gallery-card h2{margin:6px 0 12px;font-size:1.02rem;line-height:1.25}
.portal-gallery-card strong{color:var(--p-green);font-size:.72rem}
.portal-gallery-detail-head{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:end;margin-bottom:18px}
.portal-gallery-detail-head>a{color:var(--p-green);font-size:.76rem;font-weight:700}
.portal-gallery-detail-head h2{margin:5px 0 0;font-size:clamp(1.65rem,3vw,2.45rem);font-weight:400}
.portal-gallery-detail-head>small{color:var(--p-muted)}
.portal-gallery-images{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.portal-gallery-images a{aspect-ratio:4/3;overflow:hidden;border-radius:10px;background:#eef5f8}
.portal-gallery-images img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}.portal-gallery-images a:hover img{transform:scale(1.035)}
.portal-lightbox{position:fixed;inset:0;z-index:9500;background:rgba(4,12,16,.92);display:grid;place-items:center;padding:50px 80px}
.portal-lightbox[hidden]{display:none!important}.portal-lightbox img{max-width:min(1200px,90vw);max-height:86vh;object-fit:contain}
.portal-lightbox button{position:fixed;border:0;background:rgba(255,255,255,.12);color:#fff;width:44px;height:44px;border-radius:50%;font-size:1.7rem;cursor:pointer}
.portal-lightbox [data-lightbox-close]{top:22px;right:22px}.portal-lightbox [data-lightbox-prev]{left:22px;top:50%}.portal-lightbox [data-lightbox-next]{right:22px;top:50%}.portal-lightbox-open{overflow:hidden}

/* Kontakt */
.portal-contact-target{display:flex;align-items:center;gap:10px;margin-bottom:16px;color:var(--p-muted);font-size:.78rem}
.portal-contact-target strong{padding:7px 10px;border-radius:999px;background:#edf5f9;color:var(--p-green)}
.portal-contact-form{padding:22px;border:1px solid var(--p-line);border-radius:18px;background:#fff}
.portal-contact-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.portal-contact-form label{display:block;color:var(--p-muted);font-size:.69rem;font-weight:800;letter-spacing:.04em}
.portal-contact-form input,.portal-contact-form textarea{display:block;width:100%;margin-top:6px;padding:12px 13px;border:1px solid var(--p-line);border-radius:11px;background:#fbfdfe;color:var(--p-ink);font:inherit;font-size:.86rem;outline:none}
.portal-contact-form textarea{resize:vertical}.portal-contact-form>label{margin-top:13px}
.portal-contact-form input:focus,.portal-contact-form textarea:focus{border-color:#6f9fb8;box-shadow:0 0 0 3px rgba(51,93,117,.07)}
.portal-contact-submit{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:16px}.portal-contact-submit p{margin:0;color:var(--p-muted);font-size:.72rem}
.portal-honeypot{position:absolute!important;left:-9999px!important}

/* Statistik */
.portal-stats-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.portal-stats-cards article{padding:18px;border:1px solid var(--p-line);border-radius:16px;background:#fff}
.portal-stats-cards span{display:block;color:var(--p-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}
.portal-stats-cards strong{display:block;margin:4px 0;font-size:1.75rem;font-weight:400;color:var(--p-ink)}
.portal-stats-cards small{color:var(--p-green)}
.portal-stats-history{padding:22px;border:1px solid var(--p-line);border-radius:18px;background:#fff}
.portal-stats-history h2{margin:5px 0 18px;font-size:1.45rem;font-weight:400}
.portal-stats-bars{display:grid;gap:9px}
.portal-stats-bar{display:grid;grid-template-columns:80px 1fr 60px;gap:12px;align-items:center;font-size:.75rem;color:var(--p-muted)}
.portal-stats-bar>div{height:9px;border-radius:999px;background:#edf4f8;overflow:hidden}
.portal-stats-bar i{display:block;height:100%;border-radius:999px;background:var(--p-green)}
.portal-stats-bar strong{text-align:right;color:var(--p-ink)}
.portal-stats-note{margin:12px 2px 0;color:var(--p-muted);font-size:.7rem}

/* Rechtliches */
.portal-legal-lead{max-width:880px;margin-bottom:16px;padding:18px 20px;border-left:3px solid var(--p-green);background:#f7fbfd;border-radius:0 14px 14px 0}
.portal-legal-lead p{margin:0 0 8px;color:var(--p-muted);line-height:1.6}.portal-legal-lead p:last-child{margin-bottom:0}.portal-legal-lead a{color:var(--p-green)}
.portal-legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.portal-legal-grid section{padding:19px;border:1px solid var(--p-line);border-radius:16px;background:#fff}
.portal-legal-grid h2{margin:0 0 9px;font-size:1.02rem}.portal-legal-grid p{margin:0 0 10px;color:var(--p-muted);font-size:.8rem;line-height:1.65}

@media(max-width:1000px){
  .portal-board-grid,.portal-legal-grid{grid-template-columns:1fr}
  .portal-youth-grid{grid-template-columns:1fr 1fr}
  .portal-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-stats-cards{grid-template-columns:1fr 1fr}
  .portal-contact-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .portal-board-card{grid-template-columns:82px 1fr}.portal-board-photo{width:82px}
  .portal-youth-intro,.portal-youth-grid{grid-template-columns:1fr}
  .portal-gallery-toolbar{align-items:stretch;flex-direction:column}
  .portal-gallery-grid{grid-template-columns:1fr}
  .portal-gallery-detail-head{grid-template-columns:1fr;gap:8px}
  .portal-gallery-images{grid-template-columns:repeat(2,1fr)}
  .portal-lightbox{padding:60px 12px}
  .portal-contact-grid,.portal-stats-cards{grid-template-columns:1fr}
  .portal-contact-submit{align-items:stretch;flex-direction:column}
  .portal-contact-submit .portal-btn{width:100%}
  .portal-stats-bar{grid-template-columns:62px 1fr 48px}
}


/* ==========================================================================
   Frontend V0.2.2a – Vorstand Kontaktdetails + Galerie-Anker
   ========================================================================== */
#portal-galleries{
    scroll-margin-top:96px;
}

.portal-board-phones{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
    margin-top:10px;
}

.portal-board-phones span{
    display:flex;
    flex-direction:column;
    gap:1px;
}

.portal-board-phones small{
    color:var(--p-muted);
    font-size:.61rem;
    text-transform:uppercase;
    letter-spacing:.055em;
}

.portal-board-phones a{
    color:var(--p-ink);
    font-size:.78rem;
    text-decoration:none;
}

.portal-board-phones a:hover{
    color:var(--p-green);
}


/* ==========================================================================
   Frontend V0.2.2b – Grußwort, Förderverein, FAQ
   ========================================================================== */

/* Grußwort */
.portal-greeting-card{
    display:grid;
    grid-template-columns:minmax(240px,.48fr) minmax(0,1fr);
    gap:34px;
    align-items:start;
}
.portal-greeting-photo{
    position:sticky;
    top:95px;
}
.portal-greeting-photo img{
    width:100%;
    max-width:360px;
    aspect-ratio:4/5;
    object-fit:cover;
    border-radius:18px;
    display:block;
}
.portal-greeting-photo small{
    display:block;
    margin-top:9px;
    color:var(--p-muted);
    font-size:.72rem;
}
.portal-greeting-copy{
    max-width:820px;
}
.portal-greeting-copy h2{
    margin:7px 0 18px;
    font-size:clamp(1.9rem,3vw,2.75rem);
    font-weight:400;
    letter-spacing:-.03em;
}
.portal-greeting-copy>p{
    color:var(--p-muted);
    line-height:1.72;
    margin:0 0 15px;
}
.portal-greeting-actions{
    margin:23px 0 28px;
}
.portal-greeting-copy footer{
    padding-top:20px;
    border-top:1px solid var(--p-line);
}
.portal-greeting-copy footer span,
.portal-greeting-copy footer strong,
.portal-greeting-copy footer small{
    display:block;
}
.portal-greeting-copy footer span{
    color:var(--p-muted);
    font-size:.76rem;
}
.portal-greeting-copy footer strong{
    margin-top:5px;
    font-size:1.05rem;
}
.portal-greeting-copy footer small{
    margin-top:3px;
    color:var(--p-muted);
    line-height:1.45;
}

/* Förderverein */
.portal-support-downloads{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-bottom:16px;
}
.portal-support-downloads a{
    display:grid;
    grid-template-columns:42px 1fr 20px;
    gap:12px;
    align-items:center;
    padding:13px 15px;
    border:1px solid var(--p-line);
    border-radius:14px;
    background:#fff;
    color:var(--p-ink);
}
.portal-support-downloads a>span{
    display:grid;
    place-items:center;
    width:40px;height:40px;
    border-radius:10px;
    background:#edf5f9;
    color:var(--p-green);
    font-size:.66rem;
    font-weight:900;
}
.portal-support-downloads a strong,
.portal-support-downloads a small{
    display:block;
}
.portal-support-downloads a small{
    margin-top:2px;
    color:var(--p-muted);
    font-size:.71rem;
}
.portal-support-downloads a>b{
    color:var(--p-green);
}
.portal-support-card{
    display:grid;
    grid-template-columns:minmax(260px,.55fr) minmax(0,1fr);
    gap:30px;
    align-items:start;
    padding:22px;
    border:1px solid var(--p-line);
    border-radius:19px;
    background:#fff;
}
.portal-support-visual img{
    width:100%;
    border-radius:15px;
    display:block;
}
.portal-support-copy h2{
    margin:7px 0 16px;
    font-size:clamp(1.85rem,3vw,2.6rem);
    font-weight:400;
    letter-spacing:-.03em;
}
.portal-support-copy>p{
    color:var(--p-muted);
    line-height:1.65;
}
.portal-support-cultural{
    display:flex;
    align-items:center;
    gap:15px;
    margin:18px 0;
    padding:14px;
    border-radius:14px;
    background:#f6fafd;
}
.portal-support-cultural img{
    width:100px;
    max-height:90px;
    object-fit:contain;
}
.portal-support-cultural p{
    margin:0;
    color:var(--p-muted);
    font-size:.8rem;
    line-height:1.5;
}
.portal-support-info{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:20px;
}
.portal-support-info section{
    padding:15px;
    border-radius:13px;
    background:#f6fafd;
}
.portal-support-info section>span{
    display:block;
    margin-bottom:6px;
    color:var(--p-green);
    font-size:.64rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.portal-support-info strong{
    display:block;
    margin-bottom:5px;
}
.portal-support-info p,
.portal-support-info small{
    color:var(--p-muted);
    font-size:.76rem;
    line-height:1.5;
}
.portal-support-info a{
    color:var(--p-green);
    font-size:.76rem;
    font-weight:700;
}

/* FAQ */
.portal-faq-intro{
    max-width:900px;
    margin-bottom:16px;
    color:var(--p-muted);
    line-height:1.65;
}
.portal-faq-intro p{
    margin:0;
}
.portal-faq-list{
    display:grid;
    gap:9px;
}
.portal-faq-list details{
    border:1px solid var(--p-line);
    border-radius:14px;
    background:#fff;
    overflow:hidden;
}
.portal-faq-list summary{
    display:grid;
    grid-template-columns:1fr 28px;
    gap:16px;
    align-items:center;
    min-height:62px;
    padding:14px 17px;
    cursor:pointer;
    list-style:none;
    color:var(--p-ink);
    font-size:.91rem;
    font-weight:600;
}
.portal-faq-list summary::-webkit-details-marker{
    display:none;
}
.portal-faq-list summary span{
    display:grid;
    place-items:center;
    width:26px;height:26px;
    border-radius:50%;
    background:#edf5f9;
    color:var(--p-green);
    transition:transform .18s ease;
}
.portal-faq-list details[open] summary span{
    transform:rotate(45deg);
}
.portal-faq-list details>div{
    padding:0 17px 17px;
    border-top:1px solid #e9f0f4;
}
.portal-faq-list details>div p{
    margin:13px 0 0;
    color:var(--p-muted);
    font-size:.81rem;
    line-height:1.65;
}
.portal-faq-list a{
    color:var(--p-green);
    font-weight:700;
}

@media(max-width:900px){
    .portal-greeting-card,
    .portal-support-card{
        grid-template-columns:1fr;
    }
    .portal-greeting-photo{
        position:static;
    }
    .portal-greeting-photo img{
        max-width:280px;
    }
}
@media(max-width:760px){
    .portal-support-downloads,
    .portal-support-info{
        grid-template-columns:1fr;
    }
    .portal-support-cultural{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* ==========================================================================
   Frontend V0.2.2c – Abschluss-Feinschliff
   Größeres Wappen im Seitenkopf, Galerie ohne redundanten Aktionsbutton.
   ========================================================================== */

@media(min-width:901px){
    .portal-brand-logo{
        width:210px;
        max-width:210px;
    }

    .portal-brand-logo img{
        width:100%;
        height:auto;
        max-height:none;
        object-fit:contain;
    }

    .portal-brand{
        gap:26px;
    }
}

@media(min-width:1200px){
    .portal-brand-logo{
        width:230px;
        max-width:230px;
    }
}

@media(max-width:900px){
    .portal-brand-logo{
        width:170px;
        max-width:170px;
    }
}

@media(max-width:600px){
    .portal-brand-logo{
        width:145px;
        max-width:145px;
    }
}


/* ==========================================================================
   Frontend V0.3.0 – Veranstaltungen & Termine
   ========================================================================== */
.portal-events-layout{
    display:grid;
    grid-template-columns:minmax(0,.78fr) minmax(360px,1.22fr);
    gap:16px;
    align-items:start;
}
.portal-calendar-card,
.portal-events-month-list{
    border:1px solid var(--p-line);
    border-radius:18px;
    background:#fff;
    overflow:hidden;
}
.portal-calendar-head{
    display:grid;
    grid-template-columns:42px 1fr 42px;
    align-items:center;
    gap:10px;
    padding:16px;
    border-bottom:1px solid #e6eef3;
}
.portal-calendar-head>a{
    display:grid;
    place-items:center;
    width:38px;height:38px;
    border:1px solid var(--p-line);
    border-radius:50%;
    color:var(--p-green);
}
.portal-calendar-head>div{text-align:center}
.portal-calendar-head span{display:block;color:var(--p-muted);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em}
.portal-calendar-head strong{display:block;margin-top:2px;font-size:1rem}
.portal-calendar-weekdays,
.portal-calendar-days{
    display:grid;
    grid-template-columns:repeat(7,1fr);
}
.portal-calendar-weekdays{
    padding:10px 12px 5px;
}
.portal-calendar-weekdays span{
    text-align:center;
    color:var(--p-muted);
    font-size:.62rem;
    font-weight:700;
}
.portal-calendar-days{
    gap:4px;
    padding:5px 12px 14px;
}
.portal-calendar-days>a,
.portal-calendar-days>span{
    position:relative;
    display:grid;
    place-items:center;
    min-height:48px;
    border-radius:10px;
    color:var(--p-ink);
    font-size:.78rem;
}
.portal-calendar-days>a:hover{background:#f1f4f5}
.portal-calendar-days .is-empty{visibility:hidden}
.portal-calendar-days .is-today{box-shadow:inset 0 0 0 1px #94a9b5}
.portal-calendar-days .is-selected{background:#ebf0f3}
.portal-calendar-days .has-event{
    color:var(--p-green);
    font-weight:800;
}
.portal-calendar-days .has-event i{
    position:absolute;
    bottom:6px;
    width:5px;height:5px;
    border-radius:50%;
    background:var(--p-green);
}
.portal-calendar-selected{
    padding:14px 16px 16px;
    border-top:1px solid #e6eef3;
    background:#f7fbfd;
}
.portal-calendar-selected>div{
    display:flex;justify-content:space-between;gap:12px;
    margin-bottom:8px;
}
.portal-calendar-selected>div a{color:var(--p-green);font-size:.7rem}
.portal-calendar-selected>a{
    display:block;
    padding:8px 0;
    border-top:1px solid #e6e9eb;
    color:var(--p-ink);
}
.portal-calendar-selected>a strong,
.portal-calendar-selected>a small{display:block}
.portal-calendar-selected>a small{margin-top:2px;color:var(--p-muted);font-size:.68rem}

.portal-events-month-list>header{
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:15px;
    padding:18px 20px 14px;
    border-bottom:1px solid #e6eef3;
}
.portal-events-month-list h2{
    margin:5px 0 0;
    font-size:1.35rem;
    font-weight:400;
}
.portal-events-month-list>header>small{color:var(--p-muted)}
.portal-event-list{padding:5px 18px}
.portal-event-list>a{
    display:grid;
    grid-template-columns:58px 1fr 20px;
    gap:13px;
    align-items:center;
    padding:13px 0;
    border-bottom:1px solid #e9f0f4;
    color:var(--p-ink);
}
.portal-event-list>a:last-child{border-bottom:0}
.portal-event-datebox{
    display:grid;
    place-items:center;
    width:54px;height:54px;
    border-radius:12px;
    background:#edf5f9;
}
.portal-event-datebox strong{font-size:1.18rem;line-height:1}
.portal-event-datebox span{margin-top:2px;color:var(--p-green);font-size:.62rem;text-transform:uppercase}
.portal-event-list>a>div:nth-child(2)>strong{display:block;font-size:.9rem}
.portal-event-list>a small{display:block;margin-top:3px;color:var(--p-muted);font-size:.68rem}
.portal-event-list>a div>span{display:block;margin-top:3px;color:#67767f;font-size:.7rem}
.portal-event-list>a>b{color:var(--p-green)}

.portal-events-next{margin-top:18px}
.portal-events-next>header h2{margin:5px 0 13px;font-size:1.35rem;font-weight:400}
.portal-events-next-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.portal-events-next-grid>a{
    padding:15px;
    border:1px solid var(--p-line);
    border-radius:14px;
    background:#fff;
    color:var(--p-ink);
}
.portal-events-next-grid>a>span{display:block;color:var(--p-green);font-size:.65rem;font-weight:700}
.portal-events-next-grid>a>strong{display:block;margin:6px 0;font-size:.88rem}
.portal-events-next-grid>a>small{display:block;color:var(--p-muted);font-size:.68rem}

/* Event detail */
.portal-event-detail{max-width:1180px;margin:0 auto}
.portal-event-detail-head{margin:20px 0 18px}
.portal-event-detail-head h2{
    max-width:920px;
    margin:6px 0 8px;
    font-size:clamp(2rem,4vw,3.35rem);
    font-weight:400;
    line-height:1.04;
    letter-spacing:-.035em;
}
.portal-event-detail-meta{display:flex;gap:8px;flex-wrap:wrap}
.portal-event-detail-meta span{
    padding:6px 9px;
    border-radius:999px;
    background:#f2f4f5;
    color:#63736a;
    font-size:.7rem;
}
.portal-event-images{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:18px;
}
.portal-event-images.is-single{grid-template-columns:1fr}
.portal-event-images img{
    width:100%;
    max-height:500px;
    object-fit:cover;
    border-radius:15px;
}
.portal-event-images.is-single img{
    max-width:880px;
    object-fit:contain;
    background:#f6f8f9;
}
.portal-event-detail-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) 310px;
    gap:22px;
}
.portal-event-description{
    color:var(--p-muted);
    line-height:1.75;
    font-size:.92rem;
}
.portal-event-facts{
    padding:16px;
    border:1px solid var(--p-line);
    border-radius:15px;
    background:#fff;
}
.portal-event-facts section{
    padding:10px 0;
    border-bottom:1px solid #e9f0f4;
}
.portal-event-facts section>span{
    display:block;
    color:var(--p-muted);
    font-size:.62rem;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.portal-event-facts section>strong,
.portal-event-facts section>a{
    display:block;
    margin-top:3px;
    color:var(--p-ink);
    font-size:.8rem;
}
.portal-event-facts section>a{color:var(--p-green)}
.portal-event-links{display:grid;gap:7px;margin-top:12px}
.portal-event-links a{
    padding:9px 11px;
    border-radius:9px;
    background:#edf5f9;
    color:var(--p-green);
    font-size:.73rem;
    font-weight:700;
}

/* Submission */
.portal-event-submit-note{
    display:grid;
    grid-template-columns:130px 1fr;
    gap:18px;
    align-items:start;
    margin-bottom:15px;
    padding:15px 17px;
    border-radius:14px;
    background:#f6f7f8;
}
.portal-event-submit-note span{color:var(--p-green);font-size:.68rem;font-weight:800;text-transform:uppercase}
.portal-event-submit-note p{margin:0;color:var(--p-muted);font-size:.8rem;line-height:1.55}
.portal-event-submit-form{
    display:grid;
    gap:13px;
}
.portal-event-submit-form>section{
    overflow:hidden;
    border:1px solid var(--p-line);
    border-radius:17px;
    background:#fff;
}
.portal-event-submit-form>section>header{
    display:flex;
    gap:12px;
    align-items:center;
    padding:15px 18px;
    border-bottom:1px solid #e7eff4;
    background:#f7fbfd;
}
.portal-event-submit-form>section>header>span{
    display:grid;place-items:center;
    width:34px;height:34px;
    border-radius:9px;
    background:var(--p-green);
    color:#fff;
    font-size:.65rem;
    font-weight:800;
}
.portal-event-submit-form header strong,
.portal-event-submit-form header small{display:block}
.portal-event-submit-form header small{margin-top:2px;color:var(--p-muted);font-size:.7rem}
.portal-event-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    padding:18px;
}
.portal-event-form-grid .span-2{grid-column:1/-1}
.portal-event-submit-form label{
    color:var(--p-muted);
    font-size:.68rem;
    font-weight:800;
}
.portal-event-submit-form input,
.portal-event-submit-form textarea{
    display:block;
    width:100%;
    margin-top:6px;
    padding:11px 12px;
    border:1px solid var(--p-line);
    border-radius:10px;
    background:#fbfdfe;
    color:var(--p-ink);
    font:inherit;
    font-size:.84rem;
    outline:none;
}
.portal-event-submit-form input:focus,
.portal-event-submit-form textarea:focus{
    border-color:#6f9fb8;
    box-shadow:0 0 0 3px rgba(51,93,117,.07);
}
.portal-event-submit-form label>small{
    display:block;
    margin-top:5px;
    font-weight:400;
    color:var(--p-muted);
}
.portal-event-submitbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:14px 2px 0;
}
.portal-event-submitbar p{margin:0;color:var(--p-muted);font-size:.72rem}
.portal-event-submit-success{
    display:flex;
    gap:15px;
    align-items:flex-start;
    padding:18px;
    margin-bottom:15px;
    border:1px solid #bdcbd3;
    border-radius:16px;
    background:#f2f5f7;
}
.portal-event-submit-success>span{
    display:grid;place-items:center;
    width:38px;height:38px;
    flex:0 0 38px;
    border-radius:50%;
    background:var(--p-green);
    color:#fff;
}
.portal-event-submit-success h2{margin:4px 0 5px;font-size:1.25rem}
.portal-event-submit-success p{margin:0;color:var(--p-muted)}
.portal-event-submit-success small{display:block;margin-top:6px;color:#67767f}

@media(max-width:980px){
    .portal-events-layout{grid-template-columns:1fr}
    .portal-events-next-grid{grid-template-columns:1fr 1fr}
    .portal-event-detail-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
    .portal-events-next-grid{grid-template-columns:1fr}
    .portal-event-images{grid-template-columns:1fr}
    .portal-event-form-grid{grid-template-columns:1fr}
    .portal-event-form-grid .span-2{grid-column:auto}
    .portal-event-submit-note{grid-template-columns:1fr;gap:5px}
    .portal-event-submitbar{align-items:stretch;flex-direction:column}
    .portal-event-submitbar .portal-btn{width:100%}
}


/* ==========================================================================
   Frontend V0.3.0a – Veranstaltungskalender / Terminplan
   ========================================================================== */
.portal-event-view-switch{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    max-width:640px;
    margin-bottom:16px;
}

.portal-event-view-switch>a{
    display:flex;
    align-items:center;
    gap:11px;
    min-height:54px;
    padding:10px 14px;
    border:1px solid var(--p-line);
    border-radius:13px;
    background:#fff;
    color:var(--p-ink);
    transition:background-color .18s ease,border-color .18s ease,transform .18s ease;
}

.portal-event-view-switch>a:hover{
    border-color:#b7c2c8;
    transform:translateY(-1px);
}

.portal-event-view-switch>a.is-active{
    background:#edf5f9;
    border-color:#afbec6;
}

.portal-event-view-switch span{
    color:var(--p-green);
    font-size:.62rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.portal-event-view-switch strong{
    font-size:.82rem;
}

.portal-schedule-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:24px;
    margin-bottom:15px;
    padding:20px 22px;
    border:1px solid var(--p-line);
    border-radius:17px;
    background:#fff;
}

.portal-schedule-head h2{
    margin:5px 0 5px;
    font-size:clamp(1.5rem,2.8vw,2.15rem);
    font-weight:400;
    letter-spacing:-.025em;
}

.portal-schedule-head p{
    max-width:760px;
    margin:0;
    color:var(--p-muted);
    font-size:.8rem;
    line-height:1.55;
}

.portal-schedule-pdf{
    overflow:hidden;
    border:1px solid var(--p-line);
    border-radius:17px;
    background:#fff;
}

.portal-schedule-pdf iframe{
    display:block;
    width:100%;
    height:min(78vh,1000px);
    min-height:650px;
    border:0;
    background:#f5f6f7;
}

.portal-schedule-pdf>p{
    margin:0;
    padding:11px 15px;
    border-top:1px solid var(--p-line);
    color:var(--p-muted);
    font-size:.69rem;
}

.portal-schedule-more{
    margin-top:17px;
}

.portal-schedule-more>header h2{
    margin:5px 0 11px;
    font-size:1.3rem;
    font-weight:400;
}

.portal-schedule-more>div{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}

.portal-schedule-more a{
    display:grid;
    grid-template-columns:42px 1fr 20px;
    gap:11px;
    align-items:center;
    padding:12px 14px;
    border:1px solid var(--p-line);
    border-radius:13px;
    background:#fff;
    color:var(--p-ink);
}

.portal-schedule-more a>span{
    display:grid;
    place-items:center;
    width:40px;height:40px;
    border-radius:9px;
    background:#edf5f9;
    color:var(--p-green);
    font-size:.64rem;
    font-weight:900;
}

.portal-schedule-more a strong,
.portal-schedule-more a small{
    display:block;
}

.portal-schedule-more a small{
    margin-top:3px;
    color:var(--p-muted);
    font-size:.68rem;
}

.portal-schedule-more a>b{
    color:var(--p-green);
}

@media(max-width:760px){
    .portal-event-view-switch{
        grid-template-columns:1fr;
    }

    .portal-schedule-head{
        align-items:stretch;
        flex-direction:column;
    }

    .portal-schedule-head .portal-btn{
        width:100%;
    }

    .portal-schedule-pdf iframe{
        min-height:520px;
    }

    .portal-schedule-more>div{
        grid-template-columns:1fr;
    }
}


/* ==========================================================================
   Frontend V0.3.0b – Veranstaltungsdetail ruhiger + Veranstalter
   ========================================================================== */
.portal-event-detail{
    max-width:1280px;
}

.portal-event-detail>.portal-back-link{
    display:inline-flex;
    margin-bottom:14px;
    color:var(--p-green);
    font-size:.76rem;
    font-weight:700;
}

.portal-event-detail-shell{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:18px;
    align-items:start;
}

.portal-event-detail-main{
    min-width:0;
    padding:24px;
    border:1px solid var(--p-line);
    border-radius:18px;
    background:#fff;
}

.portal-event-detail-head{
    margin:0 0 18px;
}

.portal-event-detail-head h2{
    max-width:900px;
    margin:7px 0 10px;
    font-size:clamp(1.9rem,3.5vw,3rem);
    line-height:1.06;
}

.portal-event-images{
    margin-bottom:20px;
}

.portal-event-images img{
    border-radius:13px;
}

.portal-event-images.is-single img{
    max-width:100%;
    max-height:620px;
    width:100%;
    object-fit:contain;
}

.portal-event-description{
    padding-top:18px;
    border-top:1px solid #e9f0f4;
    font-size:.88rem;
    line-height:1.72;
}

.portal-event-facts{
    position:sticky;
    top:92px;
    padding:18px;
    border-radius:18px;
}

.portal-event-facts section{
    padding:11px 0;
}

.portal-event-submit-form select{
    display:block;
    width:100%;
    margin-top:6px;
    padding:11px 12px;
    border:1px solid var(--p-line);
    border-radius:10px;
    background:#fbfdfe;
    color:var(--p-ink);
    font:inherit;
    font-size:.84rem;
}

@media(max-width:980px){
    .portal-event-detail-shell{
        grid-template-columns:1fr;
    }
    .portal-event-facts{
        position:static;
    }
}

@media(max-width:700px){
    .portal-event-detail-main{
        padding:17px;
    }
}


/* ==========================================================================
   Frontend V0.3.0c – Portal-Startseite: Veranstaltungen + Neu-Hinweise
   ========================================================================== */
.portal-area-card{
    position:relative;
}

.portal-area-new{
    position:absolute;
    top:22px;
    right:22px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 9px;
    border-radius:999px;
    background:#edf6fa;
    color:var(--p-green);
    font-size:.62rem;
    font-style:normal;
    font-weight:800;
    letter-spacing:.035em;
    text-transform:uppercase;
}

.portal-area-new i{
    width:6px;
    height:6px;
    border-radius:50%;
    background:var(--p-green);
    box-shadow:0 0 0 4px rgba(30,84,115,.08);
}

.portal-area-event-next{
    margin-top:auto;
    padding-top:20px;
}

.portal-area-event-next small{
    display:block;
    margin-bottom:5px;
    color:var(--p-muted);
    font-size:.63rem;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.portal-area-event-next strong{
    display:block;
    color:var(--p-green);
    font-size:.8rem;
}

.portal-area-event-next p{
    margin:5px 0 0;
    color:var(--p-muted);
    line-height:1.45;
}

.portal-area-events h3{
    margin-top:auto;
}

.portal-area-events .portal-area-event-next + b{
    margin-top:18px;
}

.portal-home-quick-four{
    grid-template-columns:repeat(4,1fr);
}

@media(max-width:1100px){
    .portal-home-quick-four{
        grid-template-columns:repeat(2,1fr);
    }
    .portal-home-quick-four a:nth-child(2){
        border-right:0;
    }
    .portal-home-quick-four a{
        border-bottom:1px solid rgba(255,255,255,.2);
    }
}

@media(max-width:760px){
    .portal-home-quick-four{
        grid-template-columns:1fr;
    }

    .portal-area-new{
        top:18px;
        right:18px;
    }
}


/* ==========================================================================
   Frontend V0.3.0e – Blau ausschließlich auf der Portal-Startseite
   Alle Unterseiten verwenden wieder das bisherige grüne Portal-Theme.
   ========================================================================== */

/* Hero-Schnellzugriffe der Portal-Startseite */
.portal-home-quick-three{
    grid-template-columns:repeat(3,1fr);
}

.portal-home-quick-three a{
    grid-template-columns:40px minmax(0,1fr) auto;
}

.portal-home-quick-three a:nth-child(1){
    background:rgba(42,99,124,.56);
}

.portal-home-quick-three a:nth-child(2){
    background:rgba(37,85,108,.60);
}

.portal-home-quick-three a:nth-child(3){
    background:rgba(27,69,91,.64);
}

.portal-home-quick-three a:nth-child(1):hover{
    background:rgba(42,99,124,.74);
}

.portal-home-quick-three a:nth-child(2):hover{
    background:rgba(37,85,108,.77);
}

.portal-home-quick-three a:nth-child(3):hover{
    background:rgba(27,69,91,.81);
}

.portal-home-quick-three a em{
    grid-column:3;
    grid-row:1/3;
    align-self:center;
    padding:5px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.16);
    color:#fff;
    font-size:.58rem;
    font-style:normal;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}

/* Blau nur im eigentlichen Inhalt der Portal-Startseite */
.portal-home-main .portal-area-primary{
    background:linear-gradient(145deg,#173b4f,#27647f);
}

.portal-home-main .portal-area-primary>span,
.portal-home-main .portal-area-primary b{
    color:#b9dce9;
}

.portal-home-main .portal-area-card:hover{
    border-color:#acc8d4;
}

.portal-home-main .portal-area-new{
    background:#edf4f7;
    color:#1f4f69;
}

.portal-home-main .portal-area-new i{
    background:#1f4f69;
    box-shadow:0 0 0 4px rgba(31,79,105,.09);
}

.portal-home-main .portal-sport-group.is-rk{
    --sport-accent:#2b6681;
}

.portal-home-main .portal-sport-group.is-km{
    --sport-accent:#315a70;
}

.portal-home-main .portal-sport-group.is-youth{
    --sport-accent:#397791;
}

.portal-home-main .portal-sport-group.is-events{
    --sport-accent:#1f4f69;
}

@media(max-width:1100px){
    .portal-home-quick-three{
        grid-template-columns:repeat(3,1fr);
    }
    .portal-home-quick-three a{
        border-bottom:0;
    }
}

@media(max-width:760px){
    .portal-home-quick-three{
        grid-template-columns:1fr;
    }
    .portal-home-quick-three a{
        border-bottom:1px solid rgba(255,255,255,.2);
    }
}


/* ==========================================================================
   Frontend V0.3.0f – Hero-Schnelllinks sauber zweizeilig
   ========================================================================== */
.portal-home-quick-three a{
    grid-template-columns:40px minmax(0,1fr) auto;
    grid-template-rows:auto auto;
    column-gap:8px;
    row-gap:3px;
}

.portal-home-quick-three a>span{
    grid-column:1;
    grid-row:1 / 3;
    align-self:start;
}

.portal-home-quick-three a>strong{
    grid-column:2;
    grid-row:1;
    align-self:end;
    min-width:0;
    line-height:1.2;
}

.portal-home-quick-three a>small{
    grid-column:2;
    grid-row:2;
    align-self:start;
    min-width:0;
    line-height:1.35;
}

.portal-home-quick-three a>em{
    grid-column:3;
    grid-row:1 / 3;
    align-self:center;
}


/* ==========================================================================
   Frontend V0.3.2 – Einheitliche 48h-NEU-Logik
   ========================================================================== */
.portal-inline-new{
    display:inline-flex;
    align-items:center;
    margin-left:7px;
    padding:3px 6px;
    border-radius:999px;
    background:#edf5f9;
    color:var(--p-green);
    font-size:.55rem;
    font-style:normal;
    font-weight:900;
    line-height:1;
    letter-spacing:.045em;
    text-transform:uppercase;
    vertical-align:middle;
}

.portal-content-new-badge,
.portal-home-news-new{
    position:absolute;
    z-index:2;
    top:11px;
    right:11px;
    display:inline-flex;
    align-items:center;
    padding:5px 7px;
    border-radius:999px;
    background:rgba(255,255,255,.94);
    color:var(--p-green);
    box-shadow:0 4px 14px rgba(21,45,59,.08);
    font-size:.55rem;
    font-style:normal;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.portal-news-archive-media{
    position:relative;
}

.portal-news-tile{
    position:relative;
}

.portal-home-news-new{
    top:12px;
    right:12px;
}

.portal-news-feature .portal-home-news-new{
    top:14px;
    right:14px;
}

.portal-area-primary .portal-area-new{
    background:rgba(255,255,255,.14);
    color:#fff;
}

.portal-area-primary .portal-area-new i{
    background:#fff;
    box-shadow:0 0 0 4px rgba(255,255,255,.08);
}

.portal-new-summary{
    display:inline-flex;
    align-items:center;
    padding:5px 8px;
    border-radius:999px;
    background:#edf5f9;
    color:var(--p-green);
    font-size:.6rem;
    font-style:normal;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.portal-sport-discipline li strong .portal-inline-new,
.portal-download-group li strong .portal-inline-new,
.portal-event-list strong .portal-inline-new,
.portal-events-next-grid strong .portal-inline-new{
    margin-left:6px;
}

.portal-event-detail-kicker{
    display:flex;
    align-items:center;
    gap:7px;
    flex-wrap:wrap;
}

.portal-event-detail-kicker .portal-inline-new{
    margin-left:0;
}

.portal-related-grid small .portal-inline-new{
    margin-left:5px;
}

@media(max-width:700px){
    .portal-content-new-badge,
    .portal-home-news-new{
        top:8px;
        right:8px;
    }

    .portal-area-new{
        max-width:55%;
        text-align:center;
    }
}


/* ==========================================================================
   Frontend V0.3.3 – Was ist neu seit deinem letzten Besuch?
   ========================================================================== */
.portal-whats-new{
    padding-top:22px;
    padding-bottom:0;
}

.portal-whats-new[hidden]{
    display:none!important;
}

.portal-whats-new-card{
    overflow:hidden;
    border:1px solid #d2d9dd;
    border-radius:17px;
    background:linear-gradient(135deg,#f6fafd,#edf5f9);
    box-shadow:0 12px 34px rgba(21,48,64,.045);
}

.portal-whats-new-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    padding:17px 19px;
}

.portal-whats-new-head h2{
    margin:4px 0 4px;
    font-size:1.18rem;
    font-weight:500;
}

.portal-whats-new-head p{
    margin:0;
    color:var(--p-muted);
    font-size:.76rem;
    line-height:1.5;
}

.portal-whats-new-actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex:0 0 auto;
}

.portal-whats-new-actions button{
    border:1px solid #bec8ce;
    border-radius:999px;
    background:#fff;
    color:var(--p-green);
    padding:8px 11px;
    font:inherit;
    font-size:.68rem;
    font-weight:700;
    cursor:pointer;
}

.portal-whats-new-actions [data-whats-new-dismiss]{
    display:grid;
    place-items:center;
    width:33px;
    height:33px;
    padding:0;
    font-size:1rem;
    color:var(--p-muted);
}

.portal-whats-new-details{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    padding:0 18px 18px;
    border-top:1px solid rgba(168,186,197,.45);
    padding-top:14px;
}

.portal-whats-new-details[hidden]{
    display:none!important;
}

.portal-whats-new-details>section{
    min-width:0;
    padding:13px;
    border:1px solid #d9e7ee;
    border-radius:12px;
    background:#fff;
}

.portal-whats-new-details>section>header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-bottom:6px;
}

.portal-whats-new-details>section>header strong{
    font-size:.76rem;
}

.portal-whats-new-details>section>header span{
    display:grid;
    place-items:center;
    min-width:23px;
    height:23px;
    padding:0 6px;
    border-radius:999px;
    background:#edf5f9;
    color:var(--p-green);
    font-size:.6rem;
    font-weight:800;
}

.portal-whats-new-details>section>div>a{
    display:grid;
    grid-template-columns:1fr 14px;
    gap:7px;
    padding:7px 0;
    border-top:1px solid #e9f0f4;
    color:var(--p-ink);
    font-size:.69rem;
    line-height:1.35;
}

.portal-whats-new-details>section>div>a>b{
    color:var(--p-green);
}

.portal-whats-new-more{
    display:inline-flex;
    margin-top:8px;
    color:var(--p-green);
    font-size:.65rem;
    font-weight:700;
}

@media(max-width:980px){
    .portal-whats-new-details{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:700px){
    .portal-whats-new{
        padding-top:14px;
    }

    .portal-whats-new-head{
        align-items:flex-start;
        flex-direction:column;
        gap:12px;
    }

    .portal-whats-new-actions{
        width:100%;
    }

    .portal-whats-new-actions button:first-child{
        flex:1;
    }

    .portal-whats-new-details{
        grid-template-columns:1fr;
    }
}


/* ==========================================================================
   Frontend V0.3.4 – Komfortabler Veranstaltungskalender
   ========================================================================== */
.portal-calendar-subscribe{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:18px 26px;
    align-items:center;
    margin-bottom:16px;
    padding:16px 18px;
    border:1px solid #d7dee3;
    border-radius:16px;
    background:linear-gradient(135deg,#f7fbfd,#edf5f9);
}

.portal-calendar-subscribe strong{
    display:block;
    margin-top:4px;
    font-size:.92rem;
}

.portal-calendar-subscribe p{
    margin:4px 0 0;
    max-width:720px;
    color:var(--p-muted);
    font-size:.72rem;
    line-height:1.5;
}

.portal-calendar-subscribe-actions{
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
}

.portal-calendar-subscribe-actions .portal-btn{
    min-height:39px;
    padding:9px 12px;
    font-size:.68rem;
}

.portal-btn-quiet{
    border:1px solid #cbd3d7;
    background:#fff;
    color:var(--p-green);
}

.portal-calendar-subscribe>small{
    position:absolute;
    right:18px;
    bottom:3px;
    color:var(--p-green);
    font-size:.58rem;
}

.portal-event-calendar-add{
    margin-top:14px;
    padding-top:13px;
    border-top:1px solid #e9f0f4;
}

.portal-event-calendar-add>span{
    display:block;
    margin-bottom:7px;
    color:var(--p-muted);
    font-size:.61rem;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.portal-event-calendar-add>div{
    display:grid;
    gap:6px;
}

.portal-event-calendar-add a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:36px;
    padding:8px 10px;
    border:1px solid #d9e7ee;
    border-radius:9px;
    background:#f7fbfd;
    color:var(--p-green);
    font-size:.7rem;
    font-weight:700;
}

.portal-event-calendar-add a:hover{
    border-color:#bac5cb;
    background:#f2f5f6;
}

@media(max-width:800px){
    .portal-calendar-subscribe{
        grid-template-columns:1fr;
        gap:12px;
    }

    .portal-calendar-subscribe-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .portal-calendar-subscribe-actions .portal-btn{
        width:100%;
    }

    .portal-calendar-subscribe>small{
        position:static;
        margin-top:-5px;
    }
}


/* ==========================================================================
   Frontend V0.3.5 – Teilen konsequent durchgezogen
   ========================================================================== */
.portal-sharebar{
    position:relative;
}

.portal-share-status{
    position:absolute;
    right:16px;
    bottom:4px;
    color:var(--p-green);
    font-size:.58rem;
}

.portal-event-detail-main .portal-sharebar{
    margin:4px 0 18px;
    border-top:1px solid #e9f0f4;
    border-bottom:1px solid #e9f0f4;
    border-radius:0;
    background:transparent;
    padding-left:0;
    padding-right:0;
}

.portal-event-detail-main .portal-sharebar + .portal-event-description{
    padding-top:0;
    border-top:0;
}

@media(max-width:700px){
    .portal-share-status{
        position:static;
        display:block;
        width:100%;
        margin-top:5px;
    }
}


/* V0.3.5a – Instagram im Teilen-Bereich */
.portal-share-instagram{
    cursor:pointer;
}


/* ==========================================================================
   Frontend V0.3.6 – Vereine als lebendige Portalbereiche
   ========================================================================== */
.portal-club-grid-modern{
    align-items:stretch;
}

.portal-club-card-modern{
    display:flex;
    flex-direction:column;
}

.portal-club-card-info{
    display:flex;
    flex-direction:column;
    gap:4px;
    margin:4px 0 15px;
    color:var(--p-muted);
    font-size:.68rem;
}

.portal-club-card-modern .portal-club-actions{
    margin-top:auto;
}

.portal-club-actions a.is-primary{
    background:var(--p-green);
    color:#fff;
    border-color:var(--p-green);
}

.portal-club-detail-page{
    max-width:1240px;
    margin:0 auto;
}

.portal-club-profile{
    display:grid;
    grid-template-columns:180px minmax(0,1fr);
    gap:26px;
    align-items:center;
    padding:25px;
    border:1px solid var(--p-line);
    border-radius:19px;
    background:#fff;
}

.portal-club-profile-logo{
    display:grid;
    place-items:center;
    width:180px;
    height:180px;
    overflow:hidden;
    border-radius:18px;
    background:#f6fafd;
}

.portal-club-profile-logo img{
    width:100%;
    height:100%;
    object-fit:contain;
    padding:10px;
}

.portal-club-profile-logo span{
    color:var(--p-green);
    font-size:1.4rem;
    font-weight:900;
}

.portal-club-profile-copy h1{
    margin:6px 0 8px;
    font-size:clamp(2rem,4vw,3.35rem);
    font-weight:400;
    line-height:1.05;
    letter-spacing:-.035em;
}

.portal-club-profile-meta{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
}

.portal-club-profile-meta span{
    padding:6px 9px;
    border-radius:999px;
    background:#f2f4f5;
    color:var(--p-muted);
    font-size:.68rem;
}

.portal-club-profile-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:17px;
}

.portal-club-about{
    margin-top:15px;
    padding:20px 22px;
    border:1px solid var(--p-line);
    border-radius:16px;
    background:#fff;
}

.portal-club-about>div{
    margin-top:8px;
    color:var(--p-muted);
    font-size:.82rem;
    line-height:1.7;
}

.portal-club-contact-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:15px;
}

.portal-club-contact-card{
    padding:18px;
    border:1px solid var(--p-line);
    border-radius:16px;
    background:#fff;
}

.portal-club-contact-card>span{
    color:var(--p-green);
    font-size:.62rem;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.portal-club-contact-card h2{
    margin:5px 0 9px;
    font-size:1.08rem;
}

.portal-club-contact-card>strong,
.portal-club-contact-card>p{
    display:block;
    margin:3px 0;
    color:var(--p-muted);
    font-size:.76rem;
}

.portal-club-contact-card>div{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:12px;
}

.portal-club-contact-card a{
    padding:7px 9px;
    border-radius:9px;
    background:#f2f7fa;
    color:var(--p-green);
    font-size:.68rem;
    font-weight:700;
}

.portal-club-gallery-section{
    margin-top:22px;
}

.portal-club-gallery-section>header h2,
.portal-club-live>header h2{
    margin:4px 0 10px;
    font-size:1.45rem;
    font-weight:400;
}

.portal-club-detail-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:8px;
}

.portal-club-detail-gallery a{
    overflow:hidden;
    border-radius:13px;
    background:#eef5f8;
    aspect-ratio:4/3;
}

.portal-club-detail-gallery img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .2s ease;
}

.portal-club-detail-gallery a:hover img{
    transform:scale(1.025);
}

.portal-club-live{
    margin-top:26px;
}

.portal-club-live>header p{
    margin:0 0 14px;
    color:var(--p-muted);
    font-size:.76rem;
}

.portal-club-live-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.portal-club-live-panel{
    overflow:hidden;
    border:1px solid var(--p-line);
    border-radius:16px;
    background:#fff;
}

.portal-club-live-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:15px 17px;
    border-bottom:1px solid #e7eff4;
    background:#f7fbfd;
}

.portal-club-live-head span,
.portal-club-live-head strong{
    display:block;
}

.portal-club-live-head span{
    color:var(--p-green);
    font-size:.6rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.portal-club-live-head strong{
    margin-top:2px;
    font-size:.87rem;
}

.portal-club-live-head>b{
    display:grid;
    place-items:center;
    min-width:28px;
    height:28px;
    padding:0 7px;
    border-radius:999px;
    background:#ebeff2;
    color:var(--p-green);
    font-size:.68rem;
}

.portal-club-live-empty{
    margin:0;
    padding:20px;
    color:var(--p-muted);
    font-size:.74rem;
    line-height:1.5;
}

.portal-club-event-list,
.portal-club-news-list{
    padding:4px 16px 15px;
}

.portal-club-event-list>a{
    display:grid;
    grid-template-columns:50px 1fr 15px;
    gap:11px;
    align-items:center;
    padding:11px 0;
    border-bottom:1px solid #e9f0f4;
    color:var(--p-ink);
}

.portal-club-event-list>a:last-child{
    border-bottom:0;
}

.portal-club-event-list>a>div{
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    border-radius:10px;
    background:#edf5f9;
}

.portal-club-event-list>a>div strong{
    font-size:1rem;
    line-height:1;
}

.portal-club-event-list>a>div span{
    margin-top:2px;
    color:var(--p-green);
    font-size:.55rem;
    text-transform:uppercase;
}

.portal-club-event-list section>strong,
.portal-club-event-list section>small{
    display:block;
}

.portal-club-event-list section>strong{
    font-size:.78rem;
}

.portal-club-event-list section>small{
    margin-top:3px;
    color:var(--p-muted);
    font-size:.64rem;
}

.portal-club-event-list>a>b{
    color:var(--p-green);
}

.portal-club-news-list>a{
    display:block;
    padding:11px 0;
    border-bottom:1px solid #e9f0f4;
    color:var(--p-ink);
}

.portal-club-news-list>a:last-child{
    border-bottom:0;
}

.portal-club-news-list>a>small{
    color:var(--p-green);
    font-size:.61rem;
}

.portal-club-news-list>a>strong{
    display:block;
    margin-top:3px;
    font-size:.8rem;
}

.portal-club-news-list>a>span{
    display:block;
    margin-top:4px;
    color:var(--p-muted);
    font-size:.68rem;
    line-height:1.45;
}

.portal-club-news-list>a>b{
    display:block;
    margin-top:6px;
    color:var(--p-green);
    font-size:.65rem;
}

@media(max-width:900px){
    .portal-club-profile{
        grid-template-columns:130px 1fr;
    }

    .portal-club-profile-logo{
        width:130px;
        height:130px;
    }

    .portal-club-detail-gallery{
        grid-template-columns:repeat(2,1fr);
    }

    .portal-club-live-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:650px){
    .portal-club-profile{
        grid-template-columns:1fr;
    }

    .portal-club-profile-logo{
        width:120px;
        height:120px;
    }

    .portal-club-contact-layout{
        grid-template-columns:1fr;
    }

    .portal-club-profile-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .portal-club-profile-actions .portal-btn{
        width:100%;
    }
}


/* ==========================================================================
   Frontend V0.3.7 – öffentliche Statistik
   ========================================================================== */
.portal-stats-cards-rich article small.is-up{color:#2f6f91}
.portal-stats-cards-rich article small.is-down{color:#a25242}
.portal-stats-cards-rich article small.is-flat{color:var(--p-muted)}

.portal-stats-history>header p{
    max-width:720px;
    margin:5px 0 15px;
    color:var(--p-muted);
    font-size:.74rem;
    line-height:1.5;
}

.portal-stats-total{
    display:flex;
    align-items:baseline;
    gap:10px;
    margin-top:15px;
    padding:14px 17px;
    border:1px solid var(--p-line);
    border-radius:13px;
    background:#fff;
}

.portal-stats-total span{
    color:var(--p-muted);
    font-size:.68rem;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.portal-stats-total strong{
    font-size:1.25rem;
    font-weight:500;
}

.portal-stats-total small{
    color:var(--p-muted);
    font-size:.68rem;
}


/* ==========================================================================
   Frontend V0.3.9 – Navigation vollständig auf Portal-Blau
   ========================================================================== */
.portal-nav,
.portal-mainnav,
.main-nav,
.mainnav,
.site-nav,
.site-navigation,
.navbar,
.navigation {
    background: #163f56 !important;
}

.portal-nav a:hover,
.portal-nav a.is-active,
.portal-nav .active > a,
.portal-mainnav a:hover,
.portal-mainnav a.is-active,
.portal-mainnav .active > a,
.main-nav a:hover,
.main-nav a.is-active,
.main-nav .active > a,
.mainnav a:hover,
.mainnav a.is-active,
.mainnav .active > a,
.site-nav a:hover,
.site-nav a.is-active,
.site-nav .active > a,
.site-navigation a:hover,
.site-navigation a.is-active,
.site-navigation .active > a,
.navbar a:hover,
.navbar a.is-active,
.navbar .active > a,
.navigation a:hover,
.navigation a.is-active,
.navigation .active > a {
    background: #2b5f79 !important;
}


/* ==========================================================================
   Frontend V0.4.0 – Dropdown-Hover / aktiver Untermenüpunkt
   ========================================================================== */
.portal-nav .submenu a:hover,
.portal-nav .submenu a.is-active,
.portal-nav .submenu .active > a,
.portal-nav .dropdown-menu a:hover,
.portal-nav .dropdown-menu a.is-active,
.portal-nav .dropdown-menu .active > a,
.portal-mainnav .submenu a:hover,
.portal-mainnav .submenu a.is-active,
.portal-mainnav .submenu .active > a,
.portal-mainnav .dropdown-menu a:hover,
.portal-mainnav .dropdown-menu a.is-active,
.portal-mainnav .dropdown-menu .active > a,
.main-nav .submenu a:hover,
.main-nav .submenu a.is-active,
.main-nav .submenu .active > a,
.main-nav .dropdown-menu a:hover,
.main-nav .dropdown-menu a.is-active,
.main-nav .dropdown-menu .active > a,
.mainnav .submenu a:hover,
.mainnav .submenu a.is-active,
.mainnav .submenu .active > a,
.mainnav .dropdown-menu a:hover,
.mainnav .dropdown-menu a.is-active,
.mainnav .dropdown-menu .active > a,
.site-nav .submenu a:hover,
.site-nav .submenu a.is-active,
.site-nav .submenu .active > a,
.site-nav .dropdown-menu a:hover,
.site-nav .dropdown-menu a.is-active,
.site-nav .dropdown-menu .active > a {
    background: #e4f1f7 !important;
    color: #163f56 !important;
}

/* Fallback für die tatsächlich verwendeten verschachtelten Navigationslisten. */
.portal-nav ul ul a:hover,
.portal-nav ul ul a.is-active,
.portal-nav ul ul .active > a,
.portal-mainnav ul ul a:hover,
.portal-mainnav ul ul a.is-active,
.portal-mainnav ul ul .active > a,
.main-nav ul ul a:hover,
.main-nav ul ul a.is-active,
.main-nav ul ul .active > a,
.mainnav ul ul a:hover,
.mainnav ul ul a.is-active,
.mainnav ul ul .active > a,
.site-nav ul ul a:hover,
.site-nav ul ul a.is-active,
.site-nav ul ul .active > a {
    background: #e4f1f7 !important;
    color: #163f56 !important;
}


/* ==========================================================================
   Frontend V0.4.1 – finale Blau-Bereinigung
   Sämtliche früheren Grünabstufungen werden durch die Portal-Blaupalette ersetzt.
   ========================================================================== */
:root{
    --p-green:#1f4f69;
    --p-green-dark:#163f56;
    --p-green-mid:#326f8d;
    --p-mint:#edf5f9;
    --p-ink:#173241;
    --p-muted:#667985;
    --p-line:#d8e6ed;
    --p-surface:#f4f8fb;
    --p-shadow:0 24px 70px rgba(22,63,86,.12);
}

/* Hauptnavigation */
.portal-nav{
    background:rgba(22,63,86,.97)!important;
    box-shadow:0 7px 24px rgba(22,63,86,.14)!important;
}
.portal-nav-links>a:hover,
.portal-nav-group>a:hover,
.portal-nav-links>.is-active,
.portal-nav-group>.is-active{
    background:#326f8d!important;
    color:#fff!important;
}

/* Der tatsächlich verwendete Dropdown-Bereich */
.portal-subnav{
    background:#fff!important;
}
.portal-subnav a{
    color:#173241!important;
}
.portal-subnav a:hover,
.portal-subnav a.is-active,
.portal-subnav .is-active>a,
.portal-subnav a[aria-current="page"]{
    background:#eaf4f8!important;
    color:#163f56!important;
}

/* Unterstreichung/Akzent der Navigation ebenfalls Blau */
.portal-nav-links>a::after,
.portal-nav-group>a::after{
    background:#9bc7dc!important;
}

/* Wiederkehrende helle Akzente */
.portal-kicker{
    color:#77b4d0!important;
}
.portal-page-hero,
.portal-content-hero{
    border-color:#d8e6ed!important;
}

/* Keine grünen Erfolg-/Akzentflächen im normalen Frontenddesign.
   Statusfarben für echte Warnung/Fehler bleiben davon unberührt. */
.portal-inline-new,
.portal-new-summary,
.portal-area-new,
.portal-club-profile-meta span,
.portal-event-datebox,
.portal-info-card{
    border-color:#d8e6ed;
}


/* ==========================================================================
   Frontend V0.4.2 – Startseite: drei Hero-Bereiche + FAQ/Prävention
   ========================================================================== */

/* 01 Rundenkämpfe: Blau */
.portal-home-quick-three a:nth-child(1){
    background:linear-gradient(135deg,rgba(48,112,143,.78),rgba(31,79,105,.88))!important;
    border-color:rgba(164,207,226,.34)!important;
}
.portal-home-quick-three a:nth-child(1):hover{
    background:linear-gradient(135deg,rgba(55,124,157,.90),rgba(31,79,105,.96))!important;
}

/* 02 Kreismeisterschaften: gedecktes Grün */
.portal-home-quick-three a:nth-child(2){
    background:linear-gradient(135deg,rgba(72,118,98,.80),rgba(49,88,72,.90))!important;
    border-color:rgba(179,210,191,.34)!important;
}
.portal-home-quick-three a:nth-child(2):hover{
    background:linear-gradient(135deg,rgba(79,130,107,.91),rgba(49,88,72,.97))!important;
}

/* 03 Veranstaltungen: warmes Orange */
.portal-home-quick-three a:nth-child(3){
    background:linear-gradient(135deg,rgba(179,112,54,.82),rgba(126,76,35,.92))!important;
    border-color:rgba(235,193,153,.36)!important;
}
.portal-home-quick-three a:nth-child(3):hover{
    background:linear-gradient(135deg,rgba(196,123,59,.92),rgba(126,76,35,.98))!important;
}

/* Direktbereich: FAQ */
.portal-area-faq{
    background:#fff;
}

/* Direktbereich: Prävention noch nicht aktiv */
.portal-area-prevention{
    position:relative;
    background:linear-gradient(145deg,#f4f8fa,#eaf1f5)!important;
    border-color:#d5e2e9!important;
    opacity:.82;
    cursor:default;
}
.portal-area-prevention::after{
    content:"Folgt demnächst";
    position:absolute;
    top:18px;
    right:18px;
    padding:5px 8px;
    border-radius:999px;
    background:#dce9f0;
    color:#4a6878;
    font-size:.56rem;
    font-weight:800;
    letter-spacing:.045em;
    text-transform:uppercase;
}
.portal-area-prevention:hover{
    transform:none!important;
    box-shadow:none!important;
    border-color:#d5e2e9!important;
}
.portal-area-prevention b{
    color:#758791!important;
}

@media(max-width:760px){
    .portal-area-prevention::after{
        top:14px;
        right:14px;
    }
}


/* ==========================================================================
   Frontend V0.4.3 – Header/Wappen Feinschliff
   ========================================================================== */

/* Wappen auf den Portal-/SID-Seiten präsenter darstellen */
.portal-brand-logo{
    width:220px!important;
    max-width:none!important;
    height:auto!important;
    object-fit:contain;
}

/* Bezeichnung neben dem Wappen in der dunkelblauen Hauptfarbe */
.portal-brand-name,
.portal-brand-name a,
.portal-brand-title,
.portal-brand-title a{
    color:#163f56!important;
}

/* Header darf für das größere Wappen etwas mehr Raum bekommen */
.portal-brand{
    min-height:150px;
    align-items:center;
}

/* Tablet */
@media(max-width:1000px){
    .portal-brand-logo{
        width:190px!important;
    }
    .portal-brand{
        min-height:135px;
    }
}

/* Smartphone */
@media(max-width:700px){
    .portal-brand-logo{
        width:155px!important;
        max-width:42vw!important;
    }
    .portal-brand{
        min-height:112px;
    }
}

/* sehr kleine Displays */
@media(max-width:430px){
    .portal-brand-logo{
        width:140px!important;
        max-width:44vw!important;
    }
}


/* ==========================================================================
   Frontend V0.4.4 – Headerlogo wirklich vergrößert
   ========================================================================== */
.portal-header .brand-logo,
.portal-header .portal-logo,
.portal-header .site-logo,
.portal-header .portal-brand-logo,
.portal-header img[src*="logo"],
.portal-header img[src*="Logo"],
.portal-header img[src*="wappen"],
.portal-header img[src*="Wappen"],
.portal-shell-header .brand-logo,
.portal-shell-header img:first-of-type{
    width:260px!important;
    max-width:260px!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
}
.portal-header .brand-name,
.portal-header .brand-name a,
.portal-header .site-name,
.portal-header .site-name a,
.portal-header .portal-brand-name,
.portal-header .portal-brand-name a{
    color:#163f56!important;
}
@media(max-width:1000px){
    .portal-header .brand-logo,.portal-header .portal-logo,.portal-header .site-logo,
    .portal-header .portal-brand-logo,.portal-header img[src*="logo"],.portal-header img[src*="Logo"],
    .portal-header img[src*="wappen"],.portal-header img[src*="Wappen"],
    .portal-shell-header .brand-logo,.portal-shell-header img:first-of-type{
        width:220px!important;max-width:220px!important;
    }
}
@media(max-width:700px){
    .portal-header .brand-logo,.portal-header .portal-logo,.portal-header .site-logo,
    .portal-header .portal-brand-logo,.portal-header img[src*="logo"],.portal-header img[src*="Logo"],
    .portal-header img[src*="wappen"],.portal-header img[src*="Wappen"],
    .portal-shell-header .brand-logo,.portal-shell-header img:first-of-type{
        width:175px!important;max-width:46vw!important;
    }
}

.portal-sport-schedule{
    background:linear-gradient(145deg,#fff,#f1f7fa)!important;
    border-color:#cbdde7!important;
}
.portal-sport-schedule span,.portal-sport-schedule b{color:#326f8d!important}


/* ==========================================================================
   Frontend V0.4.5 – Headerlogo und Terminplan endgültig korrigiert
   ========================================================================== */

/* Das tatsächlich verwendete Headerlogo */
.portal-site-header-inner{
    min-height:150px!important;
}

.portal-site-logo{
    width:250px!important;
    height:122px!important;
    flex:0 0 250px!important;
}

.portal-site-logo img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:contain!important;
}

/* Schriftzug rechts vom Logo */
.portal-site-name strong{
    color:#163f56!important;
}

.portal-site-name small{
    color:#326f8d!important;
}

@media(max-width:1000px){
    .portal-site-header-inner{
        min-height:132px!important;
    }

    .portal-site-logo{
        width:215px!important;
        height:105px!important;
        flex-basis:215px!important;
    }
}

@media(max-width:760px){
    .portal-site-header-inner{
        min-height:108px!important;
    }

    .portal-site-logo{
        width:170px!important;
        height:84px!important;
        flex-basis:170px!important;
    }
}

@media(max-width:430px){
    .portal-site-logo{
        width:150px!important;
        height:74px!important;
        flex-basis:150px!important;
    }
}


/* ==========================================================================
   Frontend V0.4.6 – globale responsive Typografie + Scroll-to-top mobil
   ========================================================================== */

/*
 * Große Seitentitel skalieren fließend mit der verfügbaren Breite.
 * Dadurch bleiben auch lange Begriffe wie "Kreismeisterschaften" vollständig
 * sichtbar, ohne auf einzelnen Displaybreiten Sonderlösungen zu benötigen.
 */
.portal-page-hero h1,
.portal-hero h1,
.portal-page-title,
.portal-content h1{
    font-size:clamp(2rem, 5.2vw, 4.15rem)!important;
    line-height:1.04!important;
    overflow-wrap:anywhere;
    hyphens:auto;
}

.portal-content h2,
.portal-section-title,
.portal-home-section h2{
    font-size:clamp(1.55rem, 3.2vw, 2.75rem);
    line-height:1.12;
}

.portal-content h3,
.portal-area-card h3,
.portal-sport-card h3{
    font-size:clamp(1.12rem, 2vw, 1.55rem);
    line-height:1.2;
}

@media(max-width:760px){
    .portal-page-hero h1,
    .portal-hero h1,
    .portal-page-title,
    .portal-content h1{
        font-size:clamp(2rem, 9vw, 2.65rem)!important;
        line-height:1.04!important;
        letter-spacing:-.025em;
    }

    /* Lange Hero-Titel dürfen niemals aus dem sichtbaren Bereich laufen. */
    .portal-page-hero,
    .portal-hero{
        overflow:hidden;
    }

    /*
     * Scroll-to-top auf Smartphones wieder sichtbar.
     * Mehrere Selektoren decken die im Frontend verwendeten/älteren Namen ab.
     */
    .portal-scroll-top,
    .scroll-to-top,
    .back-to-top,
    #scrollToTop,
    #backToTop{
        display:flex!important;
        visibility:visible!important;
        opacity:1;
        position:fixed!important;
        right:16px!important;
        bottom:16px!important;
        width:52px!important;
        height:52px!important;
        align-items:center!important;
        justify-content:center!important;
        z-index:9999!important;
    }
}

@media(max-width:430px){
    .portal-page-hero h1,
    .portal-hero h1,
    .portal-page-title,
    .portal-content h1{
        font-size:clamp(1.9rem, 8.7vw, 2.35rem)!important;
    }

    .portal-scroll-top,
    .scroll-to-top,
    .back-to-top,
    #scrollToTop,
    #backToTop{
        right:12px!important;
        bottom:12px!important;
        width:48px!important;
        height:48px!important;
    }
}


/* ==========================================================================
   Frontend V0.4.8 RC – Absätze in News-Detailartikeln
   ========================================================================== */
.portal-article-body.default-text > p{
    margin:0 0 1.2em;
}

.portal-article-body.default-text > p:last-child{
    margin-bottom:0;
}


/* ==========================================================================
   Frontend V0.4.12 RC – abgesagte Veranstaltungen
   ========================================================================== */
.portal-event-cancelled-badge{
    display:inline-flex;
    align-items:center;
    margin-left:7px;
    padding:4px 7px;
    border-radius:999px;
    background:#fff0ed;
    color:#a44335;
    font-size:.55rem;
    font-style:normal;
    font-weight:900;
    line-height:1;
    letter-spacing:.045em;
    text-transform:uppercase;
    vertical-align:middle;
}

.portal-event-cancelled-note{
    margin:14px 0 18px;
    padding:15px 17px;
    border:1px solid #ebc6bf;
    border-radius:13px;
    background:#fff5f2;
}
.portal-event-cancelled-note strong{
    color:#963e32;
    font-size:.82rem;
}
.portal-event-cancelled-note p{
    margin:5px 0 0;
    color:#765852;
    font-size:.72rem;
    line-height:1.55;
}


/* ==========================================================================
   Frontend V0.4.13 RC – abgesagte Termine nicht mehr als aktiv behandeln
   ========================================================================== */
.portal-event-list > a.is-cancelled{
    border-color:#ead2cd;
    background:#fff8f6;
}

.portal-event-list > a.is-cancelled .portal-event-datebox{
    background:#f8eae7;
    color:#93463a;
}

.portal-event-list > a.is-cancelled > div:nth-child(2) > strong{
    color:#79534c;
}


/* ==========================================================================
   Frontend V0.4.15 RC – Formular-/Skalierungs-Fix
   Stabil bei abweichender Browser-/Windows-Skalierung und Schriftmetrik
   ========================================================================== */

/* Grundsätzlich keine überlappenden Formularfelder */
.portal-content form,
.portal-event-submit-form,
.portal-contact-form,
.portal-form,
.portal-km-form{
    min-width:0;
}

.portal-event-form-grid,
.portal-contact-form-grid,
.portal-form-grid,
.portal-km-form-grid{
    display:grid;
    gap:18px 16px!important;
    align-items:start!important;
}

/* Labels bekommen immer ihren eigenen vertikalen Raum */
.portal-content form label,
.portal-event-submit-form label,
.portal-contact-form label,
.portal-form label,
.portal-km-form label{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:7px!important;
    min-width:0!important;
    height:auto!important;
    line-height:1.25!important;
}

/* Kleine Hilfstexte dürfen nicht in das nächste Feld rutschen */
.portal-content form label > small,
.portal-event-submit-form label > small,
.portal-contact-form label > small,
.portal-form label > small,
.portal-km-form label > small{
    display:block!important;
    margin-top:2px!important;
    line-height:1.35!important;
}

/* Einheitliche Feldhöhen – ohne starre Zeilenboxen */
.portal-content form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.portal-content form select,
.portal-event-submit-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.portal-event-submit-form select,
.portal-contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.portal-contact-form select,
.portal-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.portal-form select,
.portal-km-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.portal-km-form select{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:48px!important;
    padding:12px 14px!important;
    box-sizing:border-box!important;
    line-height:1.2!important;
}

.portal-content form textarea,
.portal-event-submit-form textarea,
.portal-contact-form textarea,
.portal-form textarea,
.portal-km-form textarea{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    min-height:120px!important;
    height:auto!important;
    padding:12px 14px!important;
    box-sizing:border-box!important;
    line-height:1.45!important;
    resize:vertical;
}

.portal-content form input[type="file"],
.portal-event-submit-form input[type="file"],
.portal-contact-form input[type="file"],
.portal-form input[type="file"],
.portal-km-form input[type="file"]{
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    padding:10px!important;
}

/* Browser-eigene Date/Time-Controls brauchen etwas mehr Innenraum */
.portal-content input[type="date"],
.portal-content input[type="time"],
.portal-event-submit-form input[type="date"],
.portal-event-submit-form input[type="time"],
.portal-contact-form input[type="date"],
.portal-contact-form input[type="time"]{
    min-height:50px!important;
}

/* Grid-Zellen dürfen bei Zoom nie über die Spalte hinausdrücken */
.portal-event-form-grid > *,
.portal-contact-form-grid > *,
.portal-form-grid > *,
.portal-km-form-grid > *{
    min-width:0!important;
}

/* Zweispaltige Felder bleiben sauber, auf kleineren/zoomed Viewports einspaltig */
@media(max-width:900px){
    .portal-event-form-grid,
    .portal-contact-form-grid,
    .portal-form-grid,
    .portal-km-form-grid{
        grid-template-columns:1fr!important;
    }

    .portal-event-form-grid .span-2,
    .portal-contact-form-grid .span-2,
    .portal-form-grid .span-2,
    .portal-km-form-grid .span-2{
        grid-column:1/-1!important;
    }
}

/* Mobile etwas kompakter, aber weiterhin mit ausreichend vertikalem Abstand */
@media(max-width:600px){
    .portal-event-form-grid,
    .portal-contact-form-grid,
    .portal-form-grid,
    .portal-km-form-grid{
        gap:16px!important;
    }

    .portal-content form label,
    .portal-event-submit-form label,
    .portal-contact-form label,
    .portal-form label,
    .portal-km-form label{
        gap:6px!important;
    }

    .portal-content form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    .portal-content form select,
    .portal-event-submit-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    .portal-event-submit-form select,
    .portal-contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
    .portal-contact-form select{
        min-height:46px!important;
        padding:11px 12px!important;
    }
}


/* ==========================================================================
   Frontend V0.4.17 RC – Kontakt mobil wirklich außerhalb des Hero-Bildes
   ========================================================================== */

/* Desktop: neue mobile Kontaktzeile unsichtbar */
.portal-home-mobile-contact{
    display:none;
}

@media(max-width:760px){

    /*
     * Eigener Kontaktbereich VOR dem Hero.
     * Damit liegt der Link technisch und optisch nicht mehr im Hintergrundbild.
     */
    .portal-home-mobile-contact{
        display:flex;
        align-items:center;
        justify-content:flex-start;
        padding-top:14px;
        padding-bottom:14px;
        background:#fff;
    }

    .portal-home-mobile-contact > a{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:46px;
        padding:0 18px;
        border:1px solid #d8e6ed;
        border-radius:999px;
        background:#fff;
        color:#163f56;
        text-decoration:none;
        box-shadow:0 6px 18px rgba(22,63,86,.06);
    }

    .portal-home-mobile-contact > a:hover{
        background:#f2f7fa;
        border-color:#c7dbe5;
        color:#163f56;
    }

    /*
     * Der originale Kontakt-Link im Hero bleibt nur für Desktop.
     * Der restliche Hero-Top-Inhalt wird mobil ebenfalls nicht benötigt.
     */
    .portal-home-top{
        display:none!important;
    }

    /*
     * Hero selbst wieder ohne künstlichen oberen Abstand.
     * "Willkommen im neuen Portal" bleibt normal im Bild.
     */
    .portal-home-hero{
        padding-top:0!important;
    }
}

@media(max-width:430px){
    .portal-home-mobile-contact{
        padding-top:12px;
        padding-bottom:12px;
    }

    .portal-home-mobile-contact > a{
        min-height:44px;
        padding:0 16px;
    }
}


/* ==========================================================================
   Frontend V0.4.18 RC – Veranstaltung erfolgreich eingereicht
   ========================================================================== */
.portal-event-submit-success{
    margin:0 0 22px!important;
    padding:22px 24px!important;
    border:1px solid #bad7c8!important;
    border-radius:16px!important;
    background:#f3fbf6!important;
    box-shadow:0 10px 28px rgba(22,63,86,.06);
}

.portal-event-submit-success > span{
    display:grid!important;
    place-items:center!important;
    flex:0 0 46px!important;
    width:46px!important;
    height:46px!important;
    border-radius:50%!important;
    background:#dcefe4!important;
    color:#2f6f52!important;
    font-size:1.2rem!important;
    font-weight:900!important;
}

.portal-event-submit-success h2{
    margin:3px 0 8px!important;
}

.portal-event-submit-success p{
    margin:0 0 7px!important;
    line-height:1.55!important;
}

.portal-event-submit-success small{
    display:block!important;
    margin-top:8px!important;
    color:#526b60!important;
}

@media(max-width:700px){
    .portal-event-submit-success{
        padding:18px!important;
    }
}


/* ==========================================================================
   Frontend V0.4.19 RC – Formularvalidierung Veranstaltungseinreichung
   ========================================================================== */

.portal-event-submit-form input:disabled,
.portal-event-submit-form select:disabled,
.portal-event-submit-form textarea:disabled{
    background:#eef3f6!important;
    color:#8a9aa3!important;
    border-color:#d8e1e6!important;
    cursor:not-allowed;
    opacity:.78;
}

/* Erst nach Validierungsversuch oder bei konkret erkanntem Fehler markieren. */
.portal-event-submit-form.was-validated input:invalid:not(:disabled),
.portal-event-submit-form.was-validated select:invalid:not(:disabled),
.portal-event-submit-form.was-validated textarea:invalid:not(:disabled),
.portal-event-submit-form label.is-field-invalid input:not(:disabled),
.portal-event-submit-form label.is-field-invalid select:not(:disabled),
.portal-event-submit-form label.is-field-invalid textarea:not(:disabled){
    background:#fff4f2!important;
    border-color:#e3aaa2!important;
    box-shadow:0 0 0 3px rgba(184,72,58,.07)!important;
}

.portal-event-submit-form label.is-field-invalid{
    color:#9e493e!important;
}

/* Sobald das Feld wieder gültig ist, normale Darstellung. */
.portal-event-submit-form.was-validated input:valid:not(:placeholder-shown),
.portal-event-submit-form.was-validated select:valid,
.portal-event-submit-form.was-validated textarea:valid{
    border-color:#c9dce5;
}

/* Erfolgsmeldung ganz klar sichtbar. */
.portal-event-submit-success{
    display:flex!important;
    gap:16px!important;
    align-items:flex-start!important;
    margin:0 0 24px!important;
}


/* ==========================================================================
   Frontend 0.4.20 RC – verwaltbare statische Seiten
   ========================================================================== */
.portal-managed-page{padding:8px 0 28px}
.portal-managed-card{max-width:1080px;margin:0 auto;padding:38px 42px;border:1px solid #d5e3e9;border-radius:22px;background:#fff}
.portal-managed-copy{max-width:860px}
.portal-managed-copy h2{margin:8px 0 22px;color:#143d54;font-size:clamp(1.75rem,3vw,2.7rem);line-height:1.08}
.portal-managed-text p{margin:0 0 1.15em;color:#4f6874;line-height:1.75}
.portal-managed-text p:last-child{margin-bottom:0}
@media(max-width:700px){
  .portal-managed-card{padding:26px 22px;border-radius:17px}
}


/* ==========================================================================
   Frontend 0.4.21 RC – Seitenbilder / Grußwort ruhig / Footer
   ========================================================================== */

/* Grußwort ist statischer Inhalt: kein Karten-Hover */
.portal-greeting-card:hover{
    transform:none!important;
    box-shadow:inherit!important;
    border-color:inherit!important;
}
.portal-greeting-card:hover .portal-greeting-photo img{
    transform:none!important;
}

/* Optionale Bilder auf generischen Seiten */
.portal-managed-card.has-image{
    display:grid;
    grid-template-columns:minmax(240px,34%) minmax(0,1fr);
    gap:34px;
    align-items:start;
}
.portal-managed-image{
    overflow:hidden;
    border-radius:18px;
    background:#edf4f7;
}
.portal-managed-image img{
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
}
@media(max-width:800px){
    .portal-managed-card.has-image{grid-template-columns:1fr}
    .portal-managed-image{max-width:520px}
}

/* Frontend 0.4.25 RC – Prävention */
.portal-area-card.portal-area-prevention{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#5d315d 0%,#7d4c6f 52%,#9c6d7f 100%);
  border-color:rgba(255,255,255,.22);color:#fff;
}
.portal-area-card.portal-area-prevention::after{
  content:"◇";position:absolute;right:18px;bottom:-34px;font-size:150px;line-height:1;
  color:rgba(255,255,255,.10);transform:rotate(45deg);pointer-events:none;
}
.portal-area-card.portal-area-prevention span,
.portal-area-card.portal-area-prevention h3,
.portal-area-card.portal-area-prevention p,
.portal-area-card.portal-area-prevention b{position:relative;z-index:1;color:#fff}
.portal-area-card.portal-area-prevention span{color:rgba(255,255,255,.72)}
.portal-prevention{display:grid;gap:24px}
.prevention-lead{display:grid;grid-template-columns:92px minmax(0,1fr);gap:24px;align-items:start;padding:28px;border-radius:24px;background:linear-gradient(135deg,#eef5f7,#f7f2f6);border:1px solid #d9e5e9}
.prevention-shield{width:82px;height:82px;display:grid;place-items:center;border-radius:22px;background:#633c60;color:#fff;font-size:46px}
.prevention-lead p{max-width:950px;line-height:1.7}
.prevention-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.prevention-card{display:grid;grid-template-columns:54px minmax(0,1fr);gap:18px;padding:24px;border:1px solid #d9e5e9;border-radius:22px;background:#fff}
.prevention-card-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#eef5f7;font-size:25px}
.prevention-card h2{margin:0 0 12px;font-size:clamp(1.25rem,2vw,1.65rem)}
.prevention-card p,.prevention-card li{line-height:1.65}
.prevention-card a{font-weight:700;color:#175a78;text-decoration:none}
.prevention-card a:hover{text-decoration:underline}
.prevention-card h4{margin:20px 0 5px}
.prevention-card ul,.prevention-card ol{padding-left:22px}
.prevention-type-help,.prevention-type-contact,.prevention-type-download{background:#f7fafb}
.prevention-type-danger{background:#fff3f1;border-color:#efc6bf}
.prevention-type-danger .prevention-card-icon{background:#f8d9d3}
.prevention-type-notice{background:#fff9ec;border-color:#ead9ad}
.prevention-type-claim{grid-column:1/-1;background:#173f56;color:#fff;border-color:#173f56}
.prevention-type-claim .prevention-card-icon{background:rgba(255,255,255,.12)}
.prevention-type-claim a{color:#fff}
@media(max-width:850px){.prevention-grid{grid-template-columns:1fr}.prevention-type-claim{grid-column:auto}}
@media(max-width:600px){.prevention-lead{grid-template-columns:1fr;padding:20px}.prevention-shield{width:64px;height:64px}.prevention-card{grid-template-columns:1fr;padding:20px}.prevention-card-icon{width:44px;height:44px}}


/* Frontend 0.4.27 RC – Präventionskachel mit Illustration */
.portal-area-card.portal-area-prevention{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(150px,.95fr);
    gap:14px;
    align-items:stretch;
    min-height:300px;
    padding:0;
    background:linear-gradient(135deg,#fff 0%,#fbf5fb 58%,#f3e6f1 100%);
    border:1px solid #dccfdd;
    color:#173f56;
}
.portal-area-card.portal-area-prevention::after{display:none}
.portal-prevention-copy{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:30px 12px 30px 30px;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy span{
    color:#8b3978;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy h3{
    color:#173f56;
    margin-top:auto;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy p{
    color:#5d7280;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy b{
    color:#8b3978;
}
.portal-prevention-visual{
    position:relative;
    min-width:0;
    overflow:hidden;
    display:flex;
    align-items:flex-end;
    justify-content:center;
}
.portal-prevention-visual::before{
    content:"";
    position:absolute;
    width:250px;
    height:250px;
    right:-35px;
    bottom:-40px;
    border-radius:50%;
    background:rgba(157,91,143,.10);
}
.portal-prevention-visual img{
    position:relative;
    z-index:1;
    display:block;
    width:100%;
    height:100%;
    max-height:300px;
    object-fit:cover;
    object-position:52% 50%;
}
.portal-area-card.portal-area-prevention:hover{
    background:linear-gradient(135deg,#fff 0%,#faf1f9 58%,#eeddeb 100%);
}
@media(max-width:720px){
    .portal-area-card.portal-area-prevention{
        grid-template-columns:minmax(0,1fr) 42%;
        min-height:280px;
    }
    .portal-prevention-copy{padding:24px 8px 24px 24px}
    .portal-prevention-visual img{max-height:280px;object-position:52% 50%}
}
@media(max-width:480px){
    .portal-area-card.portal-area-prevention{
        grid-template-columns:1fr;
        min-height:0;
    }
    .portal-prevention-copy{padding:24px 24px 8px}
    .portal-prevention-copy h3{margin-top:18px}
    .portal-prevention-visual{height:190px}
    .portal-prevention-visual img{max-height:none;object-position:50% 42%}
}


/* Frontend 0.4.28 RC – Präventionskachel final */
.portal-area-card.portal-area-prevention{
    background:#f1dff0;
    border-color:#dcc5da;
}
.portal-area-card.portal-area-prevention:hover{
    background:#ecd5ea;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy span,
.portal-area-card.portal-area-prevention .portal-prevention-copy b{
    color:#8b3978;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy h3{
    color:#173f56;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy p{
    color:#536b79;
}
.portal-prevention-visual{
    background:#f1dff0;
    padding:12px 12px 10px 0;
}
.portal-prevention-visual::before{display:none}
.portal-prevention-visual img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center bottom;
}
@media(max-width:480px){
    .portal-prevention-visual{
        height:210px;
        padding:0 18px 12px;
    }
    .portal-prevention-visual img{
        object-fit:contain;
        object-position:center bottom;
    }
}


/* Frontend 0.4.29 RC – Präventionskachel wie Entwurf */
.portal-area-card.portal-area-prevention{
    grid-template-columns:minmax(0,1.05fr) minmax(0,1.15fr);
    min-height:300px;
    background:linear-gradient(135deg,#f5e7f5 0%,#efd8f0 100%);
    border-color:#dcc5df;
}
.portal-area-card.portal-area-prevention:hover{
    background:linear-gradient(135deg,#f2e0f2 0%,#ebd0ed 100%);
}
.portal-prevention-copy{
    padding:30px 8px 28px 30px;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy span{
    color:#842773;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy h3{
    color:#5e1658;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy p{
    color:#314b5d;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy b{
    color:#842773;
}
.portal-prevention-visual{
    height:auto;
    min-height:300px;
    padding:0;
    background:transparent;
    overflow:hidden;
}
.portal-prevention-visual img{
    width:100%;
    height:100%;
    max-height:none;
    object-fit:cover;
    object-position:center center;
    mix-blend-mode:multiply;
}
@media(max-width:720px){
    .portal-area-card.portal-area-prevention{
        grid-template-columns:minmax(0,1fr) minmax(0,.9fr);
        min-height:280px;
    }
    .portal-prevention-visual{min-height:280px;height:auto;padding:0}
}
@media(max-width:480px){
    .portal-area-card.portal-area-prevention{grid-template-columns:1fr}
    .portal-prevention-copy{padding:24px 24px 10px}
    .portal-prevention-visual{height:210px;min-height:210px;padding:0 12px 8px}
    .portal-prevention-visual img{object-fit:contain;object-position:center bottom}
}


/* ==========================================================================
   Frontend 0.4.30 RC – Präventionskachel vollflächig
   ========================================================================== */
.portal-area-card.portal-area-prevention-full{
    display:block;
    position:relative;
    overflow:hidden;
    min-height:0;
    padding:0;
    aspect-ratio:1.34 / 1;
    background:#ead4ee;
    border:1px solid #dac6de;
    border-radius:22px;
    box-shadow:0 10px 26px rgba(75,49,83,.08);
    transform:translateY(0);
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease,
        filter .22s ease;
}
.portal-area-card.portal-area-prevention-full::after{
    display:none!important;
}
.portal-area-card.portal-area-prevention-full > img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    border-radius:inherit;
}
.portal-area-card.portal-area-prevention-full:hover{
    transform:translateY(-5px);
    box-shadow:0 18px 34px rgba(75,49,83,.16);
    border-color:#cfaed2;
    filter:saturate(1.035) brightness(1.015);
}
.portal-area-card.portal-area-prevention-full:focus-visible{
    outline:3px solid rgba(124,65,126,.34);
    outline-offset:3px;
}
@media(max-width:720px){
    .portal-area-card.portal-area-prevention-full{
        aspect-ratio:1.28 / 1;
    }
}
@media(max-width:480px){
    .portal-area-card.portal-area-prevention-full{
        aspect-ratio:1.20 / 1;
    }
    .portal-area-card.portal-area-prevention-full > img{
        object-fit:cover;
    }
}


/* ==========================================================================
   Frontend 0.4.31 RC – Präventionskachel Responsive-/Hover-Fix
   ========================================================================== */

/*
 * Das komplette Kartenmotiv bleibt sichtbar.
 * Keine feste Höhe / kein cover-Cropping mehr.
 */
.portal-area-card.portal-area-prevention-full{
    display:block;
    width:100%;
    min-width:0;
    min-height:0;
    aspect-ratio:auto;
    padding:0;
    overflow:hidden;
    background:#ead7ef;
    border:1px solid #d7c1dc;
    border-radius:22px;
    box-shadow:0 10px 24px rgba(67,47,76,.08);
    transform:translateY(0) scale(1);
    transform-origin:center center;
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease,
        filter .22s ease;
}

.portal-area-card.portal-area-prevention-full::after{
    display:none!important;
}

.portal-area-card.portal-area-prevention-full > img{
    display:block;
    width:100%;
    height:auto;
    max-width:100%;
    object-fit:contain;
    object-position:center center;
    border-radius:inherit;
}

/* Hover wirkt bewusst auf die gesamte Kachel */
.portal-area-card.portal-area-prevention-full:hover{
    transform:translateY(-5px) scale(1.012);
    box-shadow:0 18px 34px rgba(67,47,76,.16);
    border-color:#c8a8cf;
    filter:brightness(1.015) saturate(1.03);
}

.portal-area-card.portal-area-prevention-full:focus-visible{
    outline:3px solid rgba(126,68,135,.34);
    outline-offset:4px;
}

/* Tablet */
@media(max-width:900px){
    .portal-area-card.portal-area-prevention-full{
        border-radius:20px;
    }
    .portal-area-card.portal-area-prevention-full:hover{
        transform:translateY(-3px) scale(1.008);
    }
}

/* Handy: Bild skaliert proportional, kein Abschneiden links/rechts */
@media(max-width:600px){
    .portal-area-card.portal-area-prevention-full{
        width:100%;
        border-radius:18px;
        box-shadow:0 8px 20px rgba(67,47,76,.08);
    }
    .portal-area-card.portal-area-prevention-full > img{
        width:100%;
        height:auto;
        object-fit:contain;
    }
    .portal-area-card.portal-area-prevention-full:hover{
        transform:translateY(-2px);
    }
}

/* Touchgeräte: kein klebender Hover-Zustand */
@media(hover:none){
    .portal-area-card.portal-area-prevention-full:hover{
        transform:none;
        box-shadow:0 10px 24px rgba(67,47,76,.08);
        filter:none;
    }
    .portal-area-card.portal-area-prevention-full:active{
        transform:scale(.992);
    }
}


/* ==========================================================================
   Frontend 0.4.32 RC – Prävention wie FAQ-Kachel, mit eingebetteter Grafik
   ========================================================================== */
.portal-area-card.portal-area-prevention{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(150px,.9fr);
    gap:12px;
    align-items:stretch;
    min-width:0;
    min-height:300px;
    padding:0;
    overflow:hidden;
    background:linear-gradient(135deg,#ead4ee 0%,#e6cce9 100%);
    border:1px solid #d5b9da;
    border-radius:22px;
    color:#173f56;
    box-shadow:0 8px 20px rgba(64,45,73,.06);
    transform:translateY(0);
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease,
        background .22s ease;
}
.portal-area-card.portal-area-prevention::after{
    display:none!important;
}
.portal-prevention-copy{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:28px 8px 28px 28px;
    min-width:0;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy span{
    color:#8b3978;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy h3{
    color:#173f56;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy p{
    color:#536b79;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy b{
    color:#8b3978;
}
.portal-prevention-art{
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    min-width:0;
    overflow:hidden;
    padding:14px 10px 0 0;
}
.portal-prevention-art img{
    display:block;
    width:100%;
    max-width:285px;
    height:auto;
    max-height:285px;
    object-fit:contain;
    object-position:center bottom;
}

/* Hover der gesamten Kachel, analog zu den übrigen Portal-Kacheln */
.portal-area-card.portal-area-prevention:hover{
    transform:translateY(-5px);
    background:linear-gradient(135deg,#e7cde9 0%,#dfc2e3 100%);
    border-color:#c9a6cf;
    box-shadow:0 16px 30px rgba(64,45,73,.14);
}
.portal-area-card.portal-area-prevention:focus-visible{
    outline:3px solid rgba(126,68,135,.32);
    outline-offset:3px;
}

@media(max-width:900px){
    .portal-area-card.portal-area-prevention{
        grid-template-columns:minmax(0,1fr) minmax(135px,.8fr);
        min-height:280px;
    }
    .portal-prevention-copy{
        padding:24px 6px 24px 24px;
    }
    .portal-prevention-art img{
        max-width:245px;
        max-height:260px;
    }
}
@media(max-width:620px){
    .portal-area-card.portal-area-prevention{
        grid-template-columns:minmax(0,1fr) 42%;
        min-height:260px;
    }
    .portal-prevention-copy{
        padding:22px 4px 22px 22px;
    }
    .portal-prevention-art{
        padding:12px 4px 0 0;
    }
    .portal-prevention-art img{
        width:115%;
        max-width:none;
        max-height:245px;
        transform:translateX(-4%);
    }
}
@media(max-width:430px){
    .portal-area-card.portal-area-prevention{
        grid-template-columns:1fr;
        min-height:0;
    }
    .portal-prevention-copy{
        padding:22px 22px 8px;
    }
    .portal-prevention-art{
        height:190px;
        padding:0 18px 8px;
    }
    .portal-prevention-art img{
        width:auto;
        height:100%;
        max-width:100%;
        max-height:100%;
        transform:none;
    }
}
@media(hover:none){
    .portal-area-card.portal-area-prevention:hover{
        transform:none;
        box-shadow:0 8px 20px rgba(64,45,73,.06);
    }
    .portal-area-card.portal-area-prevention:active{
        transform:scale(.992);
    }
}


/* ==========================================================================
   Frontend 0.4.32b RC – Präventionskachel Farbstimmung / Hover / Responsive
   ========================================================================== */

/* Kräftigeres Lila für die komplette Kachel */
.portal-area-card.portal-area-prevention{
    background:linear-gradient(135deg,#dec1e7 0%,#d7b4e1 100%) !important;
    border-color:#caa7d1 !important;
    box-shadow:0 10px 24px rgba(74,42,83,.10) !important;
    transform:translateY(0) scale(1);
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease,
        background .22s ease,
        filter .22s ease !important;
}

/* Text bleibt Portal-HTML und deutlich lesbar */
.portal-area-card.portal-area-prevention .portal-prevention-copy span{
    color:#77256f !important;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy h3{
    color:#173f56 !important;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy p{
    color:#405b6a !important;
}
.portal-area-card.portal-area-prevention .portal-prevention-copy b{
    color:#77256f !important;
}

/* Grafik liegt direkt auf derselben lilafarbenen Fläche */
.portal-area-card.portal-area-prevention .portal-prevention-art{
    background:transparent !important;
}

/* Hover auf der GESAMTEN KACHEL */
.portal-area-card.portal-area-prevention:hover{
    transform:translateY(-6px) scale(1.012) !important;
    background:linear-gradient(135deg,#d8b6e2 0%,#cfa6da 100%) !important;
    border-color:#b98fc2 !important;
    box-shadow:0 20px 38px rgba(74,42,83,.18) !important;
    filter:saturate(1.04) brightness(1.015);
}

.portal-area-card.portal-area-prevention:focus-visible{
    outline:3px solid rgba(119,37,111,.34);
    outline-offset:4px;
}

/* Tablet */
@media(max-width:900px){
    .portal-area-card.portal-area-prevention{
        grid-template-columns:minmax(0,1fr) minmax(135px,.82fr);
        min-height:280px;
    }

    .portal-prevention-copy{
        padding:24px 8px 24px 24px;
    }

    .portal-prevention-art{
        padding:10px 6px 0 0;
    }

    .portal-prevention-art img{
        max-width:245px;
        max-height:260px;
    }

    .portal-area-card.portal-area-prevention:hover{
        transform:translateY(-4px) scale(1.008) !important;
    }
}

/* Handy */
@media(max-width:620px){
    .portal-area-card.portal-area-prevention{
        grid-template-columns:minmax(0,1fr) 40%;
        min-height:250px;
    }

    .portal-prevention-copy{
        padding:20px 4px 20px 20px;
    }

    .portal-prevention-art{
        padding:8px 2px 0 0;
        overflow:hidden;
    }

    .portal-prevention-art img{
        width:112%;
        max-width:none;
        max-height:235px;
        transform:translateX(-5%);
    }
}

@media(max-width:430px){
    .portal-area-card.portal-area-prevention{
        grid-template-columns:1fr;
        min-height:0;
    }

    .portal-prevention-copy{
        padding:22px 22px 8px;
    }

    .portal-prevention-copy h3{
        margin-top:14px;
    }

    .portal-prevention-art{
        height:185px;
        padding:0 16px 8px;
    }

    .portal-prevention-art img{
        width:auto;
        height:100%;
        max-width:100%;
        max-height:100%;
        transform:none;
        object-fit:contain;
        object-position:center bottom;
    }
}

/* Auf Touchgeräten kein hängenbleibender Hover */
@media(hover:none){
    .portal-area-card.portal-area-prevention:hover{
        transform:none !important;
        background:linear-gradient(135deg,#dec1e7 0%,#d7b4e1 100%) !important;
        box-shadow:0 10px 24px rgba(74,42,83,.10) !important;
        filter:none !important;
    }

    .portal-area-card.portal-area-prevention:active{
        transform:scale(.992) !important;
    }
}


/* ==========================================================================
   Frontend 0.4.32c RC – Hero-Buttons mobile Breite
   ========================================================================== */

/*
 * Auf kleinen Displays sollen "Portal entdecken" und "Aktuelle Meldungen"
 * exakt innerhalb derselben Inhaltsbreite liegen wie die Kacheln darunter.
 */
@media(max-width:700px){
    .portal-hero-actions{
        width:100%;
        max-width:100%;
        box-sizing:border-box;
        padding-left:0;
        padding-right:0;
        margin-left:0;
        margin-right:0;
    }

    .portal-hero-actions > a,
    .portal-hero-actions > button{
        width:100%;
        max-width:100%;
        box-sizing:border-box;
        margin-left:0;
        margin-right:0;
    }

    /*
     * Falls der Hero-Aktionsbereich in einem breiteren Wrapper sitzt:
     * dieselben seitlichen Abstände wie die Portal-Kacheln erzwingen.
     */
    .portal-hero .portal-hero-actions{
        width:calc(100% - 32px);
        margin-left:auto;
        margin-right:auto;
    }
}

@media(max-width:480px){
    .portal-hero .portal-hero-actions{
        width:calc(100% - 28px);
    }
}


/* ==========================================================================
   Frontend 0.4.33 RC – Vereinsübersicht & Vereinsdetail
   ========================================================================== */

/* Übersicht */
.portal-club-card-modern{
    position:relative;
    padding:22px;
    border-color:#d5e2e8;
    box-shadow:0 5px 16px rgba(25,63,82,.035);
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.portal-club-card-modern:hover{
    transform:translateY(-3px);
    border-color:#bfd3dd;
    box-shadow:0 12px 25px rgba(25,63,82,.075);
}
.portal-club-logo-link{
    text-decoration:none;
    transition:border-color .18s ease,background .18s ease;
}
.portal-club-logo-link:hover{
    border-color:#9dbdca;
    background:#f4f9fb;
}
.portal-club-card-title{min-width:0}
.portal-club-card-title h2 a{
    color:var(--p-ink);
    text-decoration:none;
}
.portal-club-card-title h2 a:hover{
    color:var(--p-green);
}
.portal-club-card-facts{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 18px;
    margin:17px 0 4px;
    padding-top:15px;
    border-top:1px solid #e8f0f4;
}
.portal-club-card-facts>div{
    min-width:0;
}
.portal-club-card-facts span,
.portal-club-card-facts strong{
    display:block;
}
.portal-club-card-facts span{
    margin-bottom:3px;
    color:#8a9ba4;
    font-size:.59rem;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.portal-club-card-facts strong{
    overflow:hidden;
    color:#526b77;
    font-size:.71rem;
    font-weight:500;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.portal-club-card-bottom{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:12px;
    margin-top:auto;
    padding-top:16px;
}
.portal-club-homepage{
    color:var(--p-green);
    font-size:.69rem;
    font-weight:700;
    text-decoration:none;
}
.portal-club-more{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--p-green);
    text-decoration:none;
}
.portal-club-more>span{
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    border:1px solid #cbdde5;
    border-radius:50%;
    background:#f7fbfd;
    color:var(--p-green);
    font-size:1.25rem;
    font-weight:400;
    line-height:1;
    transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.portal-club-more small{
    color:#6b808b;
    font-size:.65rem;
    font-weight:700;
}
.portal-club-more:hover>span{
    transform:rotate(90deg);
    border-color:#91b4c4;
    background:#edf6fa;
}

/* Detailseite ruhiger und hochwertiger */
.portal-club-detail-page{
    max-width:1180px;
}
.portal-club-profile{
    position:relative;
    overflow:hidden;
    grid-template-columns:190px minmax(0,1fr);
    gap:32px;
    padding:30px;
    border-color:#d3e1e7;
    border-radius:22px;
    box-shadow:0 8px 24px rgba(26,62,80,.045);
}
.portal-club-profile::after{
    content:"";
    position:absolute;
    width:280px;
    height:280px;
    right:-115px;
    top:-150px;
    border-radius:50%;
    border:1px solid #e1ebef;
    pointer-events:none;
}
.portal-club-profile-logo{
    width:190px;
    height:190px;
    border:1px solid #e0e9ed;
    background:#fbfdfe;
}
.portal-club-profile-copy{
    position:relative;
    z-index:1;
}
.portal-club-profile-copy h1{
    color:#173f56;
}
.portal-club-about,
.portal-club-contact-card,
.portal-club-live-panel{
    border-color:#d6e3e9;
    box-shadow:0 5px 16px rgba(26,62,80,.03);
}
.portal-club-contact-layout{
    gap:16px;
    margin-top:18px;
}
.portal-club-contact-card{
    padding:22px;
}
.portal-club-contact-card a{
    background:#f1f7fa;
}
.portal-club-gallery-section{
    margin-top:28px;
    padding:22px;
    border:1px solid #d6e3e9;
    border-radius:20px;
    background:#fff;
}
.portal-club-detail-gallery{
    gap:12px;
    margin-top:14px;
}
.portal-club-detail-gallery a{
    border:1px solid #e1e9ed;
    border-radius:15px;
}
.portal-club-detail-gallery img{
    display:block;
}
.portal-club-live{
    margin-top:28px;
}

/* Responsive Vereine */
@media(max-width:800px){
    .portal-club-grid{
        grid-template-columns:1fr;
    }
    .portal-club-profile{
        grid-template-columns:140px minmax(0,1fr);
        gap:22px;
        padding:24px;
    }
    .portal-club-profile-logo{
        width:140px;
        height:140px;
    }
    .portal-club-detail-gallery{
        grid-template-columns:repeat(2,1fr);
    }
}
@media(max-width:580px){
    .portal-content-toolbar{
        align-items:stretch;
        flex-direction:column;
    }
    .portal-content-count{
        align-self:flex-end;
    }
    .portal-club-card-modern{
        padding:18px;
    }
    .portal-club-card-head{
        align-items:flex-start;
        gap:13px;
    }
    .portal-club-logo{
        flex-basis:62px;
        width:62px;
        height:62px;
    }
    .portal-club-card h2{
        font-size:1.03rem;
    }
    .portal-club-card-facts{
        grid-template-columns:1fr;
        gap:8px;
    }
    .portal-club-card-facts strong{
        white-space:normal;
    }
    .portal-club-more small{
        display:none;
    }
    .portal-club-profile{
        grid-template-columns:1fr;
        padding:20px;
    }
    .portal-club-profile-logo{
        width:120px;
        height:120px;
    }
    .portal-club-contact-layout,
    .portal-club-live-grid{
        grid-template-columns:1fr;
    }
    .portal-club-detail-gallery{
        grid-template-columns:1fr 1fr;
        gap:8px;
    }
    .portal-club-gallery-section{
        padding:16px;
    }
}


/* ==========================================================================
   Frontend 0.4.34 RC – Vereine Schriftgröße + Modal
   ========================================================================== */

/* Übersicht wieder auf normale Portal-Lesbarkeit bringen */
.portal-club-number{
    font-size:.74rem;
}
.portal-club-card h2{
    font-size:1.28rem;
}
.portal-club-card-head p{
    font-size:.92rem;
}
.portal-club-card-facts span{
    font-size:.68rem;
}
.portal-club-card-facts strong{
    font-size:.84rem;
    line-height:1.45;
}
.portal-club-card-links{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}
.portal-club-card-links a{
    color:var(--p-green);
    font-size:.82rem;
    font-weight:700;
    text-decoration:none;
}
.portal-club-card-links a:hover{
    text-decoration:underline;
}

/* Modal */
.club-modal-open{
    overflow:hidden;
}
.portal-club-modal[hidden]{
    display:none!important;
}
.portal-club-modal{
    position:fixed;
    inset:0;
    z-index:9999;
    display:grid;
    place-items:center;
    padding:28px;
}
.portal-club-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(7,26,37,.58);
    backdrop-filter:blur(5px);
}
.portal-club-modal-dialog{
    position:relative;
    z-index:1;
    width:min(920px,100%);
    max-height:min(86vh,900px);
    overflow:auto;
    border:1px solid #d4e1e7;
    border-radius:24px;
    background:#f7fbfd;
    box-shadow:0 30px 80px rgba(0,0,0,.28);
}
.portal-club-modal-close{
    position:sticky;
    top:14px;
    z-index:3;
    float:right;
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    margin:14px 14px -56px 0;
    padding:0;
    border:1px solid #cadce4;
    border-radius:50%;
    background:rgba(255,255,255,.94);
    color:#173f56;
    font-size:1.6rem;
    cursor:pointer;
    box-shadow:0 6px 16px rgba(24,59,77,.08);
}
.portal-club-modal-content{
    padding:24px;
}
.portal-club-modal-loading{
    padding:60px 20px;
    text-align:center;
    color:#6d828d;
}
.portal-club-modal-profile{
    display:grid;
    gap:20px;
}
.portal-club-modal-head{
    display:grid;
    grid-template-columns:120px minmax(0,1fr);
    gap:22px;
    align-items:center;
    padding:8px 48px 20px 0;
    border-bottom:1px solid #dce7ec;
}
.portal-club-modal-logo{
    display:grid;
    place-items:center;
    width:120px;
    height:120px;
    overflow:hidden;
    border:1px solid #dce6eb;
    border-radius:18px;
    background:#fff;
}
.portal-club-modal-logo img{
    width:100%;
    height:100%;
    padding:8px;
    object-fit:contain;
}
.portal-club-modal-logo span{
    color:#9aabb3;
    font-weight:800;
}
.portal-club-modal-head h2{
    margin:5px 0;
    color:#173f56;
    font-size:clamp(1.6rem,3vw,2.4rem);
    font-weight:500;
}
.portal-club-modal-head p{
    margin:0;
    color:#6b808c;
    font-size:.95rem;
}
.portal-club-modal-note{
    padding:16px 18px;
    border-radius:14px;
    background:#fff;
    color:#586f7a;
    font-size:.92rem;
    line-height:1.65;
}
.portal-club-modal-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}
.portal-club-modal-grid section{
    padding:18px;
    border:1px solid #dce6eb;
    border-radius:16px;
    background:#fff;
}
.portal-club-modal-grid section>span{
    display:block;
    margin-bottom:9px;
    color:var(--p-green);
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.portal-club-modal-grid strong{
    display:block;
    margin-bottom:7px;
    color:#173f56;
    font-size:1rem;
}
.portal-club-modal-grid p{
    margin:4px 0;
    color:#607682;
    font-size:.9rem;
}
.portal-club-modal-grid a{
    display:inline-block;
    margin-top:12px;
    color:var(--p-green);
    font-size:.87rem;
    font-weight:700;
}
.portal-club-modal-actions{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}
.portal-club-modal-actions a{
    padding:9px 13px;
    border:1px solid #cbdce4;
    border-radius:999px;
    background:#fff;
    color:var(--p-green);
    font-size:.82rem;
    font-weight:700;
}
.portal-club-modal-gallery{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:10px;
}
.portal-club-modal-gallery a{
    overflow:hidden;
    aspect-ratio:4/3;
    border-radius:14px;
    background:#eaf2f6;
}
.portal-club-modal-gallery img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .2s ease;
}
.portal-club-modal-gallery a:hover img{
    transform:scale(1.025);
}

@media(max-width:700px){
    .portal-club-modal{
        padding:12px;
    }
    .portal-club-modal-dialog{
        max-height:92vh;
        border-radius:19px;
    }
    .portal-club-modal-content{
        padding:18px;
    }
    .portal-club-modal-head{
        grid-template-columns:90px minmax(0,1fr);
        gap:15px;
        padding-right:36px;
    }
    .portal-club-modal-logo{
        width:90px;
        height:90px;
    }
    .portal-club-modal-grid{
        grid-template-columns:1fr;
    }
    .portal-club-modal-gallery{
        grid-template-columns:1fr 1fr;
    }
}
@media(max-width:430px){
    .portal-club-modal-head{
        grid-template-columns:1fr;
    }
    .portal-club-modal-logo{
        width:82px;
        height:82px;
    }
}

/* Frontend 0.4.35 RC – administrierbare Portal-Kacheln */
.portal-area-card{position:relative}
.portal-area-card.portal-area-has-image{overflow:hidden}
.portal-area-bgimage{position:absolute!important;inset:0;z-index:0!important;background-size:cover;background-position:center;opacity:.25;pointer-events:none}
.portal-area-card.portal-area-has-image>span:not(.portal-area-bgimage),
.portal-area-card.portal-area-has-image>em,
.portal-area-card.portal-area-has-image>h3,
.portal-area-card.portal-area-has-image>p,
.portal-area-card.portal-area-has-image>b,
.portal-area-card.portal-area-has-image>.portal-area-event-next{position:relative;z-index:1}


/* ==========================================================================
   Frontend 0.4.35b RC – Startseiten-Überschriften vereinheitlicht
   ========================================================================== */

/*
 * Referenz ist "Dein direkter Weg ins Portal.".
 * "Aktuelle Meldungen." und "Sportbetrieb auf einen Blick."
 * verwenden ab jetzt exakt dieselbe Schriftgröße.
 */
.portal-home-main .portal-section-head h2,
.portal-home-main .portal-sport-intro h2{
    font-size:clamp(1.65rem,3.2vw,2.45rem)!important;
    line-height:1.08;
}

/* Mobile ebenfalls einheitlich und etwas kompakter */
@media(max-width:700px){
    .portal-home-main .portal-section-head h2,
    .portal-home-main .portal-sport-intro h2{
        font-size:clamp(1.45rem,7vw,2rem)!important;
        line-height:1.1;
    }
}

/* ==========================================================================
   Frontend 0.4.36 RC – Fotogalerie-Kachel mit Zufallsbild
   ========================================================================== */
.portal-area-card.portal-area-gallery-live{
    background:#173f56;
    border-color:rgba(255,255,255,.12);
    color:#fff;
}
.portal-area-card.portal-area-gallery-live .portal-area-bgimage{
    opacity:1;
    background-position:center;
    transform:scale(1.01);
    transition:transform .35s ease,filter .35s ease;
}
.portal-area-card.portal-area-gallery-live::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg,rgba(8,27,38,.08) 0%,rgba(8,27,38,.32) 42%,rgba(8,27,38,.88) 100%);
    pointer-events:none;
}
.portal-area-card.portal-area-gallery-live>span:not(.portal-area-bgimage),
.portal-area-card.portal-area-gallery-live>em,
.portal-area-card.portal-area-gallery-live>h3,
.portal-area-card.portal-area-gallery-live>p,
.portal-area-card.portal-area-gallery-live>b,
.portal-area-card.portal-area-gallery-live>.portal-area-gallery-caption{
    position:relative;
    z-index:2;
}
.portal-area-card.portal-area-gallery-live>span:not(.portal-area-bgimage){
    color:rgba(255,255,255,.75);
}
.portal-area-card.portal-area-gallery-live h3{
    color:#fff;
    text-shadow:0 2px 10px rgba(0,0,0,.25);
}
.portal-area-card.portal-area-gallery-live p{
    color:rgba(255,255,255,.82);
}
.portal-area-card.portal-area-gallery-live>b{
    color:#fff;
}
.portal-area-gallery-caption{
    display:flex;
    flex-direction:column;
    gap:2px;
    margin:0 0 8px;
    color:rgba(255,255,255,.82);
}
.portal-area-gallery-caption small{
    font-size:.76rem;
    font-weight:700;
}
.portal-area-gallery-caption span{
    font-size:.68rem;
}
.portal-area-card.portal-area-gallery-live:hover .portal-area-bgimage{
    transform:scale(1.055);
    filter:saturate(1.04) brightness(1.04);
}
@media(max-width:600px){
    .portal-area-card.portal-area-gallery-live .portal-area-bgimage{
        background-position:center center;
    }
}


/* ==========================================================================
   Frontend 0.4.37 RC – Wetterleiste Portal-Startseite
   ========================================================================== */

.portal-weather-strip{
    position:relative;
    z-index:4;
    background:#fff;
    border-bottom:1px solid #d8e5eb;
    box-shadow:0 5px 18px rgba(22,57,75,.035);
}

.portal-weather-inner{
    min-height:82px;
    display:grid;
    grid-template-columns:minmax(230px,1fr) auto auto auto auto;
    gap:28px;
    align-items:center;
}

.portal-weather-title{
    display:flex;
    align-items:center;
    gap:13px;
    min-width:0;
}

.portal-weather-icon{
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    flex:0 0 46px;
    border-radius:14px;
    background:#eaf4f9;
    font-size:1.35rem;
}

.portal-weather-title small,
.portal-weather-title strong{
    display:block;
}

.portal-weather-title small{
    margin-bottom:3px;
    color:#7c8f99;
    font-size:.66rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.portal-weather-title strong{
    overflow:hidden;
    color:#173f56;
    font-size:.93rem;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.portal-weather-temp{
    display:flex;
    align-items:baseline;
    gap:6px;
}

.portal-weather-temp strong{
    color:#173f56;
    font-size:2rem;
    font-weight:500;
    line-height:1;
}

.portal-weather-temp span,
.portal-weather-detail span{
    color:#84959e;
    font-size:.68rem;
}

.portal-weather-detail{
    display:grid;
    gap:3px;
    padding-left:24px;
    border-left:1px solid #e0eaee;
}

.portal-weather-detail strong{
    color:#35586a;
    font-size:.85rem;
}

.portal-weather-source{
    color:#a0adb3;
    font-size:.59rem;
    white-space:nowrap;
}

@media(max-width:900px){
    .portal-weather-inner{
        grid-template-columns:minmax(200px,1fr) auto auto auto;
        gap:18px;
    }
    .portal-weather-source{
        display:none;
    }
}

@media(max-width:650px){
    .portal-weather-strip{
        padding:0;
    }

    .portal-weather-inner{
        min-height:0;
        grid-template-columns:minmax(0,1fr) auto;
        gap:12px 18px;
        padding-top:14px;
        padding-bottom:14px;
    }

    .portal-weather-title{
        grid-column:1;
        grid-row:1;
    }

    .portal-weather-title strong{
        font-size:.84rem;
        white-space:normal;
    }

    .portal-weather-icon{
        width:40px;
        height:40px;
        flex-basis:40px;
        border-radius:12px;
        font-size:1.15rem;
    }

    .portal-weather-temp{
        grid-column:2;
        grid-row:1;
        justify-self:end;
    }

    .portal-weather-temp strong{
        font-size:1.7rem;
    }

    .portal-weather-temp span{
        display:none;
    }

    .portal-weather-detail{
        display:flex;
        justify-content:space-between;
        gap:8px;
        padding:8px 0 0;
        border-left:0;
        border-top:1px solid #e0eaee;
    }

    .portal-weather-detail:nth-of-type(3){
        grid-column:1;
    }

    .portal-weather-detail:nth-of-type(4){
        grid-column:2;
    }
}

@media(max-width:420px){
    .portal-weather-inner{
        gap:10px 14px;
    }

    .portal-weather-title small{
        font-size:.59rem;
    }

    .portal-weather-detail{
        font-size:.75rem;
    }
}


/* ==========================================================================
   Frontend 0.4.38 RC – Portal-Startseite Animationen
   ========================================================================== */

/* Hero Buttons / Quicklinks */
.portal-animate-hero-actions,
.portal-animate-hero-quick{
    opacity:0;
    transform:translateY(22px);
    transition:
        opacity .58s cubic-bezier(.2,.7,.2,1),
        transform .58s cubic-bezier(.2,.7,.2,1);
}

.portal-animate-hero-actions.is-visible,
.portal-animate-hero-quick.is-visible{
    opacity:1;
    transform:translateY(0);
}

.portal-animate-hero-actions>a{
    opacity:0;
    transform:translateY(14px);
    transition:
        opacity .45s ease,
        transform .45s ease,
        background .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}

.portal-animate-hero-actions.is-visible>a{
    opacity:1;
    transform:translateY(0);
}

.portal-animate-hero-actions.is-visible>a:nth-child(1){
    transition-delay:.06s, .06s, 0s, 0s, 0s;
}
.portal-animate-hero-actions.is-visible>a:nth-child(2){
    transition-delay:.16s, .16s, 0s, 0s, 0s;
}

.portal-animate-hero-quick>a{
    opacity:0;
    transform:translateY(16px);
    transition:
        opacity .46s ease,
        transform .46s ease,
        background .2s ease;
}

.portal-animate-hero-quick.is-visible>a{
    opacity:1;
    transform:translateY(0);
}

.portal-animate-hero-quick.is-visible>a:nth-child(1){transition-delay:.02s}
.portal-animate-hero-quick.is-visible>a:nth-child(2){transition-delay:.10s}
.portal-animate-hero-quick.is-visible>a:nth-child(3){transition-delay:.18s}

/* Scroll-Reveal für komplette Abschnitte */
.portal-reveal{
    opacity:0;
    transform:translateY(28px);
    transition:
        opacity .62s cubic-bezier(.2,.7,.2,1),
        transform .62s cubic-bezier(.2,.7,.2,1);
    will-change:opacity,transform;
}

.portal-reveal.is-visible{
    opacity:1;
    transform:translateY(0);
}

/* Kacheln innerhalb einer Reveal-Gruppe gestaffelt */
[data-reveal-group]>.portal-reveal-child{
    opacity:0;
    transform:translateY(22px) scale(.985);
    transition:
        opacity .52s cubic-bezier(.2,.7,.2,1),
        transform .52s cubic-bezier(.2,.7,.2,1),
        box-shadow .22s ease,
        border-color .22s ease,
        background .22s ease;
    transition-delay:var(--reveal-delay,0ms);
}

[data-reveal-group].is-visible>.portal-reveal-child{
    opacity:1;
    transform:translateY(0) scale(1);
}

/*
 * Bestehende Hover-Effekte bleiben vollständig erhalten.
 * Die Reveal-Animation wirkt nur beim ersten Eintritt in den Viewport.
 */
[data-reveal-group].is-visible>.portal-area-card:hover{
    transform:translateY(-5px);
}

/* Wetter etwas schneller, damit es nicht "nachhängt" */
.portal-weather-strip.portal-reveal{
    transform:translateY(14px);
    transition-duration:.45s;
}

/* Responsive: kürzere Wege, damit es auf Mobilgeräten ruhig bleibt */
@media(max-width:700px){
    .portal-animate-hero-actions,
    .portal-animate-hero-quick{
        transform:translateY(14px);
    }

    .portal-reveal{
        transform:translateY(18px);
    }

    [data-reveal-group]>.portal-reveal-child{
        transform:translateY(14px);
    }
}

/* Barrierefreiheit / Systemeinstellung */
@media(prefers-reduced-motion:reduce){
    .portal-animate-hero-actions,
    .portal-animate-hero-quick,
    .portal-animate-hero-actions>a,
    .portal-animate-hero-quick>a,
    .portal-reveal,
    [data-reveal-group]>.portal-reveal-child{
        opacity:1!important;
        transform:none!important;
        transition:none!important;
        animation:none!important;
    }
}

.portal-motion-reduced .portal-animate-hero-actions,
.portal-motion-reduced .portal-animate-hero-quick,
.portal-motion-reduced .portal-animate-hero-actions>a,
.portal-motion-reduced .portal-animate-hero-quick>a,
.portal-motion-reduced .portal-reveal,
.portal-motion-reduced [data-reveal-group]>.portal-reveal-child{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
}


/* ==========================================================================
   Frontend 0.4.38b RC – Animationen langsamer + Wetter ohne Abstand
   ========================================================================== */

/* Hero etwas ruhiger und länger sichtbar animieren */
.portal-animate-hero-actions,
.portal-animate-hero-quick{
    transition:
        opacity .95s cubic-bezier(.2,.7,.2,1),
        transform .95s cubic-bezier(.2,.7,.2,1)!important;
}

.portal-animate-hero-actions>a{
    transition:
        opacity .78s ease,
        transform .78s ease,
        background .2s ease,
        border-color .2s ease,
        box-shadow .2s ease!important;
}

.portal-animate-hero-quick>a{
    transition:
        opacity .82s ease,
        transform .82s ease,
        background .2s ease!important;
}

/* Große Bereiche bewusst etwas langsamer */
.portal-reveal{
    transition:
        opacity .95s cubic-bezier(.2,.7,.2,1),
        transform .95s cubic-bezier(.2,.7,.2,1)!important;
}

/* Portal-Kacheln nacheinander, aber nicht hektisch */
[data-reveal-group]>.portal-reveal-child{
    transition:
        opacity .78s cubic-bezier(.2,.7,.2,1),
        transform .78s cubic-bezier(.2,.7,.2,1),
        box-shadow .22s ease,
        border-color .22s ease,
        background .22s ease!important;
}

/*
 * Wetterleiste darf direkt am Hero anliegen.
 * Deshalb kein translateY – nur sanftes Einblenden.
 */
.portal-weather-strip.portal-reveal{
    transform:none!important;
    transition:
        opacity .7s ease!important;
}

.portal-weather-strip.portal-reveal.is-visible{
    transform:none!important;
}

/* Mobil ebenfalls langsamer, aber mit kurzen Wegen */
@media(max-width:700px){
    .portal-animate-hero-actions,
    .portal-animate-hero-quick{
        transition-duration:.8s!important;
    }

    .portal-reveal{
        transition-duration:.82s!important;
    }

    [data-reveal-group]>.portal-reveal-child{
        transition-duration:.72s!important;
    }

    .portal-weather-strip.portal-reveal{
        transform:none!important;
    }
}


/* ==========================================================================
   Frontend 0.4.38c RC – Animationen noch etwas ruhiger
   ========================================================================== */

.portal-animate-hero-actions,
.portal-animate-hero-quick{
    transition:
        opacity 1.18s cubic-bezier(.2,.7,.2,1),
        transform 1.18s cubic-bezier(.2,.7,.2,1)!important;
}

.portal-animate-hero-actions>a{
    transition:
        opacity 1s ease,
        transform 1s ease,
        background .2s ease,
        border-color .2s ease,
        box-shadow .2s ease!important;
}

.portal-animate-hero-quick>a{
    transition:
        opacity 1.04s ease,
        transform 1.04s ease,
        background .2s ease!important;
}

.portal-reveal{
    transition:
        opacity 1.18s cubic-bezier(.2,.7,.2,1),
        transform 1.18s cubic-bezier(.2,.7,.2,1)!important;
}

[data-reveal-group]>.portal-reveal-child{
    transition:
        opacity 1s cubic-bezier(.2,.7,.2,1),
        transform 1s cubic-bezier(.2,.7,.2,1),
        box-shadow .22s ease,
        border-color .22s ease,
        background .22s ease!important;
}

.portal-weather-strip.portal-reveal{
    transform:none!important;
    transition:opacity .9s ease!important;
}

@media(max-width:700px){
    .portal-animate-hero-actions,
    .portal-animate-hero-quick{
        transition-duration:1.02s!important;
    }

    .portal-reveal{
        transition-duration:1.05s!important;
    }

    [data-reveal-group]>.portal-reveal-child{
        transition-duration:.92s!important;
    }
}


/* ==========================================================================
   Frontend 0.4.39 RC – Teilen & Reaktion ruhiger gestaltet
   ========================================================================== */
.portal-sharebar.portal-sharebar-calm{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin:10px 0 22px;
    padding:11px 13px;
    border:1px solid #dbe6eb;
    border-radius:14px;
    background:#f9fbfc;
    box-shadow:none;
}

.portal-reaction{
    display:flex;
    align-items:center;
    gap:9px;
}

.portal-reaction>small{
    color:#8a9aa2;
    font-size:.66rem;
    white-space:nowrap;
}

.portal-reaction-button{
    display:inline-flex!important;
    align-items:center;
    gap:7px;
    padding:7px 10px!important;
    border:1px solid #cfdee5!important;
    border-radius:999px!important;
    background:#fff!important;
    color:#355d70!important;
    cursor:pointer;
    transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease;
}

.portal-reaction-button>span{
    color:#728d9a;
    font-size:1.05rem;
    line-height:1;
}

.portal-reaction-button>strong{
    font-size:.76rem;
    font-weight:700;
}

.portal-reaction-button>em{
    display:grid;
    place-items:center;
    min-width:22px;
    height:22px;
    padding:0 6px;
    border-radius:999px;
    background:#eef4f7;
    color:#617985;
    font-size:.65rem;
    font-style:normal;
}

.portal-reaction-button:hover{
    transform:translateY(-1px);
    border-color:#a9c3cf!important;
}

.portal-reaction-button.is-active{
    border-color:#c695a8!important;
    background:#fff5f8!important;
    color:#7c4057!important;
}

.portal-reaction-button.is-active>span{
    color:#a34e70;
}

.portal-reaction-button.is-active>em{
    background:#f5dfe7;
    color:#82445b;
}

.portal-share-compact{
    display:flex!important;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:6px!important;
}

.portal-share-compact>span{
    margin-right:3px;
    color:#8999a1;
    font-size:.66rem;
    font-weight:700;
}

.portal-sharebar.portal-sharebar-calm .portal-share-compact a,
.portal-sharebar.portal-sharebar-calm .portal-share-compact button{
    padding:6px 9px;
    border-color:#d6e2e7;
    background:#fff;
    color:#537283;
    font-size:.7rem;
}

.portal-sharebar.portal-sharebar-calm .portal-share-native{
    background:#edf5f8!important;
    border-color:#cbdde5!important;
    color:#315f75!important;
}

.portal-sharebar.portal-sharebar-calm .portal-share-status{
    bottom:-16px;
    right:4px;
    font-size:.62rem;
}

.portal-event-detail-main .portal-sharebar.portal-sharebar-calm{
    padding:10px 0;
    border-left:0;
    border-right:0;
    border-radius:0;
    background:transparent;
}

@media(max-width:720px){
    .portal-sharebar.portal-sharebar-calm{
        align-items:stretch;
        flex-direction:column;
        gap:10px;
    }

    .portal-reaction{
        justify-content:space-between;
    }

    .portal-share-compact{
        justify-content:flex-start;
        padding-top:9px;
        border-top:1px solid #e1eaee;
    }

    .portal-sharebar.portal-sharebar-calm .portal-share-status{
        position:static;
        margin-top:0;
    }
}

@media(max-width:430px){
    .portal-reaction>small{
        display:none;
    }
    .portal-share-compact>span{
        width:100%;
    }
}


/* ==========================================================================
   Frontend 0.4.39b RC – Teilenblock zentriert / Reaktion nur Herz
   ========================================================================== */
.portal-sharebar.portal-sharebar-calm{
    width:min(100%, 980px);
    margin-left:auto!important;
    margin-right:auto!important;
    justify-content:center!important;
}

.portal-sharebar.portal-sharebar-calm .portal-reaction{
    flex:0 0 auto;
}

.portal-sharebar.portal-sharebar-calm .portal-reaction-button{
    min-width:58px;
    justify-content:center;
}

.portal-sharebar.portal-sharebar-calm .portal-reaction-button>span{
    font-size:1.2rem;
}

.portal-sharebar.portal-sharebar-calm .portal-share-compact{
    justify-content:center;
}

@media(max-width:720px){
    .portal-sharebar.portal-sharebar-calm{
        width:100%;
        align-items:center;
    }

    .portal-sharebar.portal-sharebar-calm .portal-share-compact{
        justify-content:center;
        width:100%;
    }
}


/* ==========================================================================
   Frontend 0.4.39c RC – Artikelüberschrift + Views
   ========================================================================== */

/* Gleiche Größe wie "Dein direkter Weg ins Portal." */
.portal-article-news .portal-article-header h1{
    font-size:clamp(1.65rem,3.2vw,2.45rem)!important;
    line-height:1.08!important;
    letter-spacing:-.035em;
}

.portal-share-left{
    display:flex;
    align-items:center;
    gap:8px;
    flex:0 0 auto;
}

.portal-view-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:38px;
    padding:7px 10px;
    border:1px solid #d4e1e7;
    border-radius:999px;
    background:#fff;
    color:#617986;
}

.portal-view-count>span{
    font-size:1rem;
    line-height:1;
    color:#728d9a;
}

.portal-view-count>em{
    min-width:18px;
    color:#617986;
    font-size:.68rem;
    font-style:normal;
    text-align:center;
}

@media(max-width:700px){
    .portal-article-news .portal-article-header h1{
        font-size:clamp(1.45rem,7vw,2rem)!important;
        line-height:1.1!important;
    }

    .portal-share-left{
        justify-content:center;
        width:100%;
    }
}


/* ==========================================================================
   Frontend 0.4.39e RC – Teilenblock finale Ausrichtung
   ========================================================================== */
.portal-sharebar.portal-sharebar-calm{
    justify-content:space-between!important;
}

.portal-sharebar.portal-sharebar-calm .portal-share-left{
    justify-content:flex-start!important;
    margin-right:auto;
}

.portal-sharebar.portal-sharebar-calm .portal-share-compact{
    justify-content:flex-end!important;
    margin-left:auto;
}

@media(max-width:720px){
    .portal-sharebar.portal-sharebar-calm{
        align-items:stretch;
    }

    .portal-sharebar.portal-sharebar-calm .portal-share-left{
        width:100%;
        justify-content:flex-start!important;
        margin-right:0;
    }

    .portal-sharebar.portal-sharebar-calm .portal-share-compact{
        width:100%;
        justify-content:flex-end!important;
        margin-left:0;
    }
}


/* ==========================================================================
   Frontend 0.4.40 RC – Views & Reaktionen in SID 100
   ========================================================================== */
.portal-news-card-metrics{
    display:flex;
    align-items:center;
    gap:12px;
    margin:2px 0 7px;
    color:#748994;
    font-size:.7rem;
}

.portal-news-card-metrics>span{
    display:inline-flex;
    align-items:center;
    gap:4px;
}

.portal-news-card-metrics b{
    color:#6c8794;
    font-size:.9rem;
    font-weight:400;
    line-height:1;
}

.portal-news-card-metrics>span:last-child b{
    font-size:.98rem;
}

@media(max-width:600px){
    .portal-news-card-metrics{
        gap:10px;
        margin-bottom:6px;
    }
}


/* ==========================================================================
   Frontend 0.4.40b RC – Sharebar Desktop Fix
   Auge und Herz identisch als kompakte Pillen
   ========================================================================== */

.portal-sharebar.portal-sharebar-calm .portal-share-left{
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
}

.portal-sharebar.portal-sharebar-calm .portal-view-count,
.portal-sharebar.portal-sharebar-calm .portal-reaction-button{
    box-sizing:border-box!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;

    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:40px!important;
    min-height:40px!important;

    padding:7px 12px!important;
    margin:0!important;

    border:1px solid #d4e1e7!important;
    border-radius:999px!important;

    line-height:1!important;
    flex:0 0 auto!important;
    aspect-ratio:auto!important;
}

.portal-sharebar.portal-sharebar-calm .portal-view-count{
    background:#fff!important;
    color:#617986!important;
}

.portal-sharebar.portal-sharebar-calm .portal-reaction-button{
    background:#fff!important;
    color:#355d70!important;
}

.portal-sharebar.portal-sharebar-calm .portal-view-count>span,
.portal-sharebar.portal-sharebar-calm .portal-reaction-button>span{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    line-height:1!important;
}

.portal-sharebar.portal-sharebar-calm .portal-view-count>em,
.portal-sharebar.portal-sharebar-calm .portal-reaction-button>em{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:22px!important;
    height:22px!important;
    margin:0!important;
    padding:0 6px!important;
    border-radius:999px!important;
    line-height:1!important;
}

.portal-sharebar.portal-sharebar-calm .portal-view-count>em{
    background:#eef4f7!important;
    color:#617985!important;
}

@media(max-width:720px){
    .portal-sharebar.portal-sharebar-calm .portal-view-count,
    .portal-sharebar.portal-sharebar-calm .portal-reaction-button{
        height:40px!important;
        min-height:40px!important;
        width:auto!important;
        min-width:0!important;
    }
}

/* ==========================================================================
   Frontend 0.4.41 RC – Newsletter
   ========================================================================== */
.portal-newsletter{background:#e5eff4;border-top:1px solid #d2e1e8}
.portal-newsletter-inner{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(360px,1.15fr);gap:48px;align-items:center;padding-top:40px;padding-bottom:40px}
.portal-newsletter-inner>div>strong{display:block;margin:7px 0 9px;color:#173f56;font-size:clamp(1.45rem,2.5vw,2rem);font-weight:500}
.portal-newsletter-inner>div>p{max-width:520px;margin:0;color:#637c88;line-height:1.65}
.portal-newsletter-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 10px;align-items:end}
.portal-newsletter-form label{display:grid;gap:6px}
.portal-newsletter-form label>span{color:#647d89;font-size:.69rem;font-weight:700}
.portal-newsletter-form input[type=email]{box-sizing:border-box;width:100%;height:48px;padding:0 14px;border:1px solid #c6d8e1;border-radius:11px;background:#fff;color:#173f56;font:inherit;outline:none}
.portal-newsletter-form input[type=email]:focus{border-color:#6d9fb5;box-shadow:0 0 0 3px rgba(72,126,151,.10)}
.portal-newsletter-form button{height:48px;padding:0 17px;border:0;border-radius:11px;background:#1d5d79;color:#fff;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}
.portal-newsletter-form small{grid-column:1/-1;color:#78909b;font-size:.64rem;line-height:1.5}
.portal-newsletter-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.portal-newsletter-message{padding:17px 19px;border-radius:12px;font-size:.82rem;line-height:1.55}
.portal-newsletter-message.is-ok{border:1px solid #bddcca;background:#f2fbf5;color:#37694a}
.portal-newsletter-message.is-error{border:1px solid #e5c5c5;background:#fff6f6;color:#884c4c}
@media(max-width:820px){.portal-newsletter-inner{grid-template-columns:1fr;gap:22px}}
@media(max-width:520px){.portal-newsletter-inner{padding-top:30px;padding-bottom:30px}.portal-newsletter-form{grid-template-columns:1fr}.portal-newsletter-form button{width:100%}}


/* ==========================================================================
   Frontend 0.4.41a RC – Newsletter/Footer Fix
   ========================================================================== */

/*
 * Newsletter ist ein eigener Seitenabschnitt und gehört optisch/technisch
 * nicht zum eigentlichen Footer.
 */
.portal-newsletter{
    position:relative;
    z-index:1;
}

/*
 * Der dunkle Footer bekommt seinen ursprünglichen geschlossenen Block zurück.
 */
.portal-footer{
    position:relative;
    z-index:1;
    margin:0!important;
}

/*
 * Kein heller Restbereich unter dem Footer, wenn eine Seite kürzer als
 * die Fensterhöhe ist.
 */
html{
    background:#0b2532;
}

body.portal-body{
    min-height:100vh;
    margin:0;
}

/*
 * Der letzte sichtbare Seitenblock schließt bündig ab.
 */
.portal-footer-bottom{
    margin-bottom:0!important;
}

.portal-footer + *{
    margin-top:0!important;
}

/* Scroll-to-top bleibt über dem Footer schwebend. */
.portal-scroll-top,
[data-scroll-top]{
    position:fixed;
}


/* ==========================================================================
   Frontend 0.4.41b RC – Hero Newsletter-Link
   ========================================================================== */

/* Kontakt + Newsletter sauber nebeneinander */
.portal-home-contact,
.portal-home-hero-contact,
.portal-hero-contact,
.portal-home-utility{
    gap:8px;
}

/* Nur für den Newsletter-Anker angenehm weich scrollen */
html{
    scroll-behavior:smooth;
}

@media(prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto;
    }
}


/* ==========================================================================
   Frontend 0.4.41c RC – Newsletter-Link im echten Hero-Kopf
   ========================================================================== */
.portal-home-top-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
}

.portal-home-top-actions>a{
    white-space:nowrap;
}

.portal-home-mobile-contact{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:8px;
}

@media(max-width:760px){
    .portal-home-top-actions{
        gap:6px;
    }
}


/* ==========================================================================
   Frontend 0.4.41d RC – Hero Kontakt + Newsletter finale Darstellung
   ========================================================================== */

/*
 * Mobile Kontaktzeile darf auf Desktop NICHT sichtbar sein.
 */
.portal-home-mobile-contact{
    display:none!important;
}

/*
 * Desktop Hero: beide Aktionen als echte Buttons innerhalb des Bildes.
 */
.portal-home-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}

.portal-home-top-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:9px;
    flex:0 0 auto;
}

.portal-home-top-actions>a{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;

    min-height:40px;
    padding:0 16px!important;

    border:1px solid rgba(255,255,255,.36)!important;
    border-radius:999px!important;

    background:rgba(255,255,255,.92)!important;
    color:#173f56!important;

    font-size:.75rem!important;
    font-weight:700!important;
    letter-spacing:.01em!important;
    text-decoration:none!important;
    white-space:nowrap;

    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);

    box-shadow:0 8px 24px rgba(0,0,0,.10);
    transition:
        transform .22s ease,
        background .22s ease,
        box-shadow .22s ease!important;
}

.portal-home-top-actions>a:hover{
    transform:translateY(-2px);
    background:#fff!important;
    box-shadow:0 11px 28px rgba(0,0,0,.16);
}

/*
 * Mobil: bisherige mobile Kontaktleiste wieder aktivieren,
 * beide Buttons gleich gestalten.
 */
@media(max-width:760px){
    .portal-home-top-actions{
        display:none!important;
    }

    .portal-home-mobile-contact{
        display:flex!important;
        align-items:center;
        justify-content:flex-end;
        gap:8px;
        padding-top:9px;
        padding-bottom:9px;
    }

    .portal-home-mobile-contact>a{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:38px;
        padding:0 14px;
        border:1px solid #d4e2e8;
        border-radius:999px;
        background:#fff;
        color:#173f56;
        font-size:.74rem;
        font-weight:700;
        text-decoration:none;
        white-space:nowrap;
    }
}

@media(max-width:420px){
    .portal-home-mobile-contact{
        justify-content:center;
    }
}


/* ==========================================================================
   Frontend V0.4.41f RC – Newsletter-Link im normalen Seitenkopf
   ========================================================================== */
.portal-site-tools{
    display:flex;
    align-items:center;
    gap:12px;
}

.portal-site-tools .portal-contact-pill{
    flex:0 0 auto;
    white-space:nowrap;
}

.portal-site-tools .portal-newsletter-pill{
    margin-left:-4px;
}

/* Auf kleineren Displays bleiben Kontakt und Newsletter kompakt. */
@media(max-width:760px){
    .portal-site-tools{
        gap:8px;
        flex-wrap:wrap;
        justify-content:flex-end;
    }

    .portal-site-tools .portal-contact-pill{
        padding-left:13px;
        padding-right:13px;
    }

    .portal-site-tools .portal-newsletter-pill{
        margin-left:0;
    }
}

@media(max-width:520px){
    .portal-site-tools{
        row-gap:7px;
    }

    .portal-site-tools .portal-contact-pill{
        min-height:36px;
        font-size:.72rem;
    }
}

/* Frontend V0.4.46d – Kontakt Hero-Aktionen */
.portal-legacy-sid-800 .portal-page-actions a,.portal-sid-800 .portal-page-actions a,body[data-sid="800"] .portal-page-actions a{background:var(--p-green);border-color:var(--p-green);color:#fff}


/* ==========================================================================
   Frontend V0.4.46e RC – Kontakt Hero Buttons
   ========================================================================== */
.portal-sid-800 .portal-page-actions a,
.portal-sid-800 .portal-page-actions a:visited{
    background:var(--p-green);
    border-color:var(--p-green);
    color:#fff;
}

.portal-sid-800 .portal-page-actions a:hover,
.portal-sid-800 .portal-page-actions a:focus-visible{
    background:#164c67;
    border-color:#164c67;
    color:#fff;
}

/* ==========================================================================
   Frontend V0.4.47 RC – Vereinsveranstaltungen & Veranstaltungs-Popup
   ========================================================================== */
.portal-club-modal-events{margin-top:24px;padding-top:22px;border-top:1px solid var(--p-line)}
.portal-club-modal-section-head span{display:block;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--p-muted)}
.portal-club-modal-section-head h3{margin:4px 0 13px;font-size:1.25rem;font-weight:500}
.portal-club-modal-event-list{display:grid;gap:8px}
.portal-club-modal-event-list>a{display:grid;grid-template-columns:110px 1fr auto;gap:14px;align-items:center;padding:11px 13px;border:1px solid var(--p-line);border-radius:12px;background:#f8fafb;color:inherit}
.portal-club-modal-event-list time{font-size:.75rem;font-weight:800;color:var(--p-green)}
.portal-club-modal-event-list span{display:grid;gap:2px}.portal-club-modal-event-list small{color:var(--p-muted)}
.portal-club-modal-event-list b{color:var(--p-green)}

.portal-event-modal[hidden]{display:none!important}
.portal-event-modal{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:28px}
.portal-event-modal-backdrop{position:absolute;inset:0;background:rgba(8,28,39,.58);backdrop-filter:blur(4px)}
.portal-event-modal-dialog{position:relative;width:min(780px,100%);max-height:min(86vh,900px);overflow:auto;background:#fff;border-radius:24px;box-shadow:0 28px 90px rgba(0,0,0,.24);padding:clamp(24px,4vw,44px)}
.portal-event-modal-close{position:absolute;right:16px;top:14px;width:40px;height:40px;border:1px solid var(--p-line);border-radius:50%;background:#fff;font-size:1.5rem;cursor:pointer}
.event-modal-open{overflow:hidden}
.portal-event-modal-head{padding-right:42px}.portal-event-modal-head h2{font-size:clamp(1.8rem,4vw,3rem);font-weight:400;line-height:1.05;margin:7px 0 8px}.portal-event-modal-head p{margin:0;color:var(--p-muted)}
.portal-event-modal-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:24px 0}
.portal-event-modal-facts>div{padding:14px;border-radius:13px;background:#f4f7f8;display:grid;gap:4px}.portal-event-modal-facts span{font-size:.7rem;color:var(--p-muted);text-transform:uppercase;letter-spacing:.06em}
.portal-event-modal-description{margin:22px 0;line-height:1.7}
@media(max-width:650px){.portal-event-modal{padding:10px}.portal-event-modal-dialog{max-height:94vh;border-radius:18px;padding:22px 18px}.portal-event-modal-facts{grid-template-columns:1fr}.portal-club-modal-event-list>a{grid-template-columns:1fr auto}.portal-club-modal-event-list time{grid-column:1/-1}}


/* ==========================================================================
   Frontend V0.4.47a RC – Vereins-Popup Feinschliff
   ========================================================================== */

.portal-club-modal-dialog{
    background:#fff !important;
}

.portal-club-modal-content{
    background:#fff;
}

.portal-club-modal-profile{
    background:#fff;
}

.portal-club-modal-head{
    padding-bottom:22px;
    margin-bottom:22px;
    border-bottom:1px solid var(--p-line);
}

.portal-club-modal-grid{
    gap:14px;
}

.portal-club-modal-grid > section{
    background:#fff;
    border:1px solid var(--p-line);
    border-radius:16px;
    padding:18px 20px;
    box-shadow:0 8px 24px rgba(14,38,52,.035);
}

.portal-club-modal-grid > section > span{
    display:block;
    margin-bottom:7px;
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--p-muted);
}

.portal-club-modal-grid > section strong{
    display:block;
    margin-bottom:6px;
    font-size:1rem;
}

.portal-club-modal-grid > section p{
    margin:2px 0;
    color:var(--p-muted);
}

.portal-club-modal-grid > section a{
    display:inline-flex;
    margin-top:11px;
    font-weight:700;
    color:var(--p-green);
}

.portal-club-modal-actions{
    margin:18px 0 0;
    padding:0;
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}

.portal-club-modal-actions a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 15px;
    border:1px solid var(--p-line);
    border-radius:999px;
    background:#fff;
    color:var(--p-green);
    font-size:.84rem;
    font-weight:700;
    box-shadow:0 6px 18px rgba(14,38,52,.035);
}

.portal-club-modal-actions a:hover,
.portal-club-modal-actions a:focus-visible{
    border-color:#bdd0d8;
    background:#f8fbfc;
}

.portal-club-modal-events{
    margin-top:28px;
    padding-top:28px;
    border-top:1px solid var(--p-line);
}

.portal-club-modal-section-head{
    margin-bottom:14px;
}

.portal-club-modal-section-head span{
    color:#6b8190;
}

.portal-club-modal-section-head h3{
    margin:5px 0 0;
    font-size:1.38rem;
    font-weight:500;
    color:#143f56;
}

.portal-club-modal-event-list{
    gap:10px;
}

.portal-club-modal-event-list > a{
    grid-template-columns:125px minmax(0,1fr) 34px;
    min-height:84px;
    padding:15px 17px;
    border:1px solid #d9e5ea;
    border-radius:15px;
    background:#fff;
    box-shadow:0 7px 22px rgba(14,38,52,.035);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.portal-club-modal-event-list > a:hover{
    transform:translateY(-1px);
    border-color:#bad0da;
    box-shadow:0 10px 28px rgba(14,38,52,.065);
}

.portal-club-modal-event-list time{
    font-size:.8rem;
    font-weight:800;
    color:#154f6b;
}

.portal-club-modal-event-list strong{
    font-size:1rem;
    font-weight:700;
    color:#163f55;
}

.portal-club-modal-event-list small{
    margin-top:4px;
    font-size:.82rem;
    color:#748997;
}

.portal-club-modal-event-list b{
    display:flex;
    align-items:center;
    justify-content:center;
    width:30px;
    height:30px;
    border-radius:50%;
    background:#f1f6f8;
    color:#15526d;
    font-size:1rem;
}

.portal-club-modal-gallery{
    margin-top:24px;
    padding-top:24px;
    border-top:1px solid var(--p-line);
}

.portal-club-modal-gallery a{
    overflow:hidden;
    border-radius:15px;
    background:#f4f7f8;
    box-shadow:0 8px 24px rgba(14,38,52,.04);
}

.portal-club-modal-gallery img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:15px;
}

@media(max-width:700px){
    .portal-club-modal-dialog{
        padding:20px 16px !important;
    }

    .portal-club-modal-grid{
        grid-template-columns:1fr !important;
    }

    .portal-club-modal-event-list > a{
        grid-template-columns:1fr 32px;
        min-height:auto;
    }

    .portal-club-modal-event-list time{
        grid-column:1 / -1;
    }

    .portal-club-modal-gallery{
        grid-template-columns:1fr !important;
    }
}


/* ==========================================================================
   Frontend V0.4.48 – Responsive Navigation / Mobile Untermenüs
   ========================================================================== */

/* Desktop: zusätzliche Mobile-Bedienelemente unsichtbar. */
.portal-nav-group-head{
    display:flex;
    align-items:stretch;
}

.portal-nav-group-head > a{
    display:flex;
    align-items:center;
    padding:0 18px;
    color:rgba(255,255,255,.83);
    font-weight:500;
}

.portal-nav-group-head > a:hover,
.portal-nav-group-head > a.is-active{
    background:rgba(255,255,255,.1);
    color:#fff;
}

.portal-subnav-toggle{
    display:none;
}

@media(max-width:760px){

    .portal-nav{
        position:sticky;
        top:0;
    }

    .portal-nav-inner{
        width:100%;
    }

    .portal-nav-toggle{
        width:100%;
        padding:0 12px;
        justify-content:flex-start;
        cursor:pointer;
    }

    .portal-nav-toggle b{
        font-weight:600;
    }

    .portal-nav-links{
        width:100%;
        padding:0 0 12px;
        border-top:1px solid rgba(255,255,255,.08);
    }

    .portal-nav-links > a,
    .portal-nav-group{
        width:100%;
        border-bottom:1px solid rgba(255,255,255,.08);
    }

    .portal-nav-links > a{
        min-height:50px;
        padding:0 14px !important;
        display:flex;
        align-items:center;
        color:rgba(255,255,255,.9);
    }

    .portal-nav-group{
        display:block;
        position:relative;
    }

    .portal-nav-group-head{
        display:grid;
        grid-template-columns:minmax(0,1fr) 52px;
        align-items:stretch;
        min-height:50px;
    }

    .portal-nav-group-head > a{
        min-width:0;
        min-height:50px;
        padding:0 14px;
        display:flex;
        align-items:center;
        color:rgba(255,255,255,.9);
    }

    .portal-nav-group-head > a:hover,
    .portal-nav-group-head > a.is-active{
        background:rgba(255,255,255,.08);
        color:#fff;
    }

    .portal-subnav-toggle{
        display:flex;
        align-items:center;
        justify-content:center;
        width:52px;
        min-height:50px;
        border:0;
        border-left:1px solid rgba(255,255,255,.09);
        background:rgba(255,255,255,.035);
        color:#fff;
        cursor:pointer;
    }

    .portal-subnav-toggle span{
        display:block;
        font-size:1.25rem;
        line-height:1;
        transition:transform .22s ease;
    }

    .portal-nav-group.is-subnav-open .portal-subnav-toggle span{
        transform:rotate(180deg);
    }

    /* Hover-Dropdown vom Desktop vollständig abschalten. */
    .portal-nav-group:hover .portal-subnav{
        display:none;
    }

    .portal-subnav{
        position:static;
        left:auto;
        top:auto;
        min-width:0;
        width:100%;
        padding:5px 8px 9px 20px;
        border-radius:0;
        box-shadow:none;
        background:rgba(6,25,36,.55);
        display:none;
    }

    .portal-nav-group.is-subnav-open .portal-subnav{
        display:block;
    }

    .portal-subnav a{
        position:relative;
        display:flex;
        align-items:center;
        min-height:44px;
        padding:8px 12px 8px 19px;
        border-radius:8px;
        color:rgba(255,255,255,.82);
        font-size:.9rem;
    }

    .portal-subnav a::before{
        content:"";
        position:absolute;
        left:4px;
        width:6px;
        height:1px;
        background:rgba(255,255,255,.4);
    }

    .portal-subnav a:hover,
    .portal-subnav a:focus-visible,
    .portal-subnav a.is-active{
        background:rgba(255,255,255,.09);
        color:#fff;
    }

    .portal-nav-group.is-current-group > .portal-nav-group-head{
        background:rgba(255,255,255,.035);
    }
}

@media(max-width:420px){
    .portal-nav-group-head{
        grid-template-columns:minmax(0,1fr) 48px;
    }

    .portal-subnav-toggle{
        width:48px;
    }
}


/* ==========================================================================
   Frontend V0.4.48a – Mobile Navigation Feinschliff
   ========================================================================== */

/* Header-Aktionen wieder klar als Pills statt Kreise */
.portal-site-tools .portal-contact-pill,
.portal-site-tools a.portal-contact-pill{
    width:auto !important;
    height:auto !important;
    min-width:96px;
    min-height:46px;
    padding:10px 18px !important;
    border-radius:999px !important;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
    overflow:visible !important;
}

/* Newsletter-Pill darf etwas breiter sein */
.portal-site-tools a[href*="#newsletter"],
.portal-site-tools a[href*="newsletter"]{
    width:auto !important;
    min-width:108px;
    height:auto !important;
    min-height:46px;
    padding:10px 18px !important;
    border-radius:999px !important;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
    overflow:visible !important;
}

@media(max-width:760px){

    .portal-site-tools{
        gap:8px;
    }

    .portal-site-tools .portal-contact-pill,
    .portal-site-tools a[href*="#newsletter"],
    .portal-site-tools a[href*="newsletter"]{
        min-height:42px;
        padding:8px 15px !important;
        font-size:.78rem;
    }

    .portal-nav-links{
        background:#204f68;
    }

    .portal-nav-links > a,
    .portal-nav-group{
        border-bottom:1px solid rgba(255,255,255,.09);
    }

    .portal-nav-links > a,
    .portal-nav-group-head > a{
        font-size:1rem;
        letter-spacing:.005em;
    }

    .portal-nav-group-head{
        background:#204f68;
    }

    .portal-nav-group.is-current-group > .portal-nav-group-head,
    .portal-nav-links > a.is-active{
        background:#2d6a86;
    }

    .portal-subnav-toggle{
        background:rgba(255,255,255,.035);
        border-left:1px solid rgba(255,255,255,.10);
    }

    .portal-subnav-toggle span{
        font-size:1.45rem;
        transform-origin:center;
    }

    .portal-nav-group.is-subnav-open > .portal-nav-group-head{
        background:#2b6782;
    }

    .portal-subnav{
        display:none !important;
        padding:8px 10px 10px 18px;
        background:#3d7894;
        border-top:1px solid rgba(255,255,255,.10);
    }

    .portal-nav-group.is-subnav-open > .portal-subnav{
        display:block !important;
    }

    .portal-subnav a{
        min-height:43px;
        margin:3px 0;
        padding:9px 12px 9px 20px;
        border-radius:10px;
        color:#fff;
        background:rgba(255,255,255,.035);
        font-size:.91rem;
    }

    .portal-subnav a::before{
        background:rgba(255,255,255,.65);
    }

    .portal-subnav a:hover,
    .portal-subnav a:focus-visible,
    .portal-subnav a.is-active{
        background:rgba(255,255,255,.16);
        color:#fff;
    }
}


/* ==========================================================================
   Frontend V0.4.48b – Mobile Navigation Feinschliff
   ========================================================================== */

@media(max-width:760px){

    /* Header kompakter und ausgewogener */
    .portal-site-header-inner{
        min-height:108px;
        gap:14px;
    }

    .portal-site-brand{
        flex:1 1 auto;
        min-width:0;
    }

    .portal-site-logo{
        width:155px;
        height:82px;
    }

    .portal-site-logo img{
        max-width:100%;
        max-height:100%;
        object-fit:contain;
    }

    .portal-site-tools{
        display:grid;
        grid-template-columns:repeat(2,max-content);
        gap:7px;
        flex:0 0 auto;
    }

    .portal-site-tools .portal-contact-pill,
    .portal-site-tools a[href*="#newsletter"],
    .portal-site-tools a[href*="newsletter"]{
        min-width:0 !important;
        min-height:38px !important;
        padding:7px 13px !important;
        border-radius:999px !important;
        font-size:.74rem !important;
        line-height:1 !important;
    }

    /* Hauptnavigation feiner */
    .portal-nav-toggle{
        min-height:52px;
        padding:0 12px;
    }

    .portal-nav-toggle b{
        font-size:.9rem;
    }

    .portal-nav-links{
        background:#214f67;
        padding-bottom:0;
    }

    .portal-nav-links > a,
    .portal-nav-group{
        border-bottom:1px solid #183f54;
    }

    .portal-nav-links > a{
        min-height:48px;
        padding:0 13px !important;
        font-size:.96rem;
    }

    .portal-nav-group-head{
        min-height:48px;
        grid-template-columns:minmax(0,1fr) 48px;
        background:#214f67;
    }

    .portal-nav-group-head > a{
        min-height:48px;
        padding:0 13px;
        font-size:.96rem;
    }

    .portal-subnav-toggle{
        width:48px;
        min-height:48px;
        border-left:1px solid #183f54;
        background:#214f67;
    }

    .portal-subnav-toggle span{
        font-size:1.3rem;
        transition:transform .22s ease;
    }

    .portal-nav-group.is-subnav-open .portal-subnav-toggle span{
        transform:rotate(180deg);
    }

    .portal-nav-group.is-current-group > .portal-nav-group-head,
    .portal-nav-links > a.is-active{
        background:#2d6a86;
    }

    .portal-nav-group.is-subnav-open > .portal-nav-group-head{
        background:#2d6a86;
    }

    /* Untermenü als hellere Ebene mit Linien */
    .portal-subnav{
        display:block !important;
        max-height:0;
        overflow:hidden;
        opacity:0;
        padding:0 10px 0 18px;
        background:#5b8da6;
        border-top:0;
        transition:
            max-height .28s ease,
            opacity .20s ease,
            padding .28s ease;
    }

    .portal-nav-group.is-subnav-open > .portal-subnav{
        max-height:520px;
        opacity:1;
        padding:4px 10px 6px 18px;
        border-top:1px solid #2e617a;
    }

    .portal-subnav a{
        min-height:42px;
        margin:0;
        padding:8px 12px 8px 18px;
        border-radius:0;
        border-bottom:1px solid #3e7189;
        background:transparent;
        color:#fff;
        font-size:.88rem;
    }

    .portal-subnav a:last-child{
        border-bottom:0;
    }

    .portal-subnav a::before{
        left:3px;
        width:7px;
        background:rgba(255,255,255,.72);
    }

    .portal-subnav a:hover,
    .portal-subnav a:focus-visible,
    .portal-subnav a.is-active{
        background:rgba(255,255,255,.12);
        color:#fff;
    }
}

@media(max-width:520px){

    .portal-site-header-inner{
        min-height:104px;
        gap:10px;
    }

    .portal-site-logo{
        width:145px;
        height:78px;
    }

    .portal-site-tools{
        gap:6px;
    }

    .portal-site-tools .portal-contact-pill,
    .portal-site-tools a[href*="#newsletter"],
    .portal-site-tools a[href*="newsletter"]{
        min-height:36px !important;
        padding:6px 11px !important;
        font-size:.71rem !important;
    }
}

@media(max-width:390px){

    .portal-site-logo{
        width:132px;
        height:72px;
    }

    .portal-site-tools .portal-contact-pill,
    .portal-site-tools a[href*="#newsletter"],
    .portal-site-tools a[href*="newsletter"]{
        padding-left:9px !important;
        padding-right:9px !important;
        font-size:.68rem !important;
    }
}


/* ==========================================================================
   Frontend V0.4.48c – Mobile Subnavigation Farbe & Animation
   ========================================================================== */
@media(max-width:760px){

    /* Ruhigeres, sichtbar längeres Auf-/Zuklappen */
    .portal-subnav{
        background:#79a9c0;
        transition:
            max-height .52s cubic-bezier(.22,.61,.36,1),
            opacity .34s ease,
            padding .48s cubic-bezier(.22,.61,.36,1);
    }

    .portal-nav-group.is-subnav-open > .portal-subnav{
        background:#79a9c0;
    }

    .portal-subnav-toggle span{
        transition:transform .42s cubic-bezier(.22,.61,.36,1);
    }

    /* Helles Blau als zweite Navigationsebene,
       dunklere Linien passend zur Hauptnavigation */
    .portal-subnav a{
        color:#fff;
        border-bottom:1px solid #4f8199;
        background:transparent;
        transition:
            background-color .22s ease,
            padding-left .22s ease;
    }

    .portal-subnav a:hover,
    .portal-subnav a:focus-visible,
    .portal-subnav a.is-active{
        background:#699bb3;
        padding-left:22px;
        color:#fff;
    }

    .portal-nav-group.is-subnav-open > .portal-nav-group-head{
        border-bottom:1px solid #416f86;
    }
}


/* ==========================================================================
   Frontend V0.4.49 – Anmeldung / Abmeldung Farbkennzeichnung
   ========================================================================== */

/* Einheitliche Bedeutung im Portal:
   Grün = Anmeldung / Teilnahme
   Rot  = Abmeldung / Rücknahme
*/

.portal-km-direct-actions a.is-signup,
.portal-sport-links a.is-signup{
    background:#edf8f0 !important;
    border-color:#c9e5d0 !important;
}

.portal-km-direct-actions a.is-signoff,
.portal-sport-links a.is-signoff{
    background:#fff1f1 !important;
    border-color:#efcccc !important;
}

.portal-km-direct-actions a.is-signup > span,
.portal-sport-links a.is-signup > span{
    color:#3f7651 !important;
}

.portal-km-direct-actions a.is-signoff > span,
.portal-sport-links a.is-signoff > span{
    color:#9a4d4d !important;
}

.portal-km-direct-actions a.is-signup > b,
.portal-sport-links a.is-signup > b{
    color:#3f7651 !important;
}

.portal-km-direct-actions a.is-signoff > b,
.portal-sport-links a.is-signoff > b{
    color:#9a4d4d !important;
}

.portal-km-direct-actions a.is-signup:hover,
.portal-sport-links a.is-signup:hover{
    background:#e4f4e8 !important;
    border-color:#afd5b9 !important;
}

.portal-km-direct-actions a.is-signoff:hover,
.portal-sport-links a.is-signoff:hover{
    background:#fde7e7 !important;
    border-color:#e5b7b7 !important;
}


/* ==========================================================================
   Frontend V0.4.50 – Mobile Navigation: horizontalen Überlauf verhindern
   ========================================================================== */
@media(max-width:760px){

    /*
     * Navigationselemente verwenden auf Mobilgeräten teilweise width:100%
     * zusammen mit horizontalem Padding. Mit border-box bleibt dieses Padding
     * innerhalb der verfügbaren Breite und erzeugt keinen horizontalen Scroll.
     */
    .portal-nav,
    .portal-nav-inner,
    .portal-nav-links,
    .portal-nav-links > a,
    .portal-nav-group,
    .portal-nav-group-head,
    .portal-nav-group-head > a,
    .portal-subnav,
    .portal-subnav a{
        box-sizing:border-box;
        max-width:100%;
    }

    .portal-nav-links,
    .portal-nav-links > a,
    .portal-nav-group,
    .portal-nav-group-head,
    .portal-subnav{
        width:100%;
    }

    /* Untermenü bündig innerhalb der Navigation halten. */
    .portal-subnav{
        left:auto;
        right:auto;
        margin-left:0;
        margin-right:0;
    }

    /* Sicherheitsnetz nur für die Navigation – nicht für die gesamte Seite. */
    .portal-nav{
        overflow-x:clip;
    }
}

/* ========================================================================== 
   Frontend V0.4.51 – Mobile Hero-Aktionen: Breite innerhalb des Viewports
   ========================================================================== */
@media(max-width:760px){
    .portal-home-actions{
        max-width:100%;
        box-sizing:border-box;
    }
    .portal-home-actions .portal-btn{
        width:100%;
        max-width:100%;
        box-sizing:border-box;
        justify-content:center;
    }
}


/* ==========================================================================
   Frontend V0.4.55 – Hero Motion
   Langsamer Ken-Burns-Effekt + dezente Maus-Parallaxe auf Desktop.
   ========================================================================== */
.portal-home-hero{
    --hero-motion-x:0px;
    --hero-motion-y:0px;
}
.portal-home-bg{
    overflow:hidden;
}
.portal-home-bg-layer{
    inset:-10px;
    will-change:transform,opacity;
    transform:translate3d(var(--hero-motion-x),var(--hero-motion-y),0) scale(1.015);
    transition:opacity 1.6s ease,transform 14s ease-out;
}
.portal-home-bg-layer.is-active{
    transform:translate3d(var(--hero-motion-x),var(--hero-motion-y),0) scale(1.075);
}
@media (max-width:760px), (hover:none), (pointer:coarse){
    .portal-home-hero{
        --hero-motion-x:0px!important;
        --hero-motion-y:0px!important;
    }
}
@media (prefers-reduced-motion:reduce){
    .portal-home-bg-layer,
    .portal-home-bg-layer.is-active{
        transition:opacity .25s linear!important;
        transform:none!important;
    }
}


/* ==========================================================================
   Frontend V0.4.56 – Portal-Kacheln Motion
   Gestaffeltes Scroll-Reveal + dezente Micro-Interaktionen.
   ========================================================================== */

/* Die Kacheln selbst bleiben beim Reveal einzeln beweglich. */
#portal-bereiche.portal-reveal{
    transform:translateY(18px);
}

#portal-bereiche [data-reveal-group]>.portal-reveal-child{
    transform:translateY(20px) scale(.982);
    transition-duration:.58s,.58s,.24s,.24s,.24s;
}

#portal-bereiche [data-reveal-group].is-visible>.portal-reveal-child{
    transform:translateY(0) scale(1);
}

/* Ruhigere, hochwertigere Tiefe am Desktop. */
@media (min-width:761px) and (hover:hover) and (pointer:fine){
    #portal-bereiche [data-reveal-group].is-visible>.portal-area-card:hover{
        transform:translateY(-7px) scale(1.008);
        box-shadow:0 20px 42px rgba(15,42,57,.13);
    }

    /* Kacheln mit Bild bekommen einen sehr kleinen Bild-Zoom. */
    #portal-bereiche .portal-area-card.portal-area-has-image .portal-area-bgimage{
        transform:scale(1.015);
        transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .4s ease,opacity .3s ease;
        will-change:transform;
    }
    #portal-bereiche .portal-area-card.portal-area-has-image:hover .portal-area-bgimage{
        transform:scale(1.065);
    }

    /* Die Galerie hatte bereits einen Zoom – hier nur mit derselben Motion-Kurve. */
    #portal-bereiche .portal-area-card.portal-area-gallery-live .portal-area-bgimage{
        transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .4s ease;
    }

    /* Präventionsgrafik reagiert minimal auf die Kachel. */
    #portal-bereiche .portal-area-card.portal-area-prevention .portal-prevention-art img{
        transform:translate3d(0,0,0) scale(1);
        transition:transform .55s cubic-bezier(.2,.7,.2,1);
        will-change:transform;
    }
    #portal-bereiche .portal-area-card.portal-area-prevention:hover .portal-prevention-art img{
        transform:translate3d(-6px,-4px,0) scale(1.018);
    }
}

/* Auf Touch-Geräten bewusst ruhiger: nur das vorhandene Scroll-Reveal. */
@media (max-width:760px), (hover:none), (pointer:coarse){
    #portal-bereiche [data-reveal-group]>.portal-reveal-child{
        transform:translateY(12px);
    }
}

/* Systemeinstellung respektieren. */
@media (prefers-reduced-motion:reduce){
    #portal-bereiche,
    #portal-bereiche [data-reveal-group]>.portal-reveal-child,
    #portal-bereiche .portal-area-bgimage,
    #portal-bereiche .portal-prevention-art img{
        opacity:1!important;
        transform:none!important;
        transition:none!important;
        animation:none!important;
    }
}
