/*! SV OG Mutterstadt – gemeinsames Stylesheet */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Nunito', sans-serif; background: #F6F4EE; color: #1E2922; overflow-x: hidden; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
.nav-lnk:hover { color: #4CAF7D !important; }
.btn-g { transition: filter 0.2s ease, transform 0.2s ease; display: inline-block; }
.btn-g:hover { filter: brightness(1.1); transform: translateY(-1px); }
@media (min-width: 981px) {
      .mob-toggle { display: none !important; }
    }
@media (max-width: 600px) {
      header a > span:last-child { height: 58px !important; margin-top: 4px !important; }
      header a img { height: 58px !important; }
      header a > span:first-child { bottom: -14px !important; left: -12px !important; right: -12px !important; border-radius: 0 0 12px 12px !important; }
      header > div { height: 62px !important; padding: 0 18px !important; }
    }
#back-to-top { opacity:0; visibility:hidden; transform:translateY(14px); transition:opacity .35s ease, transform .35s ease, visibility .35s; }
#back-to-top.visible { opacity:1; visibility:visible; transform:translateY(0); }
#back-to-top:hover { filter:brightness(1.08); transform:translateY(-3px); box-shadow:0 14px 34px rgba(27,58,45,0.4) !important; }
a:hover { color: #4CAF7D; }
@keyframes heroIn {
      from { opacity: 0; transform: translateY(24px); }
      to   { opacity: 1; transform: translateY(0); }
    }
[data-reveal] { opacity: 0; transform: translateY(30px); transition: opacity 0.75s ease, transform 0.75s ease; }
[data-reveal].visible { opacity: 1; transform: translateY(0); }
[data-reveal][data-delay="1"] { transition-delay: 0.12s; }
[data-reveal][data-delay="2"] { transition-delay: 0.24s; }
[data-reveal][data-delay="3"] { transition-delay: 0.36s; }
.nav-lnk { white-space: nowrap; }
.btn-ol { transition: background 0.2s ease, color 0.2s ease; display: inline-block; }
.btn-ol:hover { background: #fff !important; color: #1B3A2D !important; }
.btn-ol-dark { transition: background 0.2s ease, color 0.2s ease; display: inline-block; }
.btn-ol-dark:hover { background: #1B3A2D !important; color: #fff !important; }
.social-btn:hover { background: rgba(255,255,255,0.18) !important; }
.tz-card { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.tz-card:hover { transform: translateY(-4px); box-shadow: 0 20px 48px rgba(27,58,45,0.14) !important; }
@media (max-width: 980px) {
      .desk-nav { display: none !important; }
      .mob-toggle { display: flex !important; }
    }
@media (max-width: 768px) {
      .two-col { grid-template-columns: 1fr !important; }
      .three-col { grid-template-columns: 1fr !important; }
      .igp-abt { grid-template-columns: 1fr !important; }
      .footer-cols { grid-template-columns: 1fr !important; text-align: center; }
      .gallery-3 { grid-template-columns: 1fr !important; }
    }
@keyframes heroIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
[data-reveal] { opacity: 0; transform: translateY(30px); transition: opacity 0.7s ease, transform 0.7s ease; }
[data-reveal][data-delay="1"] { transition-delay: 0.09s; }
[data-reveal][data-delay="2"] { transition-delay: 0.18s; }
@media (min-width: 981px) { .mob-toggle { display: none !important; } }

/* ---------- Kopfzeile: Zustand beim Scrollen ---------- */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: transparent; box-shadow: none; transition: background 0.4s ease, box-shadow 0.4s ease; }
body.scrolled .site-header { background: rgba(246,244,238,0.97); box-shadow: 0 2px 24px rgba(27,58,45,0.12); }
.logo-hanger { background: transparent; box-shadow: none; opacity: 0; }
body.scrolled .logo-hanger { background: rgba(246,244,238,0.97); box-shadow: 0 2px 24px rgba(27,58,45,0.12); opacity: 1; }
.logo-dark { opacity: 0; }
body.scrolled .logo-light { opacity: 0; }
body.scrolled .logo-dark { opacity: 1; }
.site-header .nav-lnk { color: #fff; transition: color 0.3s; }
body.scrolled .site-header .nav-lnk { color: #1E2922; }
.mob-toggle span { background: #fff; }
body.scrolled .mob-toggle span { background: #1E2922; }
.mobile-menu { background: rgba(246,244,238,0.98); padding: 16px 28px 28px; border-top: 1px solid #E5E1D8; }
.mobile-menu[hidden] { display: none; }
.img-placeholder { background: #EDE9DF; }
