/*
Theme Name:  SV47 Rövershagen
Theme URI:   https://sv47.de
Description: Offizielles Child Theme des SV "47" Rövershagen e.V. – basiert auf Astra
Version:     1.0.3
Author:      SV "47" Rövershagen e.V.
Template:    astra
Text Domain: sv47child
*/

/* ================================================================
   ASTRA VOLLSTÄNDIG NEUTRALISIEREN
   Gilt für alle Seiten — SV47 Design übernimmt komplett
   ================================================================ */

/* Astra Header / Footer ausblenden */
.main-header-bar,
.ast-above-header-wrap,
.ast-below-header-wrap,
.ast-primary-header-bar,
.site-header,
#ast-scroll-top,
.ast-breadcrumbs-wrapper,
.entry-header,
.page-title-bar,
.ast-page-title-bar,
.ast-header-sections-navigation { display: none !important; }

/* Astra-Footer ausblenden (unser footer.php übernimmt) */
.site-footer,
#colophon,
.ast-site-footer { display: none !important; }

/* Astra Content-Wrapper neutralisieren */
#page,
#primary,
#main,
.site,
.site-content,
.site-main,
.content-area,
#content,
.ast-container,
.entry-content,
.post-content,
.page-content,
.ast-article-post,
.ast-article-single,
.ast-separate-container,
.ast-two-container,
.ast-right-sidebar,
.ast-left-sidebar,
.ast-page-builder-template #primary,
.ast-page-builder-template .site-main {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  display: block !important;
  float: none !important;
  box-sizing: border-box !important;
}

#page { min-height: 0 !important; }

/* Astra setzt body padding-top für seinen sticky header — aufheben */
body { padding-top: 0 !important; }

/* Astra Seitentitel ausblenden */
.entry-title,
.page .entry-title,
.ast-title,
.page-header { display: none !important; }

/* ================================================================
   GLOBALE TYPOGRAFIE & VARIABLEN
   ================================================================ */
:root {
  --navy:      #1B2A4A;
  --navy-dark: #111D33;
  --sky:       #3A8CC4;
  --neon:      #D4E620;
  --white:     #FFFFFF;
  --off:       #F4F7FA;
  --muted:     #5A6478;
}

/* Font Awesome wird via functions.php als async preload geladen — kein @import nötig */

/* ================================================================
   STARTSEITE HERO — muss hier stehen (höhere Spezifität als Astra)
   ================================================================ */
.sv47-hero {
  background: var(--navy) !important;
  padding: 80px 2.5rem !important;
  position: relative !important;
  overflow: hidden !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.sv47-hero-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: 1.4fr 1fr !important;
  align-items: center !important;
  gap: 3rem !important;
}
.sv47-hero-text { text-align: left !important; }
.sv47-hero-tag {
  display: inline-block !important;
  background: rgba(212,230,32,.12) !important;
  border: 1px solid rgba(212,230,32,.3) !important;
  color: var(--neon) !important;
  font-size: 12px !important; font-weight: 700 !important;
  letter-spacing: .12em !important; text-transform: uppercase !important;
  padding: 5px 15px !important; border-radius: 4px !important;
  margin-bottom: 22px !important;
}
.sv47-hero h1 {
  font-size: clamp(40px, 5.5vw, 76px) !important;
  font-weight: 900 !important;
  color: white !important;
  line-height: 1.02 !important;
  letter-spacing: -.03em !important;
  margin: 0 0 18px !important;
}
.sv47-hero h1 span { color: var(--neon) !important; }
.sv47-hero-sub {
  font-size: 18px !important;
  color: rgba(255,255,255,.6) !important;
  max-width: 480px !important;
  margin: 0 0 32px !important;
  line-height: 1.65 !important;
}
.sv47-hero-btns { display: flex !important; gap: 14px !important; flex-wrap: wrap !important; }

/* Hero Logo */
.sv47-hero-logo {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 460px !important;
}
.sv47-hero-logo::before {
  content: '' !important;
  position: absolute !important;
  width: 460px !important; height: 460px !important;
  border-radius: 50% !important;
  background: radial-gradient(circle, rgba(212,230,32,.45) 0%, rgba(212,230,32,.12) 45%, rgba(212,230,32,0) 72%) !important;
  animation: sv47-pulse 4s ease-in-out infinite !important;
}
.sv47-hero-logo img {
  position: relative !important;
  z-index: 2 !important;
  width: 360px !important;
  max-width: 85% !important;
  height: auto !important;
  filter: drop-shadow(0 10px 30px rgba(0,0,0,.35)) !important;
  animation: sv47-float 5s ease-in-out infinite !important;
}
@keyframes sv47-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-16px); }
}
@keyframes sv47-pulse {
  0%, 100% { transform: scale(1); opacity: .8; }
  50% { transform: scale(1.12); opacity: 1; }
}

