/* ========================================================================== */
/*                                 CSS Variables                              */
/* ========================================================================== */
:root{
  --container: 1200px;

  /* Primäre Farbpalette */
  --color-primary: #2563EB;
  --color-secondary: #10B981;
  --color-secondary-dark: #0f9a73;
  --color-dark: #111827;
  --color-light: #F9FAFB;
  --color-gray: #D1D5DB;
  --color-white: #FFFFFF;
  --color-accent-yellow: #ffd700;

  /* Header/Hero */
  --header-bg: rgba(17, 24, 39, 0.85);
  --hero-bg: var(--color-gray);

  /* Typo */
  --text-dark: var(--color-dark);
  --text-light: var(--color-white);
  --font-family-base: 'Poppins', system-ui, Arial, sans-serif;
  --font-size-base: 16px;
  --line-height-base: 1.6;

  /* Layout */
  --header-height: 80px;
  --container-max: 1200px;
  --container-pad: clamp(12px, 3vw, 24px);

  /* Aliasse (für Sektionen, die andere Variablennamen erwarten) */
  --primary: var(--color-primary);
  --primary-700: #1D4ED8;
  --accent: var(--color-secondary);
  --bg: var(--color-light);
  --surface: var(--color-white);
  --text: var(--color-dark);
  --muted: #4b5563;
  --border: #e5e7eb;

  /* Effekte */
  --shadow-sm: 0 6px 22px rgba(15,23,42,.06);
  --shadow-md: 0 18px 40px rgba(15,23,42,.12);
  --radius: 16px;
  --ease-smooth: cubic-bezier(.22, .61, .36, 1);
  --ease-snappy: cubic-bezier(.34, 1.56, .64, 1);
  --duration-fast: 220ms;
  --duration-medium: 420ms;
}

/* ========================================================================== */
/*                                 Base Styles                                */
/* ========================================================================== */
html{ overflow-y: scroll; }
*{ box-sizing:border-box; margin:0; padding:0; }

body{
  font-family: var(--font-family-base);
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
  color: var(--text-dark);
  background:
    radial-gradient(900px 420px at -6% -10%, rgba(37,99,235,.1), transparent 58%),
    radial-gradient(700px 360px at 104% 8%, rgba(16,185,129,.09), transparent 56%),
    var(--color-light);
  padding-top: var(--header-height);
  overflow-x: hidden;
}

.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:3px;
  transform-origin:left center;
  transform: scaleX(0);
  background: linear-gradient(90deg, #2563EB 0%, #10B981 100%);
  box-shadow: 0 0 18px rgba(37,99,235,.45);
  z-index: 25000;
  pointer-events:none;
}

img{ max-width:100%; height:auto; display:block; }

.container{
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: 20px;
}

.content-section{
  padding: 80px 0;
  background-color: var(--color-white);
  color: var(--text-dark);
}

/* Headings */
h1, h2, h3, h4, h5, h6{ font-weight:700; line-height:1.2; margin-bottom:.5em; }

h2{
  font-size: 2.5em;
  color: var(--color-dark);
  text-align: center;
  margin-bottom: 1.5em;
  position: relative;
  padding-bottom: .5em;
}
h2::after{
  content:'';
  position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:60px; height:4px; background:var(--color-primary); border-radius:2px;
}
h3{ font-size:1.8em; color:var(--color-dark); margin-bottom:1em; }

p{ margin-bottom:1em; color:var(--text-dark); }

/* ========================================================================== */
/*                          Motion / Visual Effects                           */
/* ========================================================================== */
.btn-primary,
.btn-secondary,
.btn-ghost,
.btn-footer-donate {
  position: relative;
  overflow: hidden;
  transition: transform var(--duration-fast) var(--ease-smooth), box-shadow var(--duration-fast) var(--ease-smooth), background-color var(--duration-fast) var(--ease-smooth);
  will-change: transform;
}

.btn-primary:hover,
.btn-secondary:hover,
.btn-ghost:hover,
.btn-footer-donate:hover {
  transform: translateY(-2px);
}

.btn-primary:active,
.btn-secondary:active,
.btn-ghost:active,
.btn-footer-donate:active {
  transform: translateY(0);
}

.btn-primary::after,
.btn-secondary::after,
.btn-ghost::after,
.btn-footer-donate::after {
  content: '';
  position: absolute;
  top: -130%;
  left: -45%;
  width: 42%;
  height: 300%;
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.45), rgba(255,255,255,0));
  transform: rotate(18deg);
  opacity: 0;
  transition: transform 0.65s ease, opacity 0.65s ease;
  pointer-events: none;
}

.btn-primary:hover::after,
.btn-secondary:hover::after,
.btn-ghost:hover::after,
.btn-footer-donate:hover::after {
  transform: translateX(230%) rotate(18deg);
  opacity: 1;
}

.service-card-item,
.event-card,
.gottesdienste-card-professional,
.expect-pro-card-enhanced,
.upcoming-event-item,
.impact-card,
.donate-option-card,
.regular-card,
.roots-card,
.feature,
.event-info-card,
.event-sidebar-card,
.timeline-content {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.service-card-item::after,
.event-card::after,
.gottesdienste-card-professional::after,
.expect-pro-card-enhanced::after,
.upcoming-event-item::after,
.impact-card::after,
.donate-option-card::after,
.regular-card::after,
.roots-card::after,
.feature::after,
.event-info-card::after,
.event-sidebar-card::after,
.timeline-content::after {
  content: '';
  position: absolute;
  top: -135%;
  left: -48%;
  width: 44%;
  height: 320%;
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.36), rgba(255,255,255,0));
  transform: rotate(20deg);
  opacity: 0;
  transition: transform 0.8s ease, opacity 0.65s ease;
  pointer-events: none;
}

.service-card-item:hover::after,
.event-card:hover::after,
.gottesdienste-card-professional:hover::after,
.expect-pro-card-enhanced:hover::after,
.upcoming-event-item:hover::after,
.impact-card:hover::after,
.donate-option-card:hover::after,
.regular-card:hover::after,
.roots-card:hover::after,
.feature:hover::after,
.event-info-card:hover::after,
.event-sidebar-card:hover::after,
.timeline-content:hover::after {
  transform: translateX(240%) rotate(20deg);
  opacity: 1;
}

.reveal-on-scroll {
  opacity: 1;
  transform: none;
  filter: blur(0);
  transition: opacity 0.7s var(--ease-smooth), transform 0.7s var(--ease-smooth), filter 0.55s var(--ease-smooth);
  transition-delay: var(--reveal-delay, 0ms);
}

.reveal-on-scroll.will-reveal {
  opacity: 0;
  transform: translateY(26px) scale(0.98);
  filter: blur(2px);
}

.reveal-on-scroll.will-reveal.is-visible {
  opacity: 1;
  transform: none;
  filter: blur(0);
}

body.has-entry-motion .hero-left h1,
body.has-entry-motion .hero-left p,
body.has-entry-motion .hero-left .btn-ghost,
body.has-entry-motion .gd-hero-pro .hero-content > *,
body.has-entry-motion .events-hero .hero-content > *,
body.has-entry-motion .hero-ueber-uns .hero-container > *,
body.has-entry-motion .donate-hero-content > *,
body.has-entry-motion .event-detail-hero .container > * {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
}

body.has-entry-motion.is-ready .hero-left h1,
body.has-entry-motion.is-ready .hero-left p,
body.has-entry-motion.is-ready .hero-left .btn-ghost,
body.has-entry-motion.is-ready .gd-hero-pro .hero-content > *,
body.has-entry-motion.is-ready .events-hero .hero-content > *,
body.has-entry-motion.is-ready .hero-ueber-uns .hero-container > *,
body.has-entry-motion.is-ready .donate-hero-content > *,
body.has-entry-motion.is-ready .event-detail-hero .container > * {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition: opacity 0.7s var(--ease-smooth), transform 0.7s var(--ease-smooth);
}

