/* Main Theme Styles for Guter Grund */
:root {
  --gg-transition: 180ms ease;
  --hero-bg:#f5f5f5;
  --hero-text-color:#000000;
  --hero-overlay:rgba(245,245,245,.85);
  --gg-container-x: clamp(24px, 7vw, 100px); /* Unified horizontal padding: mobile 24px, scales, caps at 100px */
  /* Added defaults for custom properties referenced later */
  --feature-number-size: 130px;
  --feature-number-color: #EEF5C9;
  --why-circle-fallback: #E5E5E5;
  --why-circle-offset: -60px;
  --band-text-color: #FFFFFF;
  --band-overlay: rgba(0,0,0,0.55);
  --join-btn-bg:#9C27B0; /* default for Mitmachen submit button */
  --ueber-bg: #F4F1EF;
  /* Added defaults to silence unresolved variable warnings */
  --green-pct:15%;
  --bar-bg:#FFFFFF;
  --bar-fill:#C8DA2C;
}
body { font-size:16px; background:#fff; }

main { margin-top:100px; margin-bottom: 80px; }

/* === Global horizontal padding containers (unified) === */
.hero-inner, .hero__inner, .section__inner, .container, .gg-container, .footer-inner, .header-inner {
  padding-left: var(--gg-container-x);
  padding-right: var(--gg-container-x);
  box-sizing:border-box;
}

/* Header */
.gg-site-header { background:#820DAB; height:100px; /* was 80px */ box-shadow:0 4px 12px -6px rgba(0,0,0,0.25); position:fixed; top:0; left:0; right:0; z-index:1000; }
.site-header, .gg-site-header { height:100px; background-color:#820DAB; }
.header-inner { display:grid; grid-template-columns:auto 1fr auto; align-items:center; min-height:100px; /* was 80px */ padding-top:0; padding-bottom:0; position:relative; }
.logo-wrap { display:flex; align-items:center; }
.logo-wrap .gg-logo, .logo-wrap img { max-height:40px; width:auto; display:block; }
.gg-primary-nav { display:flex; align-items:center; justify-content:center; }
.gg-primary-nav .menu { display:flex; gap:32px; margin:0; padding:0; list-style:none; align-items:center; }
.gg-primary-nav .menu > li { position:relative; }
.gg-primary-nav a { color:#fff; font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:16px; text-decoration:none; padding:6px 0; display:inline-block; line-height:1.1; }
.gg-primary-nav a::after { content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:#fff; opacity:0; transform:translateY(2px); transition:opacity .18s ease, transform .18s ease; }
.gg-primary-nav a:hover::after, .gg-primary-nav .current-menu-item > a::after, .gg-primary-nav .current_page_item > a::after { opacity:1; transform:translateY(0); }
.gg-primary-nav a:focus-visible { outline:3px solid var(--gg-color-accent); outline-offset:2px; }
.gg-btn.nav-cta { position:relative; overflow:hidden; line-height:1; font-weight:600; background:#fff; color:#820DAB; border:2px solid #fff; border-radius:9999px; padding:10px 24px 10px 24px; display:inline-flex; align-items:center; gap:8px; box-shadow:0 4px 14px -6px rgba(0,0,0,0.25), 0 2px 6px -2px rgba(0,0,0,0.15); transition:background .25s ease, color .25s ease, box-shadow .25s ease; }
.gg-btn.nav-cta:before { content:""; position:absolute; inset:0; background:linear-gradient(145deg,#FFFFFF,#F7ECFF 55%, #F3E6FA); opacity:0; transition:opacity .35s ease; }
.gg-btn.nav-cta > * { position:relative; z-index:1; }
.gg-btn.nav-cta:hover:before, .gg-btn.nav-cta:focus-visible:before { opacity:1; }
.gg-btn.nav-cta:hover, .gg-btn.nav-cta:focus-visible { background:#FFFFFF; color:#820DAB; box-shadow:0 6px 20px -8px rgba(0,0,0,0.32); }
.gg-btn.nav-cta:active { transform:translateY(1px); box-shadow:0 3px 10px -4px rgba(0,0,0,0.3); }
.gg-btn.nav-cta:focus-visible { outline:3px solid var(--gg-color-accent); outline-offset:2px; }
/* Hide header CTA on mobile, keep offcanvas version */
@media (max-width:991px){ .header-inner .gg-btn.nav-cta { display:none !important; } }
/* Ensure offcanvas CTA spans full width if desired */
@media (max-width:991px){ .offcanvas-cta-bottom .gg-btn.nav-cta { width:100%; justify-content:center; box-shadow:0 6px 18px -6px rgba(0,0,0,0.25); } }
/* Reduced motion */
@media (prefers-reduced-motion:reduce){ .gg-btn.nav-cta, .gg-btn.nav-cta:before { transition:none; } }
/* Tablet gap reduction */
@media (max-width:1199px){ .gg-primary-nav .menu { gap:24px; } }

/* Mobile layout */
@media (max-width:991px){
  .gg-primary-nav { display:none; }
  .gg-burger { display:inline-flex; align-items:center; justify-content:center; }
}

/* Burger icon refinement */
.gg-burger { position:absolute; top:50%; right:var(--gg-container-x); transform:translateY(-50%); width:52px; height:52px; border:none; background:transparent; cursor:pointer; display:none; z-index:1100; }
.gg-burger span { position:absolute; left:14px; right:14px; height:3px; background:#fff; /* was #fff */ border-radius:2px; transition:transform .25s ease, opacity .25s ease, background .2s ease; }
.gg-burger span:nth-child(1){ top:16px; }
.gg-burger span:nth-child(2){ top:24px; }
.gg-burger span:nth-child(3){ top:32px; }
.gg-burger.active span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.gg-burger.active span:nth-child(2){ opacity:0; }
.gg-burger.active span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
.gg-burger.active span { background:#000; }
/* Show burger on mobile/tablet */
@media (max-width:991px){ .gg-burger { display:inline-flex; align-items:center; justify-content:center; } }
/* Hide burger on large screens explicitly */
@media (min-width:992px){ .gg-burger { display:none !important; } }

/* Fullscreen overlay nav */
.gg-offcanvas { position:fixed; inset:0; background:#fff; transform:translateY(-100%); transition:transform .32s ease; display:flex; flex-direction:column; padding:0; width:100%; height:100%; max-width:none; box-shadow:none; }
.gg-offcanvas.open { transform:translateY(0); }
.gg-offcanvas .offcanvas-inner { padding:var(--gg-container-x); display:flex; flex-direction:column; gap:40px; width:100%; height:100%; }
.offcanvas-menu { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:28px; }
.offcanvas-menu a { color:#000; font-size:22px; font-weight:600; text-decoration:none; line-height:1.2; position:relative; }
.offcanvas-menu a:focus-visible { outline:3px solid var(--gg-color-accent); outline-offset:4px; }
.offcanvas-menu .current-menu-item > a, .offcanvas-menu .current_page_item > a { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
/* Removed .gg-offcanvas-close custom styles as close button no longer used */
@media (min-width:992px){ .gg-offcanvas .gg-offcanvas-close { display:none; } }
/* Increase tap target on very small screens */
@media (max-width:480px){ .gg-offcanvas .gg-offcanvas-close { top:8px; right:8px; width:44px; height:44px; font-size:30px; } }
.offcanvas-cta-bottom { margin-top:auto; }
.offcanvas-cta-bottom .gg-btn.nav-cta { display:inline-flex; width:auto; }

/* Prevent body scroll when menu open (JS adds class) */
body.menu-open { overflow:hidden; }

/* Improve skip link visibility */
.skip-link { position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus { left:50%; top:8px; transform:translateX(-50%); width:auto; height:auto; padding:8px 14px; background:#000; color:#fff; z-index:2000; }
/* === END HEADER FINAL SPEC OVERRIDES === */

/* Hero */
/* Updated hero to flex center content vertically and use inner padding for horizontal spacing */
.gg-hero { background:var(--hero-bg,#f5f5f5); position:relative; color:var(--hero-text-color,#000); display:flex; align-items:center; justify-content:flex-start; min-height:460px; padding-top:120px; padding-bottom:120px; margin-top: -100px; }
.hero-inner, .hero__inner { position:relative; z-index:2; max-width:1200px; width:100%; }
.gg-hero .hero-overlay, .gg-hero .hero__overlay { position:absolute; inset:0; background:var(--hero-overlay,rgba(245,245,245,.85)); pointer-events:none; z-index:1; }
.gg-hero h1 { font-size:64px; line-height:1.1; margin:0 0 32px; font-weight:800; overflow-wrap: break-word;}
.hero-intro { font-size:18px; line-height:1.5; max-width:420px; margin-top:16px; }
@media (max-width:991px){ .gg-hero { padding-top:96px; padding-bottom:96px; } .gg-hero h1 { font-size:56px; } }
@media (max-width:767px){ .gg-hero { padding-top:64px; padding-bottom:64px; } .gg-hero h1 { font-size:40px; } .hero-intro { font-size:16px; } }

/* Sections */
.gg-section { padding:120px 0; }
.section-title { font-size:24px; text-transform:uppercase; font-weight:700; margin:0 0 40px; letter-spacing:.5px; }
@media (max-width:767px){ .gg-section { padding:80px 0 !important; } }

/* Feature Cards */
.gg-features { padding:120px 0; }
.gg-features-points { width:100%; }
.feature-points-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:64px; }
.feature-point { display:grid; grid-template-columns:minmax(0,1fr) 1fr; column-gap:64px; row-gap:24px; align-items:start; }
/* Left cluster (number + headline) */
.fp-left { position:relative; display:flex; align-items:flex-start; gap:24px; }
.fp-number { font-weight:800; font-family:'Montserrat','Inter',sans-serif; font-size:var(--feature-number-size,130px); line-height:.85; color:var(--feature-number-color,#EEF5C9); display:block; margin-top:-8px; }
.fp-headline { font-size:42px; line-height:1.2; font-weight:800; margin:0; max-width:520px; }
/* Right column text */
.fp-right { font-size:18px; line-height:1.6; }
.fp-text p { margin:0 0 20px; font-size:18px; line-height:1.6; }
.fp-text p:last-child { margin-bottom:0; }
.fp-final { font-size:18px; line-height:1.55; margin:28px 0 0; }
/* CTA */
.features-cta { margin-top:72px; display:flex; justify-content:flex-end; column-gap:72px; }
.gg-btn.outline.features-cta-btn { background:transparent; color:#820DAB; border:2px solid #820DAB; border-radius:9999px; padding:14px 36px; font-weight:700; font-size:16px; line-height:1; text-decoration:none; transition:background .22s ease,color .22s ease; grid-column:2; }
.gg-btn.outline.features-cta-btn:hover, .gg-btn.outline.features-cta-btn:focus-visible { background:#820DAB; color:#fff; }
@media (max-width:1023px){ .features-cta { column-gap:56px; } }
/* === OVERRIDE: Align Features CTA with right column start === */
.features-cta { display:grid !important; grid-template-columns:minmax(0,1fr) 1fr; column-gap:72px; justify-content:initial !important; margin-top:72px; }
.features-cta-btn { grid-column:2; justify-self:start; }
@media (max-width:1023px){ .features-cta { column-gap:56px; } }
@media (max-width:767px){ .features-cta { grid-template-columns:1fr; column-gap:0; } .features-cta-btn { grid-column:1; } }
/* === END OVERRIDE === */
/* Remove old card visual space inside this section */
.gg-features .gg-features-grid, .gg-features .gg-card.feature { display:none !important; }
/* Spacing tuning for section title */
.gg-features .section-title { margin-bottom:56px; }
/* Tablet adjustments */
@media (max-width:1023px){
  .feature-point { column-gap:48px; }
  .feature-points-list { gap:56px; }
  .fp-headline { font-size:36px; }
  .fp-number { font-size:calc(var(--feature-number-size,130px) * .8); }
}
/* Mobile stack */
@media (max-width:767px){
  .feature-point { grid-template-columns:1fr; }
  .fp-left { flex-direction:column; gap:8px; }
  .fp-number { font-size:calc(var(--feature-number-size,130px) * .55); margin-top:0; }
  .fp-headline { font-size:32px; }
  .fp-right, .fp-text p, .fp-final { font-size:16px; line-height:1.6; }
  .features-cta { justify-content:flex-start; margin-top:56px; }
}

/* Warum mitmachen */
.why-grid { display:grid; grid-template-columns:320px 1fr; gap:64px; align-items:center; position:relative; }
.why-deco { width:320px; height:320px; background:#E5E5E5; justify-self:center; }
.why-content { max-width:600px; }
.why-statement { font-size:28px; font-weight:700; margin:0 0 16px; }
.why-text { font-size:16px; }
/* removed duplicate .warum-mitmachen__person-name here (kept in final spec block) */
@media (max-width:991px){ .why-grid { grid-template-columns:1fr; } .why-deco { margin:0 auto 40px; } }
@media (max-width:767px){ .why-statement { font-size:18px; } }

/* Events */
.events-head { display:flex; justify-content:space-between; align-items:flex-start; gap:32px; flex-wrap:wrap; margin-bottom:40px; }
.gg-region-tabs { display:flex; flex-wrap:wrap; gap:24px; margin:0; }
.gg-chip { background:none; border:none; padding:8px 12px; font-size:15px; cursor:pointer; position:relative; font-weight:600; }
.gg-chip.active, .gg-chip:focus { color:var(--gg-color-primary); }
.gg-chip.active::after { content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:var(--gg-color-primary); }
.gg-events { display:flex; flex-direction:column; gap:24px; }
.gg-event-row { display:flex; align-items:stretch; min-height:108px; background:#fff; border-radius:24px; box-shadow:0 8px 24px -6px rgba(0,0,0,0.12), 0 2px 8px -2px rgba(0,0,0,0.08); overflow:hidden; position:relative; }
.gg-event-row .event-date-box { width:108px; min-width:108px; min-height:108px; background:#F4F9C9; display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:'Montserrat','Inter',sans-serif; font-weight:800; text-transform:uppercase; line-height:1.05; }
.gg-event-row .event-date-box .day { font-size:24px; letter-spacing:.5px; }
.gg-event-row .event-date-box .date { font-size:20px; margin-top:4px; font-weight:800; }
.gg-event-row .event-body { flex:1 1 auto; padding:16px 28px; display:flex; flex-direction:row; align-items:center; gap:28px; }
.gg-event-row .event-main { display:flex; flex-direction:column; gap:4px; flex:1 1 auto; }
.gg-event-row .event-title { /* updated: remove small-caps, force uppercase */
  font-size:24px;
  font-weight:800;
  font-family:'Montserrat','Inter',sans-serif;
  line-height:1;
  letter-spacing:0;
  margin:0 0 0.5rem 0; /* add bottom spacing */
  text-transform:uppercase;
  font-variant:normal;
}
.gg-event-row .meta-line { /* updated per final spec */
  display:flex;
  align-items:center;
  gap:16px;
  font-family:'Montserrat','Inter',sans-serif;
  font-weight:400;
  font-size:24px;
  line-height:1; /* 100% */
  letter-spacing:0;
  text-transform:capitalize;
}
.gg-event-row .event-cta { margin-top:0; margin-left:auto; display:flex; align-items:center; }
.gg-event-row .event-cta-btn {
  font-family:'Montserrat','Inter',sans-serif;
  font-weight:400;
  font-size:16px; /* reduced from 24px */
  line-height:1;
  letter-spacing:0;
  text-transform:capitalize;
  text-decoration:none;
  color:var(--gg-color-primary,#820DAB);
  border:4px solid var(--gg-color-primary,#820DAB);
  padding:8px 20px;
  border-radius:9999px;
  background:transparent;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  transition:background .2s ease, color .2s ease, box-shadow .2s ease;
}
.gg-event-row .event-cta-btn:hover, .gg-event-row .event-cta-btn:focus-visible {
  background:var(--gg-color-primary,#820DAB);
  color:#fff;
  box-shadow:0 4px 14px -6px rgba(0,0,0,0.25);
}
@media (max-width:680px){
  .gg-event-row .event-cta-btn { font-size:16px; padding:8px 18px; } /* unified size */
}

/* Mobile layout for event rows */
@media (max-width:767px){
  .gg-event-row { flex-direction:row; flex-wrap:wrap; min-height:0; }
  .gg-event-row .event-date-box { width:84px; min-width:84px; min-height:84px; border-bottom-right-radius:0; }
  .gg-event-row .event-body { padding:16px 16px 20px; flex-direction:row; flex-wrap:wrap; gap:12px 16px; }
  .gg-event-row .event-main { width:calc(100% - 84px); padding-top:4px; }
  .gg-event-row .event-title { font-size:20px; line-height:1.1; margin:0; }
  .gg-event-row .meta-line { order:3; flex-wrap:wrap; font-size:16px; gap:8px 16px; }
  .gg-event-row .event-cta { width:100%; order:4; margin-left:0; }
  .gg-event-row .event-cta-btn { width:auto; font-size:14px; padding:8px 18px; }
}
/* Slight mid breakpoint adjustments */
@media (max-width:560px){
  .gg-event-row .event-title { font-size:18px; }
}

/* FAQ */
.gg-faq { border-top:1px solid var(--gg-color-accent); }
.gg-faq-group { margin: 0; }
.gg-faq-group + .gg-faq-group { margin-top: 2.5rem; }
.faq-item { border-top:1px solid var(--gg-color-accent); }
.faq-trigger { width:100%; text-align:left; background:#fff; border:none; padding:16px 8px; font-size:18px; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-weight:600; }
.faq-trigger:focus { outline:2px solid var(--gg-color-primary); outline-offset:2px; }
.faq-panel { padding:0 8px 24px 8px; font-size:16px; max-height:0; overflow:hidden; transition:max-height 0.24s ease; }
.faq-trigger[aria-expanded='true'] + .faq-panel { padding-top:0; }
.faq-panel.is-open { max-height:800px; }
.chevron { width:18px; height:18px; position:relative; display:inline-flex; align-items:center; justify-content:center; }
.chevron::before { content:""; width:11px; height:11px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transform-origin:50% 50%; transition:transform .18s ease; box-sizing:border-box; }
/* Rotate to point up when expanded */
.acc-trigger[aria-expanded='true'] .chevron::before, .faq-trigger[aria-expanded='true'] .chevron::before { transform:rotate(-135deg); }
/* High-contrast / forced-colors support */
@media (forced-colors:active){ .chevron::before { border-color:CanvasText; } }
.faq-more { margin-top:32px; }

/* FAQ page layout (two columns) */
.faq-page-title { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:clamp(40px,5vw,56px); line-height:1.05; margin:0 0 48px; color:#000; }
@media (max-width:767px){ .faq-page-title { font-size:40px; margin-bottom:32px; } }
.faq-layout { display:flex; align-items:flex-start; gap:48px; }
@media (max-width:991px){ .faq-layout { flex-direction:column; } }
.faq-contact-col { flex:0 0 32%; max-width:380px; }
.faq-groups-col { flex:1 1 auto; min-width:0; }

/* Match Kontakt container top spacing */
.faq-container { padding-top:64px; }
@media (max-width:1199px){ .faq-container { padding-top:56px; } }
@media (max-width:767px){ .faq-container { padding-top:48px; } }

/* Contact card in FAQ left column */
.faq-contact-card { background:#fff; border:1px solid rgba(0,0,0,0.06); border-radius:18px; padding:24px; }
.faq-contact-title { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:22px; margin:0 0 12px; }
.faq-contact-desc { font-size:16px; line-height:1.55; }
.faq-contact-cta { margin-top:16px; }
.faq-contact-btn { display:inline-flex; align-items:center; justify-content:center; height:52px; padding:0 22px; border-radius:9999px; background:var(--gg-color-primary,#820DAB); color:#fff; text-decoration:none; font-weight:700; }
.faq-contact-btn:hover, .faq-contact-btn:focus-visible { background:#6D0B8D; }
@media (max-width:767px){ .faq-contact-col { order:1; } .faq-groups-col { order:2; } }
/* === END CONTACT PAGE === */

/* Footer */
.gg-site-footer { background:#000; padding:40px 0; }
.footer-inner { display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; }
.footer-nav ul { list-style:none; margin:0; padding:0; display:flex; gap:24px; }
.footer-nav a { color:#fff; font-size:14px; }

/* Accessibility focus */
:focus-visible { outline:3px solid var(--gg-color-accent); outline-offset:2px; }

/* Utilities */
.gg-card { position:relative; }

/* Animations */
.gg-fade-in { animation:ggFade .4s ease both; }
@keyframes ggFade { from { opacity:0; transform:translateY(8px);} to { opacity:1; transform:translateY(0);} }

/* Events loading state */
.gg-events.loading { opacity:.4; position:relative; }
.gg-events.loading:after { content:""; position:absolute; inset:0; background:repeating-linear-gradient(45deg,rgba(0,0,0,0.04) 0 10px, rgba(0,0,0,0.08) 10px 20px); animation:ggStripe 1s linear infinite; border-radius:12px; }
@keyframes ggStripe { from { background-position:0 0;} to { background-position:40px 0;} }

/* Focus ring unify */
.gg-chip:focus-visible, .gg-btn:focus-visible, .faq-trigger:focus-visible, .gg-burger:focus-visible, .gg-offcanvas-close:focus-visible { outline:3px solid var(--gg-color-accent); outline-offset:2px; }

/* Utility hidden (JS) */
.is-hidden { display:none !important; }

/* === WHY SECTION FINAL SPEC === */
.gg-why { /* inherits section padding 120/80 from .gg-section */ }
/* Person name under explainer */
.warum-mitmachen__person-name { margin-top: 1rem; font-weight: 700; font-size: 1.1rem; }
.gg-why .why-grid { display:grid; grid-template-columns:minmax(240px,360px) 1fr; align-items:center; gap:64px; position:relative; max-width:1200px; margin:0 auto; }
@media (max-width:1199px){ .gg-why .why-grid { gap:48px; grid-template-columns:minmax(220px,320px) 1fr; } }
@media (max-width:767px){ .gg-why .why-grid { grid-template-columns:1fr; gap:40px; } }
.gg-why .why-content { max-width:820px; }
.why-media { position:relative; width:100%; display:flex; justify-content:center; }
.why-circle { position:relative; border-radius:50%; overflow:hidden; background:var(--why-circle-fallback,#E5E5E5); transform:translateY(var(--why-circle-offset,-60px)); display:flex; align-items:center; justify-content:center; aspect-ratio:1/1; max-width:100%; }
.why-circle.has-shadow { box-shadow:0 16px 44px -18px rgba(0,0,0,0.16), 0 6px 18px -4px rgba(0,0,0,0.10); }
.why-circle-img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.why-circle-fallback { width:100%; height:100%; background:linear-gradient(135deg,#e7e7e7,#d9d9d9); }
/* Size variants (smaller) */
.why-grid.size-large .why-circle { width:clamp(400px,34vw,440px); }
.why-grid.size-medium .why-circle { width:clamp(320px,30vw,360px); }
.why-grid.size-small .why-circle { width:clamp(240px,26vw,280px); }
@media (max-width:1199px){ .why-grid.size-large .why-circle { width:clamp(340px,40vw,380px); } }
@media (max-width:767px){
  .why-grid.size-large .why-circle,
  .why-grid.size-medium .why-circle,
  .why-grid.size-small .why-circle { width:clamp(200px,68vw,300px); transform:translateY(0); }
  .gg-why .why-content { text-align:center; }
}
.circle-pos-right .why-media { order:2; }
.circle-pos-right .why-content { order:1; }
@media (max-width:767px){ .circle-pos-right .why-media, .circle-pos-right .why-content { order:initial; } }
/* Typography (reduced sizes) */
.why-kicker { font-size:24px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin:0 0 14px; color:#000; }
.why-statement-large { font-size:clamp(32px,4.6vw,48px); line-height:1.12; font-weight:800; margin:0 0 22px; color:#000; max-width:840px; }
.why-cta { margin:0 0 22px; }
.why-btn { background:#820DAB; color:#fff; font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:16px; height:56px; padding:0 28px; border-radius:9999px; display:inline-flex; align-items:center; justify-content:center; line-height:1; box-shadow:0 3px 14px -4px rgba(0,0,0,0.18); transition:background .2s ease, box-shadow .2s ease; text-decoration:none; width:auto; }
.why-btn:hover, .why-btn:focus { background:#6E0CA5; box-shadow:0 5px 18px -6px rgba(0,0,0,0.24); }
.why-explainer { font-size:17px; line-height:1.55; max-width:720px; margin:22px 0 0; color:#000; }
@media (max-width:767px){ .why-explainer { font-size:15.5px; } }
@media (max-width:767px){ .why-circle { box-shadow:0 10px 30px -12px rgba(0,0,0,0.18); } }
/* === END WHY SECTION FINAL SPEC (UPDATED) === */

/* CTA Pill final typography override */
.gg-btn.nav-cta { font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:16px; color:#000 !important; }
/* CTA pill static (no hover change, no underline) */
.gg-btn.nav-cta, .gg-btn.nav-cta:visited { text-decoration:none !important; }
.gg-btn.nav-cta:before { display:none !important; }
.gg-btn.nav-cta,
.gg-btn.nav-cta:hover,
.gg-btn.nav-cta:focus,
.gg-btn.nav-cta:active {
  background:#fff !important;
  color:#000 !important;
  box-shadow:0 4px 14px -6px rgba(0,0,0,0.25), 0 2px 6px -2px rgba(0,0,0,0.15) !important;
  text-decoration:none !important;
  transform:none !important;
}
/* Keep focus outline for accessibility */
.gg-btn.nav-cta:focus-visible { outline:3px solid var(--gg-color-accent); outline-offset:2px; }

/* --- FINAL MOBILE OVERRIDE: ensure stacking takes effect trotz späterer doppelter grid-regeln --- */
@media (max-width:991px){
  .gg-features-grid { display:flex !important; flex-direction:column; gap:32px !important; }
  .gg-features-grid > .gg-card.feature { height:auto !important; }
}
/* --- END FINAL MOBILE OVERRIDE --- */

/* Events collapse / fade */
.gg-events.is-collapsed { position:relative; }
.gg-events.is-collapsed > * { position:relative, z-index:1; }
.gg-events.is-collapsed::after { content:""; pointer-events:none; position:absolute; left:0; right:0; bottom:-16px; height:160px; background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.85) 55%, #fff 90%); border-bottom-left-radius:24px; border-bottom-right-radius:24px; z-index:2; }
.gg-events-toggle-wrap { margin-top:40px; }
.gg-events-toggle-btn { background:var(--gg-color-primary,#820DAB); color:#fff; border:none; font-weight:600; font-family:'Montserrat','Inter',sans-serif; font-size:15px; padding:12px 28px; border-radius:9999px; cursor:pointer; display:inline-flex; align-items:center; gap:8px; box-shadow:0 4px 18px -6px rgba(0,0,0,0.25); transition:background .2s ease, box-shadow .2s ease; }
.gg-events-toggle-btn:hover, .gg-events-toggle-btn:focus-visible { background:#6d0b8d; }
.gg-events [data-region-item].is-hidden { display:none !important; }

/* === IMAGE BAND (Statement) === */
.gg-image-band { position:relative; width:100%; color:var(--band-text-color,#fff); min-height:556px; display:flex; /* added flex to allow bottom alignment */ }
@media (max-width:991px){ .gg-image-band { min-height:480px; } }
@media (max-width:767px){ .gg-image-band { min-height:420px; } }
.gg-image-band::before { content:""; position:absolute; inset:0; background:var(--band-overlay,rgba(0,0,0,.55)); z-index:1; }
/* Updated defaults: weniger Top-Padding, Content wandert näher nach unten */
.gg-image-band-inner { /* updated default top padding to 300px */
  position:relative; z-index:2; min-height:100%; height:100%; display:flex; flex:1 1 auto; flex-direction:column; justify-content:flex-end; padding:var(--image-band-pad-top,300px) 0 var(--image-band-pad-bottom,110px); box-sizing:border-box; }
/* Modifier aktualisiert: jetzt wirklich weniger Top-Abstand */
.gg-image-band.lower .gg-image-band-inner,
.gg-image-band.is-bottom .gg-image-band-inner { --image-band-pad-top:0; --image-band-pad-bottom:64px; }
@media (max-width:991px){ .gg-image-band-inner { padding:var(--image-band-pad-top,96px) 0 var(--image-band-pad-bottom,96px); } }
@media (max-width:767px){ .gg-image-band-inner { padding:var(--image-band-pad-top,80px) 0 var(--image-band-pad-bottom,80px); } }
.gg-image-band-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px; align-items:center; }
@media (max-width:1199px){ .gg-image-band-grid { gap:56px; } }
@media (max-width:991px){ .gg-image-band-grid { gap:48px; } }
@media (max-width:767px){ .gg-image-band-grid { grid-template-columns:1fr; gap:48px; } }
.band-left-title { /* updated: uppercase instead of small-caps */
  font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:24px; line-height:1; margin:0 0 20px; text-transform:uppercase; letter-spacing:.5px; color:var(--band-text-color,#fff);
}
.band-left-text { /* updated weight and line-height */
  font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-size:16px; line-height:1.3; color:var(--band-text-color,#fff);
}
.band-left-text p { margin:0 0 18px; }
.band-left-text p:last-child { margin-bottom:0; }
.band-statement { font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:36px; line-height:1; color:var(--band-text-color,#fff); }
.band-statement p { margin:0 0 28px; }
.band-statement p:last-child { margin-bottom:0; }
/* Fine tune mobile spacing */
@media (max-width:767px){ .band-left-title { margin-bottom:16px; } .band-statement { font-size:32px; } }
/* Visually hidden container for accessibility image if needed */
.band-visually-hidden { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); border:0; }
/* === END IMAGE BAND === */

/* === CONTACT PAGE === */
.contact-page { --gg-gap-hero:64px; }
.contact-hero { background: var(--gg-color-primary-tint,#F3E6FA); padding:64px 0 88px; }
@media (max-width:1199px){ .contact-hero { padding:56px 0 80px; } }
@media (max-width:767px){ .contact-hero { padding:48px 0 72px; } }

.contact-grid { display:grid; grid-template-columns: minmax(320px,1fr) minmax(280px,0.9fr); gap: clamp(48px,6vw,72px); align-items:center; }
@media (max-width:1023px){ .contact-grid { grid-template-columns:1fr; } }

/* Left column */
.contact-h1 { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:clamp(40px,6vw,64px); line-height:1.05; margin:0 0 16px; color:#000; }
.contact-subtitle { font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:clamp(22px,3vw,32px); line-height:1.18; margin:0 0 28px; color:#000; }
.contact-intro { font-size:17px; line-height:1.55; margin:0 0 24px; color:#000; }

.gg-contact-form { max-width:720px; }
.gg-contact-form .form-field { margin:0 0 18px; }
.gg-contact-form label { display:block; font-weight:600; margin:0 0 8px; }
.gg-contact-form input[type="email"],
.gg-contact-form textarea { width:100%; background:#fff; color:#000; border:1px solid rgba(0,0,0,0.08); border-radius:18px; font-size:16.5px; transition:border-color .15s ease, box-shadow .15s ease; box-sizing:border-box; }
.gg-contact-form input[type="email"] { height:60px; padding:0 22px; }
.gg-contact-form textarea { min-height:188px; padding:16px 20px; resize:vertical; }
.gg-contact-form input[type="email"]:focus,
.gg-contact-form textarea:focus { outline:2px solid var(--gg-color-primary,#820DAB); outline-offset:2px; }

/* Consent row */
.form-consent { display:flex; align-items:flex-start; gap:12px; margin:12px 0 8px; max-width:780px; }
.form-consent input[type="checkbox"] { width:20px; height:20px; margin-top:3px; }
.form-consent .consent-label { font-size:15.5px; line-height:1.42; }
/* Updated consent label typography and underline */
.join-form .consent-label {
  font-family:'Montserrat','Inter',sans-serif;
  font-weight:400;
  font-style:normal;
  font-size:16px;
  line-height:1; /* 100% */
  letter-spacing:0;
  text-decoration-style:solid;
  text-decoration-thickness:0;
  text-underline-offset:0;
  text-decoration-skip-ink:auto;
}

/* Submit button */
.gg-btn.contact-submit { background:var(--gg-color-primary,#820DAB); color:#fff; border:none; font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:16.5px; height:60px; padding:0 28px; border-radius:9999px; display:inline-flex; align-items:center; justify-content:center; line-height:1; width:auto; margin-top:12px; box-shadow:none; cursor:pointer; transition:background .2s ease, transform .02s ease; }
.gg-btn.contact-submit:hover, .gg-btn.contact-submit:focus-visible { background:#6D0B8D; }
.gg-btn.contact-submit:active { transform:translateY(1px); }
.gg-btn.contact-submit:disabled { opacity:.6; cursor:not-allowed; }

/* Alerts */
.gg-alert { border-radius:12px; padding:12px 16px; font-size:14.5px; margin:8px 0 16px; }
.gg-alert.success { background:var(--gg-color-accent-tint,#EEF5C9); color:#1b3a1b; border:1px solid rgba(0,0,0,0.04); }
/* Success alert typography on Mitmachen */
.join-right .gg-alert.success {
  font-family:'Montserrat','Inter',sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1; /* 100% */
  letter-spacing:0;
}

/* Right column media */
.contact-hero-media { position:relative; width:100%; min-height:300px; display:flex; align-items:center; justify-content:center; }
.contact-hero-media .circle-main { position:relative; width:clamp(360px,42vw,560px); aspect-ratio:1/1; border-radius:50%; overflow:hidden; background:#E5E5E5; }
.contact-hero-media .circle-small { width:clamp(180px,22vw,240px); aspect-ratio:1/1; border-radius:50%; overflow:hidden; background:#E5E5E5; }
.contact-hero-media.has-overlap .circle-small { position:absolute; top:-10%; right:-4%; box-shadow:0 14px 34px -14px rgba(0,0,0,0.25); }
.contact-hero-media.no-overlap { flex-direction:column; gap:20px; }
.contact-hero-media .circle-img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }

@media (max-width:1199px){ .contact-hero-media .circle-main { width:clamp(320px,48vw,480px); } }
@media (max-width:1023px){ .contact-col-right { order:2; } .contact-col-left { order:1; } .contact-hero-media { margin-top:24px; } }
@media (max-width:767px){ .contact-hero-media .circle-main { width:clamp(220px,72vw,360px); } .contact-hero-media .circle-small { width:clamp(140px,36vw,200px); top:-12%; right:-6%; } }

/* Lower mail section */
.contact-mail-section { background:#fff; padding:56px 0 72px; }
.mail-title { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:clamp(24px,3.2vw,34px); letter-spacing:.5px; text-transform:uppercase; margin:0 0 28px; color:#000; }
.mail-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,4vw,48px); }
@media (max-width:767px){ .mail-grid { grid-template-columns:1fr; } }
.mail-card .mail-text { font-size:16.5px; line-height:1.55; margin:0 0 18px; color:#000; }
.mail-action { margin:18px 0 0; }
.mail-pill { background:#fff; color:var(--gg-color-primary,#820DAB); border:2px solid var(--gg-color-primary,#820DAB); text-decoration:none; border-radius:9999px; height:54px; padding:0 28px; display:inline-flex; align-items:center; justify-content:center; font-family:'Montserrat','Inter',sans-serif; font-weight:600; font-size:16px; box-shadow:inset 0 0 0 0 rgba(0,0,0,0); transition:background .15s ease, color .15s ease, box-shadow .2s ease; max-width:100%; box-sizing:border-box; overflow-wrap:anywhere; }
.mail-pill:hover, .mail-pill:focus-visible { background:#F9F1FC; box-shadow:0 3px 12px -6px rgba(0,0,0,0.2); }

/* Mobile full width option */
@media (max-width:767px){
  .contact-mail-section[data-fw-mobile="1"] .mail-pill { width:100%; max-width:420px; margin:0 auto; }
}

/* Force full width on small screens to avoid overflow regardless of data attribute */
@media (max-width:767px){
  .mail-pill {
    display:flex; /* override inline-flex so width applies */
    width:100%;
    height:auto; /* allow multi-line */
    min-height:54px; /* keep minimum tap target */
    padding:12px 20px; /* reduce side padding a bit on small screens */
    text-align:center;
    white-space:normal; /* allow wrapping */
  }
}

/* Utility to remove top/bottom padding when sections should touch */
.no-gap-vertical { padding-top:0 !important; padding-bottom:0 !important; }
/* Ensure the problem visual matches the left column height by allowing it to stretch */
.ueber-problem .ueber-grid { align-items:stretch; }
.problem-right, .problem-visual { height:100%; }

/* Utility: visually hidden (for honeypot wrappers etc.) */
.is-visually-hidden { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0, 0, 0, 0) !important; white-space:nowrap !important; border:0 !important; }
/* === END CONTACT PAGE === */

/* Default page container top spacing (matches Kontakt */
.page-container { padding-top:64px; }
@media (max-width:1199px){ .page-container { padding-top:56px; } }
@media (max-width:767px){ .page-container { padding-top:48px; } }

.page-title {
  margin: 0 0 16px;
}

/* === MITMACHEN (Join) PAGE === */
.join-top { padding-top:0; }
@media (max-width: 767px) {
    .join-top {
        padding-top: 96px;
    }
}
.join-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1fr) 490px; gap:48px; align-items:center; }
@media (max-width:1199px){ .join-grid { grid-template-columns:minmax(0,1fr) 380px; gap:40px; } }
@media (max-width:991px){ .join-grid { grid-template-columns:1fr; } }
.join-title { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:clamp(40px,6vw,67px); line-height:1.0; letter-spacing:0; color:#000; margin:0 0 16px; }
.join-intro { font-size:18px; line-height:1.6; color:#000; max-width:80%; margin:0 0 24px; }
@media (max-width:767px){ .join-intro { max-width:100%; } }

/* Accordions (shared for tasks + bottom FAQ) */
.join-accordion { display:block; border-top:1px solid #C8DA2C; background:#fff; max-width: 392px; }
.join-accordion .acc-item { border-top:1px solid #C8DA2C; background:#fff; transition:background-color .18s ease; }
.join-accordion .acc-item:hover { background:#F8F8F8; }
.acc-trigger { width:100%; text-align:left; background:transparent; border:none; padding:16px 8px; font-size:18px; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-weight:600; color:#000; }
.acc-trigger:focus-visible { outline:3px solid var(--gg-color-accent); outline-offset:2px; }
.acc-panel { padding:0 8px 24px 8px; font-size:16px; max-height:0; overflow:hidden; transition:max-height 0.24s ease; }
.acc-panel.is-open { max-height:800px; }
.acc-trigger[aria-expanded='true'] .chevron::before { transform:rotate(-135deg); }

/* Right column form card */
.join-right { background:#F9F6F4; --join-btn-bg:#9C27B0; }
.join-form-card { padding:60px; padding-top: 150px; padding-bottom: 150px; }
@media (max-width:767px){ .join-form-card { padding:36px; } }
/* Title “Dein Einstieg” updated per spec */
.join-form-title { font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-style:normal; font-size:36px; line-height:1; letter-spacing:0; color:#000; margin:0 0 12px; }
/* Text under title updated per spec */
.join-form-desc { font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-style:normal; font-size:16px; line-height:1; letter-spacing:0; color:#000; margin:0 0 18px; }
/* Fields: pill layout per spec */
.join-form .form-field { margin:0 0 16px; }
.join-form label { display:block; font-weight:600; margin:0 0 6px; }
.join-form input[type="text"],
.join-form input[type="email"],
.join-form input[type="tel"],
.join-form input[type="number"] { width:100%; max-width:391px; box-sizing:border-box; border:1px solid rgba(0,0,0,0.12); border-radius:50px; height:52px; padding:0 40px; font-size:16px; }
.join-form textarea { width:100%; box-sizing:border-box; border:1px solid rgba(0,0,0,0.12); border-radius:16px; padding:16px 20px; font-size:16px; }
@media (max-width:767px){
  .join-form input[type="text"],
  .join-form input[type="email"],
  .join-form input[type="tel"],
  .join-form input[type="number"] { max-width:100%; }
}
.join-form .form-consent { display:flex; align-items:flex-start; gap:10px; margin:8px 0 16px; }
/* Submit button: layout per spec */
.join-submit { background:var(--join-btn-bg,#9C27B0); color:#fff; border:none; border-radius:54px; width:100%; max-width:392px; height:56px; padding:19px 20px; font-weight:700; font-family:'Montserrat','Inter',sans-serif; font-size:16px; cursor:pointer; transition:filter .18s ease, background .18s ease; display:inline-flex; align-items:center; justify-content:center; gap:10px; }
.join-submit:hover, .join-submit:focus-visible { filter:brightness(.92); }

/* Middle full-width image */
.join-middle { margin-top:0; }
.join-middle-figure { margin:0; height:324px; max-height:324px; overflow:hidden; }
.join-middle-img { display:block; width:100%; height:100%; object-fit:cover; }
.join-middle-caption { font-size:14px; color:#000; line-height:1.5; max-width:1200px; margin:12px auto 0; }
.join-middle-placeholder { width:100%; height:324px; background:#eee; }

/* Bottom FAQ */
.join-faq { padding:72px 0 0; }
.join-faq-title { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:clamp(40px,5.2vw,67px); line-height:1.05; color:#000; margin:0 0 24px; }
/* Reuse .join-accordion visuals for FAQ list */
/* === END MITMACHEN PAGE === */

/* === UEBER (About) PAGE === */
.bg-tint { background: var(--ueber-bg, #F4F1EF); }

/* Typography */
.gg-title { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-style:normal; font-size:67px; line-height:1; letter-spacing:0; margin:0; color:#000; }
.gg-subtitle { font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-style:normal; font-size:36px; line-height:1; letter-spacing:0; margin:8px 0 0; color:#000; }
.gg-copy { font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-style:normal; font-size:16px; line-height: 1.4rem; letter-spacing:0; color:#000; }

/* Layout */
.ueber-page .ueber-intro { background:#FFFFFF !important; }
.ueber-page .ueber-intro { padding: clamp(72px, 8vw, 96px) 0 clamp(56px, 6vw, 72px); }
.ueber-page .ueber-map { padding-top: 2rem; }
/* Ensure a uniform outer width on Über page */
.ueber-page .gg-container { max-width:1440px; margin:0 auto; }
/* Inner grids should span the container without their own caps */
.ueber-grid { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(48px, 6vw, 64px); align-items:center; width:100%; margin:0 auto; }
.ueber-grid .left, .ueber-grid .right { min-width:0; }
.ueber-grid .left { }

/* Hero – full-bleed background image, no overlay, no text */
.ueber-hero { margin-top:-100px; height: clamp(380px, 50vh, 560px); background-size:cover; background-position:center; background-repeat:no-repeat; }
@media (max-width:991px){ .ueber-hero { height: clamp(320px, 46vh, 480px); } }
@media (max-width:767px){ .ueber-hero { height: clamp(260px, 42vh, 420px); } }

/* Map block */
.ueber-map-title { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:24px; line-height:1; text-transform:uppercase; letter-spacing:.5px; margin:0 0 12px; color:#000; }
.ueber-map-text { font-size:16px; color:#000; line-height: 1.4rem; font-family: 'Montserrat', 'Inter', sans-serif; font-weight: 400; font-style: normal; }
.map-wrap svg { max-width:100% !important; width:100%; height:auto; margin:0; }

/* Responsive: stack under 1024px */
@media (max-width:1023px){
  .ueber-grid { grid-template-columns:1fr; gap:28px; }
  .gg-title { font-size:56px; }
  .gg-subtitle { font-size:32px; }
}
@media (max-width:767px){
  .gg-title { font-size:48px; }
  .gg-subtitle { font-size:28px; }
}
/* --- Problem Section Refined Styles --- */
.ueber-problem { background:#FFFFFF; }
.problem-left { display:flex; flex-direction:column; justify-content:center; }
.problem-kicker { font-family:'Montserrat',sans-serif; font-weight:800; font-size:24px; line-height:1; letter-spacing:0; font-variant:small-caps; margin:0 0 24px; }
.problem-title { font-family:'Montserrat',sans-serif; font-weight:700; font-size:36px; line-height:1; letter-spacing:0; margin:0 0 20px; color:#000; }
.problem-text { font-family:'Montserrat',sans-serif; font-weight:400; font-size:16px; line-height:1.6; letter-spacing:0; color:#1a1a1a; max-width:520px; }
.problem-text p { margin:0 0 20px; }
.problem-text p:last-child { margin-bottom:0; }
.problem-right { position:relative; }
.problem-visual { position:relative; width:100%; min-height:440px; display:flex; align-items:center; justify-content:flex-start; /* background:#ccc center/cover no-repeat; */ background-color:#ccc; background-repeat:no-repeat; background-position: var(--prob-pos-x, center) var(--prob-pos-y, center); background-size: var(--prob-zoom, cover); }
/* On small screens, allow a separate mobile zoom if provided */
@media (max-width:767px){
  .problem-visual { background-size: var(--prob-zoom-mobile, var(--prob-zoom, cover)); }
}
.overlay-content { position:relative; padding:0 0 0 88px; width:100%; max-width:100%; display:flex; flex-direction:column; justify-content:center; }
.top-value, .bottom-value { display:flex; flex-direction:column; align-items:flex-start; }
.number.big { font-family:'Montserrat',sans-serif; font-weight:800; font-size:64px; line-height:1; color:#fff; margin:0 0 8px; }
.label.top-label { font-family:'Montserrat',sans-serif; font-weight:600; font-size:16px; line-height:1.4; color:#fff; }
.bar-wrap { display:flex; width:80%; height:40px; margin:24px 0; border-radius:4px; overflow:hidden; background:#fff; position:relative; }
.bar { height:100%; }
.bar-green { flex:0 0 15%; background:#C7DA43; }
.bar-white { flex:1; background:#FFFFFF; }
.number.small { font-family:'Montserrat',sans-serif; font-weight:800; font-size:56px; line-height:1; color:#C7DA43; margin:0 0 8px; }
.label.bottom-label { font-family:'Montserrat',sans-serif; font-weight:600; font-size:16px; line-height:1.4; color:#C7DA43; }
@media (max-width:1199px){ .overlay-content { padding-left:72px; } }
@media (max-width:1023px){
  .ueber-problem .ueber-grid { grid-template-columns:1fr !important; }
  .problem-visual { min-height:420px; }
  .overlay-content { padding:56px 40px; align-items:center; text-align:center; }
  .top-value, .bottom-value { align-items:center; }
  .bar-wrap { width:86%; height:34px; }
  .number.big { font-size:56px; }
  .number.small { font-size:48px; }
}
@media (max-width:767px){
  .problem-visual { min-height:380px; }
  .overlay-content { padding:48px 32px; }
  .bar-wrap { height:28px; }
  .number.big { font-size:48px; }
  .number.small { font-size:40px; }
}
/* --- End Problem Section Refined Styles --- */

/* === UEBER PAGE EXTENDED SECTIONS === */
.ueber-problem .section-kicker { font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:13px; letter-spacing:.8px; text-transform:uppercase; margin:0 0 12px; color:#000; }
.ueber-problem .section-title { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:clamp(40px,5vw,56px); line-height:1.05; margin:0 0 24px; color:#000; }
.ueber-problem .section-text { font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-size:16px; line-height:1.5; color:#000; }
.problem-image { position:relative; width:100%; min-height:340px; background:#f2f2f2 center/cover no-repeat; border-radius:4px; overflow:hidden; }
.problem-overlay { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:space-between; padding:28px clamp(24px,4vw,40px); pointer-events:none; z-index:1; }
.problem-overlay .overlay-line { font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:16px; line-height:1.2; color:#000; margin:0; max-width:420px; }
.problem-bar { position:relative; height:34px; margin:18px 0; width:100%; max-width:420px; }
.problem-bar .bar-bg, .problem-bar .bar-fill { position:absolute; inset:0; border-radius:4px; }
.problem-bar .bar-bg { background:#FFFFFF; box-shadow:0 0 0 1px rgba(0,0,0,0.08) inset; }
.problem-bar .bar-fill { background:#C8DA2C; width:55%; }
@media (max-width:1023px){ .problem-image { order:2; min-height:300px; } .ueber-problem .left { order:1; } .problem-overlay { padding:20px 24px; } }

/* Impact section */
.ueber-impact .section-title { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:clamp(36px,4.6vw,52px); line-height:1.05; margin:0 0 24px; color:#000; }
.impact-accordion .acc-item { border-bottom:1px solid rgba(199,218,67,0.4); }
.impact-number-block { margin:40px 0 0; }
.impact-number { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:clamp(48px,6vw,72px); line-height:1; margin:0 0 12px; color:#000; }
.impact-note { font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-size:16px; line-height:1.5; color:#000; }

/* Solutions section */
.ueber-solutions .solutions-image { min-height:600px !important; height:600px !important; background-size:cover; background-position:center; background-repeat:no-repeat; border-radius:0; }
.ueber-solutions.gg-section { padding-top:0 !important; padding-bottom:0 !important; }
.ueber-solutions .ueber-grid { align-items:start; gap:80px; }
.ueber-solutions .impact-accordion .acc-item { border-bottom:1px solid #C7DA43; padding:12px 0; }
/* Removed: .ueber-solutions .impact-accordion .acc-item:first-child { border-top:1px solid #C7DA43; } */
.ueber-solutions .section-title { font-family:'Montserrat',sans-serif; font-weight:800; font-size:42px; line-height:1.1; text-transform:uppercase; letter-spacing:0; margin:0 0 32px; color:#000; }
@media (max-width:1023px){
  .ueber-solutions .solutions-image { height:520px !important; min-height:520px !important; }
  .ueber-solutions .ueber-grid { gap:48px; }
}
@media (max-width:767px){
  .ueber-solutions .solutions-image { height:420px !important; min-height:420px !important; }
}

/* Goals */
.ueber-goals .section-title { font-family:'Montserrat','Inter',sans-serif; font-weight:800; font-size:clamp(40px,5vw,60px); line-height:1.05; margin:0 0 40px; color:#000; }
.goals-grid { display:grid; gap:40px; grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:1023px){ .goals-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767px){ .goals-grid { grid-template-columns:1fr; } }
.goal-item { background:#FFFFFF; padding:8px 0; }
.goal-title { font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:20px; margin:0 0 12px; }
.goal-text { font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-size:16px; line-height:1.5; }
/* Ensure Ziele section aligns exactly like others */
.ueber-goals .gg-container { max-width:1440px; margin:0 auto; }
/* Reuse problem kicker/title spacing within goals left column */
.ueber-goals .left .problem-kicker { margin-bottom:24px; }
.ueber-goals .left .problem-title { margin-bottom:32px; }
/* === END UEBER PAGE EXTENDED SECTIONS === */

/* === UEBER – Impact (Folgen) section three-column layout – FINAL TUNING === */
.impact-section { background:#fff; padding:120px 0; }
/* Centered inner container with site-wide padding coming from .gg-container; avoid double padding here */
.impact-layout { display:grid; grid-template-columns: 0.35fr 0.4fr 0.25fr; align-items:center; gap: clamp(60px, 5vw, 80px); max-width:1200px; margin:0 auto; /* removed internal padding to keep same container width */ }
/* Columns */
.impact-col { min-width:0; display:flex; flex-direction:column; justify-content:center; }
.impact-col.left { flex:0 0 35%; }
.impact-col.middle { flex:0 0 40%; }
.impact-col.right { flex:0 0 25%; }
/* Headline */
.impact-headline { font-family:'Montserrat',sans-serif; font-weight:800; font-size:24px; line-height:1; letter-spacing:0; font-variant:small-caps; text-transform:none; color:#000; margin:0; max-width:100%; }
/* Accordion visuals per design (green separators) */
.impact-accordion .acc-item { border-bottom:1px solid #C7DA43; padding:12px 0; }
/* Removed duplicate: .impact-accordion .acc-item:first-child { border-top:1px solid #C7DA43; } */
.impact-accordion .acc-trigger { padding:0; font-family:'Montserrat',sans-serif; font-weight:700; font-size:18px; line-height:1.3; color:#111; }
.impact-accordion .acc-trigger:hover .acc-text { color:#000; }
.impact-accordion .acc-panel { padding:12px 0 0; }
.impact-accordion .acc-panel-inner { font-family:'Montserrat',sans-serif; font-weight:400; font-size:16px; line-height:1.5; color:#1a1a1a; }
.impact-number-box { display:flex; flex-direction:column; justify-content:center; }
.impact-number-box .big-number { font-family:'Montserrat',sans-serif; font-weight:800; font-size:72px; line-height:1; color:#000; margin:0 0 8px; }
.impact-number-box .subtext { font-family:'Montserrat',sans-serif; font-weight:700; font-size:18px; line-height:1.3; margin:0 0 8px; color:#000; }
.impact-number-box .paragraph { font-family:'Montserrat',sans-serif; font-weight:400; font-size:16px; line-height:1.5; color:#1a1a1a; max-width:320px; }
/* Responsive stacking */
@media (max-width:1023px){
  .impact-section { padding:60px 0; }
  .impact-layout { grid-template-columns:1fr; gap:48px; }
  .impact-col.left { order:1; }
  .impact-col.middle { order:2; }
  .impact-col.right { order:3; }
  .impact-headline { font-size:clamp(28px,5vw,42px); max-width:100%; }
}
/* Folgen (Bodenversiegelung) two-column layout */
.section-folgen.impact-section { padding:120px 0; background:#FFFFFF; }
/* Update grid wrappers to span full container width and avoid inner caps */
.section-folgen .container { display:flex; justify-content:space-between; align-items:flex-start; gap:80px; }
.section-folgen .left-col { flex:0 0 65%; min-width:0; }
.section-folgen .right-col { flex:0 0 35%; min-width:0; }
.section-folgen .left-col > h2 { font-family:'Montserrat',sans-serif; font-weight:800; font-size:42px; line-height:1.1; text-transform:uppercase; margin:0 0 32px; color:#000; }
.section-folgen .impact-accordion .acc-item { border-bottom:1px solid #C7DA43; padding:12px 0; }
/* Removed: .section-folgen .impact-accordion .acc-item:first-child { border-top:1px solid #C7DA43; } */
.section-folgen .impact-accordion .acc-trigger { padding:0; font-family:'Montserrat',sans-serif; font-weight:700; font-size:18px; line-height:1.3; color:#111; }
.section-folgen .impact-accordion .acc-trigger:hover .acc-text { color:#000; }
.section-folgen .impact-accordion .acc-panel { padding:12px 0 0; }
.section-folgen .impact-accordion .acc-panel-inner { font-family:'Montserrat',sans-serif; font-weight:400; font-size:16px; line-height:1.5; color:#1a1a1a; }
.section-folgen .impact-number-box .big-number { font-family:'Montserrat',sans-serif; font-weight:800; font-size:72px; line-height:1; color:#000; margin:0 0 8px; }
.section-folgen .impact-number-box .subtext { font-family:'Montserrat',sans-serif; font-weight:700; font-size:18px; line-height:1.3; margin:0 0 8px; color:#000; }
.section-folgen .impact-number-box .paragraph { font-family:'Montserrat',sans-serif; font-weight:400; font-size:16px; line-height:1.5; color:#1a1a1a; max-width:320px; }
@media (max-width:1023px){
  .section-folgen.impact-section { padding:60px 0; }
  .section-folgen .container { flex-direction:column; gap:48px; }
  .section-folgen .left-col, .section-folgen .right-col { flex:1 1 100%; max-width:100%; }
  .section-folgen .left-col > h2 { font-size:clamp(28px,5vw,42px); text-align:left; }
  .section-folgen .impact-number-box { text-align:left; }
}

/* Folgen grid (two-column) to enforce internal max-width without affecting outer container */
.folgen-grid { display:flex; justify-content:space-between; align-items:flex-start; gap:80px; width:100%; margin:0 auto; }
@media (max-width:1023px){ .folgen-grid { flex-direction:column; gap:48px; } }
/* Ensure the Folgen section container aligns with the 1440px page width */
.ueber-page .section-folgen .gg-container { max-width:1440px; margin:0 auto; }

/* === Folgen (Bodenversiegelung) equal columns + centered number box (override) === */
.folgen-grid { align-items:stretch; }
.section-folgen .left-col,
.section-folgen .right-col { flex:1 1 0 !important; min-width:0; }
/* Center the number and its text within the right column */
.section-folgen .right-col { display:flex; justify-content:center; }
.section-folgen .impact-number-box { text-align:center !important; display:flex; flex-direction:column; align-items:center; margin:0 auto; }
.section-folgen .impact-number-box .big-number,
.section-folgen .impact-number-box .subtext,
.section-folgen .impact-number-box .paragraph { text-align:center; }
/* === End Folgen overrides === */

/* === FINAL OVERRIDES (Folgen & Lösungen adjustments) === */
/* Smaller headings (24px) for Folgen and Lösungen */
.section-folgen .left-col > h2 { font-size:24px !important; line-height:1.15; }
.ueber-solutions .section-title { font-size:24px !important; line-height:1.15; }
/* Taller solutions image */
.ueber-solutions .solutions-image { height:720px !important; min-height:720px !important; }
/* Vertically center right column content relative to image */
.ueber-solutions .ueber-grid { align-items:stretch !important; }
.ueber-solutions .right { display:flex; flex-direction:column; justify-content:center; }
/* Ensure no unintended top offset on solutions left column */
.ueber-solutions .left { margin-top:0 !important; }
/* === END FINAL OVERRIDES === */

/* === METHODS SECTION: three columns with big numbers, titles, text, CTA === */
.ueber-methods { background:#fff; }
.ueber-methods .gg-container { max-width:1440px; margin:0 auto; }
.methods-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap: clamp(40px, 4vw, 60px); align-items:stretch; width:100%; box-sizing:border-box; }
@media (max-width:1023px){ .methods-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767px){ .methods-grid { grid-template-columns:1fr; row-gap:clamp(60px,8vw,80px); } }
.method-item { display:flex; flex-direction:column; align-items:stretch; min-height:100%; max-width:100%; }
/* Decorative number */
.method-num { display:block; text-align:left; font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:clamp(90px,10vw,126px); line-height:1; letter-spacing:0; color:var(--feature-number-color,#EEF5C9); margin:0 0 20px; }
@media (max-width:767px){
  .method-num { font-size:clamp(56px,18vw,90px); }
  .method-title { font-size:28px; }
}
/* Title under number */
.method-title { font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:36px; line-height:1.1; color:#222; margin:0 0 14px; text-align:left; }
/* Body copy */
.method-text { font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-size:16px; line-height:1.6; color:#222; margin:0; }
.method-text p { margin:0 0 20px; }
.method-text p:last-child { margin-bottom:0; }
/* CTA wrapper sticks to bottom for equal bottoms */
.method-cta { margin-top: clamp(20px, 2.4vw, 28px); }
/* Full-width pill button for column 1 */
.method-btn { display:inline-flex; width:100%; justify-content:center; align-items:center; background:#820DAB; color:#fff; border:none; border-radius:50px; padding:18px 24px; font-family:'Montserrat','Inter',sans-serif; font-weight:600; font-size:16px; line-height:1; text-decoration:none; box-shadow:0 3px 10px -6px rgba(0,0,0,0.25); transition:filter .18s ease, box-shadow .2s ease, background .18s ease; }
.method-btn:hover, .method-btn:focus-visible { filter:brightness(1.04); box-shadow:0 6px 18px -8px rgba(0,0,0,0.28); }
/* Underlined text links for columns 2 and 3 */
.method-link { display:inline-block; width:100%; text-decoration:underline; text-underline-offset:3px; color:#222; font-family:'Montserrat','Inter',sans-serif; font-weight:600; font-size:16px; line-height:1.2; padding:4px 0; transition:color .15s ease; }
.method-link:hover, .method-link:focus-visible { color:#820DAB; }

/* Wortumbruch & Hyphenation für sehr lange Wörter in Methoden-Columns */
.ueber-methods .method-title,
.ueber-methods .method-text,
.ueber-methods .method-text p,
.ueber-methods .method-link,
.ueber-methods .method-btn {
  overflow-wrap:anywhere; /* erlaubt Umbruch an beliebigen Stellen falls nötig */
  word-break:break-word; /* Fallback für ältere Browser */
  hyphens:auto; /* automatische Silbentrennung basierend auf lang-Attribut */
}

/* === STRATEGY SECTION (restored) === */
.content-grid.strategy-grid { display:grid; grid-template-columns:363px minmax(0,1fr); column-gap:80px; align-items:start; }
.strategy-intro { max-width:363px; }
.strategy-intro .strategy-text { font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-size:16px; line-height:1.6; color:#1a1a1a; margin-top:0; }
/* Ensure first (and all) paragraphs inside strategy text start flush at top */
.strategy-text p { margin-top:0; }
/* Removed redundant chevron styles, unified under .faq-caret */
.strategy-accordion { width:100%; }
.strategy-accordion .acc-item { border-bottom:1px solid #C7DA43; padding:12px 0; }
/* Removed: .strategy-accordion .acc-item:first-child { border-top:1px solid #C7DA43; } */
.strategy-accordion .acc-trigger { padding:0; font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-size:18px; line-height:1.3; color:#111; display:flex; align-items:center; justify-content:space-between; background:transparent; border:none; text-align:left; width:100%; }
.strategy-accordion .acc-trigger:hover .acc-text { color:#000; }
.strategy-accordion .acc-panel { padding:12px 0 0; }
.strategy-accordion .acc-panel-inner { font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-size:16px; line-height:1.5; color:#1a1a1a; }
@media (max-width:1023px){ .content-grid.strategy-grid { grid-template-columns:1fr; row-gap:24px; } .strategy-intro { max-width:100%; } }
/* === END STRATEGY SECTION === */

/* === UEBER page spacing tweaks: Ziele & Strategie no bottom padding === */
.ueber-goals.gg-section,
.ueber-strategy.gg-section { padding-bottom: 0 !important; }

/* Compact spacing overrides for Über-page accordions (prevent inflated gaps from generic gg-accordion) */
.impact-accordion .acc-trigger,
.solutions-accordion .acc-trigger,
.strategy-accordion .acc-trigger { padding:0 !important; }
.impact-accordion .acc-item,
.solutions-accordion .acc-item,
.strategy-accordion .acc-item { padding:10px 0 !important; }
.impact-accordion .acc-panel,
.solutions-accordion .acc-panel,
.strategy-accordion .acc-panel { padding:8px 0 0 !important; }
/* Ensure chevron vertical alignment after removing inner padding */
.impact-accordion .acc-trigger .chevron,
.solutions-accordion .acc-trigger .chevron,
.strategy-accordion .acc-trigger .chevron { margin-left:16px; }

/* Uniform chevron sizing for all accordions (FAQ + Impact + Solutions + Strategy + Methods) */
.acc-trigger .acc-text, .faq-trigger .acc-text { flex:1 1 auto; }
.acc-trigger .chevron, .faq-trigger .chevron { flex:0 0 18px; width:18px; height:18px; min-width:18px; min-height:18px; display:inline-flex; align-items:center; justify-content:center; }
@media (max-width:767px){
  .acc-trigger .chevron, .faq-trigger .chevron { width:18px !important; height:18px !important; }
}

/* Final override safety to ensure no top border sneaks in */
.impact-accordion .acc-item:first-child,
.ueber-solutions .impact-accordion .acc-item:first-child,
.section-folgen .impact-accordion .acc-item:first-child,
.strategy-accordion .acc-item:first-child { border-top:none !important; }

/* === UNIFIED ACCORDION BASE (gg-accordion) === */
.gg-accordion .acc-item, .gg-accordion .faq-item { margin:0; }
.gg-accordion .acc-trigger, .gg-accordion .faq-trigger { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; background:transparent; border:none; padding:16px 8px; font-size:18px; font-weight:600; font-family:'Montserrat','Inter',sans-serif; cursor:pointer; text-align:left; color:#111; }
.gg-accordion .acc-trigger:hover .acc-text, .gg-accordion .faq-trigger:hover .faq-question-text { color:#000; }
.gg-accordion .acc-panel, .gg-accordion .faq-panel { padding:0 8px 24px 8px; }
/* Caret unify to same arrow style */
.faq-caret { width:18px; height:18px; position:relative; display:inline-flex; align-items:center; justify-content:center; }
.faq-caret::before { content:""; width:11px; height:11px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transform-origin:50% 50%; transition:transform .18s ease; box-sizing:border-box; }
.faq-trigger[aria-expanded='true'] .faq-caret::before { transform:rotate(-135deg); }
@media (forced-colors:active){ .faq-caret::before { border-color:CanvasText; } }
/* Ensure consistent rotation priority */
.gg-accordion .acc-trigger[aria-expanded='true'] .chevron::before { transform:rotate(-135deg); }
/* Minor spacing adjustments for FAQ items inside unified class */
.gg-faq-group .faq-item + .faq-item { margin-top:0; }

