/*
Theme Name: Glücksbringer e.V. Elementor
Theme URI: https://glueck.lovable.app
Author: Glück-s-bringer e.V.
Description: Maßgeschneidertes WordPress-Theme für Glück-s-bringer e.V., optimiert für Elementor Page Builder.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: gluecksbringer-elementor
*/

:root {
  --gb-primary: #2b719e;
  --gb-primary-light: #3a8bc2;
  --gb-accent: #f59e0b;
  --gb-bg: #e8eff4;
  --gb-bg-alt: #f0f5f8;
  --gb-text: #1a3a52;
  --gb-text-muted: #4a6a7a;
  --gb-white: #ffffff;
  --gb-radius: 12px;
  --gb-font-heading: 'Nunito', sans-serif;
  --gb-font-body: 'Open Sans', sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: var(--gb-font-body);
  color: var(--gb-text);
  background: var(--gb-bg);
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--gb-font-heading);
  font-weight: 800;
  color: var(--gb-text);
}

a { color: var(--gb-primary); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--gb-primary-light); }

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

/* Skip link */
.skip-link {
  position: absolute; top: -50px; left: 16px; z-index: 100;
  background: var(--gb-primary); color: #fff;
  padding: 8px 16px; border-radius: 0 0 8px 8px;
  font-weight: 600; transition: top 0.2s;
}
.skip-link:focus { top: 0; }

/* Header */
.site-header {
  background: var(--gb-white);
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
  position: sticky; top: 0; z-index: 50;
}
.site-header .container {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 20px;
}
.site-branding { display: flex; align-items: center; gap: 12px; }
.site-branding img { height: 48px; width: auto; }
.site-title { font-family: var(--gb-font-heading); font-size: 1.4rem; font-weight: 800; color: var(--gb-text); }
.site-title a { color: inherit; }

/* Navigation */
.main-navigation ul {
  list-style: none; display: flex; gap: 24px; margin: 0; padding: 0;
}
.main-navigation a {
  font-family: var(--gb-font-body); font-weight: 600; font-size: 0.95rem;
  color: var(--gb-text-muted); padding: 8px 0;
  border-bottom: 2px solid transparent; transition: all 0.2s;
}
.main-navigation a:hover,
.main-navigation .current-menu-item a {
  color: var(--gb-primary); border-bottom-color: var(--gb-primary);
}

/* Mobile menu */
.menu-toggle {
  display: none; background: none; border: none; cursor: pointer;
  font-size: 1.5rem; color: var(--gb-text);
}
@media (max-width: 768px) {
  .menu-toggle { display: block; }
  .main-navigation ul {
    display: none; flex-direction: column; gap: 0;
    position: absolute; top: 100%; left: 0; right: 0;
    background: var(--gb-white); box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  }
  .main-navigation.toggled ul { display: flex; }
  .main-navigation a { padding: 14px 20px; display: block; border-bottom: 1px solid #eee; }
}

/* Footer */
.site-footer {
  background: var(--gb-text); color: rgba(255,255,255,0.7);
  padding: 40px 20px 20px; margin-top: 0;
}
.footer-inner {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 30px;
}
.footer-col h4 { color: #fff; margin-bottom: 12px; font-size: 1.1rem; }
.footer-col a { color: rgba(255,255,255,0.7); }
.footer-col a:hover { color: var(--gb-accent); }
.footer-bottom {
  max-width: 1200px; margin: 30px auto 0;
  padding-top: 20px; border-top: 1px solid rgba(255,255,255,0.15);
  text-align: center; font-size: 0.85rem;
}

/* Elementor overrides */
.elementor-section.elementor-section-boxed > .elementor-container { max-width: 1200px; }
.elementor-widget-heading .elementor-heading-title { font-family: var(--gb-font-heading); }

/* Buttons */
.elementor-button, .gb-btn {
  font-family: var(--gb-font-heading); font-weight: 700;
  border-radius: 8px; padding: 12px 28px;
  transition: transform 0.2s, box-shadow 0.2s;
}
.elementor-button:hover, .gb-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* Focus for accessibility */
*:focus-visible {
  outline: 3px solid var(--gb-primary); outline-offset: 2px;
}

/* Cookie blur */
body.cookie-blur::before {
  content: ""; position: fixed; inset: 0; z-index: 40;
  backdrop-filter: blur(6px); background: rgba(232,239,244,0.3);
  pointer-events: none;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