body.has-entry-motion.is-ready .hero-left h1,
body.has-entry-motion.is-ready .gd-hero-pro .hero-content > h1,
body.has-entry-motion.is-ready .events-hero .hero-content > h1,
body.has-entry-motion.is-ready .hero-ueber-uns .hero-container > h1,
body.has-entry-motion.is-ready .donate-hero-content > h1,
body.has-entry-motion.is-ready .event-detail-title {
  transition-delay: 80ms;
}

body.has-entry-motion.is-ready .hero-left p,
body.has-entry-motion.is-ready .gd-hero-pro .hero-content > .lead,
body.has-entry-motion.is-ready .events-hero .hero-content > .lead,
body.has-entry-motion.is-ready .hero-ueber-uns .hero-container > p,
body.has-entry-motion.is-ready .donate-hero-content > .lead {
  transition-delay: 180ms;
}

body.has-entry-motion.is-ready .hero-left .btn-ghost,
body.has-entry-motion.is-ready .gd-hero-pro .hero-content > .gd-hero-info,
body.has-entry-motion.is-ready .donate-hero-content > .btn,
body.has-entry-motion.is-ready .event-detail-hero .back-link {
  transition-delay: 280ms;
}

@media (prefers-reduced-motion: reduce) {
  .btn-primary,
  .btn-secondary,
  .btn-ghost,
  .btn-footer-donate {
    transition: none;
  }
  .reveal-on-scroll {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
  body.has-entry-motion .hero-left h1,
  body.has-entry-motion .hero-left p,
  body.has-entry-motion .hero-left .btn-ghost,
  body.has-entry-motion .gd-hero-pro .hero-content > *,
  body.has-entry-motion .events-hero .hero-content > *,
  body.has-entry-motion .hero-ueber-uns .hero-container > *,
  body.has-entry-motion .donate-hero-content > *,
  body.has-entry-motion .event-detail-hero .container > * {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .hero::before,
  .church-icon {
    animation: none;
  }
  .service-card-item::after,
  .event-card::after,
  .gottesdienste-card-professional::after,
  .expect-pro-card-enhanced::after,
  .upcoming-event-item::after,
  .impact-card::after,
  .donate-option-card::after,
  .regular-card::after,
  .roots-card::after,
  .feature::after,
  .event-info-card::after,
  .event-sidebar-card::after,
  .timeline-content::after,
  .btn-primary::after,
  .btn-secondary::after,
  .btn-ghost::after,
  .btn-footer-donate::after {
    display: none;
  }
}

/* ========================================================================== */
/*                                  Hero Section                              */
/* ========================================================================== */
.hero{
  padding-top:160px;
  padding-bottom:100px;
  background: linear-gradient(135deg, #5fa4dd 0%, #eef2f3 100%);
  min-height:85vh;
  display:flex; align-items:center; position:relative; overflow:hidden;
}
.cms-edit-layer{
  position:absolute; inset:0; z-index:2; pointer-events:none;
}
.is-hidden{
  display:none;
}
.form-status{
  margin-top:12px;
  font-size:0.9rem;
  color:var(--color-dark);
}
.form-status.is-error{
  color:#ef4444;
}
.form-status.is-success{
  color:#10b981;
}

.centered-actions{
  text-align:center;
  margin-top:24px;
}

.centered-actions-lg{
  text-align:center;
  margin-top:40px;
}

.narrow-center-text{
  text-align:center;
  max-width:720px;
  margin:0 auto 24px;
}

.map-embed{
  border:0;
}
.hero::before{
  content:''; position:absolute; top:50%; right:0%; transform:translate(50%,-50%);
  width:600px; height:600px; background: radial-gradient(circle, rgba(255,255,255,.1) 0%, rgba(255,255,255,0) 70%);
  border-radius:50%; pointer-events:none;
  animation: heroOrbDrift 14s ease-in-out infinite;
}
.hero-grid{
  display:grid; grid-template-columns: 1fr;
  align-items:center; gap:60px; position:relative; z-index:1;
  text-align: center;
}
.hero-left { order: 2; }
.hero-right { order: 1; justify-content: center; margin-bottom: 40px; }

.hero-left h1{
  font-size: clamp(38px, 6vw, 70px);
  font-weight:800; line-height:1; margin:0 0 25px; color:var(--color-white);
  text-shadow:0 15px 40px rgba(0,0,0,.5), 0 -5px 10px rgba(255,255,255,.2);
}
.hero-left p{
  font-size:19px; opacity:.9; max-width:650px; margin:0 0 35px;
  color: rgba(255,255,255,.9); text-shadow: 0 2px 5px rgba(0,0,0,.2);
}
.btn-ghost{
  display:inline-flex; align-items:center; gap:10px; height:48px; padding:0 25px;
  border-radius:28px; border:1px solid rgba(255,255,255,.45); color:var(--color-white); text-decoration:none;
  backdrop-filter: blur(5px); box-shadow:0 5px 15px rgba(0,0,0,.2);
}
.btn-ghost:hover{ background:rgba(255,255,255,.15); border-color:rgba(255,255,255,.6); transform:translateY(-2px); }
.hero-right{ display:flex; justify-content:flex-end; align-items:center; }
.church-icon{
  font-size:min(30vw, 300px); color:var(--color-white); opacity:.28;
  filter: drop-shadow(-5px -5px 10px rgba(255,255,255,.15)) drop-shadow(10px 10px 20px rgba(0,0,0,.4));
  animation: heroIconFloat 9s ease-in-out infinite;
}

@keyframes heroOrbDrift {
  0%, 100% { transform: translate(50%, -50%); }
  50% { transform: translate(42%, -56%); }
}

@keyframes heroIconFloat {
  0%, 100% { transform: translateY(0); opacity: .28; }
  50% { transform: translateY(-8px); opacity: .36; }
}

/* ========================================================================== */
/*                                Image Section                               */
/* ========================================================================== */
.full-width-image-section{ width:100%; overflow:hidden; }
.full-width-image{ width:100%; height:auto; display:block; object-fit:cover; }

/* ========================================================================== */
/*                                Contact Section                             */
/* ========================================================================== */
.contact-grid{ display:grid; grid-template-columns: 1fr; gap:40px; }
.contact-form, .contact-details{
  background-color: var(--color-light);
  padding:30px; border-radius:8px; box-shadow: 0 4px 15px rgba(0,0,0,.05);
}
.contact-form h3, .contact-details h3{ color:var(--color-dark); margin-bottom:20px; }
.contact-form input[type="text"], .contact-form input[type="email"], .contact-form textarea{
  width:100%; padding:12px; margin-bottom:15px; border:1px solid var(--color-gray);
  border-radius:5px; font-family: var(--font-family-base); font-size:1em;
}
.contact-form textarea{ resize:vertical; }
.contact-form button[type="submit"]{
  background:var(--color-primary); color:var(--color-white); padding:12px 25px; border:none; border-radius:5px;
  cursor:pointer; font-size:1.1em; font-weight:600; transition: background-color .3s ease;
}
.contact-form button[type="submit"]:hover{ background:var(--primary-700); }
.map-container{ margin-top:20px; border-radius:8px; overflow:hidden; }
.map-container iframe{ width:100%; height:300px; border:0; }

/* ========================================================================== */
/*                            Gottesdienste Grid etc.                         */
/* ========================================================================== */
.services-section-new{ background:var(--color-light); padding:100px 0; }
.gottesdienste-grid{ display:grid; grid-template-columns:1fr; gap:60px; align-items:center; }
.gottesdienste-info h2{ text-align:center; font-size:2.8em; margin-bottom:20px; }
.gottesdienste-info h2::after{ left:50%; transform:translateX(-50%); width:80px; }
.gottesdienste-info p{ font-size:1.1em; line-height:1.8; margin-bottom:30px; }

.gottesdienste-card-professional{
  background:var(--color-white); border-radius:12px; box-shadow: 0 10px 30px rgba(0,0,0,.1);
  padding:40px; transition: transform .3s ease, box-shadow .3s ease;
}
.gottesdienste-card-professional:hover{ transform: translateY(-5px); box-shadow: 0 15px 40px rgba(0,0,0,.15); }
.gottesdienste-card-header{ display:flex; align-items:center; gap:15px; margin-bottom:30px; padding-bottom:20px; border-bottom:1px solid var(--border); }
.gottesdienste-card-header i{ font-size:28px; color:var(--color-primary); }
.gottesdienste-card-header h3{ margin:0; font-size:1.8em; }
.service-item{ display:flex; align-items:center; gap:20px; margin-bottom:20px; }
.service-item:last-child{ margin-bottom:0; }
.service-item i{ font-size:22px; color:var(--color-primary); width:30px; text-align:center; }

.btn-primary{
  display:inline-block; background:var(--color-primary); color:var(--color-white); padding:15px 30px; border-radius:50px;
  text-decoration:none; font-weight:600; transition: background-color .3s ease, transform .3s ease;
}
.btn-primary:hover{ background:var(--primary-700); transform: translateY(-2px); }

/* ========================================================================== */
/*                                Site Footer                                 */
/* ========================================================================== */
.site-footer {
  background-color: var(--color-dark);
  color: var(--color-gray);
  padding: 60px 0 30px;
  font-size: 0.95rem;
}

.site-footer .footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 40px;
  margin-bottom: 50px;
  text-align: center;
}

.site-footer .footer-heading {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-white);
  margin-bottom: 20px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.site-footer .footer-about-text {
  line-height: 1.7;
  color: var(--color-gray);
}

.site-footer .footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.site-footer .footer-links li {
  margin-bottom: 12px;
}

.site-footer .footer-links a,
.site-footer .footer-contact a {
  color: var(--color-gray);
  text-decoration: none;
  transition: color 0.3s ease;
}

.site-footer .footer-links a:hover,
.site-footer .footer-contact a:hover {
  color: var(--color-primary);
}

.site-footer .footer-contact p {
  margin-bottom: 12px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: var(--color-gray);
}

.site-footer .footer-contact i {
  margin-top: 5px;
  color: var(--color-primary);
}

.site-footer .footer-social {
  display: flex;
  gap: 16px;
  justify-content: center;
}

.site-footer .footer-social a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--color-white);
  font-size: 1.2rem;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.site-footer .footer-social a:hover {
  background-color: var(--color-primary);
  color: var(--color-white);
}

.site-footer .footer-bottom {
  padding-top: 30px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  flex-direction: column;
  text-align: center;
}

.site-footer .footer-bottom p {
  margin: 0;
  color: var(--color-gray);
}

.site-footer .footer-legal-links {
  display: flex;
  gap: 20px;
}

.site-footer .footer-legal-links a {
  color: var(--color-gray);
  text-decoration: none;
  transition: color 0.3s ease;
}

.site-footer .footer-legal-links a:hover {
  color: var(--color-white);
}

.footer-donation {
  margin-top: 30px;
}

.footer-donation p {
  color: var(--color-gray);
  line-height: 1.7;
  margin-bottom: 15px;
}

.btn-footer-donate {
  display: inline-block;
  margin-top: 10px;
  padding: 10px 25px;
  border-radius: 50px;
  background-color: var(--color-primary);
  color: var(--color-white);
  text-decoration: none;
  font-weight: 600;
  transition: background-color .3s ease;
}

.btn-footer-donate:hover {
  background-color: var(--color-secondary);
}

.footer-contact-centered {
  text-align: center;
}

.footer-contact-centered .footer-contact p {
  justify-content: center;
}

/* ========================================================================== */
/*                        Gottesdienste Page Professional                      */
/* ========================================================================== */
.expect-section{ background: var(--color-light); }
.expect-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap:30px; }
.expect-card{
  background:var(--color-white); padding:30px; border-radius:8px; box-shadow:0 4px 15px rgba(0,0,0,.05); text-align:center;
}
.expect-card .icon{ font-size:2.5em; color:var(--color-primary); margin-bottom:20px; }
.expect-card h3{ font-size:1.5em; margin-bottom:10px; }

