/* ============================================================
   GEBM – Gebäude Energie Beratung Mede · Stylesheet
   Design: Logo-Grün #6f9b3f · Logo-Grau #717171
   ============================================================ */

/* ---------- WEBFONTS (lokal eingebunden, kein Nachladen von
   Google-Servern – vermeidet die DSGVO-Problematik durch
   Übertragung der Besucher-IP an Google) ---------- */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('fonts/dm-sans-latin-300-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/dm-sans-latin-400-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/dm-sans-latin-500-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/dm-sans-latin-600-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('fonts/fraunces-latin-300-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/fraunces-latin-600-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/fraunces-latin-700-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/fraunces-latin-600-italic.woff2') format('woff2');
}

/* ---------- CSS VARS ---------- */
:root {
  --green-dark:  #4a7228;   /* dunkleres Logo-Grün für Buttons/Akzente */
  --green-mid:   #6f9b3f;   /* exaktes Logo-Grün */
  --green-light: #8fbb5f;   /* helleres Logo-Grün für Hover/Highlights */
  --green-pale:  #ddeece;   /* sehr helles Grün für Hintergründe */
  --green-faint: #f0f7e8;   /* zartes Grün für Sections */
  --gray-900:    #1e2022;   /* fast schwarz, leicht warm */
  --gray-800:    #2d3033;
  --gray-700:    #717171;   /* exaktes Logo-Grau */
  --gray-500:    #8a8a8a;
  --gray-300:    #c0c0c0;
  --gray-100:    #f2f2f2;
  --white:       #ffffff;
  --accent:      #6f9b3f;   /* Logo-Grün als Akzentfarbe */
  --shadow-sm:   0 2px 8px rgba(111,155,63,.12);
  --shadow-md:   0 6px 24px rgba(111,155,63,.16);
  --shadow-lg:   0 16px 48px rgba(111,155,63,.20);
  --radius:      12px;
  --radius-lg:   20px;
  --transition:  .25s cubic-bezier(.4,0,.2,1);
  --font-head:   'Fraunces', Georgia, serif;
  --font-body:   'DM Sans', system-ui, sans-serif;
}

/* ---------- RESET ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
/* Verhindert, dass der sticky Header beim Sprung zu einer Sektion (z. B. #kontakt) deren Anfang verdeckt */
section[id] { scroll-margin-top: 175px; }
@media (max-width: 768px) {
  section[id] { scroll-margin-top: 140px; }
}
body {
  font-family: var(--font-body);
  color: var(--gray-900);
  background: var(--white);
  line-height: 1.65;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }

/* ---------- UTILITY ---------- */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}
.section { padding: 96px 0; }
.section-dark { background: var(--gray-900); color: var(--white); }
.section-muted { background: var(--green-faint); }
.section-neutral { background: #f4f8f6; }

.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--green-dark);
  color: var(--white);
  padding: 14px 28px;
  border-radius: 50px;
  font-weight: 600;
  font-size: .95rem;
  letter-spacing: .3px;
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition);
  box-shadow: 0 4px 16px rgba(74,114,40,.30);
  white-space: nowrap;
}
.btn-primary:hover {
  background: var(--green-mid);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(74,114,40,.38);
}
.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: var(--white);
  padding: 13px 27px;
  border-radius: 50px;
  font-weight: 600;
  font-size: .95rem;
  border: 2px solid rgba(255,255,255,.55);
  transition: all var(--transition);
  white-space: nowrap;
}
.btn-outline:hover {
  background: rgba(255,255,255,.12);
  border-color: var(--white);
}
.btn-lg { padding: 16px 34px; font-size: 1rem; }

/* ---------- SECTION HEADER ---------- */
.sec-header { text-align: center; max-width: 680px; margin: 0 auto 64px; }
.sec-header h2 { font-family: var(--font-head); font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 600; margin: 12px 0 16px; line-height: 1.2; }
.sec-header p { color: var(--gray-500); font-size: 1.05rem; }
.sec-header-light h2 { color: var(--white); }
.sec-header-light p { color: var(--gray-300); }

.sec-tag {
  display: inline-block;
  background: var(--green-pale);
  color: var(--green-dark);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  padding: 6px 16px;
  border-radius: 50px;
}
.sec-tag-light { background: rgba(255,255,255,.12); color: var(--green-light); }

/* ============================================================
   HEADER – Großes Logo oben zentriert, Navigation darunter
   ============================================================ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(74,114,40,.12);
  box-shadow: 0 2px 20px rgba(74,114,40,.08);
  transition: box-shadow var(--transition);
}

/* ── Logo bar (top) ── */
.header-logo-bar {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 16px 24px 8px;
  border-bottom: 1px solid rgba(74,114,40,.07);
}
.header-logo-bar .logo-link {
  display: flex;
  align-items: center;
  justify-content: center;
}
.logo-img-large {
  height: 90px;
  width: auto;
  max-width: 480px;
  object-fit: contain;
  filter: drop-shadow(0 2px 8px rgba(74,114,40,.12));
  transition: transform var(--transition);
}
.logo-img-large:hover { transform: scale(1.02); }