/* Content-Bereich Startseite */
.sv47-content-area {
  background: var(--off) !important;
  padding: 72px 2rem !important;
  position: relative !important;
}
.sv47-wrap {
  max-width: 1200px !important;
  margin: 0 auto !important;
}

/* Section Headings */
.sv47-sh {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  margin-bottom: 24px !important;
}
.sv47-sh small {
  display: block !important;
  font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: .14em !important; text-transform: uppercase !important;
  color: var(--sky) !important; margin-bottom: 4px !important;
}
.sv47-sh h2 {
  font-size: clamp(20px, 3vw, 30px) !important;
  font-weight: 800 !important; color: var(--navy) !important;
  letter-spacing: -.02em !important; margin: 0 !important;
}
.sv47-sh a {
  font-size: 13px !important; font-weight: 600 !important;
  color: var(--sky) !important; text-decoration: none !important; white-space: nowrap !important;
}

/* Mitmachen-Sektion */
.sv47-mitmachen-section {
  background: var(--navy) !important;
  padding: 72px 2rem !important;
  position: relative !important;
}
.sv47-section-head { max-width: 1200px !important; margin: 0 auto 28px !important; }
.sv47-section-head small {
  display: block !important; font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: .14em !important; text-transform: uppercase !important;
  color: var(--neon) !important; margin-bottom: 4px !important;
}
.sv47-section-head h2 {
  font-size: clamp(20px, 3vw, 30px) !important;
  font-weight: 800 !important; color: white !important; margin: 0 !important;
}
.sv47-mitmachen-grid {
  max-width: 1200px !important; margin: 0 auto !important;
  display: grid !important; grid-template-columns: repeat(3, 1fr) !important;
  gap: 2px !important;
  background: rgba(255,255,255,.06) !important;
  border-radius: 10px !important; overflow: hidden !important;
}
.sv47-mm {
  background: #243558 !important; padding: 2rem 1.5rem !important;
  text-decoration: none !important; color: white !important; display: block !important;
}
.sv47-mm:hover { background: #2d4170 !important; }
.sv47-mm-icon { font-size: 26px !important; margin-bottom: 10px !important; }
.sv47-mm-title { font-size: 16px !important; font-weight: 800 !important; margin-bottom: 6px !important; }
.sv47-mm-desc { font-size: 13px !important; color: rgba(255,255,255,.45) !important; line-height: 1.55 !important; margin-bottom: 12px !important; }
.sv47-mm-link { font-size: 12px !important; font-weight: 700 !important; color: var(--neon) !important; }

/* Shop-Sektion */
.sv47-shop-section { background: var(--off) !important; padding: 72px 2.5rem !important; }
.sv47-shop-head { max-width: 1200px !important; margin: 0 auto 36px !important; text-align: center !important; }
.sv47-shop-head small {
  display: block !important; font-size: 12px !important; font-weight: 700 !important;
  letter-spacing: .14em !important; text-transform: uppercase !important;
  color: var(--sky) !important; margin-bottom: 8px !important;
}
.sv47-shop-head h2 {
  font-size: clamp(24px, 3vw, 34px) !important;
  font-weight: 800 !important; color: var(--navy) !important;
  margin: 0 0 10px !important; letter-spacing: -.02em !important;
}
.sv47-shop-grid {
  max-width: 1200px !important; margin: 0 auto !important;
  display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 20px !important;
}
.sv47-shop-tile {
  background: white !important; border: 1px solid #e6ebf2 !important;
  border-radius: 14px !important; overflow: hidden !important;
  text-decoration: none !important; display: flex !important; flex-direction: column !important;
  transition: border-color .2s, box-shadow .2s, transform .2s !important;
}
.sv47-shop-tile:hover {
  border-color: var(--sky) !important;
  box-shadow: 0 12px 32px rgba(27,42,74,.12) !important; transform: translateY(-4px) !important;
}
.sv47-shop-img {
  width: 100% !important; aspect-ratio: 4 / 3 !important;
  background-size: cover !important; background-position: top center !important;
}
.sv47-shop-img-donate {
  display: flex !important; align-items: center !important; justify-content: center !important;
  background: linear-gradient(135deg, #1B2A4A, #243558) !important;
}
.sv47-shop-img-donate span { font-size: 56px !important; }
.sv47-shop-body { padding: 24px 26px 28px !important; display: flex !important; flex-direction: column !important; flex: 1 !important; }
.sv47-shop-title { font-size: 20px !important; font-weight: 800 !important; color: var(--navy) !important; margin-bottom: 8px !important; }
.sv47-shop-desc { font-size: 14px !important; color: var(--muted) !important; line-height: 1.6 !important; margin: 0 0 18px !important; }
.sv47-shop-action { font-size: 14px !important; font-weight: 700 !important; color: var(--sky) !important; margin-top: auto !important; }
.sv47-shop-tile-donate { background: var(--navy) !important; border-color: var(--navy) !important; }
.sv47-shop-tile-donate .sv47-shop-title { color: white !important; }
.sv47-shop-tile-donate .sv47-shop-desc { color: rgba(255,255,255,.55) !important; }
.sv47-shop-tile-donate .sv47-shop-action { color: var(--neon) !important; }

/* Partner-Sektion */
.sv47-partner-section { background: var(--navy) !important; padding: 72px 2.5rem !important; }
.sv47-partner-head { max-width: 1200px !important; margin: 0 auto 36px !important; text-align: center !important; }
.sv47-partner-head small {
  display: block !important; font-size: 12px !important; font-weight: 700 !important;
  letter-spacing: .14em !important; text-transform: uppercase !important;
  color: var(--neon) !important; margin-bottom: 8px !important;
}
.sv47-partner-head h2 {
  font-size: clamp(24px, 3vw, 34px) !important;
  font-weight: 800 !important; color: white !important;
  margin: 0 0 10px !important; letter-spacing: -.02em !important;
}
.sv47-partner-head p { font-size: 15px !important; color: rgba(255,255,255,.55) !important; margin: 0 !important; }
.sv47-partner-grid {
  max-width: 1200px !important; margin: 0 auto !important;
  display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 18px !important;
}
.sv47-partner-logo {
  background: white !important; border-radius: 10px !important;
  height: 120px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  padding: 18px !important;
  transition: box-shadow .2s, transform .2s !important;
}
.sv47-partner-logo img {
  max-width: 100% !important; max-height: 100% !important;
  object-fit: contain !important; filter: grayscale(100%) !important; opacity: .7 !important;
  transition: filter .25s, opacity .25s !important;
}
.sv47-partner-logo:hover { box-shadow: 0 8px 28px rgba(0,0,0,.3) !important; transform: translateY(-3px) !important; }
.sv47-partner-logo:hover img { filter: grayscale(0) !important; opacity: 1 !important; }
.sv47-partner-cta {
  max-width: 1200px !important; margin: 36px auto 0 !important;
  display: flex !important; align-items: center !important;
  justify-content: center !important; gap: 20px !important; flex-wrap: wrap !important;
}

/* Event-Zeilen auf Startseite */
.sv47-event-row {
  background: white !important; border-radius: 8px !important;
  padding: 14px 16px !important; display: flex !important;
  align-items: center !important; gap: 16px !important; margin-bottom: 10px !important;
}
.sv47-event-date {
  background: var(--navy) !important; border-radius: 6px !important;
  padding: 8px 10px !important; text-align: center !important;
  min-width: 48px !important; flex-shrink: 0 !important;
}
.sv47-event-day { font-size: 22px !important; font-weight: 900 !important; color: var(--neon) !important; line-height: 1 !important; }
.sv47-event-month { font-size: 10px !important; font-weight: 700 !important; text-transform: uppercase !important; color: rgba(255,255,255,.6) !important; }
.sv47-event-name { font-size: 14px !important; font-weight: 700 !important; color: var(--navy) !important; }
.sv47-event-time { font-size: 12px !important; color: var(--muted) !important; }

/* Responsive Startseite */
@media (max-width: 860px) {
  .sv47-hero-inner { grid-template-columns: 1fr !important; gap: 2rem !important; }
  .sv47-hero-text { text-align: center !important; }
  .sv47-hero-sub { margin-left: auto !important; margin-right: auto !important; }
  .sv47-hero-btns { justify-content: center !important; }
  .sv47-hero-logo { min-height: 280px !important; order: -1 !important; }
  .sv47-hero-logo img { width: 200px !important; }
  .sv47-mitmachen-grid { grid-template-columns: 1fr !important; }
  .sv47-shop-grid { grid-template-columns: 1fr !important; }
  .sv47-partner-grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 560px) {
  .sv47-partner-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .sv47-partner-logo { height: 100px !important; }
}

/* ================================================================
   STICKY-MENÜ FIX + WELLEN-ABSTAND REDUZIEREN
   ================================================================ */

/* overflow-x:hidden auf html bricht position:sticky — daher nur auf body begrenzen
   und sticky am Nav explizit erzwingen */
html { overflow-x: clip !important; }
body { overflow-x: clip !important; }

/* Menü dauerhaft fixiert beim Scrollen */
#sv47-nav {
  position: sticky !important;
  position: -webkit-sticky !important;
  top: 0 !important;
  z-index: 9999 !important;
}

/* Wellen-Trenner komplett entfernt — verbrauchten zu viel Platz und erzeugten Randstrich */
.sv47-divider { display: none !important; }

/* ================================================================
   (Mitmachen-Sektion wird direkt in front-page.php entfernt)
   ================================================================ */

/* ================================================================
   CF7-FELDER AUF DUNKLEM HINTERGRUND — Schrift sofort weiß
   (Astra färbt Eingabetext dunkel; hier global erzwingen)
   ================================================================ */
.fb-contact-section .wpcf7-form input:focus,
.fb-contact-section .wpcf7-form textarea:focus,
.fb-contact-section .wpcf7-form select:focus,
.ch-contact .wpcf7-form input:focus,
.ch-contact .wpcf7-form textarea:focus,
.ch-contact .wpcf7-form select:focus {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.fb-contact-section .wpcf7-form input,
.fb-contact-section .wpcf7-form textarea,
.ch-contact .wpcf7-form input,
.ch-contact .wpcf7-form textarea {
  -webkit-text-fill-color: #fff !important;
}

/* ================================================================
   SV47 ANIMATIONEN (global)
   ================================================================ */

/* Bewegungsreduktion respektieren */
@media (prefers-reduced-motion: reduce) {
  .sv47-reveal { opacity: 1 !important; transform: none !important; }
  * { animation: none !important; }
}

/* ── 1) SCROLL-REVEAL ── */
.sv47-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .6s cubic-bezier(.4,0,.2,1), transform .6s cubic-bezier(.4,0,.2,1);
  will-change: opacity, transform;
}
.sv47-reveal-in {
  opacity: 1;
  transform: none;
}

/* ── 2) VERSTÄRKTE HOVER-EFFEKTE ── */
/* Karten heben sich beim Hovern stärker */
.sv47-shop-tile, .ch-nav-card, .cc-card, .fb-team-card,
.cg-team-card, .mn-trainer-card, .sv47-car-card,
.ka-three-card, .ka-time-card, .ab-time-card, .ab-link-card {
  transition: transform .28s cubic-bezier(.34,1.56,.64,1), box-shadow .28s ease !important;
}
.sv47-shop-tile:hover, .ch-nav-card:hover, .cc-card:hover,
.cg-team-card:hover, .mn-trainer-card:hover,
.ka-three-card:hover, .ab-time-card:hover, .ab-link-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 18px 44px rgba(27,42,74,.18) !important;
}
.fb-team-card:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 16px 40px rgba(27,42,74,.16) !important;
}

