/* ==========================================================================
   SVP Root – Custom Styles
   Farben: Grün #009640 | Rot #FF0000 | Weiss #FFFFFF | Dunkel #1A1A1A
   ========================================================================== */

:root {
    --svp-green: #009640;
    --svp-green-dark: #007A33;
    --svp-green-light: #00B34A;
    --svp-red: #FF0000;
    --svp-red-dark: #CC0000;
    --svp-white: #FFFFFF;
    --svp-dark: #1A1A1A;
    --svp-nav-blue: #3B5998;
    --svp-footer-dark: #2D3740;
    --svp-light-gray: #F5F5F5;
    --svp-text: #333333;
    --svp-text-light: #666666;
}

/* --- Typography --- */
body.svp-root-theme {
    color: var(--svp-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
body.svp-root-theme h1, body.svp-root-theme h2,
body.svp-root-theme h3, body.svp-root-theme h4 {
    color: var(--svp-dark);
    font-weight: 700;
    line-height: 1.3;
}
body.svp-root-theme h1 { font-size: 2.4rem; }
body.svp-root-theme h2 { font-size: 1.8rem; }
body.svp-root-theme h3 { font-size: 1.4rem; }
body.svp-root-theme p { line-height: 1.7; color: var(--svp-text); }

/* --- Links --- */
body.svp-root-theme a { color: var(--svp-green); transition: color 0.2s ease; }
body.svp-root-theme a:hover, body.svp-root-theme a:focus { color: var(--svp-green-dark); }

/* --- Buttons SVP Grün --- */
body.svp-root-theme .et_pb_button,
body.svp-root-theme .et_pb_button_module_wrapper .et_pb_button,
body.svp-root-theme .et_pb_more_button {
    background-color: var(--svp-green) !important;
    color: var(--svp-white) !important;
    border: 2px solid var(--svp-green) !important;
    border-radius: 4px !important;
    padding: 12px 28px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 14px !important;
    transition: all 0.3s ease !important;
}
body.svp-root-theme .et_pb_button:hover,
body.svp-root-theme .et_pb_button_module_wrapper .et_pb_button:hover {
    background-color: var(--svp-green-dark) !important;
    border-color: var(--svp-green-dark) !important;
    color: var(--svp-white) !important;
}

/* Button Rot (CTA) */
body.svp-root-theme .et_pb_button.svp-btn-red,
body.svp-root-theme .svp-cta .et_pb_button {
    background-color: var(--svp-red) !important;
    border-color: var(--svp-red) !important;
}
body.svp-root-theme .et_pb_button.svp-btn-red:hover,
body.svp-root-theme .svp-cta .et_pb_button:hover {
    background-color: var(--svp-red-dark) !important;
    border-color: var(--svp-red-dark) !important;
}

/* Button Outline */
body.svp-root-theme .et_pb_button.svp-btn-outline {
    background-color: transparent !important;
    color: var(--svp-green) !important;
    border: 2px solid var(--svp-green) !important;
}
body.svp-root-theme .et_pb_button.svp-btn-outline:hover {
    background-color: var(--svp-green) !important;
    color: var(--svp-white) !important;
}

/* --- Header / Navigation --- */
body.svp-root-theme #main-header { box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
body.svp-root-theme #top-menu li a {
    color: var(--svp-white) !important;
    font-weight: 600;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 12px 18px !important;
    transition: background-color 0.2s ease;
}
body.svp-root-theme #top-menu li a:hover,
body.svp-root-theme #top-menu li.current-menu-item a {
    background-color: rgba(255,255,255,0.15);
}
body.svp-root-theme .et_mobile_menu li a {
    color: var(--svp-dark) !important;
    font-weight: 600;
    border-bottom: 1px solid var(--svp-light-gray);
    padding: 14px 20px !important;
}

/* --- Fullwidth Banner --- */
body.svp-root-theme .et_pb_fullwidth_header { background-size: cover; background-position: center; }
body.svp-root-theme .et_pb_fullwidth_header h1,
body.svp-root-theme .et_pb_fullwidth_header .et_pb_module_header {
    color: var(--svp-white) !important;
    text-shadow: 0 2px 8px rgba(0,0,0,0.5);
    font-weight: 700;
}
body.svp-root-theme .et_pb_fullwidth_header .et_pb_header_content_wrapper { padding: 80px 0; }

