/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability.
Version: 3.6.1.1770029647
Updated: 2026-02-02 11:54:07
*/

/* =========================================================
   BBKW Modern UI System (moved from Customizer + refined)
   Scope: only BBKW post types / sections, minimal global overrides
========================================================= */

/* =========================
   Design Tokens
========================= */
:root{
  /* Brand */
  --bbkw-green: #2f855a;
  --bbkw-green-600: #2a7b52;
  --bbkw-green-700: #276749;
  --bbkw-green-soft: #e6f4ee;

  /* Neutrals */
  --bbkw-text: #1f2933;
  --bbkw-muted: #6b7280;
  --bbkw-border: #e5e7eb;

  --bbkw-bg: #f6f8fb;
  --bbkw-card: #ffffff;

  /* Effects */
  --bbkw-radius: 14px;
  --bbkw-radius-sm: 10px;
  --bbkw-shadow: 0 10px 25px rgba(17, 24, 39, 0.06);
  --bbkw-shadow-sm: 0 6px 16px rgba(17, 24, 39, 0.06);

  /* Typography */
  --bbkw-font: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;

  /* Spacing */
  --bbkw-gap: 14px;
}

/* =========================
   Minimal global polish (safe)
   (These are typically what people had in Customizer)
========================= */
html{
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a{
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

/* GeneratePress “button” class is used in your HTML leadbox */
a.button{
  background: var(--bbkw-green) !important;
  color: #fff !important;
  border-radius: 12px !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  padding: 12px 16px !important;
  border: none !important;
}
a.button:hover,
a.button:focus{
  background: var(--bbkw-green-700) !important;
}

/* Slightly nicer headings everywhere (very mild, won’t break GP) */
h1, h2, h3{
  letter-spacing: -0.02em;
}
h1{ font-weight: 800; }
h2, h3{ font-weight: 700; }

/* =========================
   BBKW Scope Wrapper
   Apply “page background” and typography only on BBKW pages
========================= */

/* Your BBKW HTML uses: <article class="bbkw-single bbkw-genehmigung"> ... */
.bbkw-single{
  font-family: var(--bbkw-font);
  color: var(--bbkw-text);
}

/* Make the surrounding page look consistent on BBKW templates only */
body.single-genehmigung,
body.single-foerderung,
body.single-antrag_anleitung{
  background: var(--bbkw-bg);
}

/* Make default GP container feel more premium on BBKW pages only */
body.single-genehmigung .separate-containers .inside-article,
body.single-foerderung .separate-containers .inside-article,
body.single-antrag_anleitung .separate-containers .inside-article,
body.single-genehmigung .inside-page-header,
body.single-foerderung .inside-page-header,
body.single-antrag_anleitung .inside-page-header{
  border-radius: var(--bbkw-radius);
}

/* Link color inside BBKW content */
.bbkw-single a{
  color: var(--bbkw-green);
}
.bbkw-single a:hover{
  color: var(--bbkw-green-700);
}

/* =========================
   Layout Wrapper for BBKW pages
========================= */
.site-main .bbkw-single{
  max-width: 980px;
  margin: 0 auto;
  padding: 24px 18px 70px;
}

@media (max-width: 768px){
  .site-main .bbkw-single{
    padding: 18px 14px 60px;
  }
}

/* =========================
   Cards / Sections
========================= */
.bbkw-header,
.bbkw-section{
  background: var(--bbkw-card);
  border: 1px solid var(--bbkw-border);
  border-radius: var(--bbkw-radius);
  box-shadow: var(--bbkw-shadow);
}

.bbkw-header{
  padding: 26px;
  margin-bottom: 18px;
  position: relative;
  overflow: hidden;
}

/* Subtle green accent strip */
.bbkw-header::before{
  content:"";
  position:absolute;
  inset: 0;
  height: 6px;
  background: linear-gradient(90deg, var(--bbkw-green), #46c38a);
}

.bbkw-header h1{
  margin: 10px 0 8px;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.15;
}

.bbkw-summary{
  margin-top: 8px;
  color: var(--bbkw-muted);
  font-size: 1.05rem;
  max-width: 70ch;
}

/* Status badge */
.bbkw-status{
  margin-top: 14px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  background: var(--bbkw-green-soft);
  color: var(--bbkw-green-700);
  font-weight: 700;
  border: 1px solid rgba(47,133,90,0.20);
}

/* Regular sections */
.bbkw-section{
  padding: 22px;
  margin: 14px 0;
}

.bbkw-section h2{
  margin: 0 0 10px;
  font-size: 1.35rem;
}

/* Intro text inside sections */
.bbkw-section > p{
  color: var(--bbkw-muted);
  margin-top: 0;
}

/* Content formatting */
.bbkw-content p{
  margin: 0 0 12px;
}
.bbkw-content ul,
.bbkw-content ol{
  margin: 10px 0 0 18px;
}
.bbkw-content li{
  margin: 6px 0;
}
.bbkw-content strong{
  font-weight: 800;
}

/* Callout for amounts */
.bbkw-amount{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 1.35rem;
  font-weight: 900;
  padding: 10px 14px;
  border-radius: 999px;
  background: var(--bbkw-green-soft);
  color: var(--bbkw-green-700);
  border: 1px solid rgba(47,133,90,0.18);
}

/* =========================
   Links / Trust block
========================= */
.bbkw-meta{
  color: var(--bbkw-muted);
  font-size: 0.98rem;
  margin-bottom: 10px;
}

.bbkw-link{
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px solid rgba(47,133,90,0.35);
}
.bbkw-link:hover{
  border-bottom-color: rgba(47,133,90,0.8);
}

/* Disclaimer */
.bbkw-disclaimer{
  margin-top: 14px;
  font-size: 0.95rem;
  color: var(--bbkw-muted);
  background: var(--bbkw-bg);
  border: 1px dashed var(--bbkw-border);
  border-radius: var(--bbkw-radius-sm);
  padding: 12px 14px;
}

/* =========================
   Internal Links
========================= */
.bbkw-internallinks ul{
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.bbkw-internallinks li a{
  display: block;
  padding: 12px 14px;
  border: 1px solid var(--bbkw-border);
  border-radius: var(--bbkw-radius-sm);
  background: #fff;
  box-shadow: var(--bbkw-shadow-sm);
  text-decoration: none;
  font-weight: 800;
}

.bbkw-internallinks li a:hover{
  border-color: rgba(47,133,90,0.35);
  transform: translateY(-1px);
}

/* =========================
   FAQ (Cards)
========================= */
.bbkw-faq .bbkw-faq-item{
  border: 1px solid var(--bbkw-border);
  border-radius: var(--bbkw-radius-sm);
  background: #fff;
  padding: 14px 14px 12px;
  margin: 10px 0;
  box-shadow: var(--bbkw-shadow-sm);
}

.bbkw-faq .bbkw-faq-item h3{
  margin: 0 0 8px;
  font-size: 1.05rem;
}

/* Optional accordion (if you later switch to <details>) */
.bbkw-accordion details{
  border: 1px solid var(--bbkw-border);
  border-radius: var(--bbkw-radius-sm);
  padding: 14px;
  background: #fff;
  margin: 10px 0;
  box-shadow: var(--bbkw-shadow-sm);
}
.bbkw-accordion summary{
  cursor: pointer;
  font-weight: 900;
}
.bbkw-accordion details[open]{
  border-color: rgba(47,133,90,0.28);
}

/* =========================
   Leadbox (Mini-CTA Teaser)
   Matches your HTML: <section class="bbkw-leadbox"> ... <a class="button">
========================= */
.bbkw-leadbox{
  margin: 18px 0;
  padding: 18px 22px;
  border-radius: var(--bbkw-radius);
  background: linear-gradient(135deg, rgba(47,133,90,0.10), rgba(47,133,90,0.04));
  border: 1px dashed rgba(47,133,90,0.35);

  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 6px 18px;
  align-items: center;
}

.bbkw-leadbox h2{
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800;
  grid-column: 1;
  grid-row: 1;
}

.bbkw-leadbox p{
  margin: 0;
  color: var(--bbkw-muted);
  font-size: 0.95rem;
  grid-column: 1;
  grid-row: 2;
}

/* Button right (spans rows) */
.bbkw-leadbox a.button{
  grid-column: 2;
  grid-row: 1 / span 2;
  justify-self: end;
  padding: 14px 18px !important;
  border-radius: 14px !important;
  box-shadow: 0 10px 25px rgba(47,133,90,0.25);
  white-space: nowrap;
}
.bbkw-leadbox a.button:hover{
  background: var(--bbkw-green-600) !important;
  transform: translateY(-1px);
}

/* Mobile */
@media (max-width: 768px){
  .bbkw-leadbox{
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    text-align: center;
  }
  .bbkw-leadbox a.button{
    grid-column: 1;
    grid-row: 3;
    justify-self: center;
    width: 100%;
    text-align: center;
  }
}

/* =========================
   FluentForms Styling (Form ID 3)
========================= */
.bbkw-form-section .fluentform_wrapper_3{
  margin-top: 10px;
  background: #fff;
  border: 1px solid var(--bbkw-border);
  border-radius: var(--bbkw-radius);
  box-shadow: var(--bbkw-shadow);
  padding: 18px;
}

.bbkw-form-section .ff-el-form-control{
  border-radius: 10px !important;
  border: 1px solid var(--bbkw-border) !important;
  padding: 12px 12px !important;
}

.bbkw-form-section .ff-el-form-control:focus{
  outline: none !important;
  border-color: rgba(47,133,90,0.55) !important;
  box-shadow: 0 0 0 4px rgba(47,133,90,0.12) !important;
}

/* Submit button (FluentForms) */
.bbkw-form-section .ff-btn-submit{
  background: var(--bbkw-green) !important;
  color: #fff !important;
  border-radius: 12px !important;
  padding: 12px 16px !important;
  font-weight: 900 !important;
  border: none !important;
}
.bbkw-form-section .ff-btn-submit:hover{
  background: var(--bbkw-green-700) !important;
}

/* =========================
   Small UI polish
========================= */
.main-navigation{
  border-bottom: 1px solid var(--bbkw-border);
}
.main-navigation a{
  font-weight: 700;
}

/* Mobile: reduce card padding */
@media (max-width: 600px){
  .bbkw-header{ padding: 18px; }
  .bbkw-section{ padding: 18px; }
  .bbkw-leadbox{ padding: 18px; }
  .bbkw-form-section .fluentform_wrapper_3{ padding: 14px; }
}
/* =========================
   BBKW – Home Styles (ONLY: Static Homepage)
   Gilt nur auf der Startseite (body.home)
========================= */

/* Hero CTA Row */
body.home .bbkw-home-hero-cta{
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 16px;
}

body.home .bbkw-home-hero-cta .button{
  background: var(--bbkw-green) !important;
  color: #fff !important;
  padding: 14px 18px !important;
  border-radius: 14px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  box-shadow: 0 10px 25px rgba(47,133,90,0.25);
  border: none !important;
  white-space: nowrap;
}

body.home .bbkw-home-hero-cta .button:hover{
  background: var(--bbkw-green-600) !important;
  transform: translateY(-1px);
}

body.home .bbkw-home-secondary{
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px solid rgba(47,133,90,0.35);
}

body.home .bbkw-home-secondary:hover{
  border-bottom-color: rgba(47,133,90,0.8);
}

/* Quick Nav / Topic Cards Grid */
body.home .bbkw-home-grid{
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

body.home .bbkw-home-card{
  display: block;
  background: #fff;
  border: 1px solid var(--bbkw-border);
  border-radius: var(--bbkw-radius);
  box-shadow: var(--bbkw-shadow-sm);
  padding: 16px 16px 14px;
  text-decoration: none;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

body.home .bbkw-home-card:hover{
  transform: translateY(-2px);
  border-color: rgba(47,133,90,0.35);
  box-shadow: 0 14px 30px rgba(17, 24, 39, 0.08);
}

body.home .bbkw-home-card-title{
  font-weight: 900;
  font-size: 1.05rem;
  margin-bottom: 6px;
  color: var(--bbkw-text);
}

body.home .bbkw-home-card-text{
  color: var(--bbkw-muted);
  line-height: 1.6;
  font-size: 0.98rem;
}

body.home .bbkw-home-card-meta{
  margin-top: 10px;
  font-weight: 900;
  color: var(--bbkw-green);
}

/* Steps */
body.home .bbkw-home-steps{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 14px;
}

body.home .bbkw-home-step{
  display: flex;
  gap: 12px;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--bbkw-border);
  border-radius: var(--bbkw-radius);
  box-shadow: var(--bbkw-shadow-sm);
}

body.home .bbkw-home-step-no{
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-weight: 900;
  color: #fff;
  background: var(--bbkw-green);
  box-shadow: 0 10px 18px rgba(47,133,90,0.22);
}

body.home .bbkw-home-step-title{
  font-weight: 900;
  margin-bottom: 4px;
  color: var(--bbkw-text);
}

body.home .bbkw-home-step-text{
  color: var(--bbkw-muted);
  font-size: 0.98rem;
  line-height: 1.6;
}

/* Popular cities list: nicer spacing on home */
body.home .bbkw-internallinks ul{
  margin-top: 12px;
}

/* Small polish: reduce top spacing directly under title on home */
body.home .bbkw-summary{
  margin-top: 8px;
}

/* Responsive */
@media (max-width: 900px){
  body.home .bbkw-home-grid{
    grid-template-columns: 1fr;
  }
  body.home .bbkw-home-steps{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px){
  body.home .bbkw-home-hero-cta{
    gap: 10px;
  }
  body.home .bbkw-home-hero-cta .button{
    width: 100%;
    text-align: center;
  }
}