.schedule-section{ background:var(--color-white); }
.schedule-timeline{
  position:relative; max-width:800px; margin:0 auto; padding:40px 0;
}
.schedule-timeline::before{
  content:''; position:absolute; top:0; left:20px; transform:translateX(-50%);
  width:2px; height:100%; background:var(--color-gray);
}
.schedule-item{
  position:relative; width:100%; padding:20px 40px; box-sizing:border-box;
  padding-left: 80px;
  text-align: left;
}
.schedule-item:nth-child(odd){ left:0; padding-left:80px; text-align:left; }
.schedule-item:nth-child(even){ left:0; }
.schedule-item .icon{
  position:absolute; top:20px; left:0; width:40px; height:40px; border-radius:50%;
  background:var(--color-primary); color:var(--color-white); display:grid; place-items:center; font-size:1.5em;
}
.schedule-item:nth-child(odd) .icon{ right:auto; left:0; }

.meetings-section{ background:var(--color-light); }
.meetings-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap:30px; }
.meeting-card{
  background:var(--color-white); border-radius:8px; overflow:hidden; box-shadow:0 4px 15px rgba(0,0,0,.05);
  transition: transform .3s ease, box-shadow .3s ease;
}
.meeting-card:hover{ transform: translateY(-5px); box-shadow:0 10px 30px rgba(0,0,0,.1); }
.meeting-card .meeting-image{ width:100%; height:200px; object-fit:cover; }
.meeting-card .meeting-content{ padding:20px; }
.meeting-card h3{ font-size:1.5em; margin-bottom:10px; }

/* ========================================================================== */
/*                             Über uns Page Professional                      */
/* ========================================================================== */
.hero-ueber-uns-professional{
  position:relative; background:url('../images/kirche.jpg') center/cover no-repeat;
  color:var(--color-white); text-align:center; padding:150px 0;
}
.hero-ueber-uns-professional .hero-overlay{ position:absolute; inset:0; background: rgba(0,0,0,.5); }
.hero-ueber-uns-professional .container{ position:relative; z-index:1; }
.hero-ueber-uns-professional h1{ font-size:3.5em; font-weight:800; margin-bottom:20px; }

.story-section{ background:var(--color-white); }
.story-grid{ display:grid; grid-template-columns:1fr; gap:60px; align-items:center; }
.story-image img{ width:100%; border-radius:12px; }
.story-content h2{ text-align:center; }
.story-content h2::after{ left:50%; transform:translateX(-50%); }

.beliefs-section{ background:var(--color-light); }
.beliefs-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap:30px; }

.story-section .story-grid{ opacity:0; transform: translateY(50px); transition: opacity .8s ease, transform .8s ease; }
.story-section.is-visible .story-grid{ opacity:1; transform:none; }

.belief-card{
  background:var(--color-white); padding:30px; border-radius:8px; box-shadow:0 4px 15px rgba(0,0,0,.05); text-align:center;
  transition: transform .3s ease, box-shadow .3s ease, background-color .3s ease;
}
.belief-card:hover{ transform: translateY(-10px); box-shadow:0 15px 40px rgba(0,0,0,.1); background:var(--color-primary); color:var(--color-white); }
.belief-card .icon{ font-size:2.5em; color:var(--color-primary); margin-bottom:20px; transition: color .3s ease; }
.belief-card:hover .icon{ color:var(--color-white); }
.belief-card h3{ font-size:1.5em; margin-bottom:10px; }

.team-section-professional{ background:var(--color-white); }
.team-grid-professional{ display:grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap:30px; }
.team-card-professional{ text-align:center; position:relative; overflow:hidden; border-radius:12px; box-shadow:0 10px 30px rgba(0,0,0,.1); }
.team-card-professional .team-image{ width:100%; height:auto; display:block; }
.team-card-professional .team-info{
  position:absolute; bottom:0; left:0; right:0; background: rgba(0,0,0,.7); color:var(--color-white); padding:20px;
  transform: translateY(100%); transition: transform .3s ease;
}
.team-card-professional:hover .team-info{ transform: translateY(0); }
.team-card-professional h3{ font-size:1.5em; margin-bottom:5px; }
.team-card-professional .team-role{ color:var(--color-primary); font-weight:600; }