/* --- Footer --- */
body.svp-root-theme #main-footer { background-color: var(--svp-footer-dark) !important; }
body.svp-root-theme #footer-widgets .footer-widget { color: rgba(255,255,255,0.85); }
body.svp-root-theme #footer-widgets .footer-widget h4 {
    color: var(--svp-white) !important;
    font-weight: 700;
    font-size: 1.2rem;
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--svp-green);
}
body.svp-root-theme #footer-widgets .footer-widget a { color: rgba(255,255,255,0.75) !important; transition: color 0.2s ease; }
body.svp-root-theme #footer-widgets .footer-widget a:hover { color: var(--svp-white) !important; }
body.svp-root-theme #footer-bottom { background-color: rgba(0,0,0,0.2) !important; color: rgba(255,255,255,0.5); font-size: 13px; }

/* --- Social Media Icons --- */
body.svp-root-theme .et_pb_social_media_follow li a {
    background-color: rgba(255,255,255,0.15) !important;
    border-radius: 50% !important;
    width: 40px !important; height: 40px !important;
    display: flex !important; align-items: center; justify-content: center;
    transition: background-color 0.3s ease !important;
}
body.svp-root-theme .et_pb_social_media_follow li a:hover { background-color: var(--svp-green) !important; }

/* --- DIVI Module Overrides --- */
body.svp-root-theme .et_pb_blurb_content .et_pb_main_blurb_image span { color: var(--svp-green) !important; }
body.svp-root-theme .et_pb_blurb h4 a { color: var(--svp-dark) !important; font-weight: 700; }
body.svp-root-theme .et_pb_blurb h4 a:hover { color: var(--svp-green) !important; }
body.svp-root-theme .et_pb_divider:before { border-top-color: var(--svp-green) !important; }
body.svp-root-theme .et_pb_toggle_title { color: var(--svp-dark) !important; font-weight: 600; }
body.svp-root-theme .et_pb_toggle_open .et_pb_toggle_title { color: var(--svp-green) !important; }
body.svp-root-theme .et_pb_tabs_controls li.et_pb_tab_active a { color: var(--svp-green) !important; }

/* --- Contact Form --- */
body.svp-root-theme .et_pb_contact_form .et_pb_contact_submit {
    background-color: var(--svp-green) !important;
    color: var(--svp-white) !important;
    border: none !important; border-radius: 4px !important;
    padding: 12px 32px !important; font-weight: 600 !important;
    text-transform: uppercase;
}
body.svp-root-theme .et_pb_contact_form .et_pb_contact_submit:hover { background-color: var(--svp-green-dark) !important; }
body.svp-root-theme .et_pb_contact_form input,
body.svp-root-theme .et_pb_contact_form textarea {
    border: 1px solid #ddd !important; border-radius: 4px !important;
    padding: 12px !important; transition: border-color 0.2s ease;
}
body.svp-root-theme .et_pb_contact_form input:focus,
body.svp-root-theme .et_pb_contact_form textarea:focus { border-color: var(--svp-green) !important; outline: none; }

/* --- SVP-spezifische Helper-Klassen --- */
body.svp-root-theme .svp-section-green { background-color: var(--svp-green) !important; color: var(--svp-white); }
body.svp-root-theme .svp-section-green h2,
body.svp-root-theme .svp-section-green h3,
body.svp-root-theme .svp-section-green p { color: var(--svp-white) !important; }
body.svp-root-theme .svp-section-light { background-color: var(--svp-light-gray) !important; }
body.svp-root-theme .svp-accent-bar { border-left: 4px solid var(--svp-red); padding-left: 20px; }

/* --- Responsive --- */
@media (max-width: 980px) {
    body.svp-root-theme h1 { font-size: 1.8rem; }
    body.svp-root-theme h2 { font-size: 1.5rem; }
    body.svp-root-theme .et_pb_fullwidth_header .et_pb_header_content_wrapper { padding: 50px 20px; }
}
@media (max-width: 767px) {
    body.svp-root-theme h1 { font-size: 1.5rem; }
    body.svp-root-theme h2 { font-size: 1.3rem; }
    body.svp-root-theme .et_pb_button { padding: 10px 20px !important; font-size: 13px !important; }
}
