/*
Theme Name: Wettbergen Ricklingen Portal Neu
Theme URI: https://www.wettbergen-ricklingen.de/
Description: Eigenständige, moderne Portaloberfläche auf TownPress-Basis; Inhalte und Sondertypen bleiben erhalten.
Author: Stadtteilportal
Version: 7.2.0
Template: townpress
Text Domain: wr-portal
*/
:root{--blue:#237eb6;--dark:#154d77;--light:#eaf5fc;--ink:#1b3041;--muted:#5e7281;--line:#dbe8f0;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f3f8fb;color:var(--ink);font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:16px;line-height:1.6}a{color:var(--dark);text-decoration:none}a:hover{color:var(--blue)}img{max-width:100%;height:auto}.wr-wrap{width:min(1240px,calc(100% - 40px));margin-inline:auto}.wr-top{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:5}.wr-top-inner{min-height:86px;display:flex;align-items:center;gap:24px;justify-content:space-between}.wr-brand{display:flex;align-items:center;gap:14px;min-width:0}.wr-brand img{width:62px;height:62px;object-fit:contain}.wr-brand strong{font-size:22px;color:#155783;line-height:1.1;display:block}.wr-brand small{display:block;font-size:12px;color:#667c8c;letter-spacing:.02em}.wr-nav{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.wr-nav a{font-size:14px;font-weight:700;padding:11px 13px;border-radius:10px}.wr-nav a:hover,.wr-nav .current-menu-item>a{background:#e5f3fc;color:#126b9f}.wr-search{display:flex;background:#f0f7fb;border:1px solid #d9e8f1;border-radius:12px;overflow:hidden;max-width:220px}.wr-search input{min-width:0;width:100%;border:0;background:transparent;padding:10px 12px;font:inherit;font-size:13px}.wr-search button{border:0;background:var(--blue);color:white;padding:0 13px;cursor:pointer}.wr-hero{background:linear-gradient(100deg,rgba(12,57,90,.89),rgba(31,115,165,.62)),var(--hero-image,linear-gradient(135deg,#3e9bc8,#144c7a));background-size:cover;background-position:center;min-height:345px;display:flex;align-items:center;color:white}.wr-hero-content{padding-block:66px}.wr-kicker{text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:800;color:#bdeaff}.wr-hero h1{font-size:clamp(35px,4.6vw,62px);line-height:1.08;max-width:760px;letter-spacing:-.04em;margin:14px 0}.wr-hero p{font-size:19px;max-width:620px;color:#e5f3fb}.wr-button{display:inline-block;border-radius:11px;background:#fff;color:#12638e;font-weight:800;padding:12px 20px;margin-top:14px}.wr-main{padding-block:46px 70px}.wr-section{margin-bottom:48px}.wr-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}.wr-section-head h2{font-size:clamp(24px,3vw,32px);letter-spacing:-.03em;line-height:1.15;margin:0}.wr-section-head p{color:var(--muted);margin:5px 0 0}.wr-more{font-weight:800;font-size:14px}.wr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.wr-card{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 9px 30px rgba(25,72,105,.045);height:100%}.wr-card-img{display:block;aspect-ratio:16/10;background:linear-gradient(140deg,#a4d9f4,#377eac);overflow:hidden}.wr-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.wr-card:hover img{transform:scale(1.035)}.wr-card-body{padding:22px}.wr-card-meta{font-size:12px;color:#2879a8;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.wr-card h3{font-size:21px;line-height:1.25;margin:10px 0}.wr-card p{font-size:14px;color:var(--muted);margin:0}.wr-services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.wr-service{display:flex;flex-direction:column;gap:9px;padding:25px;background:#fff;border:1px solid var(--line);border-radius:16px;min-height:170px}.wr-service-icon{font-size:28px}.wr-service strong{font-size:18px}.wr-service span:last-child{font-size:13px;color:var(--muted)}.wr-town-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.wr-town{background:linear-gradient(135deg,#e3f4ff,#fff);border:1px solid #cfe5f2;border-radius:15px;padding:24px;font-size:20px;font-weight:800;min-height:110px;display:flex;align-items:end}.wr-town:hover{background:#d6eefb}.wr-two{display:grid;grid-template-columns:1.6fr 1fr;gap:24px}.wr-panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:25px}.wr-panel h3{margin:0 0 15px;font-size:22px}.wr-simple-list{padding:0;margin:0;list-style:none}.wr-simple-list li{padding:12px 0;border-top:1px solid var(--line)}.wr-simple-list li:first-child{border-top:0}.wr-simple-list small{display:block;color:var(--muted)}.wr-footer{background:#153d5b;color:#dcebf5;padding:48px 0 24px}.wr-footer-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}.wr-footer a{color:#dcebf5;margin-right:16px}.wr-footer p{font-size:13px}.wr-page{max-width:920px;margin:45px auto 80px;padding:38px;background:#fff;border:1px solid var(--line);border-radius:20px}.wr-page h1{font-size:clamp(30px,4vw,46px);line-height:1.15;margin:0 0 20px}.wr-page .entry-content{overflow-wrap:anywhere}.wr-page .entry-content img{border-radius:10px}.wr-page-meta{color:var(--muted);font-size:14px;margin-bottom:20px}.wr-page .wp-block-image{max-width:100%}.wr-pagination{margin-top:25px}.wr-pagination .page-numbers{padding:8px 12px;background:white;border-radius:8px;margin-right:5px}.wr-pagination .current{background:var(--blue);color:white}.wr-empty{padding:25px;background:white;border-radius:14px}.wr-mobile-toggle{display:none;border:0;background:#eaf5fc;color:#155783;padding:9px 13px;border-radius:10px;font-weight:700}@media(max-width:1050px){.wr-top-inner{flex-wrap:wrap;padding-block:14px}.wr-search{margin-left:auto}.wr-nav{order:4;width:100%;justify-content:center}.wr-grid{grid-template-columns:repeat(2,1fr)}.wr-services,.wr-town-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.wr-wrap{width:min(100% - 28px,1240px)}.wr-top-inner{gap:10px}.wr-brand strong{font-size:17px}.wr-brand img{width:46px;height:46px}.wr-brand small{font-size:10px}.wr-mobile-toggle{display:block;margin-left:auto}.wr-nav{display:none;flex-direction:column;align-items:stretch}.wr-nav.is-open{display:flex}.wr-nav a{display:block}.wr-search{order:5;max-width:none;width:100%}.wr-hero{min-height:320px}.wr-hero-content{padding-block:45px}.wr-hero p{font-size:16px}.wr-grid,.wr-services,.wr-town-grid,.wr-two{grid-template-columns:1fr}.wr-section-head{align-items:start}.wr-page{margin:20px auto 45px;padding:22px}.wr-main{padding-top:30px}.wr-service{min-height:125px}}

/* v6.1: restore natural aerial photography and enforce readable hero type. */
.wr-hero{background-image:linear-gradient(90deg,rgba(7,32,51,.62) 0%,rgba(7,32,51,.26) 42%,rgba(7,32,51,0) 78%),var(--hero-image,linear-gradient(135deg,#68b7df,#217ba9))!important;background-position:center center;background-size:cover}
.wr-hero h1,.wr-hero .wr-kicker,.wr-hero p{color:#fff!important;text-shadow:0 2px 9px rgba(0,0,0,.72)}
.wr-hero h1{font-weight:850}
.wr-card-img{background:none!important}
.wr-card:not(:has(.wr-card-img)) .wr-card-body{padding-top:30px;padding-bottom:30px;min-height:180px}
.wr-card:not(:has(.wr-card-img)){border-top:5px solid #4d9fc9}

/* Bezirksrat reports lead the politics overview. */
.wr-politics-featured{order:-100}

/* Politics: native, full-width page instead of TownPress block grid and sidebar. */
.wr-politics-page{max-width:1240px;background:transparent;border:0;padding:0;margin:45px auto 80px}
.wr-politics-page h1{margin:0 0 12px}.wr-politics-intro{color:var(--muted);margin:0 0 30px}
.wr-politics-section{margin:0 0 36px}.wr-politics-section h2{font-size:26px;color:var(--dark);margin:0 0 17px}
.wr-politics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.wr-politics-grid .wr-card{height:100%}.wr-politics-empty{padding:20px;background:white;border:1px solid var(--line);border-radius:14px}
@media(max-width:700px){.wr-politics-grid{grid-template-columns:1fr}.wr-politics-page{margin:24px auto 45px}}

/* Politics is a full-width standalone portal page, without parent theme sidebars. */
.wr-politics-page{max-width:1180px;margin:30px auto 70px;padding:30px;background:#fff;border-radius:16px}
.wr-politics-section{padding:24px 0;border-top:1px solid #dcebf4}
.wr-politics-section:first-of-type{border-top:0}
.wr-politics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.wr-politics-section:first-of-type{background:#f1f8fc;border-radius:12px;padding:24px;margin-bottom:20px}
@media(max-width:800px){.wr-politics-grid{grid-template-columns:1fr}.wr-politics-page{padding:16px}}

/* V7: consistent full-width layout on every page, without TownPress sidebars */
.wr-content-page{width:100%;margin:0 auto 65px}.wr-page-heading{padding:28px 32px;background:linear-gradient(110deg,#e2f3fd,#fff);border:1px solid #d7eaf6;border-radius:18px;margin-bottom:25px}.wr-page-heading h1{color:#155783;font-size:clamp(28px,3.6vw,42px);margin:0;line-height:1.2}.wr-page-heading p{color:#536d80;margin:10px 0 0}.wr-page-content{background:white;padding:30px;border-radius:18px;border:1px solid #dceaf2;min-height:180px}.wr-page-content .wp-block-columns{gap:24px}.wr-page-content .wp-block-column{min-width:0}.wr-page-content .wp-block-lsvr-townpress-toolkit-posts,.wr-page-content .lsvr-townpress-posts{background:#fff;border:1px solid #dbe8f0;border-radius:14px;overflow:hidden}.wr-page-content .lsvr-townpress-posts__title{color:#155783}.wr-page-content .lsvr-townpress-posts__header{background:#eaf5fc}.wr-page-content .lsvr-townpress-posts__item{border-color:#dceaf2}.wr-politics-page{max-width:1240px!important;background:transparent!important;padding:0!important;border:0!important;margin:0 auto 70px!important}.wr-politics-section{background:transparent!important;border:0!important;padding:0!important;margin:0 0 42px!important}.wr-featured-politics{padding:25px!important;background:#e8f5fc!important;border:1px solid #cde5f4!important;border-radius:18px}.wr-politics-section .wr-section-head{margin-bottom:17px}.wr-politics-section h2{margin:0;color:#155783}.wr-grid{align-items:stretch}.wr-card{min-width:0}.wr-card-img{background:#eef6fa!important}.wr-card-img img{display:block}.wr-portal-body .lsvr-townpress-sidebar,.wr-portal-body .lsvr-townpress-header__menu,.wr-portal-body .lsvr-townpress-sidebar__menu{display:none!important}
@media(max-width:700px){.wr-page-content{padding:18px}.wr-page-heading{padding:20px}.wr-featured-politics{padding:16px!important}.wr-page-content .wp-block-columns{flex-wrap:wrap}.wr-page-content .wp-block-column{flex-basis:100%!important}}

/* V7.2: balanced editorial cards, with real photography only. */
.wr-grid{align-items:stretch}
.wr-card{display:flex;flex-direction:column;min-height:255px}
.wr-card--photo .wr-card-img{aspect-ratio:16/9;max-height:235px}
.wr-card--photo .wr-card-img img{width:100%;height:100%;object-fit:cover}
.wr-card-body{flex:1;display:flex;flex-direction:column;gap:9px;padding:23px}
.wr-card h3{margin:0;font-size:20px}
.wr-card p{margin:0;line-height:1.55}
.wr-card--text{border-top:4px solid #3d97c8;background:linear-gradient(160deg,#fff 60%,#f3f9fd)}
.wr-card--text .wr-card-body{padding:27px;min-height:235px}
.wr-card-read{margin-top:auto;padding-top:17px;font-size:13px;font-weight:800;color:#176b9a}
.wr-card--text .wr-card-meta{color:#2879a8}
.wr-council-section{margin-top:10px}
.wr-council-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.wr-council-item{background:#fff;border:1px solid #d8e8f2;border-left:4px solid #2f91c3;border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:10px;min-height:155px}
.wr-council-item strong{font-size:17px;line-height:1.35;color:#164d74}
.wr-council-date{font-size:12px;font-weight:800;color:#4682a5}
.wr-council-arrow{margin-top:auto;align-self:flex-end;font-weight:800}
@media(max-width:900px){.wr-council-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.wr-council-list{grid-template-columns:1fr}.wr-card--text .wr-card-body{min-height:0}}