/* ====== Abschnitt: Werte & Auftrag (Alias-Variablen genutzt) ====== */
.werte-mission-section{
  background:
    radial-gradient(1200px 400px at 10% -20%, rgba(74,108,255,.06), transparent 55%),
    radial-gradient(1200px 400px at 110% 120%, rgba(34,197,94,.07), transparent 55%),
    var(--bg);
}
.feature-grid{ display:grid; grid-template-columns: 1fr; gap: clamp(16px, 2.2vw, 28px); }
.feature{
  grid-column: span 1; background: var(--surface); border:1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); padding: clamp(18px, 2.2vw, 24px); position:relative; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; isolation:isolate;
}
.feature::before{
  content:""; position:absolute; inset:0 0 auto 0; height:4px; border-radius: var(--radius) var(--radius) 0 0;
  background: linear-gradient(90deg, var(--primary), var(--accent)); opacity:.9;
}
.feature:hover{ transform: translateY(-3px); border-color: color-mix(in oklab, var(--primary) 20%, var(--border)); box-shadow: var(--shadow-md); }
.feature h3{ font-size: clamp(1.1rem, 1.2rem + .4vw, 1.5rem); line-height:1.25; margin:2px 0 10px; letter-spacing:.2px; color: var(--primary-700); }
.feature p{ margin:8px 0; color: var(--muted); }
.bibelstelle{
  font-weight:600; color: var(--primary-700);
  background: linear-gradient(90deg, rgba(74,108,255,.08), rgba(34,197,94,.08));
  padding:2px 8px; border-radius:999px; white-space:nowrap;
}

/* ========================================================================== */
/*                             Spenden Page Professional                      */
/* ========================================================================== */
.donate-hero-professional{
  background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
  padding:120px 0; text-align:center; color:var(--color-white);
}
.donate-hero-content h1{ font-size:3.5em; font-weight:800; margin-bottom:20px; text-shadow: 0 2px 4px rgba(0,0,0,.2); }
.donate-hero-content .lead{ font-size:1.4em; max-width:700px; margin:0 auto 30px; opacity:.9; }
.impact-section{ background:var(--color-light); }
.impact-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap:30px; }
.impact-card{ background:var(--color-white); border-radius:8px; padding:30px; text-align:center; box-shadow:0 4px 15px rgba(0,0,0,.05); }
.impact-card .icon{ font-size:3em; color:var(--color-primary); margin-bottom:20px; }
.impact-card h3{ font-size:1.5em; margin-bottom:10px; }
.donate-options-section{ background:var(--color-white); }
.donate-options-grid{ display:grid; grid-template-columns: 1fr; gap:40px; }
.donate-option-card{ background:var(--color-light); border-radius:8px; padding:40px; }
.donate-option-header{ display:flex; align-items:center; gap:15px; margin-bottom:20px; }
.donate-option-header i{ font-size:2em; color:var(--color-primary); }
.bank-details-list-professional{ list-style:none; padding:0; }
.bank-details-list-professional li{ display:flex; justify-content:space-between; padding:15px 0; border-bottom:1px solid var(--color-gray); }
.bank-details-list-professional li:last-child{ border-bottom:none; }
.copy-btn{ background:none; border:none; cursor:pointer; color:var(--color-primary); }

.paypal-form .amount-selection{ display:flex; gap:10px; margin-bottom:20px; }
.paypal-form .amount-chip{
  background:var(--color-light); border:1px solid var(--color-gray); border-radius:50px; padding:10px 20px; cursor:pointer; transition: all .3s ease;
}
.paypal-form .amount-chip.active{ background:var(--color-primary); color:var(--color-white); border-color:var(--color-primary); }
.amount-input-container{ display:flex; align-items:center; gap:10px; margin-bottom:20px; }
.amount-input-container span{ font-size:1.5em; }
.amount-input-container input{ width:100%; padding:10px; border:1px solid var(--color-gray); border-radius:5px; font-size:1.2em; }

.donation-confirmation-section{ background:var(--color-light); }
.donation-confirmation-card{
  background:var(--color-white);
  border:1px solid var(--color-gray);
  border-radius:12px;
  padding:32px;
  box-shadow:0 8px 24px rgba(0,0,0,.05);
}
.donation-confirmation-lead{ margin-bottom:8px; }
.donation-confirmation-note{
  font-size:.95rem;
  color:#46506b;
  margin-bottom:20px;
}
.donation-form-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
}
.donation-form .form-group{ display:flex; flex-direction:column; gap:8px; }
.donation-form .form-group-span{ grid-column:1 / -1; }
.donation-form label{ font-weight:600; color:var(--color-dark); }
.donation-form input,
.donation-form select,
.donation-form textarea{
  width:100%;
  border:1px solid var(--color-gray);
  border-radius:8px;
  padding:12px 14px;
  font-size:1rem;
  font-family:inherit;
  background:#fff;
}
.donation-form textarea{ resize:vertical; min-height:90px; }
.donation-checkbox-row{
  margin:16px 0 18px;
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}
.donation-checkbox-row label{
  font-weight:500;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.96rem;
}
@media (max-width: 768px){
  .donation-form-grid{ grid-template-columns:1fr; }
  .donation-confirmation-card{ padding:22px; }
}

.faq-section{ background:var(--color-light); }
.faq-accordion details{ background:var(--color-white); border-radius:8px; margin-bottom:10px; padding:20px; }
.faq-accordion summary{ font-weight:600; cursor:pointer; }

/* ========================================================================== */
/*                         Veranstaltungen / Events Styles                    */
/* ========================================================================== */
.event-list{ display:flex; flex-direction:column; gap:30px; max-width:800px; margin:40px auto 0; }
.event-list-item{
  display:flex; align-items:center; text-align: center; gap:25px; background:var(--color-white); padding:25px; border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.07); transition: transform .3s ease, box-shadow .3s ease;
  flex-direction: column;
}
.event-list-item:hover{ transform: translateY(-5px); box-shadow:0 12px 30px rgba(0,0,0,.1); }
.event-list-icon{
  font-size:2em; color:var(--color-primary); flex-shrink:0; width:60px; height:60px; display:grid; place-items:center; background:var(--color-light); border-radius:50%;
}
.event-list-content h3{ font-size:1.6em; margin-bottom:5px; }
.event-list-content p{ margin-bottom:0; line-height:1.7; }
.event-list-content p strong{ color:var(--color-secondary); }

.highlighted-section{ background:var(--color-light); }
.cta-section{ background:var(--color-dark); color:var(--color-white); text-align:center; }
.cta-section h2{ color:var(--color-white); }
.cta-section p{ max-width:600px; margin-inline:auto; opacity:.9; }
.btn-secondary{
  display:inline-block; background:var(--color-secondary); color:var(--color-white); padding:12px 25px; border-radius:50px; text-decoration:none;
  font-weight:600; transition: background-color .3s ease, transform .3s ease; margin-top:15px;
}
.btn-secondary:hover{ background:var(--color-secondary-dark); transform: translateY(-2px); }

.event-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap:32px; margin-top:40px; }

.event-card{
  background:var(--color-light); border-radius:16px; box-shadow:0 12px 32px rgba(0,0,0,.08);
  overflow:hidden; text-align:left; color:var(--color-dark); transition: transform .3s ease, box-shadow .3s ease;
}
.event-card:hover{ transform: translateY(-2px); box-shadow:0 16px 40px rgba(0,0,0,.15); }
.event-card img.event-image{
  width:100%; aspect-ratio:16/9; height: clamp(180px, 22vw, 260px); object-fit:cover; border-radius:14px 14px 0 0; background:var(--color-gray);
}
.event-card-content{ padding:28px; }
.event-label{ font-size:14px; font-weight:500; color:var(--color-primary); text-transform:uppercase; margin-bottom:8px; display:block; }
.event-card h3{ font-size: clamp(22px, 2.5vw, 30px); font-weight:700; color:var(--color-dark); margin-bottom:8px; }
.event-subtitle{ font-size:16px; color:var(--color-dark); opacity:.8; }