/* ── Nav bar (below logo) ── */
.nav-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  height: 52px;
  padding: 0 225px 0 24px;  /* right padding keeps nav away from button */
  position: relative;
}
.maps-wrap { margin-top: 20px; border-radius: 14px; overflow: hidden; border: 1px solid #d8e6df; box-shadow: 0 10px 28px rgba(22,63,50,.06); }

/* Small logo in nav */
.logo-link-small {
  display: none;
  flex-shrink: 0;
  position: absolute;
  left: 24px;
}
.logo-img { height: 38px; width: auto; object-fit: contain; }

.main-nav {
  display: flex;
  align-items: center;
  gap: 2px;
}
.main-nav a {
  padding: 6px 8px;
  border-radius: 8px;
  font-size: .84rem;
  font-weight: 500;
  color: var(--gray-700);
  transition: color var(--transition), background var(--transition);
  white-space: nowrap;
}
.main-nav a:hover        { color: var(--green-dark); background: var(--green-faint); }
.main-nav a.nav-active   { color: var(--green-dark); background: var(--green-faint); font-weight: 600; }
.main-nav a.nav-current  { color: var(--green-dark); background: var(--green-pale);  font-weight: 700; }
.main-nav a.nav-sub {
  margin-left: 8px;
  padding-left: 15px;
  border-left: 1px solid var(--gray-300);
  border-radius: 0;
  color: var(--gray-500);
  font-size: .78rem;
  font-weight: 400;
}
.main-nav a.nav-sub:hover { color: var(--green-dark); background: transparent; text-decoration: underline; }
.main-nav a.nav-sub.nav-current { color: var(--green-dark); background: transparent; font-weight: 600; text-decoration: underline; }

.btn-cta-header {
  flex-shrink: 0;
  padding: 9px 18px;
  font-size: .78rem;
  line-height: 1;
  text-align: center;
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  white-space: nowrap;
  border-radius: 50px;
  gap: 6px;
  box-shadow: 0 3px 10px rgba(74,114,40,.25);
}
.btn-cta-header:hover { transform: translateY(-50%) scale(1.04); }
.btn-cta-header .gi { width: 13px; height: 13px; flex-shrink: 0; }

.burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 8px;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 300;
  background: none;
  border: none;
  cursor: pointer;
}
.burger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--gray-700);
  border-radius: 2px;
  transition: all var(--transition);
}
/* Burger → X animation */
.burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position: relative;
  background: linear-gradient(135deg, var(--gray-900) 0%, #1e3328 50%, #2a4a35 100%);
  color: var(--white);
  overflow: hidden;
  padding: 100px 0 80px;
  min-height: 90vh;
  display: flex;
  align-items: center;
}
.hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 70% at 80% 50%, rgba(90,175,110,.18) 0%, transparent 70%),
    radial-gradient(ellipse 40% 40% at 10% 80%, rgba(74,114,40,.30) 0%, transparent 60%);
  pointer-events: none;
}
.hero-inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 460px;
  gap: 60px;
  align-items: center;
}
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(106,171,122,.20);
  border: 1px solid rgba(106,171,122,.35);
  color: var(--green-light);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .8px;
  text-transform: uppercase;
  padding: 7px 18px;
  border-radius: 50px;
  margin-bottom: 24px;
}
.hero-text h1 {
  font-family: var(--font-head);
  font-size: clamp(2.8rem, 5vw, 4.2rem);
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 24px;
}
.hero-text h1 em {
  font-style: italic;
  color: var(--green-light);
}
.hero-lead {
  font-size: 1.1rem;
  color: rgba(255,255,255,.80);
  max-width: 520px;
  margin-bottom: 36px;
  line-height: 1.7;
}
.hero-btns { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 48px; }
.hero-stats {
  display: flex;
  align-items: center;
  gap: 28px;
  padding-top: 32px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.hstat { display: flex; flex-direction: column; gap: 3px; }
.hnum { font-family: var(--font-head); font-size: 2rem; font-weight: 700; color: var(--green-light); }
.hlbl { font-size: .8rem; color: rgba(255,255,255,.55); text-transform: uppercase; letter-spacing: .8px; }
.hdiv { width: 1px; height: 40px; background: rgba(255,255,255,.15); }

/* Energy pass card */
.hero-visual { position: relative; }
.epass-card {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(16px);
  border-radius: var(--radius-lg);
  padding: 32px;
  box-shadow: var(--shadow-lg);
}
.epass-title {
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: rgba(255,255,255,.55);
  margin-bottom: 20px;
}
.epass-bars { display: flex; flex-direction: column; gap: 8px; }
.ebar {
  display: flex;
  align-items: center;
  padding: 7px 14px;
  border-radius: 6px;
  width: var(--w);
  background: var(--c);
  font-size: .82rem;
  font-weight: 600;
  color: var(--white);
  min-width: 80px;
  transition: opacity .3s;
  position: relative;
}
.ebar-target { outline: 2px solid #fff; outline-offset: 2px; font-weight: 700; }
.ebar-current { opacity: .75; font-weight: 700; }
.epass-hint {
  margin-top: 20px;
  font-size: .85rem;
  color: var(--green-light);
  font-weight: 600;
}
.floatie {
  position: absolute;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(8px);
  color: var(--white);
  font-size: .82rem;
  font-weight: 600;
  padding: 9px 16px;
  border-radius: 50px;
  white-space: nowrap;
  animation: float 4s ease-in-out infinite;
}
.floatie-1 { top: -24px; right: -16px; animation-delay: 0s; }
.floatie-2 { bottom: -20px; left: -16px; animation-delay: 2s; }
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* ============================================================
   LEISTUNGEN
   ============================================================ */
.cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.card {
  background: var(--white);
  border: 1px solid #d8e6df;
  border-radius: var(--radius-lg);
  padding: 36px 28px;
  box-shadow: 0 10px 28px rgba(22,63,50,.06);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
  position: relative;
  overflow: hidden;
}
.card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--green-dark), var(--green-light));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition);
}
.card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: var(--green-pale); }
.card:hover::before { transform: scaleX(1); }
.card-ico {
  width: 52px; height: 52px; border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 18px;
  background: var(--green-faint); color: var(--green-dark);
  transition: background .35s ease, color .35s ease, transform .35s ease;
}
.card:hover .card-ico { background: var(--green-dark); color: var(--white); transform: scale(1.08) rotate(-4deg); }
.card h3 { font-family: var(--font-head); font-size: 1.25rem; font-weight: 600; margin-bottom: 12px; color: var(--gray-900); }
.card p { color: var(--gray-500); font-size: .95rem; line-height: 1.65; }