/* Bilder in Karten zoomen beim Hovern */
.cc-photo, .ct-card-img, .ch-nav-card, .cg-halle-map-embed { overflow: hidden; }
.cc-card .cc-photo img, .ct-card .ct-card-img img {
  transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.cc-card:hover .cc-photo img, .ct-card:hover .ct-card-img img {
  transform: scale(1.06);
}

/* Karate: Bunkai-Bild zoomt sanft beim Hovern (Leader-Foto nicht, wegen rotem Rahmen) */
.ka-split-img { overflow: hidden; border-radius: 18px; }
.ka-split-img img { transition: transform .5s cubic-bezier(.4,0,.2,1); }
.ka-split-img:hover img { transform: scale(1.05); }

/* Partner-Logos: leichtes Anheben + Sättigung */
.sv47-partner-logo { transition: transform .25s ease, box-shadow .25s ease; }
.sv47-partner-logo:hover { transform: translateY(-4px) scale(1.03); }

/* Buttons: dezenter Lift */
.mn-btn, .cg-halle-route a, .sv47-btn-neon, .fb-btn-primary {
  transition: transform .18s ease, box-shadow .18s ease, background .2s ease !important;
}

/* ── 3) FLOAT-/PULS-EFFEKTE (wie Hero-Wappen) ── */
@keyframes sv47-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
@keyframes sv47-pulse-badge {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.05); }
}

/* Hero-Badges schweben sanft */
.ch-hero-badge, .ct-hero-badge, .cc-hero-badge, .cg-hero-badge,
.cp-hero-badge, .cf-hero-badge, .mn-hero-badge {
  display: inline-block;
  animation: sv47-float 4s ease-in-out infinite;
}

/* Icons in Navigationskacheln pulsieren leicht beim Hovern */
.ch-nav-card .ch-nav-icon { transition: transform .3s ease; display: inline-block; }
.ch-nav-card:hover .ch-nav-icon { animation: sv47-pulse-badge 1.2s ease-in-out infinite; }

/* Stats-Zahlen: kleiner Pop wenn sichtbar */
.sv47-stat-num span { display: inline-block; }

8:47 PM

Jetzt sehe ich es! Das Element ist fieldset.hidden-fields-container — das ist CF7's eingebautes Hidden-Fields-Container mit padding: 30px von Astra's main.min.css!

Füge das in die style.css ein:
css

/* CF7 Hidden Fields Container verstecken */
fieldset.hidden-fields-container {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
}