.button{
  display:inline-block; border-radius:50px; padding:16px 30px; font-size:18px; font-weight:600; background:var(--color-primary); color:var(--color-white); border:none;
  box-shadow:0 8px 24px rgba(0,0,0,.12); cursor:pointer; text-decoration:none; transition: all .3s ease;
}
.button:hover{ background:var(--color-secondary); transform: translateY(-3px); box-shadow:0 12px 30px rgba(0,0,0,.18); }
.button:active{ transform:none; box-shadow:0 4px 12px rgba(0,0,0,.08); }
.button:focus{ outline:2px solid var(--color-primary); outline-offset:2px; }

/* ========================================================================== */
/*                                  Über uns                                  */
/* ========================================================================== */
.logo{ display:inline-flex; align-items:center; gap:12px; }
.logo-img{ width:clamp(36px,6vw,54px); height:auto; }
.logo-text .logo-title{ font-weight:800; line-height:1.1; display:block; }
.logo-text .logo-subtitle{ font-size:.85rem; opacity:.75; display:block; }

.hero-ueber-uns{
  position:relative; min-height: clamp(280px, 45vh, 520px);
  background: url('../images/Logo_Schwarz_Transparent_KS.png') center/contain no-repeat #111827;
  display:flex; align-items:center; justify-content:center; text-align:center; padding:0 1rem;
}
.hero-ueber-uns .overlay{
  position:absolute; inset:0; background: linear-gradient(to bottom, rgba(0,0,0,.4) 0%, rgba(0,0,0,.55) 100%);
}
.hero-ueber-uns .container{ position:relative; z-index:1; text-align:center; }
.hero-ueber-uns .hero-container{ position:relative; z-index:1; color:var(--color-white); max-width:800px; }
.hero-ueber-uns h1{ font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight:800; margin-bottom:.6rem; position:relative; }

.hero-ueber-uns p{ font-size: clamp(1.05rem, 2vw, 1.3rem); font-weight:400; opacity:.95; margin-top:.8rem; line-height:1.6; color: white; }


.about-us-section{ padding: clamp(48px, 6vw, 88px) 0; }
.about-us-grid{ display:grid; grid-template-columns:1fr; gap: clamp(24px, 3.5vw, 48px); align-items:center; }
.about-us-text h2{ font-weight:800; margin:0 0 6px; line-height:1.15; text-align: center; }
.about-us-text h2::after{ left:50%; transform:translateX(-50%); }
.about-us-text h3{ opacity:.9; font-weight:600; margin:0 0 20px; }
.about-us-text p{ line-height:1.8; font-size:1.05rem; margin:0 0 14px; }
.about-us-image{ display:none; }

.team-grid{ display:grid; grid-template-columns: 1fr; gap: clamp(16px, 2vw, 24px); }
.team-card{
  background:var(--color-white); border-radius:18px; overflow:hidden; box-shadow:0 10px 24px rgba(0,0,0,.08);
  transition: transform .18s ease, box-shadow .18s ease;
}
.team-card:hover{ transform: translateY(-4px); box-shadow:0 16px 32px rgba(0,0,0,.12); }
.team-image-wrap{ aspect-ratio:4/3; overflow:hidden; }
.team-image-wrap img{ width:100%; height:100%; object-fit:cover; display:block; }
.team-content{ padding:16px 18px 18px; }
.team-name{ margin:0 0 4px; font-weight:700; }
.team-role{ margin:0 0 10px; opacity:.75; font-weight:600; }
.team-bio{ margin:0; line-height:1.6; font-size:.98rem; }

.footer-section .social-links a{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; opacity:.9; }
.footer-section .social-links a:hover{ opacity:1; text-decoration:underline; }