/* ============================================================
   BEISPIELE
   ============================================================ */
.bsp-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}
.bsp-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: transform var(--transition), box-shadow var(--transition);
}
.bsp-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.30); }

.bsp-visual {
  position: relative;
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
}
.bsp-v1 { background: linear-gradient(135deg, #1a4a2e, #2d7a52); }
.bsp-v2 { background: linear-gradient(135deg, #1e3a50, #2d6080); }
.bsp-v3 { background: linear-gradient(135deg, #3a4a1e, #5a7a30); }
.bsp-v4 { background: linear-gradient(135deg, #3a2a1a, #7a5530); }

.bsp-badge {
  position: absolute;
  top: 16px; left: 16px;
  background: rgba(0,0,0,.35);
  color: rgba(255,255,255,.9);
  font-size: .75rem;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 50px;
  backdrop-filter: blur(4px);
}
.bsp-ico { font-size: 3.5rem; filter: drop-shadow(0 4px 12px rgba(0,0,0,.3)); }

.bsp-body { padding: 28px; }
.bsp-body h3 { font-family: var(--font-head); font-size: 1.2rem; font-weight: 600; color: var(--white); margin-bottom: 10px; }
.bsp-body p { color: var(--gray-300); font-size: .9rem; line-height: 1.65; margin-bottom: 20px; }

.bsp-metrics {
  display: flex;
  gap: 20px;
  margin-bottom: 20px;
  padding: 16px;
  background: rgba(255,255,255,.06);
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.08);
}
.metric { display: flex; flex-direction: column; gap: 3px; }
.mv { font-family: var(--font-head); font-size: 1.3rem; font-weight: 700; color: var(--green-light); }
.ml { font-size: .73rem; color: rgba(255,255,255,.45); text-transform: uppercase; letter-spacing: .6px; }

.tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tags span {
  background: rgba(90,170,110,.18);
  border: 1px solid rgba(90,170,110,.25);
  color: var(--green-light);
  font-size: .76rem;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 50px;
}

/* ============================================================
   PROZESS
   ============================================================ */
/* ---------- Prozess: animierte Fortschrittslinie + Karten ---------- */
.prozess-track {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 22px;
}
.pt-line {
  position: absolute;
  top: 23px; left: 12.5%; right: 12.5%;
  height: 2px;
  background: #d8e6df;
  z-index: 0;
}
.pt-line-fill {
  height: 100%; width: 0%;
  background: var(--green-mid);
  transition: width 1.6s cubic-bezier(.65,0,.35,1);
}
.ps-node {
  justify-self: center;
  position: relative; z-index: 1;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--white);
  border: 2px solid #d8e6df;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-head); font-weight: 800; font-size: 1.02rem;
  color: var(--gray-500);
  transition: background .5s ease, border-color .5s ease, color .5s ease, transform .5s ease;
}
.ps-node.is-active {
  background: var(--green-dark);
  border-color: var(--green-dark);
  color: var(--white);
  transform: scale(1.1);
}
.prozess-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.pstep {
  padding: 28px 24px;
  border-radius: 18px;
  background: var(--white);
  border: 1px solid #d8e6df;
  box-shadow: 0 10px 28px rgba(22,63,50,.07);
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .6s ease, transform .6s ease, box-shadow var(--transition);
}
.pstep.is-visible { opacity: 1; transform: translateY(0); }
.pstep:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.ps-num-mobile { display: none; }
.pstep h3 { font-family: var(--font-head); font-size: 1.1rem; font-weight: 600; color: var(--green-dark); margin-bottom: 10px; }
.pstep p { font-size: .89rem; color: var(--gray-500); line-height: 1.65; }

/* ============================================================
   ÜBER UNS
   ============================================================ */
.ueber-inner {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 80px;
  align-items: start;
}
.ueber-text .sec-tag { margin-bottom: 16px; }
.ueber-text h2 { font-family: var(--font-head); font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 600; margin-bottom: 20px; line-height: 1.2; color: var(--green-dark); }
.ueber-text p { color: var(--gray-500); margin-bottom: 16px; font-size: .98rem; }

/* Animierter Erfahrungs-Zähler */
.ueber-counter {
  display: inline-flex; align-items: center; gap: 16px;
  margin: 4px 0 22px;
  padding: 14px 24px;
  background: var(--white);
  border: 1px solid #d8e6df;
  border-radius: 16px;
}
.uc-num { font-family: var(--font-head); font-size: 2.3rem; font-weight: 700; color: var(--green-dark); line-height: 1; }
.uc-plus { font-family: var(--font-head); font-size: 1.3rem; font-weight: 700; color: var(--green-dark); }
.uc-label { font-size: .74rem; color: var(--gray-500); line-height: 1.4; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }

/* Interaktive Checkliste */
.ueber-list { margin-top: 24px; display: flex; flex-direction: column; gap: 6px; }
.ueber-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: .95rem;
  font-weight: 500;
  color: var(--gray-700);
  padding: 9px 12px;
  border-radius: 12px;
  opacity: 0;
  transform: translateX(-14px);
  transition: opacity .5s ease, transform .5s ease, background .3s ease;
}
.ueber-list li.is-visible { opacity: 1; transform: translateX(0); }
.ueber-list li:hover { background: var(--green-faint); transform: translateX(3px); }
.ul-check {
  flex-shrink: 0;
  width: 26px; height: 26px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--green-faint); color: var(--green-dark);
  transition: background .3s ease, color .3s ease, transform .3s ease;
}
.ul-check .gi { width: 14px; height: 14px; }
.ueber-list li:hover .ul-check { background: var(--green-dark); color: #fff; transform: scale(1.1); }

.ueber-visual {
  opacity: 0;
  transform: translateX(24px);
  transition: opacity .7s ease, transform .7s ease;
}
.ueber-visual.is-visible { opacity: 1; transform: translateX(0); }

/* Inhaber-Karte mit Foto */
.founder-card {
  background: var(--white);
  border: 1px solid #d8e6df;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(22,63,50,.08);
  transition: transform .4s ease, box-shadow .4s ease;
}
.founder-card:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(22,63,50,.14); }
.founder-photo-wrap {
  position: relative;
  background: radial-gradient(circle at 50% 30%, var(--green-faint) 0%, #eef5ee 60%, #eef5ee 100%);
  display: flex; justify-content: center; align-items: flex-end;
  padding-top: 22px;
  overflow: hidden;
}
.founder-photo-wrap::before {
  content: '';
  position: absolute; top: -30%; right: -20%;
  width: 180px; height: 180px; border-radius: 50%;
  background: radial-gradient(circle, rgba(111,155,63,.28), transparent 70%);
}
.founder-photo {
  position: relative;
  width: 76%; height: auto; display: block;
  filter: drop-shadow(0 14px 20px rgba(22,63,50,.20));
}
.founder-body { padding: 22px 26px 26px; text-align: center; }
.founder-name { font-family: var(--font-head); font-size: 1.35rem; font-weight: 700; color: var(--green-dark); margin-bottom: 3px; }
.founder-role { display: block; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--green-mid); margin-bottom: 16px; }
.founder-bio { font-size: .87rem; line-height: 1.7; color: var(--gray-500); text-align: left; }

/* ============================================================
   KONTAKT
   ============================================================ */
.kontakt-inner {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 64px;
  align-items: start;
}
.kontakt-info h3 { font-family: var(--font-head); font-size: 1.4rem; font-weight: 600; color: var(--green-dark); margin-bottom: 28px; }
.k-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 10px 12px;
  margin: 0 0 6px;
  border-radius: 14px;
  transition: background .3s ease, transform .3s ease;
}
.k-item:hover { background: var(--green-faint); transform: translateX(3px); }
.k-ico {
  flex-shrink: 0;
  width: 38px; height: 38px; border-radius: 11px;
  display: flex; align-items: center; justify-content: center;
  background: var(--green-faint); color: var(--green-dark);
  transition: background .3s ease, color .3s ease;
}
.k-ico .gi { width: 19px; height: 19px; }
.k-item:hover .k-ico { background: var(--green-dark); color: var(--white); }
.k-item strong { display: block; font-weight: 600; color: var(--gray-900); margin-bottom: 4px; font-size: .9rem; text-transform: uppercase; letter-spacing: .5px; }
.k-item a { color: var(--green-mid); }
.k-item a:hover { text-decoration: underline; }
.k-dsgvo {
  background: var(--green-faint);
  border: 1px solid #d8e6df;
  border-radius: 14px;
  padding: 16px;
  font-size: .82rem;
  color: var(--gray-500);
  line-height: 1.6;
  margin-top: 8px;
}
.k-dsgvo a { color: var(--green-mid); text-decoration: underline; }

.kontakt-form {
  background: var(--white);
  border: 1px solid #d8e6df;
  border-radius: var(--radius-lg);
  padding: 48px;
  box-shadow: 0 10px 28px rgba(22,63,50,.07);
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}
.form-error-box {
  background: #fdeceb;
  border: 1px solid #e3a39c;
  border-left: 4px solid #c0392b;
  border-radius: 0 10px 10px 0;
  padding: 16px 20px;
  color: #7a2a20;
  font-size: .92rem;
  line-height: 1.6;
}
.form-error-box strong { display: block; margin-bottom: 6px; color: #a5301f; }
.form-error-box ul { margin: 0; padding-left: 20px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.form-group { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.form-group label { font-size: .85rem; font-weight: 600; color: var(--gray-700); text-transform: uppercase; letter-spacing: .5px; }
.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 13px 16px;
  border: 1.5px solid #d8e6df;
  border-radius: 10px;
  font-family: var(--font-body);
  font-size: 1rem; /* 16px – verhindert Auto-Zoom bei Fokus in iOS Safari */
  color: var(--gray-900);
  background: var(--white);
  transition: border-color var(--transition), box-shadow var(--transition);
  outline: none;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--green-mid);
  box-shadow: 0 0 0 3px rgba(61,122,85,.12);
}
.form-group textarea { resize: vertical; min-height: 100px; }
.form-check {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.form-check input { width: 22px; height: 22px; accent-color: var(--green-mid); flex-shrink: 0; margin-top: 1px; cursor: pointer; }
.form-check label { font-size: .87rem; color: var(--gray-500); line-height: 1.55; cursor: pointer; }
.form-check label a { color: var(--green-mid); text-decoration: underline; }
.btn-submit { width: 100%; justify-content: center; padding: 17px; font-size: 1rem; border-radius: 12px; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer { background: var(--gray-900); color: rgba(255,255,255,.7); padding-top: 72px; }
.footer-inner {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 48px;
  padding-bottom: 40px;
}
.footer-logo { height: 52px; width: auto; max-width: 220px; object-fit: contain; margin-bottom: 16px; }

/* Social media buttons in footer */
.footer-social { display: flex; gap: 10px; margin-top: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.footer-social a {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 16px; border-radius: 50px;
  font-size: .82rem; font-weight: 600;
  text-decoration: none; transition: transform .2s, opacity .2s;
}
.footer-social a:hover { transform: translateY(-2px); opacity: .9; }
.footer-social .fb  { background: #1877f2; color: #fff; }
.footer-social .ig  { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); color: #fff; }
.footer-social svg  { flex-shrink: 0; }
.footer-brand p { font-size: .9rem; line-height: 1.65; max-width: 260px; }
.footer-links h4,
.footer-contact h4 { color: var(--white); font-weight: 600; font-size: .85rem; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 16px; }
.footer-links { display: flex; flex-direction: column; gap: 10px; }
.footer-links a { font-size: .9rem; transition: color var(--transition); }
.footer-links a:hover { color: var(--green-light); }
.footer-contact p { font-size: .9rem; margin-bottom: 8px; line-height: 1.55; }
.footer-contact a { color: rgba(255,255,255,.7); transition: color var(--transition); }
.footer-contact a:hover { color: var(--green-light); }

/* Partner logos bar */
.footer-partner {
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 20px 0;
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.footer-partner span {
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: rgba(255,255,255,.40);
  white-space: nowrap;
}
.footer-partner a {
  display: flex;
  align-items: center;
  background: #ffffff;
  border-radius: 8px;
  padding: 6px 14px;
  transition: transform .2s, box-shadow .2s;
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.footer-partner a:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,.35);
}
.footer-partner img {
  height: 34px;
  width: auto;
  object-fit: contain;
  display: block;
}

.footer-bottom { padding: 22px 0; background: rgba(0,0,0,.12); }
.fb-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: .82rem;
  text-align: center;
}
.fb-dot { color: rgba(255,255,255,.3); }
.footer-bottom a { color: rgba(255,255,255,.5); transition: color var(--transition); }
.footer-bottom a:hover { color: var(--white); }

/* ---------- SCROLL TO TOP ---------- */
.scroll-top {
  position: fixed;
  bottom: 32px;
  right: 32px;
  width: 46px;
  height: 46px;
  background: var(--green-dark);
  color: var(--white);
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  font-weight: 700;
  box-shadow: var(--shadow-md);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition), transform var(--transition);
  z-index: 500;
  cursor: pointer;
}
.scroll-top.visible { opacity: 1; pointer-events: auto; }
.scroll-top:hover { transform: translateY(-3px); background: var(--green-mid); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .hero-inner { grid-template-columns: 1fr; }
  .hero-visual { display: none; }
  .hero { min-height: auto; padding: 80px 0 60px; }
  .cards-grid { grid-template-columns: repeat(2, 1fr); }
  .bsp-grid { grid-template-columns: 1fr; }
  .ueber-inner { grid-template-columns: 1fr; gap: 48px; }
  .ueber-visual { max-width: 400px; }
  .kontakt-inner { grid-template-columns: 1fr; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 36px; }
  .prozess-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .prozess-track { display: none; }
  .ps-num-mobile {
    display: flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; border-radius: 50%;
    background: var(--green-faint); color: var(--green-dark);
    font-family: var(--font-head); font-weight: 800; font-size: .85rem;
    margin-bottom: 14px;
  }
}

@media (max-width: 768px) {
  .section { padding: 64px 0; }
  .logo-img-large { height: 60px; max-width: 280px; }
  .header-logo-bar { padding: 10px 24px 6px; }

  /* Nav dropdown: position fixed below the whole sticky header */
  .main-nav {
    display: none;
    position: fixed;
    top: 124px;
    left: 0; right: 0;
    background: var(--white);
    padding: 12px 20px 20px;
    flex-direction: column;
    border-bottom: 2px solid var(--green-pale);
    box-shadow: 0 8px 32px rgba(0,0,0,.12);
    z-index: 999;
    gap: 2px;
  }
  .main-nav.open { display: flex; }
  .main-nav a { padding: 11px 16px; border-radius: 8px; font-size: .97rem; }
  .main-nav a.nav-current { background: var(--green-pale); color: var(--green-dark); font-weight: 700; }
  .main-nav a.nav-active  { background: var(--green-faint); color: var(--green-dark); }
  .main-nav a.nav-sub {
    margin-left: 0; padding-left: 16px;
    border-left: none; border-top: 1px solid var(--gray-100);
    margin-top: 8px; padding-top: 15px;
    font-size: .88rem;
  }

  .btn-cta-header { display: none; }
  .burger { display: flex; }

  .cards-grid { grid-template-columns: 1fr; }
  .area-grid { grid-template-columns: 1fr; gap: 24px; }
  .hero-btns { flex-direction: column; }
  .hero-stats { flex-wrap: wrap; gap: 20px; }
  .hdiv { display: none; }
  .form-row { grid-template-columns: 1fr; }
  .kontakt-form { padding: 28px 20px; }
  .footer-inner { grid-template-columns: 1fr; gap: 28px; }
  .prozess-grid { grid-template-columns: 1fr; }
  .sec-header { margin-bottom: 40px; }
  .bsp-metrics { flex-wrap: wrap; gap: 12px; }
}

@media (max-width: 480px) {
  .hero-text h1 { font-size: 2.4rem; }
  .hero-badge { font-size: .72rem; }
  .logo-img { height: 42px; }
  .scroll-top { bottom: 20px; right: 20px; }
}

/* ============================================================
   REFERENZEN – REALISIERTE PROJEKTE
   ============================================================ */
.references-modern { background: #f5f7f4; }
.references-modern .sec-header { max-width: 850px; }
.ref-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}
.ref-card {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  background: #fff;
  border: 1px solid rgba(35,55,35,.10);
  box-shadow: 0 10px 30px rgba(20,40,25,.08);
  transition: transform .25s ease, box-shadow .25s ease;
}
.ref-card:hover { transform: translateY(-5px); box-shadow: 0 18px 42px rgba(20,40,25,.14); }
.ref-top { position: relative; min-height: 168px; padding: 22px 24px 24px; color: #fff; overflow: hidden; }
.ref-top::after { content:""; position:absolute; width:180px; height:180px; border-radius:50%; right:-70px; top:-85px; background:rgba(255,255,255,.10); }
.ref-beg .ref-top { background: linear-gradient(135deg,#275d3a,#4f8a58); }
.ref-kfw .ref-top { background: linear-gradient(135deg,#183f57,#2d6f8b); }
.ref-ebw .ref-top { background: linear-gradient(135deg,#17665d,#3d9a87); }
.ref-program { position: relative; z-index: 2; display:inline-flex; padding:6px 11px; border-radius:999px; background:rgba(0,0,0,.22); font-size:.73rem; font-weight:700; letter-spacing:.35px; }
.ref-number { position:absolute; z-index:2; right:22px; top:20px; font-family:var(--font-head); font-size:2.2rem; font-weight:700; opacity:.35; }
.ref-icon { position:absolute; z-index:2; right:24px; bottom:24px; font-size:3rem; filter:drop-shadow(0 4px 8px rgba(0,0,0,.18)); }
.ref-meta { position:absolute; z-index:2; left:24px; right:90px; bottom:24px; font-size:.82rem; line-height:1.45; color:rgba(255,255,255,.88); }
.ref-body { padding:25px 26px 27px; }
.ref-body h3 { font-family:var(--font-head); color:var(--green-dark); font-size:1.25rem; line-height:1.25; margin:0 0 12px; }
.ref-body p { color:var(--gray-500); font-size:.91rem; line-height:1.72; margin:0 0 20px; }
.ref-body strong { color:var(--gray-700); }
.ref-highlights { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-bottom:18px; }
.ref-highlights > div { padding:12px 10px; border-radius:12px; background:#f6f8f5; border:1px solid rgba(35,55,35,.08); }
.ref-highlights strong { display:block; color:var(--green-dark); font-family:var(--font-head); font-size:1rem; line-height:1.2; }
.ref-highlights span { display:block; margin-top:5px; color:var(--gray-500); font-size:.67rem; line-height:1.3; text-transform:uppercase; letter-spacing:.45px; }
.ref-tags { display:flex; flex-wrap:wrap; gap:7px; }
.ref-tags span { padding:5px 10px; border-radius:999px; font-size:.72rem; font-weight:600; color:var(--green-dark); background:var(--green-faint); border:1px solid var(--green-pale); }
.ref-note { margin-top:28px; padding:18px 22px; border-left:4px solid var(--green-mid); border-radius:12px; background:#fff; color:var(--gray-500); font-size:.86rem; line-height:1.65; box-shadow:0 5px 18px rgba(20,40,25,.05); }
.ref-note strong { color:var(--green-dark); }

@media (max-width: 1024px) {
  .ref-grid { grid-template-columns:1fr; }
}
@media (max-width: 768px) {
  .ref-body { padding:22px 20px 23px; }
  .ref-top { min-height:155px; padding:18px 20px 21px; }
  .ref-meta { left:20px; bottom:20px; }
  .ref-icon { right:20px; bottom:20px; }
  .ref-highlights { grid-template-columns:1fr; }
}

/* GEBM REFERENZEN 2026 */
.gebm-referenzen { background: var(--green-faint) !important; }
.gebm-ref-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:38px}
.gebm-ref-card {
  border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 14px 34px rgba(0,0,0,.16);color:#24312c;
  transition: transform .4s ease, box-shadow .4s ease;
}
.gebm-ref-card:hover { transform: translateY(-7px); box-shadow: 0 22px 46px rgba(0,0,0,.24); }
.gebm-ref-head{padding:25px 26px 21px}
.ref-bafa .gebm-ref-head{background:#dff2e8}.ref-kfw .gebm-ref-head{background:#dceaf7}.ref-isfp .gebm-ref-head{background:#d9f1ef}.ref-plan .gebm-ref-head{background:#edf0ee}
.gebm-ref-program{display:inline-block;padding:7px 11px;border-radius:999px;font-size:.73rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:rgba(255,255,255,.78);color:#163f32}
.gebm-ref-status{float:right;margin-top:6px;font-size:.75rem;font-weight:700;color:#4c5b55}
.gebm-ref-head h3{clear:both;margin:18px 0 7px;font-size:1.28rem;line-height:1.25}
.gebm-ref-meta{font-size:.88rem;color:#596761}.gebm-ref-body{padding:23px 26px 26px}.gebm-ref-body p{margin:0 0 20px;line-height:1.7}
.gebm-ref-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gebm-ref-facts span{display:block;padding:12px;border-radius:12px;background:#f5f7f6;font-size:.78rem;line-height:1.35;transition:background .3s ease, transform .3s ease}
.gebm-ref-facts span:hover{background:#e4ede7;transform:translateY(-2px)}
.gebm-ref-facts strong{display:block;margin-bottom:3px;font-size:.96rem;color:#163f32}
/* ---------- Fördernews ---------- */
.gebm-news {
  background: var(--green-faint);
  padding: 64px 0; color: var(--gray-900); position: relative; overflow: hidden;
}
.gebm-news-tagrow { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.gebm-news-badge { background: var(--green-dark); color: #fff; border-radius: 999px; padding: 7px 14px; font-size: .78rem; font-weight: 800; letter-spacing: .08em; }
.gebm-news-label { font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--green-dark); opacity: .85; }
.gebm-news-title { font-family: var(--font-head); font-size: clamp(2rem,4vw,3rem); margin: 0 0 12px; color: var(--green-dark); }
.gebm-news-intro { max-width: 760px; margin: 0 0 30px; color: var(--gray-500); font-size: 1.05rem; line-height: 1.7; }
.gebm-news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.gebm-news-card {
  display: block; background: #fff; color: #26351e; border-radius: 16px; padding: 26px;
  text-decoration: none; border: 1px solid #d8e6df; box-shadow: 0 12px 30px rgba(22,63,50,.08);
  transition: transform .4s ease, box-shadow .4s ease;
}
.gebm-news-card:hover { transform: translateY(-6px); box-shadow: 0 20px 42px rgba(22,63,50,.16); }
.gebm-news-tag { font-size: .78rem; font-weight: 800; color: #527c2b; text-transform: uppercase; }
.gebm-news-card h3 { margin: 6px 0 10px; font-family: var(--font-head); color: #26351e; }
.gebm-news-card p { margin: 0 0 18px; line-height: 1.6; color: #5c6657; }
.gebm-news-link { font-weight: 800; color: #3f6d1b; display: inline-flex; align-items: center; gap: 6px; }
.gnl-arrow { display: inline-block; transition: transform .3s ease; }
.gebm-news-card:hover .gnl-arrow { transform: translateX(5px); }
@media(max-width:800px){ .gebm-news-grid{ grid-template-columns: 1fr; } }

/* ============================================================
   MODERNES DESIGN-SYSTEM (site-weit)
   Abgeleitet vom Referenzen- und BEG-Anpassungen-Look:
   ruhige weiße Karten mit dezentem Rand statt bunter Icon-Boxen,
   einfarbige Pill-Labels statt Regenbogen-Farbcodierung,
   einheitliches Line-Icon-Set statt bunter Emojis.
   ============================================================ */

/* Line-Icons: 24x24, currentColor, überall gleich groß/gleicher Stil */
.gi { width: 22px; height: 22px; display: block; }
.gi-sm { width: 17px; height: 17px; }
.gi-lg { width: 28px; height: 28px; }

/* Einheitliche Icon-Kachel: EIN Farbton statt bunter Varianten */
.gicon-tile {
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  width: 52px; height: 52px; border-radius: 14px;
  background: var(--green-faint);
  color: var(--green-dark);
}
.gicon-tile.lg { width: 64px; height: 64px; border-radius: 16px; }
.gicon-tile.dark { background: var(--green-dark); color: #fff; }

/* Moderne Karte: weiß, dezenter Rand, weicher Schatten, großzügiger Radius */
.mcard {
  background: #fff;
  border: 1px solid #d8e6df;
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(22,63,50,.07);
}

/* Einheitliches Pill-Label: EIN Farbschema (dunkelgrün/hell) statt Regenbogen */
.gpill {
  display: inline-block; padding: 6px 12px; border-radius: 999px;
  font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  background: #dff2e8; color: #173d31;
}
.gpill.dark { background: #173d31; color: #fff; }
.gpill.outline { background: transparent; color: #173d31; border: 1.5px solid #173d31; }

/* ---------- Einzugsgebiet ---------- */
.area-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 12px;
}
.area-group h3 {
  font-family: var(--font-head);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--green-dark);
  margin-bottom: 14px;
}
.area-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.area-chips .gpill { background: #fff; border: 1px solid #d8e6df; color: var(--gray-700); font-weight: 600; }
.area-note {
  margin-top: 30px;
  font-size: .9rem;
  color: var(--gray-500);
  padding: 16px 20px;
  background: var(--green-faint);
  border-radius: 12px;
  display: inline-block;
}

/* ---------- FAQ (native <details>, funktioniert ohne JavaScript) ---------- */
.faq-list { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; }
.faq-item {
  background: #fff;
  border: 1px solid #d8e6df;
  border-radius: 14px;
  padding: 4px 22px;
  box-shadow: 0 6px 18px rgba(22,63,50,.05);
}
.faq-item summary {
  padding: 18px 0;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 1.02rem;
  color: var(--gray-900);
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: '+';
  flex-shrink: 0;
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--green-faint); color: var(--green-dark);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem;
  transition: transform .3s ease, background .3s ease;
}
.faq-item[open] summary::after { transform: rotate(45deg); background: var(--green-dark); color: #fff; }
.faq-item p { padding: 0 0 20px; color: var(--gray-500); font-size: .93rem; line-height: 1.7; }
.faq-item p a { color: var(--green-mid); font-weight: 600; text-decoration: underline; }
.faq-item p a:hover { color: var(--green-dark); }

/* Kontakt-/Feature-Icon-Zeile (ersetzt Emoji wie 📍 ✉️ 🕐 ☎) */
.gicon-row { display: flex; align-items: flex-start; gap: 12px; }
.gicon-row .gi { color: var(--green-mid); margin-top: 2px; }
.ref-plan{border:2px dashed #9aa8a2}
@media(max-width:900px){.gebm-ref-grid{grid-template-columns:1fr}}
@media(max-width:600px){.gebm-ref-head,.gebm-ref-body{padding:20px}.gebm-ref-status{float:none;display:block;margin-top:10px}.gebm-ref-facts{grid-template-columns:1fr}}

/* GEBM FOOTER LOGO WHITE */
.site-footer .footer-logo{filter:brightness(0) invert(1);}
/* GEBM NEWS RESPONSIVE */
@media(max-width:800px){.gebm-news-grid{grid-template-columns:1fr!important;}}


/* BEG NEWS BANNER 2026 */
.gebm-beg-banner{background:#dff2e8;border-bottom:1px solid #b8ddc8;color:#173d31}
.gebm-beg-banner-inner{min-height:66px;display:flex;align-items:center;gap:18px;padding:12px 20px}
.gebm-beg-banner-badge{background:#173d31;color:#fff;border-radius:999px;padding:7px 11px;font-size:.72rem;font-weight:800;letter-spacing:.05em;white-space:nowrap}
.gebm-beg-banner-text{display:flex;flex-direction:column;gap:2px;line-height:1.25;flex:1}
.gebm-beg-banner-text strong{font-size:.95rem}.gebm-beg-banner-text span{font-size:.82rem}
.gebm-beg-banner-link{font-weight:800;color:#173d31;text-decoration:none;white-space:nowrap}
.gebm-beg-banner-link:hover{text-decoration:underline}

/* BEG / GMODG DETAIL 2026 */
.gebm-policy-section{background:#f4f8f6}
.gebm-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:34px}
.gebm-policy-card{background:#fff;border:1px solid #d8e6df;border-radius:18px;padding:26px;box-shadow:0 10px 28px rgba(22,63,50,.08)}
.gebm-policy-card h3{margin:12px 0 10px;font-size:1.3rem;color:#173d31}
.gebm-policy-label{display:inline-block;border-radius:999px;padding:6px 10px;background:#dff2e8;color:#173d31;font-size:.72rem;font-weight:800;letter-spacing:.04em}
.gebm-policy-law .gebm-policy-label{background:#e3edf7;color:#1e4b70}
.gebm-policy-card p{line-height:1.65}.gebm-policy-card ul{padding-left:19px;line-height:1.6}
.gebm-policy-card li{margin-bottom:7px}.gebm-policy-link{display:inline-block;margin-top:8px;font-weight:800;color:#176a4d;text-decoration:none}
.gebm-policy-link:hover{text-decoration:underline}
.gebm-policy-links{margin-top:28px;padding:20px 24px;border-radius:16px;background:#173d31;color:#fff;display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.gebm-policy-links a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.gebm-policy-note{margin-top:18px;font-size:.86rem;color:#5d6b65}
@media(max-width:950px){.gebm-policy-grid{grid-template-columns:1fr}.gebm-beg-banner-inner{flex-wrap:wrap}.gebm-beg-banner-text{min-width:220px}}
@media(max-width:600px){.gebm-beg-banner-inner{padding:12px 16px}.gebm-beg-banner-link{width:100%}}