/* Roots / Wurzeln */
.roots-section{ padding:clamp(44px,6vw,80px) 0; background: var(--color-light); }
.roots-section h2{ margin:0 0 8px; font-weight:800; }
.roots-intro{ max-width:760px; margin:0 0 28px; line-height:1.75; opacity:.9; }
.roots-grid{ display:grid; grid-template-columns: 1fr; gap: clamp(18px, 2.4vw, 28px); }
.roots-card{
  display:grid; grid-template-columns: 1fr; align-items:center; gap:18px; background:var(--color-white); border-radius:18px; padding:18px;
  box-shadow:0 10px 24px rgba(0,0,0,.06); transition: transform .18s ease, box-shadow .18s ease;
  text-align: center;
}
.roots-card:hover{ transform: translateY(-3px); box-shadow:0 16px 32px rgba(0,0,0,.1); }
.roots-media{ width:120px; aspect-ratio:1/1; display:grid; place-items:center; background:linear-gradient(180deg,#f2f4f7,#e9edf3); border-radius:14px; overflow:hidden; margin-inline: auto; }
.roots-media img{ width:70%; height:auto; object-fit:contain; filter:contrast(1.05) saturate(1.02); }
.roots-content h3{ margin:.25rem 0 .35rem; font-weight:700; }
.roots-content p{ margin:0 0 .9rem; line-height:1.7; }
.btn-outline{
  display:inline-flex; align-items:center; gap:.5rem; padding:.6rem .9rem; border-radius:12px; border:1.5px solid rgba(0,0,0,.12);
  text-decoration:none; font-weight:600;
}
.btn-outline:hover{ border-color: rgba(0,0,0,.22); }

/* ========================================================================== */
/*                  Gottesdienste Page – Pro Varianten                        */
/* ========================================================================== */
.gd-hero-pro{
  position:relative; height:80vh; min-height:500px; display:flex; align-items:center; justify-content:center; text-align:center; color:#FFFFFF; overflow:hidden;
  background: linear-gradient(135deg, #2563EB 0%, #1e3a8a 100%);
}
.gd-hero-pro[data-has-image="true"] .video-background{
  display:none;
}

.event-category-bg-1{ background-image: url('images/TaubeundBible.jpg'); }
.event-category-bg-2{ background-image: url('images/biblestunde_jugend.jpg'); }
.event-category-bg-3{ background-image: url('images/jugend-Bibelstunde.jpg'); }
.event-category-bg-4{ background-image: url('images/Gebete.jpg'); }

.footer-donation .footer-heading{
  margin-top:30px;
}

.upcoming-events-title{
  margin-top:40px;
}

/* ========================================================================== */
/*                             Service Cards Section                          */
/* ========================================================================== */
.service-cards-section {
  background: var(--color-light, #F9FAFB);
  padding: 60px 0;
}

.service-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 40px;
}

.service-card-item {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-card-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.service-card-image {
  position: relative;
  height: 180px;
  overflow: hidden;
}

.service-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.service-card-label {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--color-primary, #2563EB);
  color: white;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.service-card-content {
  padding: 24px;
}

.service-card-content h3 {
  margin: 0 0 12px 0;
  font-size: 1.25rem;
  color: var(--color-dark, #111827);
}

.service-card-time {
  color: #6B7280;
  font-size: 0.9rem;
  margin: 0 0 16px 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.service-card-time i {
  color: var(--color-primary, #2563EB);
}

.service-card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-primary, #2563EB);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
  transition: gap 0.2s ease;
}

.service-card-link:hover {
  gap: 10px;
}

@media (max-width: 768px) {
  .service-cards-section {
    padding: 40px 0;
  }

  .service-cards-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.video-background{ position:absolute; inset:0; z-index:0; width:100%; height:100%; }
.video-background video{ width:100%; height:100%; object-fit:cover; }
.gd-hero-pro .hero-overlay{ position:absolute; inset:0; background: rgba(0,0,0,.6); z-index:1; }
.gd-hero-pro .hero-content,
.gd-hero-pro .container.hero-content{ position:relative; z-index:10; max-width:800px; }
.gd-hero-pro h1{ font-size: clamp(2.1rem, 5vw, 3.2rem); font-weight:800; text-shadow:0 2px 10px rgba(0,0,0,.5); color:#FFFFFF !important; line-height: 1.2; }
.gd-hero-pro .lead{ font-size:1.15rem; opacity:1; margin:16px 0 24px; color:#FFFFFF !important; line-height: 1.6; }
.gd-hero-info{ color:#FFFFFF; }
.gd-hero-info span{ color:#FFFFFF; }
.gd-hero-info{ display:flex; justify-content:center; gap:20px; font-size:1rem; font-weight:600; }
.gd-hero-info span{ display:flex; align-items:center; gap:10px; }

.section-intro{ text-align:center; max-width:700px; margin:0 auto 60px; }
.section-intro h2{ font-size:clamp(1.9rem, 4.2vw, 2.6rem); }
.expect-pro-section{ background:var(--color-light); }
.expect-pro-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap:30px; }
.expect-pro-card{
  background:var(--color-white); padding:40px; border-radius:12px; text-align:center;
  box-shadow:0 10px 30px rgba(0,0,0,.05); transition: transform .3s ease, box-shadow .3s ease;
}
.expect-pro-card:hover{ transform: translateY(-10px); box-shadow:0 15px 40px rgba(0,0,0,.1); }
.expect-pro-card .icon{ font-size:3rem; color:var(--color-primary); margin-bottom:20px; }
.expect-pro-card h3{ font-size:1.5rem; margin-bottom:15px; }

.plan-visit-pro-section{ background:var(--color-white); }
.plan-visit-pro-grid{ max-width:800px; margin:0 auto; display:flex; flex-direction:column; gap:40px; }
.plan-visit-pro-item{ display:flex; align-items:flex-start; gap:25px; }
.plan-visit-pro-icon{
  font-size:2rem; color:var(--color-secondary); flex-shrink:0; width:60px; height:60px; display:grid; place-items:center; background:var(--color-light); border-radius:50%;
}
.plan-visit-pro-content h3{ font-size:1.4rem; margin-bottom:5px; }

.testimonials-section{ background:var(--color-light); }
.testimonials-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap:30px; max-width:900px; margin:0 auto; }
.testimonial-card{ background:var(--color-white); padding:30px; border-radius:12px; border-left:5px solid var(--color-primary); box-shadow:0 8px 24px rgba(0,0,0,.07); }
.testimonial-card p{ font-style:italic; margin-bottom:20px; }
.testimonial-author{ font-weight:700; color:var(--color-primary); text-align:right; }

.cta-pro-section{
  background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
  color:var(--color-white); text-align:center; padding:100px 0;
}
.cta-pro-section h2{ color:var(--color-white); font-size:clamp(1.9rem, 4.4vw, 2.5rem); margin-bottom:20px; }
.cta-pro-section p{ font-size:1.2rem; opacity:.9; margin-bottom:30px; }

/* Events – Pro */
.events-hero-pro{
  position:relative; height:70vh; min-height:500px; display:flex; align-items:center; justify-content:center; text-align:center; color:var(--color-white);
  background: url('../images/Kalender.jpg') center/cover no-repeat;
}
.events-hero-pro .hero-overlay{ position:absolute; inset:0; background: linear-gradient(to bottom, rgba(0,0,0,.6), rgba(0,0,0,.2)); }
.events-hero-pro .hero-content{ position:relative; z-index:1; max-width:800px; }
.events-hero-pro h1{ font-size: clamp(3rem, 6vw, 4.5rem); font-weight:800; text-shadow:0 4px 15px rgba(0,0,0,.6); }
.events-hero-pro .lead{ font-size:1.5rem; opacity:1; margin:20px 0 40px; text-shadow:0 2px 10px rgba(0,0,0,.5); color: var(--color-white); }

.upcoming-events-pro-section{ background:var(--color-light); }
.upcoming-events-pro-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap:30px; }
.upcoming-event-pro-card{
  background:var(--color-white); border-radius:12px; box-shadow:0 10px 30px rgba(0,0,0,.07); display:flex; flex-direction: column; align-items:center; padding:20px; gap:20px;
  transition: transform .3s ease, box-shadow .3s ease;
  text-align: center;
}
.upcoming-event-pro-card:hover{ transform: translateY(-5px); box-shadow:0 15px 40px rgba(0,0,0,.1); }
.upcoming-event-pro-date{ flex-shrink:0; width:70px; text-align:center; }
.upcoming-event-pro-date .month{ display:block; background:var(--color-primary); color:var(--color-white); font-weight:700; padding:5px; border-radius:8px 8px 0 0; }
.upcoming-event-pro-date .day{
  display:block; background:var(--color-white); color:var(--color-dark); font-size:2rem; font-weight:800; padding:10px; border:1px solid var(--border); border-radius:0 0 8px 8px;
}
.upcoming-event-pro-content h3{ font-size:1.4rem; margin-bottom:10px; }
.upcoming-event-pro-content p{ margin-bottom:5px; color:var(--muted); }
.upcoming-event-pro-card .btn-primary{ margin-left:0; margin-top:15px; }

.copyright-text{ color: rgba(37, 99, 235, .8); }

.event-categories-pro-section-enhanced{ background:var(--color-light); padding:100px 0; }
.event-category-pro-card-enhanced{
  position:relative; border-radius:12px; overflow:hidden; color:var(--color-white); text-align:center; padding:40px;
  background-size:cover; background-position:center; min-height:350px; display:flex; flex-direction:column; justify-content:center;
  transition: transform .3s ease, box-shadow .3s ease;
}
.event-category-pro-card-enhanced:hover{ transform: translateY(-10px); box-shadow:0 20px 40px rgba(0,0,0,.2); }
.event-category-pro-card-enhanced .card-overlay{ position:absolute; inset:0; background: rgba(0,0,0,.6); transition: background-color .3s ease; }
.event-category-pro-card-enhanced:hover .card-overlay{ background: rgba(0,0,0,.4); }
.event-category-pro-card-enhanced .card-content{ position:relative; z-index:1; }
.event-category-pro-card-enhanced .icon{ font-size:3rem; margin-bottom:20px; color:var(--color-white); text-shadow:0 2px 10px rgba(0,0,0,.5); }
.event-category-pro-card-enhanced h3{ font-size:1.8rem; margin-bottom:15px; color:var(--color-white); text-shadow:0 2px 10px rgba(0,0,0,.5); }
.event-category-pro-card-enhanced p{ color: rgba(255,255,255,.9); text-shadow:0 1px 5px rgba(0,0,0,.5); }

.expect-pro-section-enhanced{ background:var(--color-light); padding:100px 0; }
.expect-pro-card-enhanced{
  position:relative; border-radius:12px; overflow:hidden; color:var(--color-white); text-align:center; padding:40px;
  background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a8a 100%);
  background-size:cover; background-position:center; min-height:350px; display:flex; flex-direction:column; justify-content:center;
  transition: transform .3s ease, box-shadow .3s ease;
}
.expect-pro-card-enhanced:hover{ transform: translateY(-10px); box-shadow:0 20px 40px rgba(250, 249, 249, 0.2); }

.expect-card-anbetung {
  background-image: url('../images/bible.und.hand.hoch.jpg');
}

.expect-card-predigten {
  background-image: url('../images/GoldeneBible.jpeg');
}

.expect-card-gemeinschaft {
  background-image: url('../images/jugend-Bibelstunde.jpg');
}

.expect-card-kinder {
  background-image: url('../images/Gebete.jpg');
}

.expect-pro-card-enhanced .card-overlay{ position:absolute; inset:0; background: rgba(0,0,0,.4); transition: background-color .3s ease; z-index:1; }

.expect-pro-card-enhanced .card-content{
  position: relative;
  z-index: 2;
}

.expect-pro-card-enhanced .card-content .icon{
  font-size: 3rem;
  color: #FFFFFF;
  margin-bottom: 20px;
}

.expect-pro-card-enhanced .card-content h3 {
  color: #FFFFFF !important;
  font-size: clamp(1.3rem, 2.8vw, 1.55rem);
  font-weight: 800;
  line-height: 1.3;
  text-align: center;
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  overflow-wrap: anywhere;
  hyphens: auto;
  text-shadow: 0 2px 4px rgba(0,0,0,0.6);
}

.expect-pro-card-enhanced .card-content p {
  color: #FFFFFF !important;
  text-shadow: 0 1px 3px rgba(0,0,0,0.5);
  margin-bottom: 0;
}

/* ========================================================================== */
/*                             Responsive Styles                              */
/* ========================================================================== */

/* -------------------- Mobile First Base -------------------- */

body {
  font-size: 16px;
}

/* Container - mehr Padding auf Mobile */
.container {
  padding-inline: 16px;
}

/* Sections - weniger Padding auf Mobile */
.content-section {
  padding: 48px 0;
}

/* Überschriften - kleiner auf Mobile */
h2 {
  font-size: clamp(1.95rem, 7vw, 2.3rem);
  margin-bottom: 1em;
}
h2::after {
  width: 50px;
  height: 3px;
}
h3 {
  font-size: 1.35em;
  line-height: 1.35;
}

/* Hero Section Mobile Optimierung */
.hero {
  padding-top: 100px;
  padding-bottom: 60px;
  min-height: auto;
}
.hero-left h1 {
  font-size: clamp(28px, 8vw, 42px);
  margin-bottom: 16px;
  line-height: 1.1;
}
.hero-left p {
  font-size: 17px;
  margin-bottom: 24px;
  line-height: 1.75;
}
.btn-ghost {
  height: 44px;
  padding: 0 20px;
  font-size: 14px;
}

/* Cards und Boxen - kompakteres Padding auf Mobile */
.gottesdienste-card-professional,
.contact-form,
.contact-details,
.donate-option-card,
.expect-card,
.belief-card,
.team-card,
.roots-card,
.event-card-content,
.testimonial-card,
.plan-visit-pro-card-enhanced,
.impact-card {
  padding: 20px;
}

/* Gottesdienste Section Mobile */
.services-section-new {
  padding: 48px 0;
}
.gottesdienste-grid {
  gap: 32px;
}
.gottesdienste-info h2 {
  font-size: 2em;
}
.gottesdienste-info p {
  font-size: 1em;
  line-height: 1.7;
}
.gottesdienste-card-header {
  flex-direction: column;
  text-align: center;
  gap: 10px;
}
.gottesdienste-card-header h3 {
  font-size: 1.4em;
}
.service-item {
  flex-direction: column;
  text-align: center;
  gap: 8px;
}
.service-item i {
  font-size: 24px;
}

/* Buttons - größer und touch-freundlich */
.btn-primary {
  padding: 14px 28px;
  font-size: 16px;
  width: 100%;
  text-align: center;
  justify-content: center;
}
.btn-secondary {
  padding: 12px 24px;
  font-size: 16px;
  width: 100%;
  text-align: center;
}

/* Service Cards Mobile */
.service-cards-section {
  padding: 48px 0;
}
.service-cards-section h2 {
  font-size: 1.75em;
}
.service-cards-grid {
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 24px;
}
.service-card-image {
  height: 160px;
}
.service-card-content {
  padding: 20px;
}
.service-card-content h3 {
  font-size: 1.2rem;
  line-height: 1.35;
}
.service-card-time,
.service-card-link {
  font-size: 1rem;
  line-height: 1.55;
}

/* Kontakt Section Mobile */
.contact-grid {
  gap: 24px;
}
.contact-form h3,
.contact-details h3 {
  font-size: 1.3em;
  margin-bottom: 16px;
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
  padding: 14px;
  font-size: 16px; /* Verhindert Zoom auf iOS */
}
.contact-form button[type="submit"] {
  width: 100%;
  padding: 14px;
  font-size: 16px;
}
.map-container {
  border-radius: 12px;
}
.map-container iframe {
  height: 250px;
}

/* Footer Mobile */
.site-footer {
  padding: 48px 0 24px;
}
.site-footer .footer-grid {
  gap: 32px;
  margin-bottom: 32px;
}
.site-footer .footer-heading {
  font-size: 1.1rem;
  margin-bottom: 16px;
}
.site-footer .footer-about-text {
  font-size: 1rem;
  line-height: 1.75;
}
.site-footer .footer-links a,
.site-footer .footer-contact p,
.site-footer .footer-bottom p,
.site-footer .footer-legal-links a {
  font-size: 0.98rem;
  line-height: 1.65;
}
.site-footer .footer-bottom {
  padding-top: 24px;
  gap: 16px;
}
.site-footer .footer-legal-links {
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
.btn-footer-donate {
  width: 100%;
  text-align: center;
}

/* Über uns Section Mobile */
#ueber-uns h3 {
  font-size: 1.2em;
  margin-bottom: 12px;
  line-height: 1.35;
}
#ueber-uns p {
  font-size: 1.02em;
  line-height: 1.8;
}
.centered-actions {
  margin-top: 20px;
}
.centered-actions .btn {
  width: 100%;
}

/* ≥ 480px (Large Mobile) */
@media (min-width: 480px) {
  body {
    font-size: var(--font-size-base);
  }
  .container {
    padding-inline: 20px;
  }
  .content-section {
    padding: 56px 0;
  }
  h2 {
    font-size: 2em;
  }
  .hero-left h1 {
    font-size: clamp(32px, 9vw, 48px);
  }
  .hero-left p {
    font-size: 17px;
  }
  .btn-primary,
  .btn-secondary,
  .btn-footer-donate,
  .contact-form button[type="submit"],
  .centered-actions .btn {
    width: auto;
  }
  .service-card-image {
    height: 180px;
  }
  .map-container iframe {
    height: 280px;
  }
}

/* ≥ 576px (Phablet) */
@media (min-width: 576px) {
  .content-section {
    padding: 64px 0;
  }
  .gottesdienste-card-header {
    flex-direction: row;
    text-align: left;
  }
  .service-item {
    flex-direction: row;
    text-align: left;
    gap: 20px;
  }
  .event-list-item {
    flex-direction: row;
    align-items: flex-start;
    text-align: left;
  }
  .roots-card {
    grid-template-columns: 120px 1fr;
    text-align: left;
  }
  .roots-media {
    margin-inline: 0;
  }
  .service-cards-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ≥ 640px */
@media (min-width: 640px) {
  .contact-person-card {
    padding: 22px;
  }
  .map-container iframe {
    height: 320px;
  }
  .contact-grid {
    gap: 32px;
  }
}

/* ≥ 768px (Tablet) */
@media (min-width: 768px) {
  body {
    padding-top: var(--header-height);
  }
  .content-section {
    padding: 72px 0;
  }
  h1,
  .hero-left h1,
  .hero-ueber-uns h1,
  .gd-hero-pro h1,
  .events-hero-pro h1 {
    font-size: clamp(2.2rem, 8vw, 3rem);
  }
  h2 {
    font-size: 2.3em;
  }
  h2::after {
    width: 60px;
    height: 4px;
  }
  h3 {
    font-size: 1.6em;
  }
  .hero {
    padding-top: 140px;
    padding-bottom: 100px;
    min-height: 75vh;
  }
  .hero-left h1 {
    font-size: clamp(38px, 7vw, 56px);
  }
  .hero-left p {
    font-size: 18px;
    max-width: 550px;
    margin-inline: auto;
  }
  .gottesdienste-grid,
  .story-grid {
    gap: 48px;
  }
  .gottesdienste-info h2 {
    font-size: 2.5em;
  }
  .gottesdienste-card-professional,
  .contact-form,
  .contact-details,
  .donate-option-card {
    padding: 32px;
  }
  .service-cards-section {
    padding: 72px 0;
  }
  .service-cards-section h2 {
    font-size: 2.3em;
  }
  .service-cards-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
  .map-container iframe {
    height: 360px;
  }
  .team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .schedule-timeline::before {
    left: 50%;
  }
  .schedule-item,
  .schedule-item:nth-child(even) {
    width: 50%;
    left: 50%;
    padding-left: 40px;
    text-align: left;
  }
  .schedule-item:nth-child(odd) {
    left: 0;
    padding-left: 0;
    text-align: right;
  }
  .schedule-item .icon {
    left: -20px;
  }
  .schedule-item:nth-child(odd) .icon {
    left: auto;
    right: -20px;
  }
  .about-us-image {
    display: flex;
  }
  .site-footer {
    padding: 60px 0 30px;
  }
  .site-footer .footer-grid {
    text-align: left;
    gap: 40px;
  }
  .site-footer .footer-social {
    justify-content: flex-start;
  }
  .site-footer .footer-bottom {
    flex-direction: row;
    justify-content: space-between;
  }
  .upcoming-event-pro-card {
    flex-direction: row;
    text-align: left;
  }
  .upcoming-event-pro-card .btn-primary {
    margin-left: auto;
    margin-top: 0;
  }
}

/* ≥ 1100px (Desktop) */
@media (min-width: 1100px) {
  body.no-scroll {
    overflow: auto;
  }
  .hero-grid,
  .gottesdienste-grid,
  .story-grid,
  .contact-grid,
  .donate-options-grid,
  .about-us-grid,
  .roots-grid,
  .featured-event-pro-grid {
    grid-template-columns: 1fr 1fr;
  }
  .gottesdienste-info h2,
  .story-content h2,
  .about-us-text h2 {
    text-align: left;
  }
  .gottesdienste-info h2::after,
  .story-content h2::after,
  .about-us-text h2::after {
    left: 0;
    transform: none;
  }
  .hero-grid {
    text-align: left;
  }
  .hero-left {
    order: 1;
  }
  .hero-right {
    order: 2;
    justify-content: flex-end;
    margin-bottom: 0;
  }
  .team-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .feature-grid {
    grid-template-columns: repeat(12, 1fr);
  }
  .feature {
    grid-column: span 6;
  }
  .map-container iframe {
    height: 420px;
  }
}

/* ≥ 1024px (Large Desktop) */
@media (min-width: 1024px) {
  .event-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ≥ 1200px (XL Desktop) */
@media (min-width: 1200px) {
  .container {
    max-width: 1200px;
  }
  .content-section {
    padding: 88px 0;
  }
  .hero {
    min-height: 78vh;
  }
  .map-container iframe {
    height: 460px;
  }
  .event-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ≥ 1440px (XXL Desktop) */
@media (min-width: 1440px) {
  .container {
    max-width: 1320px;
  }
  .hero {
    min-height: 82vh;
  }
}

@media (max-width: 767px) {
  body {
    line-height: 1.7;
  }
  p,
  li {
    font-size: 1rem;
    line-height: 1.75;
  }
  .section-intro {
    margin: 0 auto 34px;
  }
  .section-intro h2 {
    font-size: clamp(1.75rem, 7.2vw, 2.1rem);
  }
  .gd-hero-pro {
    min-height: 360px;
  }
  .gd-hero-pro .hero-content {
    text-align: center;
  }
  .gd-hero-pro h1 {
    font-size: clamp(1.95rem, 8.4vw, 2.35rem);
  }
  .gd-hero-pro .lead {
    font-size: 1.02rem;
    margin: 12px 0 20px;
  }
  .gd-hero-info {
    flex-direction: column;
    align-items: center;
    gap: 10px;
    font-size: 0.96rem;
  }
  .gd-hero-info span {
    text-align: center;
    justify-content: center;
  }
  .expect-pro-card-enhanced {
    min-height: 260px;
    padding: 28px 20px;
  }
  .expect-pro-card-enhanced .card-content .icon {
    font-size: 2.2rem;
    margin-bottom: 14px;
  }
  .expect-pro-card-enhanced .card-content h3 {
    font-size: 1.28rem;
    line-height: 1.3;
  }
  .expect-pro-card-enhanced .card-content p {
    font-size: 0.98rem;
    line-height: 1.65;
  }
  .cta-pro-section p {
    font-size: 1.05rem;
    line-height: 1.65;
  }
  .hide-on-mobile {
    display: none;
  }
}

/* ========================================================================== */
/*                          ADMIN CMS STYLES                                   */
/* ========================================================================== */

/* Site Banner (Ankündigungen) */
.site-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10000;
  padding: 10px 0;
  text-align: center;
}

.site-banner .container {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

.site-banner .banner-text {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
}

.site-banner .banner-text a {
  text-decoration: underline;
}

.site-banner .banner-close {
  background: none;
  border: none;
  font-size: 20px;
  cursor: pointer;
  opacity: 0.8;
  transition: opacity 0.2s;
}

.site-banner .banner-close:hover {
  opacity: 1;
}

/* Adjust body padding when banner is active */
body.has-banner {
  padding-top: calc(var(--header-height) + 44px);
}

/* Featured Events */
.featured-events {
  margin-bottom: 40px;
}

.featured-event-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  background: var(--color-white);
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  margin-bottom: 20px;
}

@media (min-width: 768px) {
  .featured-event-card {
    grid-template-columns: 300px 1fr;
  }
}

.featured-event-image {
  width: 100%;
  height: 200px;
  object-fit: cover;
}

@media (min-width: 768px) {
  .featured-event-image {
    height: 100%;
  }
}

.featured-event-content {
  padding: 25px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.featured-event-content h3 {
  font-size: 1.5em;
  margin-bottom: 10px;
}

.featured-event-content .event-date,
.featured-event-content .event-location {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  margin-bottom: 8px;
}

.featured-event-content .event-description {
  margin: 15px 0;
  color: var(--text);
}

/* Event Label with dynamic color */
.event-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  color: white;
  background-color: var(--color-primary);
  margin-bottom: 10px;
}

/* Upcoming Events List */
.upcoming-events-title {
  text-align: center;
  font-size: 1.3em;
  color: var(--color-dark);
  margin-bottom: 20px;
}

.upcoming-events-list {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.upcoming-event-item {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px;
  background: var(--color-white);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.3s ease;
}

.upcoming-event-item:hover {
  box-shadow: var(--shadow-md);
}

.event-date-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 60px;
  padding: 10px;
  background: var(--color-primary);
  color: white;
  border-radius: 10px;
  text-align: center;
}

.event-date-badge .event-day {
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1;
}

.event-date-badge .event-month {
  font-size: 0.75em;
  text-transform: uppercase;
  font-weight: 600;
}

.upcoming-event-item .event-info {
  flex: 1;
}

.upcoming-event-item .event-info h4 {
  font-size: 1.1em;
  margin-bottom: 5px;
  color: var(--color-dark);
}

.upcoming-event-item .event-time,
.upcoming-event-item .event-location {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.9em;
  color: var(--muted);
  margin-bottom: 3px;
}

.upcoming-event-item .event-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: var(--color-light);
  border-radius: 50%;
  color: var(--color-primary);
  text-decoration: none;
  transition: all 0.3s ease;
}

.upcoming-event-item .event-link:hover {
  background: var(--color-primary);
  color: white;
}

/* Section Subtitle */
.section-subtitle {
  text-align: center;
  color: var(--muted);
  font-size: 1.1em;
  margin-top: -1em;
  margin-bottom: 2em;
}

/* Team Page Styles */
.team-member-card {
  background: var(--color-white);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.team-member-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
}

.team-member-image {
  width: 100%;
  height: 250px;
  object-fit: cover;
}

.team-member-content {
  padding: 20px;
  text-align: center;
}

.team-member-content h3 {
  font-size: 1.2em;
  margin-bottom: 5px;
}

.team-member-content .role {
  color: var(--color-primary);
  font-weight: 600;
  font-size: 0.9em;
  margin-bottom: 10px;
}

.team-member-content .bio {
  font-size: 0.9em;
  color: var(--muted);
}

.team-member-contact {
  display: flex;
  justify-content: center;
  gap: 15px;
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid var(--border);
}

.team-member-contact a {
  color: var(--muted);
  font-size: 1.2em;
  transition: color 0.3s ease;
}

.team-member-contact a:hover {
  color: var(--color-primary);
}

/* CMS Preview (Click-to-Edit) */
body.cms-preview [data-cms-field] {
  cursor: pointer;
}

body.cms-preview [data-cms-field]:hover {
  outline: 2px dashed rgba(37, 99, 235, 0.6);
  outline-offset: 4px;
}

body.cms-preview .cms-selected-field {
  outline: 2px solid rgba(16, 185, 129, 0.9);
  outline-offset: 4px;
}
