/* ==========================================================================
   Sonnenwald - Feinschliff (Vorschau, 29.10.2026)
   Eine Schicht ueber dem bestehenden Design: keine Inhalte, keine Module
   geaendert. Schrift, Rundungen, Schatten, Buttons, Formularfelder, Kopfzeile.
   ========================================================================== */

/* Schrift: Nunito Sans, selbst gehostet (keine Verbindung zu Google) */
@font-face {
    font-family: "Nunito Sans";
    font-style: normal;
    font-display: swap;
    font-weight: 200 1000;
    src: url("schrift/nunito-sans-latin-wght-normal.woff2") format("woff2-variations");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: "Nunito Sans";
    font-style: normal;
    font-display: swap;
    font-weight: 200 1000;
    src: url("schrift/nunito-sans-latin-ext-wght-normal.woff2") format("woff2-variations");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    --sw-gruen: #1e850f;
    --sw-gruen-dunkel: #176a0b;
    --sw-flaeche: #f6f5f0;      /* warmes Hellgrau statt kaltem #f5f5f5 */
    --sw-text: #262626;
    --sw-rund: 14px;
    --sw-schatten: none;
}

body, body p, body li, body a, body input, body textarea, body select, body button,
#top-menu a, .et_mobile_menu a, .et_pb_module, .et_pb_module p, .et_pb_blurb_content,
.et_pb_module_header, h1, h2, h3, h4, h5, h6 {
    font-family: "Nunito Sans", "Trebuchet MS", Helvetica, Arial, sans-serif !important;
}
body { color: var(--sw-text); }
#main-content p, #main-content li { line-height: 1.75; }

/* Ueberschriften kraeftiger und mit Luft */
#main-content h1 { font-weight: 800 !important; letter-spacing: -.01em; line-height: 1.2 !important; }
#main-content h2 { font-weight: 800 !important; letter-spacing: -.005em; line-height: 1.25 !important; }
#main-content h3 { font-weight: 700 !important; line-height: 1.3 !important; }
#main-content h4, #main-content h5 { font-weight: 700 !important; }
#main-content .et_pb_module_header, #main-content .et_pb_module_header a { font-weight: 800 !important; }

/* Kopfzeile: leichter Schatten, Menue etwas kraeftiger */
#main-header { box-shadow: none !important; border-bottom: 1px solid #efede6; }

/* Graue Kaesten: warm, gerundet, ohne harte Kanten */
.sw-grau {
    background-color: var(--sw-flaeche) !important;
    border-radius: var(--sw-rund);
}
.sw-grau[style*="border-left"], .sw-grau > div[style*="border-left"] { border-radius: 4px var(--sw-rund) var(--sw-rund) 4px; }


/* Bilder einheitlich weich gerundet */
#main-content .et_pb_image .et_pb_image_wrap, #main-content .et_pb_image .et_pb_image_wrap img,
#main-content .et_pb_gallery, #main-content .et_pb_gallery_image img,
#main-content .sw-bildreihe img, #main-content .sw-k-bild img,
#main-content .et_pb_text img, #main-content .sowi-c-bild {
    border-radius: var(--sw-rund) !important;
}

/* Buttons: gefuellt, rund */
#main-content .et_pb_button, #main-content .et_pb_contact_submit, .sw-404-ziele a {
    border-radius: 999px !important;
}
#main-content .et_pb_button, #main-content .et_pb_contact_submit {
    background: var(--sw-gruen) !important;
    border-color: var(--sw-gruen) !important;
    color: #fff !important;
    font-weight: 800 !important;
    letter-spacing: .04em !important;
    padding: .55em 1.6em !important;
    transition: background .2s ease, transform .2s ease;
}
#main-content .et_pb_button:hover, #main-content .et_pb_contact_submit:hover {
    background: var(--sw-gruen-dunkel) !important;
    padding: .55em 1.6em !important;
}
#main-content .et_pb_button:after { display: none !important; }
.sw-404-ziele a { border-left: 0; border-radius: var(--sw-rund) !important; background: #f6f5f0; }

/* Formularfelder: Flaeche statt Unterstrich */
#main-content .et_pb_contact_form input.input,
#main-content .et_pb_contact_form textarea.input {
    background: var(--sw-flaeche) !important;
    border: 1px solid #e4e2da !important;
    border-radius: 10px !important;
    padding: 14px 16px !important;
}
#main-content .et_pb_contact_form input.input:focus,
#main-content .et_pb_contact_form textarea.input:focus {
    background: #fff !important;
    border-color: var(--sw-gruen) !important;
}

/* Zitate (Trennstrich-Zitate der Tageswerkstaette/SOWI) etwas groesser */
#main-content blockquote, #main-content .sw-zitat { font-size: 1.12em; }

/* Akkordeons/Umschalter als Karten */
#main-content .et_pb_toggle { border-radius: var(--sw-rund); }

/* Startseite: Begruessung groesser */
.home #main-content .et_pb_section_0 .et_pb_text_0 h1 {
    font-size: clamp(30px, 3.4vw, 46px) !important;
    letter-spacing: .02em;
}

/* ==========================================================================
   Stufe 2: Navigation, Startseite, Karten, Fussbereich, sanftes Einblenden
   ========================================================================== */

/* --- Navigation: siehe Stufe 4 unten --------------------------------- */
/* Untermenue als ruhige Karte. Divi blendet es aus, sobald die Maus die
   Menuezeile verlaesst - deshalb haengt es ohne Luecke direkt darunter und
   eine unsichtbare Bruecke (::before) deckt den Weg von "Wohnen" hinein ab. */
#top-menu li.menu-item-has-children > .sub-menu {
    top: 100% !important;
    margin-top: 0 !important;
    padding: 10px !important;
    width: 260px !important;
    background: #fbfaf6 !important;
    border: 1px solid #e6e2d4 !important;
    border-top: 3px solid var(--sw-gruen) !important;
    border-radius: 0 0 18px 18px !important;
    box-shadow: none !important;
}
#top-menu li.menu-item-has-children > .sub-menu::before {
    content: "";
    position: absolute;
    left: 0; right: 0; top: -40px;
    height: 40px;
}
#top-menu .sub-menu li { padding: 0 !important; width: 100%; }
#top-menu .sub-menu a {
    width: 100% !important;
    padding: 11px 14px !important;
    border-radius: 12px;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: .01em;
    text-transform: none;
    color: #2a2a2a !important;
}
#top-menu .sub-menu a:hover,
#top-menu .sub-menu .current-menu-item > a { background: #e9f3e4 !important; color: var(--sw-gruen-dunkel) !important; opacity: 1 !important; }
/* Auch per Tastatur offen halten */
#top-menu li.menu-item-has-children:focus-within > .sub-menu { visibility: visible !important; opacity: 1 !important; }

/* Mobiles Menue */
.et_mobile_menu {
    border-top: 0 !important;
    border-radius: 0 0 var(--sw-rund) var(--sw-rund);
    padding: 10px 6% 16px !important;
}
.et_mobile_menu li a {
    font-weight: 800 !important;
    font-size: 16px !important;
    letter-spacing: .03em;
    padding: 13px 12px !important;
    border-bottom: 1px solid #efeee8 !important;
    border-radius: 8px;
}
.et_mobile_menu li li a { font-weight: 700 !important; padding-left: 26px !important; }
.et_mobile_menu .menu-item-30 > a { background: var(--sw-gruen) !important; color: #fff !important; text-align: center; margin-top: 12px; border-radius: 999px; border: 0 !important; }

/* --- Startseite: Begruessung --------------------------------------------- */
.home #main-content .et_pb_row_0 {
    background:
        radial-gradient(1200px 500px at 85% -10%, rgba(255, 215, 90, .28), transparent 60%),
        linear-gradient(135deg, #1f8a10 0%, #17700b 100%) !important;
    border-radius: 26px;
    overflow: hidden;
    position: relative;
    margin-top: 36px !important;
}
@media (max-width: 980px) { .home #main-content .et_pb_row_0 { margin-top: 20px !important; } }
/* Sonnenstrahlen aus dem Logo als zarte Zeichnung */
.home #main-content .et_pb_row_0::after {
    content: "";
    position: absolute;
    right: -120px; top: -160px;
    width: 520px; height: 520px;
    background: repeating-conic-gradient(from 0deg, rgba(255, 255, 255, .10) 0deg 2deg, transparent 2deg 15deg);
    -webkit-mask: radial-gradient(circle, transparent 0 90px, #000 92px 250px, transparent 252px);
            mask: radial-gradient(circle, transparent 0 90px, #000 92px 250px, transparent 252px);
    pointer-events: none;
}
.home #main-content .et_pb_section_0 .et_pb_text_0 h1 {
    font-size: clamp(32px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: .01em;
}

/* --- Kacheln: ruhige Flaechen in Naturtoenen ----------------------------- */
/* Die Flaeche lag auf der Divi-Spalte, der Text in einem eigenen Modul. Jetzt
   liegt die Flaeche als eigene Ebene in der Spalte (mit Abstand ringsum) -
   Flaeche und Text gehoeren zusammen, nichts laeuft beim Ueberfahren
   auseinander. Bewusst ohne Schatten und ohne Anheben: flach und warm. */
.home #main-content .et_pb_column_2,
.home #main-content .et_pb_column_3,
.home #main-content .et_pb_column_5 {
    background: transparent !important;
    position: relative;
    z-index: 3;
}
.home #main-content .et_pb_column_2 > *, .home #main-content .et_pb_column_3 > *,
.home #main-content .et_pb_column_5 > * { position: relative; }
.home #main-content .et_pb_column_2::before,
.home #main-content .et_pb_column_3::before,
.home #main-content .et_pb_column_5::before,
.home #main-content .et_pb_blurb_3::before,
.home #main-content .et_pb_blurb_4::before {
    content: "";
    position: absolute;
    inset: 7px;
    z-index: -1;
    border-radius: 22px;
    transition: background-color .3s ease;
}
/* Zartgruen, Sand, Salbei - wie die bisherigen Grautoene abwechselnd */
.home #main-content .et_pb_column_2::before { background: #e9f3e4; }
.home #main-content .et_pb_column_3::before { background: #f5f1e6; }
.home #main-content .et_pb_column_5::before { background: #eef0e6; }
.home #main-content .et_pb_blurb_3::before  { background: #f5f1e6; }
.home #main-content .et_pb_blurb_4::before  { background: #e9f3e4; }
.home #main-content .et_pb_column_2:hover::before { background: #dcecd4; }
.home #main-content .et_pb_column_3:hover::before { background: #ede6d3; }
.home #main-content .et_pb_column_5:hover::before { background: #e3e7d6; }
.home #main-content .et_pb_blurb_3:hover::before  { background: #ede6d3; }
.home #main-content .et_pb_blurb_4:hover::before  { background: #dcecd4; }
/* Untere Kacheln (Angebot, Ueber uns): Flaeche auf dem Modul selbst */
.home #main-content .et_pb_blurb_3,
.home #main-content .et_pb_blurb_4 {
    background: transparent !important;
    position: relative;
    z-index: 1;
    cursor: pointer;
}
/* Ueberschrift mit Pfeil, der beim Ueberfahren ein Stueck mitlaeuft */
.home #main-content .et_pb_blurb .et_pb_module_header,
.home #main-content .et_pb_blurb .et_pb_module_header a { color: #1f1f1f !important; letter-spacing: .04em !important; }
.home #main-content .et_pb_blurb .et_pb_module_header::after {
    content: "→";
    display: inline-block;
    margin-left: .45em;
    color: var(--sw-gruen);
    transition: transform .3s ease;
}
.home #main-content .et_pb_column_2:hover .et_pb_module_header::after, .home #main-content .et_pb_column_3:hover .et_pb_module_header::after, .home #main-content .et_pb_column_5:hover .et_pb_module_header::after,
.home #main-content .et_pb_blurb:hover .et_pb_module_header::after { transform: translateX(6px); }
/* Symbol in einem weissen Kreis auf der getoenten Flaeche */
.home #main-content .et_pb_blurb .et_pb_main_blurb_image { margin-bottom: 18px !important; }
.home #main-content .et_pb_blurb .et_pb_image_wrap { background: transparent !important; border-radius: 0 !important; }
.home #main-content .et_pb_blurb .et-pb-icon {
    width: 62px; height: 62px;
    line-height: 62px !important;
    text-align: center;
    font-size: 28px !important;
    border-radius: 50%;
    background: #fff;
}

/* Leitsatz unter dem Bild als ruhiges Statement */
.home #main-content .et_pb_text_1.sw-grau {
    background: transparent !important;
    border-left: 4px solid var(--sw-gruen);
    border-radius: 0;
    padding: 6px 0 6px 28px !important;
}
.home #main-content .et_pb_text_1 p, .home #main-content .et_pb_text_1 strong {
    font-size: clamp(18px, 1.6vw, 22px) !important;
    line-height: 1.55 !important;
    font-weight: 700 !important;
    color: #1f1f1f;
}

/* Bilder: Tiefe statt flach */
#main-content .et_pb_gallery.et_pb_slider { overflow: visible !important; border-radius: 0 !important; }
#main-content .et_pb_gallery.et_pb_slider .et_pb_gallery_items { border-radius: var(--sw-rund); overflow: hidden; }

/* --- Fussbereich, dreispaltig -------------------------------------------- */
.et-l--footer { display: none !important; }
.sw-fuss {
    background:
        radial-gradient(900px 380px at 100% 0%, rgba(255, 215, 90, .14), transparent 60%),
        linear-gradient(180deg, #1c7d0e 0%, #145f09 100%);
    color: rgba(255, 255, 255, .88);
    font-family: "Nunito Sans", "Trebuchet MS", Arial, sans-serif;
    margin-top: 40px;
}
.sw-fuss a { color: #fff; text-decoration: none; }
.sw-fuss a:hover { text-decoration: underline; text-underline-offset: 3px; }
.sw-fuss-raster {
    max-width: 1080px; width: 80%;
    margin: 0 auto;
    padding: 64px 0 40px;
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: 48px;
}
.sw-fuss h2 {
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin: 0 0 18px;
    padding: 0;
}
.sw-fuss p, .sw-fuss li { font-size: 15px; line-height: 1.8; margin: 0; padding: 0; color: rgba(255, 255, 255, .88); }
.sw-fuss ul { list-style: none; margin: 0; padding: 0 !important; }
.sw-fuss-logo {
    display: inline-block;
    background: #fff;
    border-radius: 18px;
    padding: 10px 14px;
    margin-bottom: 18px;
}
.sw-fuss-logo img { display: block; width: 86px; height: auto; }
.sw-fuss-knopf {
    display: inline-block;
    margin-top: 18px;
    padding: 10px 22px;
    border-radius: 999px;
    background: #fff;
    color: var(--sw-gruen-dunkel) !important;
    font-weight: 800;
    letter-spacing: .03em;
}
.sw-fuss-knopf:hover { text-decoration: none !important; background: #f1f8ef; }
.sw-fuss-leiste { border-top: 1px solid rgba(255, 255, 255, .16); }
.sw-fuss-leiste-innen {
    max-width: 1080px; width: 80%;
    margin: 0 auto;
    padding: 18px 0 22px;
    display: flex; flex-wrap: wrap; gap: 8px 24px;
    justify-content: space-between;
    font-size: 13.5px;
    color: rgba(255, 255, 255, .7);
}
.sw-fuss-leiste-innen nav { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.sw-fuss-leiste-innen a { color: rgba(255, 255, 255, .85); }
.sw-fuss a:focus-visible { outline-color: #fff !important; box-shadow: 0 0 0 5px var(--sw-gruen) !important; }
@media (max-width: 980px) {
    .sw-fuss-raster { grid-template-columns: 1fr 1fr; width: 88%; }
    .sw-fuss-raster > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .sw-fuss-raster { grid-template-columns: 1fr; gap: 34px; padding-top: 48px; }
    .sw-fuss-leiste-innen { width: 88%; flex-direction: column; }
}

/* --- Sanftes Einblenden beim Scrollen ------------------------------------ */
.sw-einblenden { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .3, 1); }
.sw-einblenden.sw-da { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .sw-einblenden { opacity: 1 !important; transform: none !important; transition: none !important; }
    .home #main-content .et_pb_column, .home #main-content .et_pb_blurb { transition: none !important; }
}

/* Angebot: Wendekarten ebenfalls gerundet */
#main-content .dnxte_flip_box { border-radius: var(--sw-rund); overflow: hidden; }
#main-content .dnxte_flip_box [class*="flipbox"], #main-content .dnxte_flip_box [class*="flip-box"] { border-radius: var(--sw-rund); }

/* ==========================================================================
   Stufe 3: ruhige Flaechen auf allen Seiten (flach, warm, ohne Schatten)
   ========================================================================== */
:root { --sw-sand: #f5f1e6; --sw-zartgruen: #e9f3e4; --sw-salbei: #eef0e6; }

/* Alle bisher grauen Kaesten: Sand, grosse Rundung. Der gruene Balken links
   (Ziele, Anforderungsprofile, Ansprechpersonen, Hinweise) wird zur
   zartgruenen Flaeche - gleiche Aussage, ruhigere Form. */
.sw-grau {
    background-color: var(--sw-sand) !important;
    border-radius: 22px !important;
}
.sw-grau[style*="border-left"], .sw-grau > div[style*="border-left"],
.sw-grau.et_pb_with_border, div.sw-grau[style*="border"] {
    border-left: 0 !important;
    border-radius: 22px !important;
}
.sw-grau:has(> [style*="border-left"]), .sw-grau[style*="border-left"] { background-color: var(--sw-zartgruen) !important; }
.et_pb_text.et_pb_with_border.sw-grau { border-width: 0 !important; background-color: var(--sw-zartgruen) !important; }
.sw-grau > .et_pb_text_inner > div[style*="background"] { background: transparent !important; }

/* Kaesten mit duennem Rahmen (z. B. "Unsere Mission") */
#main-content .et_pb_text.et_pb_with_border:not(.sw-grau) {
    border-radius: 22px;
    border-color: #e6e2d4 !important;
    background-color: #fbfaf6 !important;
}

/* Gruene Leitsaetze/Umschalter (Wir) und Akkordeons: rund, flach */
#main-content .et_pb_toggle { border-radius: 16px !important; border: 0 !important; }
#main-content .et_pb_accordion .et_pb_toggle { margin-bottom: 10px !important; }

/* Symbole in Blurbs (Kontakt, Wohnen ...) in einem zartgruenen Kreis */
body:not(.home) #main-content .et_pb_blurb .et_pb_main_blurb_image .et-pb-icon:not(.et-pb-icon-circle) {
    width: 64px; height: 64px;
    line-height: 64px !important;
    text-align: center;
    font-size: 28px !important;
    border-radius: 50%;
    background: var(--sw-zartgruen);
}
body:not(.home) #main-content .et_pb_blurb .et_pb_image_wrap { background: transparent !important; }

/* Zitat-Trennstriche und Zitate (Tageswerkstaette, SOWI) */
#main-content .sw-zitat, #main-content blockquote {
    border-left: 0 !important;
    background: var(--sw-salbei);
    border-radius: 22px;
    padding: 28px 32px !important;
}

/* Wendekarten (Angebot) und Schritte */
#main-content .dnxte_flip_box { border-radius: 22px !important; }
#main-content .dnxte_step_flow .dnxte-step-flow-icon-wrapper,
#main-content .dnxte_step_flow [class*="icon_wrapper"], #main-content .dnxte_step_flow [class*="icon-wrapper"] { background: var(--sw-zartgruen) !important; }

/* Galerie-Kacheln */
#main-content .et_pb_gallery_grid .et_pb_gallery_image, #main-content .et_pb_gallery_grid .et_pb_gallery_image img { border-radius: 14px; }

/* Fehlerseite */
.sw-404-ziele a { background: var(--sw-zartgruen) !important; color: #1c7f0e !important; }
.sw-404-ziele a:hover { background: #dcecd4 !important; }

/* Hinweis- und Formular-Erfolgsmeldung */
#main-content .et-pb-contact-message:not(:empty) { background: var(--sw-zartgruen); border-radius: 16px; padding: 16px 20px; }

/* Gruen auf den getoenten Flaechen dunkler, damit WCAG AA (4,5:1) haelt:
   #176a0b liegt auf Sand/Zartgruen/Salbei bei rund 5,9:1 */
.sw-grau h2, .sw-grau h3, .sw-grau h4, .sw-grau a, .sw-grau a strong,
.sw-404-ziele a, #main-content .sw-zitat a, .cmplz-document details summary h3 { color: #176a0b !important; }

/* Bildlaufband ohne Schatten */
#main-content .sw-k-bild img { box-shadow: none !important; border-radius: 18px !important; }


/* ==========================================================================
   Stufe 4: schlichte Navigation, Formulare, Kontakt, Schritte, Rundungen
   ========================================================================== */

/* --- Navigation: normale Schreibweise, ruhig, aktive Seite mit Strich ---- */
#top-menu > li { padding-right: 26px !important; position: relative; }
#top-menu > li > a {
    text-transform: none !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    color: #2b2b2b !important;
    transition: color .2s ease;
}
#top-menu > li > a:hover, #top-menu > li:hover > a,
#top-menu > li.current-menu-item > a, #top-menu > li.current-menu-ancestor > a {
    color: var(--sw-gruen-dunkel) !important;
    opacity: 1 !important;
}
/* Divis Pfeil beim Untermenue bleibt, nur dezenter */
#top-menu .menu-item-has-children > a:first-child::after { font-size: 14px; }
@media (min-width: 981px) and (max-width: 1200px) {
    #top-menu > li { padding-right: 16px !important; }
    #top-menu > li > a { font-size: 15px !important; }
}
.et_mobile_menu li a { text-transform: none !important; letter-spacing: 0 !important; }

/* --- Startseite: Leitsatz als ruhiges, zentriertes Statement ------------- */
.home #main-content .et_pb_text_1.sw-grau,
.home #main-content .et_pb_text_1 {
    background: var(--sw-salbei) !important;
    border: 0 !important;
    border-radius: 26px !important;
    padding: 44px 8% !important;
    text-align: center;
}
.home #main-content .et_pb_text_1 .et_pb_text_inner::before {
    content: "";
    display: block;
    width: 44px; height: 3px;
    margin: 0 auto 20px;
    border-radius: 3px;
    background: var(--sw-gruen);
}
.home #main-content .et_pb_text_1 p, .home #main-content .et_pb_text_1 strong {
    font-size: clamp(18px, 1.7vw, 23px) !important;
    line-height: 1.6 !important;
    font-weight: 700 !important;
    color: #1f1f1f;
    text-align: center !important;
}

/* --- Rundungen, die noch fehlten (Hintergrundbilder) --------------------- */
.page-id-6 #main-content .et_pb_row_0,
#main-content .et_pb_slider, #main-content .et_pb_slider .et_pb_slides,
#main-content .dnxte_image_accordion, #main-content .dnxte_image_accordion_wrapper {
    border-radius: 22px !important;
    overflow: hidden;
}
#main-content .et_pb_fullwidth_header, #main-content .et_pb_image { border-radius: 22px; }

/* --- Kontaktformular (Startseite und Kontakt) ---------------------------- */
#main-content .et_pb_contact_form_container {
    background: var(--sw-sand) !important;
    border: 0 !important;
    border-radius: 26px;
    padding: 36px 36px 30px !important;
}
#main-content .et_pb_contact_form_container .et_pb_contact_field { margin-bottom: 14px !important; }
#main-content .et_pb_contact_form input.input,
#main-content .et_pb_contact_form textarea.input {
    background: #fff !important;
    border: 1px solid #e3dece !important;
    border-radius: 14px !important;
    padding: 15px 18px !important;
    font-size: 16px !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: #222 !important;
}
#main-content .et_pb_contact_form input.input::placeholder,
#main-content .et_pb_contact_form textarea.input::placeholder {
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: #77736a !important;
    opacity: 1;
}
#main-content .et_pb_contact_form textarea.input { min-height: 150px; }
#main-content .et_pb_contact_form input.input:focus,
#main-content .et_pb_contact_form textarea.input:focus { border-color: var(--sw-gruen) !important; box-shadow: 0 0 0 3px rgba(30, 133, 15, .15) !important; }
#main-content .et_contact_bottom_container { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 6px; }
#main-content .et_pb_contact_right p { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 16px; color: #4a4a4a; }
#main-content .et_pb_contact_form input.et_pb_contact_captcha {
    width: 64px !important; max-width: 64px; text-align: center;
    padding: 12px 8px !important;
}
#main-content .et_pb_contact_submit { margin: 0 !important; padding: .7em 2em !important; font-size: 16px !important; }
@media (max-width: 600px) {
    #main-content .et_pb_contact_form_container { padding: 24px 18px 20px !important; }
    #main-content .et_contact_bottom_container { justify-content: space-between; }
}

/* --- Kontaktseite: die vier Angaben oben als Karten ---------------------- */
.page-id-19 #main-content .et_pb_row_4col .et_pb_column { display: flex; }
.page-id-19 #main-content .et_pb_row_4col .et_pb_blurb {
    flex: 1;
    background: var(--sw-sand);
    border-radius: 22px;
    padding: 30px 18px 26px;
    margin-bottom: 0 !important;
}
.page-id-19 #main-content .et_pb_row_4col .et_pb_blurb .et-pb-icon { background: #fff !important; }
.page-id-19 #main-content .et_pb_row_4col .et_pb_blurb a { color: #176a0b !important; font-weight: 700; }

/* --- Angebot: "So funktioniert's" - drei Schritte als Karten ------------ */
#main-content .et_pb_column:has(> .dnxte_step_flow) { display: flex; flex-direction: column; }
#main-content .dnxte_step_flow {
    flex: 1;
    background: var(--sw-sand);
    border-radius: 24px;
    padding: 30px 28px 26px !important;
}
#main-content .dnxte_step_flow .dnxte-stepflow-arrow { display: none !important; }
#main-content .dnxte_step_flow .dnxte-stepflow-icon-wrap {
    display: flex !important;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px !important;
    width: auto !important; height: auto !important;
    background: transparent !important;
}
#main-content .dnxte_step_flow .dnxte-stepflow-icons {
    position: static !important;
    width: 64px !important; height: 64px !important;
    line-height: 64px !important;
    font-size: 28px !important;
    text-align: center;
    border-radius: 50% !important;
    background: #fff !important;
    color: var(--sw-gruen) !important;
    margin: 0 !important;
}
#main-content .dnxte_step_flow .dnxte-stepflow-badge {
    position: static !important;
    transform: none !important;
    background: var(--sw-gruen) !important;
    color: #fff !important;
    border-radius: 999px !important;
    padding: 6px 14px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    letter-spacing: .02em;
    line-height: 1.2 !important;
}
#main-content .dnxte_step_flow .dnxte-stepflow-title {
    text-transform: none !important;
    font-size: 21px !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    margin-bottom: 8px !important;
}
#main-content .dnxte_step_flow .dnxte-stepflow-content-wrapper p { font-size: 16px; }
#main-content .dnxte_step_flow a { color: #176a0b !important; font-weight: 700; }

/* Schritte: Etikett nicht abschneiden, Symbol ohne Zusatzabstand */
#main-content .dnxte_step_flow .dnxte-stepflow-badge { width: auto !important; max-width: none !important; white-space: nowrap; overflow: visible !important; }
#main-content .dnxte_step_flow .dnxte-stepflow-icon-wrap { padding: 0 !important; justify-content: flex-start; }
#main-content .dnxte_step_flow .dnxte-stepflow-wrapper { padding: 0 !important; }
/* Gleich hohe Karten in einer Reihe (Schritte auf Angebot, Angaben auf Kontakt) */
@media (min-width: 981px) {
    #main-content .et_pb_row:has(> .et_pb_column > .dnxte_step_flow),
    .page-id-19 #main-content .et_pb_row_4col { display: flex; align-items: stretch; }
    #main-content .et_pb_row:has(> .et_pb_column > .dnxte_step_flow) > .et_pb_column,
    .page-id-19 #main-content .et_pb_row_4col > .et_pb_column { display: flex; flex-direction: column; }
    .page-id-19 #main-content .et_pb_row_4col .et_pb_blurb { flex: 1; }
}

/* ==========================================================================
   Stufe 5 (Rueckmeldung 29.10. abends)
   ========================================================================== */
/* Navigation: kein Strich mehr - aktive Seite und Hover nur in Gruen */
#top-menu > li.current-menu-item > a, #top-menu > li.current-menu-ancestor > a { font-weight: 800 !important; }

/* Untermenue direkt unter dem Menuepunkt statt unter der ganzen Kopfzeile */
#top-menu li.menu-item-has-children > .sub-menu { top: calc(1em + 18px) !important; }
#top-menu li.menu-item-has-children > .sub-menu::before { top: -24px; height: 24px; }
.et-fixed-header #top-menu li.menu-item-has-children > .sub-menu { top: calc(1em + 16px) !important; }

/* Rundung haelt auch bei animierten Inhalten (Slider, Akkordeon, Galerie):
   overflow+radius wird von Chrome/Safari waehrend Animationen ignoriert,
   clip-path nicht */
#main-content .et_pb_slider, #main-content .dnxte_image_accordion,
#main-content .et_pb_gallery.et_pb_slider .et_pb_gallery_items,
.page-id-6 #main-content .et_pb_row_0, #main-content .dnxte_flip_box {
    clip-path: inset(0 round 22px);
}

/* Angebot: Rueckseite der Wendekarten */
#main-content .dnxte_flip_box .dnext-flpb-flibbox-back {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    padding: 34px 38px !important;
    background: linear-gradient(135deg, #1f8a10 0%, #17700b 100%) !important;
}
#main-content .dnxte_flip_box .dnext-flpb-flibbox-heading-back:empty { display: none; }
#main-content .dnxte_flip_box .dnext-flipbox-back-pra p {
    position: relative;
    padding: 0 0 0 30px !important;
    margin: 0 0 12px !important;
    font-size: 17px !important;
    line-height: 1.45 !important;
    font-weight: 700;
    color: #fff !important;
    text-align: left !important;
}
#main-content .dnxte_flip_box .dnext-flipbox-back-pra p:last-child { margin-bottom: 0 !important; }
#main-content .dnxte_flip_box .dnext-flipbox-back-pra p::before {
    content: "✓";
    position: absolute; left: 0; top: 0;
    width: 20px; height: 20px; line-height: 20px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .22);
    text-align: center;
    font-size: 12px;
}
#main-content .dnxte_flip_box .dnext-flpb-flibbox-front .dnext-flpb-flibbox-heading-font {
    font-weight: 800 !important;
}

/* Weiterfuehrende Links ("... →") als gut sichtbare Knoepfe */
#main-content a.sw-weiter {
    display: inline-block;
    margin-top: 6px;
    padding: 12px 24px;
    border-radius: 999px;
    background: var(--sw-gruen);
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 800;
    line-height: 1.3;
    transition: background .2s ease;
}
#main-content a.sw-weiter strong { color: #fff !important; font-weight: 800; }
#main-content a.sw-weiter:hover { background: var(--sw-gruen-dunkel); }
/* Slider auf Wohnen: Bilder standen auf "einpassen" - das Foto sass mit
   Leerstreifen im Kasten, die Rundung lag am Kasten statt am Foto. */
#main-content .et_pb_slider .et_pb_slide { background-size: cover !important; }

/* ==========================================================================
   Usability (29.10.)
   ========================================================================== */
/* Links im Fliesstext nicht nur an der Farbe erkennbar (WCAG 1.4.1) */
#main-content p a:not(.sw-weiter):not(.et_pb_button):not(.sw-kontakt-knopf),
#main-content li a:not(.sw-weiter) {
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px;
}
#main-content p a:not(.sw-weiter):hover, #main-content li a:not(.sw-weiter):hover { text-decoration-thickness: 2px !important; }

/* Fehlende Pflichtfelder im Formular deutlich markieren */
#main-content .et_pb_contact_form .et_contact_error { border-color: #b3261e !important; background: #fff6f5 !important; }
#main-content .et-pb-contact-message:not(:empty) { color: #1f1f1f; }
#main-content .et-pb-contact-message ul { padding-left: 1.2em !important; margin: 6px 0 0; }

/* Sprungziele nicht unter der fixierten Kopfzeile verstecken */
#main-content, #main-content [id] { scroll-margin-top: 120px; }

/* Fussbereich: Links gross genug zum Antippen */
.sw-fuss li a, .sw-fuss p a { display: inline-block; padding: 5px 0; }
.sw-fuss li { line-height: 1.5; }
.sw-fuss-leiste-innen a { display: inline-block; padding: 6px 0; }

@media (max-width: 980px) {
    /* Logo am Handy groesser (war 46 px) */
    #logo { max-height: 58px !important; height: 58px; width: auto; }
    /* Barrierefreiheits-Leiste nicht mitten ueber dem Text, sondern unten links */
    .a11y-toolbar {
        top: auto !important;
        bottom: 14px !important;
        left: 12px !important;
    }
    .a11y-toolbar ul { display: flex !important; gap: 6px; }
    .a11y-toolbar ul li button {
        width: 44px !important; height: 44px !important;
        border-radius: 50% !important;
        border: 1px solid #e3dece !important;
        background: #fff !important;
    }
}
@media (max-width: 980px) {
    #logo { width: auto !important; max-width: none !important; }
    .home #main-content .et_pb_row_0 { min-height: 0 !important; padding: 72px 6% !important; }
}
#main-content .et_pb_contact_form input.input.et_contact_error,
#main-content .et_pb_contact_form textarea.input.et_contact_error { border: 2px solid #b3261e !important; background: #fff6f5 !important; }
@media (max-width: 600px) { .home #main-content .et_pb_section_0 .et_pb_text_0 h1 { font-size: 27px !important; } }
/* Kachel-Pfeil als kleiner Kreis oben rechts (auf Hoehe des Symbols):
   haengt nicht mehr an der Ueberschrift und kann nicht allein umbrechen */
.home #main-content .et_pb_blurb { position: relative; }
.home #main-content .et_pb_blurb .et_pb_module_header::after {
    position: absolute;
    right: 0; top: 15px;
    width: 34px; height: 34px;
    line-height: 32px;
    margin: 0 !important;
    text-align: center;
    font-size: 17px;
    border: 1.5px solid currentColor;
    border-radius: 50%;
    color: var(--sw-gruen);
    letter-spacing: 0;
}
.home #main-content .et_pb_column_2:hover .et_pb_module_header::after, .home #main-content .et_pb_column_3:hover .et_pb_module_header::after, .home #main-content .et_pb_column_5:hover .et_pb_module_header::after,
.home #main-content .et_pb_blurb:hover .et_pb_module_header::after { transform: translateX(4px); background: #fff; }
.home #main-content .et_pb_blurb .et_pb_module_header { overflow-wrap: normal !important; word-break: normal !important; hyphens: manual; padding-right: 0; }
@media (min-width: 981px) and (max-width: 1200px) {
    .home #main-content .et_pb_blurb .et_pb_module_header, .home #main-content .et_pb_blurb .et_pb_module_header span { font-size: 17px !important; letter-spacing: .02em !important; }
}

/* --- Untermenue: eigenstaendige, rundum gerundete Karte ------------------ */
#top-menu li.menu-item-has-children > .sub-menu {
    top: calc(1em + 26px) !important;
    left: -18px !important;
    width: 300px !important;
    padding: 8px !important;
    background: #fff !important;
    border: 1px solid #e9e5d8 !important;
    border-top: 1px solid #e9e5d8 !important;
    border-radius: 18px !important;
    box-shadow: 0 12px 32px rgba(40, 50, 30, .08) !important;
}
#top-menu li.menu-item-has-children > .sub-menu::before { top: -30px; height: 30px; }
.et-fixed-header #top-menu li.menu-item-has-children > .sub-menu { top: calc(1em + 22px) !important; }
#top-menu .sub-menu a {
    display: block !important;
    padding: 12px 16px !important;
    border-radius: 12px !important;
    font-size: 16px !important;
    line-height: 1.3 !important;
}
/* kurze Erklaerung unter dem Standort */
#top-menu .sub-menu .menu-item-867 > a::after,
#top-menu .sub-menu .menu-item-863 > a::after {
    display: block;
    margin-top: 3px;
    font-size: 14px;
    font-weight: 600;
    color: #6b675d;
}
#top-menu .sub-menu .menu-item-867 > a::after { content: "Vollzeitbetreutes Wohnen"; }
#top-menu .sub-menu .menu-item-863 > a::after { content: "Teilzeitbetreutes Wohnen"; }
#top-menu .sub-menu a:hover, #top-menu .sub-menu .current-menu-item > a { background: var(--sw-zartgruen) !important; }
#top-menu .sub-menu a:hover::after { color: #4f5a48; }
#top-menu .sub-menu li, #top-menu .sub-menu li:not(.current-menu-item) > a:not(:hover):not(:focus-visible) { background: transparent !important; }

/* --- Navigation: Pillen-System (aktive Seite zartgruen, Kontakt gefuellt) --
   Alle Punkte teilen dieselbe Pillenform. Kontakt ist nur die gefuellte
   Variante - gleiche Hoehe, gleiche Schrift, gleiche Rundung. */
#top-menu > li { padding-right: 6px !important; }
#top-menu > li > a::before {
    content: "" !important;
    position: absolute;
    left: -14px !important; right: -14px !important;
    top: -10px !important;
    width: auto !important;
    height: calc(1em + 20px) !important;
    border-radius: 999px !important;
    background: transparent;
    z-index: -1;
    transition: background-color .2s ease;
}
#top-menu > li { isolation: isolate; margin: 0 8px; }
#top-menu > li:not(.menu-item-30):hover > a::before { background: #f1f6ee; }
#top-menu > li.current-menu-item:not(.menu-item-30) > a::before,
#top-menu > li.current-menu-ancestor:not(.menu-item-30) > a::before { background: var(--sw-zartgruen); }
#top-menu > li.current-menu-item > a, #top-menu > li.current-menu-ancestor > a { font-weight: 700 !important; color: var(--sw-gruen-dunkel) !important; }
/* Kontakt: gleiche Pille, gefuellt */
#top-menu > li.menu-item-30 { margin-left: 14px; margin-right: 14px; }
#top-menu > li.menu-item-30 > a { font-weight: 700 !important; font-size: 16px !important; color: #fff !important; }
#top-menu > li.menu-item-30 > a::before { background: var(--sw-gruen) !important; left: -14px !important; right: -14px !important; top: -10px !important; height: calc(1em + 20px) !important; }
#top-menu > li.menu-item-30 > a:hover::before { background: var(--sw-gruen-dunkel) !important; }
#top-menu > li.menu-item-30.current-menu-item > a::before { background: var(--sw-gruen-dunkel) !important; }
@media (min-width: 981px) and (max-width: 1200px) {
    #top-menu > li { margin: 0 4px; }
    #top-menu > li > a::before, #top-menu > li.menu-item-30 > a::before { left: -10px !important; right: -10px !important; }
    #top-menu > li.menu-item-30 { margin-left: 10px; margin-right: 10px; }
}
/* Abstand zwischen den Pillen, damit sich benachbarte nie beruehren */
#top-menu > li { margin: 0 13px !important; padding-right: 0 !important; }
#top-menu > li > a::before, #top-menu > li.menu-item-30 > a::before { left: -12px !important; right: -12px !important; }
#top-menu > li.menu-item-has-children > a { padding-right: 18px !important; }
#top-menu > li.menu-item-has-children > a::before { right: -8px !important; }
#top-menu > li.menu-item-30 { margin-left: 16px !important; margin-right: 12px !important; }
@media (min-width: 981px) and (max-width: 1200px) {
    #top-menu > li { margin: 0 9px !important; }
    #top-menu > li > a::before, #top-menu > li.menu-item-30 > a::before { left: -8px !important; right: -8px !important; }
    #top-menu > li.menu-item-has-children > a::before { right: -6px !important; }
    #top-menu > li.menu-item-30 { margin-left: 12px !important; margin-right: 8px !important; }
}
/* Handy-Menue: aktive Seite wie am Rechner zartgruen */
.et_mobile_menu li.current-menu-item:not(.menu-item-30) > a { background: var(--sw-zartgruen) !important; color: var(--sw-gruen-dunkel) !important; }
.et_mobile_menu .menu-item-has-children:not(.current-menu-item):not(.current-menu-ancestor) > a { background: transparent !important; }
.et_mobile_menu .current-menu-ancestor > a { background: var(--sw-zartgruen) !important; color: var(--sw-gruen-dunkel) !important; }

/* --- Fussbereich, schlicht: flache Sandflaeche statt Gruen mit Verlauf ---- */
.sw-fuss {
    background: #f5f1e6 !important;
    color: #2b2b2b;
    margin-top: 70px;
    border-radius: 36px 36px 0 0;
}
.sw-fuss a { color: #2b2b2b !important; }
.sw-fuss a:hover { color: #176a0b !important; }
.sw-fuss p, .sw-fuss li { color: #3a3a3a !important; }
.sw-fuss h2 { color: #176a0b !important; font-size: 13px !important; letter-spacing: .1em; }
.sw-fuss-logo { background: transparent !important; padding: 0 !important; border-radius: 0 !important; margin-bottom: 14px; }
.sw-fuss-logo img { width: 92px !important; mix-blend-mode: multiply; }
.sw-fuss-knopf {
    background: #1e850f !important;
    color: #fff !important;
    padding: 11px 22px !important;
}
.sw-fuss-knopf:hover { background: #176a0b !important; color: #fff !important; text-decoration: none !important; }
.sw-fuss-leiste { border-top: 1px solid rgba(0, 0, 0, .08) !important; }
.sw-fuss-leiste-innen, .sw-fuss-leiste-innen span { color: #6b675d !important; }
.sw-fuss-leiste-innen a { color: #4a4740 !important; }
.sw-fuss a:focus-visible { outline-color: #1e850f !important; box-shadow: 0 0 0 5px #fff !important; }
.sw-fuss a.sw-fuss-knopf, .sw-fuss a.sw-fuss-knopf:hover { color: #fff !important; }
.sw-fuss { margin-top: 30px !important; }
.home .sw-start-kontakt { padding-bottom: 30px !important; }

/* --- Barrierefreiheits-Leiste und Cookie-Elemente im Stil der Seite ------ */
/* Leiste: zwei runde Knoepfe unten links (auch am Rechner), statt grauer
   Kaesten mitten am linken Rand */
.a11y-toolbar {
    top: auto !important;
    bottom: 18px !important;
    left: 18px !important;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}
.a11y-toolbar ul { display: flex !important; gap: 8px; background: transparent !important; border: 0 !important; }
.a11y-toolbar ul li { border: 0 !important; background: transparent !important; }
.a11y-toolbar ul li button {
    width: 46px !important; height: 46px !important;
    border-radius: 50% !important;
    border: 1px solid #e3dece !important;
    background: #fff !important;
    color: #176a0b !important;
    display: flex !important; align-items: center; justify-content: center;
    padding: 0 !important;
    transition: background .2s ease;
}
.a11y-toolbar ul li button:hover, .a11y-toolbar ul li button.active { background: #e9f3e4 !important; }
.a11y-toolbar ul li button .aticon, .a11y-toolbar ul li button span { color: #176a0b !important; font-size: 20px !important; }

/* Reiter "Zustimmung verwalten": kleine Pille unten rechts */
#cmplz-manage-consent .cmplz-manage-consent {
    bottom: 18px !important;
    right: 18px !important;
    left: auto !important;
    height: auto !important;
    padding: 10px 18px !important;
    border-radius: 999px !important;
    background: #fff !important;
    border: 1px solid #e3dece !important;
    color: #3a3a3a !important;
    font-family: "Nunito Sans", Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    box-shadow: none !important;
    animation: none !important;
}
#cmplz-manage-consent .cmplz-manage-consent:hover { background: #e9f3e4 !important; color: #176a0b !important; }

/* Cookie-Hinweis */
.cmplz-cookiebanner {
    border-radius: 24px !important;
    border: 1px solid #e6e2d4 !important;
    background: #fbfaf6 !important;
    box-shadow: 0 16px 40px rgba(40, 50, 30, .12) !important;
    font-family: "Nunito Sans", Arial, sans-serif !important;
    padding: 22px 24px !important;
}
.cmplz-cookiebanner .cmplz-title { font-weight: 800 !important; font-size: 17px !important; color: #1f1f1f !important; }
.cmplz-cookiebanner .cmplz-message, .cmplz-cookiebanner .cmplz-message p { font-size: 15px !important; line-height: 1.55 !important; color: #3a3a3a !important; }
.cmplz-cookiebanner .cmplz-btn {
    border-radius: 999px !important;
    font-family: "Nunito Sans", Arial, sans-serif !important;
    font-weight: 800 !important;
    font-size: 15px !important;
    height: auto !important;
    padding: 12px 18px !important;
    box-shadow: none !important;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept { background: #1e850f !important; border-color: #1e850f !important; color: #fff !important; }
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover { background: #176a0b !important; }
.cmplz-cookiebanner .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences {
    background: #fff !important;
    border: 1.5px solid #1e850f !important;
    color: #176a0b !important;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-deny:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences:hover { background: #e9f3e4 !important; }
.cmplz-cookiebanner .cmplz-links a, .cmplz-cookiebanner .cmplz-link { color: #176a0b !important; font-size: 14px !important; }
.cmplz-cookiebanner .cmplz-close { color: #3a3a3a !important; }
.cmplz-cookiebanner .cmplz-categories .cmplz-category { border-radius: 14px !important; background: #f5f1e6 !important; }
#main-content .sw-team-karte .sw-team-text p.sw-team-mail a { text-decoration: none !important; }
.cmplz-cookiebanner .cmplz-close { border-radius: 50% !important; }
.cmplz-cookiebanner .cmplz-close:focus-visible { outline-offset: 2px !important; border-radius: 50% !important; }
/* Leiste ausblenden, solange der Cookie-Hinweis offen ist */
body:has(.cmplz-cookiebanner.cmplz-show) .a11y-toolbar { display: none !important; }
/* Wir-Titelbild: am Handy ragt der Zitatkasten ueber das Foto - nicht abschneiden */
@media (max-width: 980px) { .page-id-6 #main-content .et_pb_row_0 { clip-path: none !important; overflow: visible !important; } }

/* --- Startseite: Begruessung linksbuendig mit Untertitel ----------------- */
.home #main-content .et_pb_row_0 { padding: 64px 7% 104px !important; min-height: 0 !important; height: auto !important; }
.home #main-content .et_pb_row_0 .et_pb_column_0 { margin: 0 !important; }
.home #main-content .et_pb_section_0 .et_pb_text_0 h1 {
    text-align: left !important;
    text-transform: none !important;
    letter-spacing: -.01em !important;
    font-size: clamp(34px, 3.8vw, 54px) !important;
    line-height: 1.12 !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
}
.home #main-content .sw-hero-text {
    text-align: left;
    max-width: 600px;
    font-size: clamp(17px, 1.5vw, 21px) !important;
    line-height: 1.5 !important;
    font-weight: 600;
    color: rgba(255, 255, 255, .92) !important;
    margin: 0 !important;
    padding: 0 !important;
}
@media (max-width: 980px) {
    .home #main-content .et_pb_row_0 { padding: 48px 7% 90px !important; }
}
@media (max-width: 600px) {
    .home #main-content .et_pb_section_0 .et_pb_text_0 h1 { font-size: 32px !important; }
}

/* --- Akkordeon (Wir): ruhige Liste statt gruener Balken ----------------- */
#main-content .et_pb_accordion .et_pb_toggle {
    background: #f5f1e6 !important;
    border: 0 !important;
    border-radius: 18px !important;
    padding: 20px 64px 20px 26px !important;
    margin-bottom: 12px !important;
    transition: background .25s ease;
}
#main-content .et_pb_accordion .et_pb_toggle:hover { background: #efe9da !important; }
#main-content .et_pb_accordion .et_pb_toggle_open { background: #e9f3e4 !important; }
#main-content .et_pb_accordion .et_pb_toggle_title,
#main-content .et_pb_accordion .et_pb_toggle .et_pb_toggle_title {
    color: #1f1f1f !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    padding: 0 !important;
}
#main-content .et_pb_accordion .et_pb_toggle_open .et_pb_toggle_title { color: #176a0b !important; }
/* Plus/Minus als runder Knopf rechts */
#main-content .et_pb_accordion .et_pb_toggle_title::before {
    right: -44px !important;
    width: 32px; height: 32px;
    line-height: 32px !important;
    margin-top: -16px !important;
    text-align: center;
    border-radius: 50%;
    background: #fff;
    color: #1e850f !important;
    font-size: 18px !important;
}
#main-content .et_pb_accordion .et_pb_toggle_open .et_pb_toggle_title::before { background: #1e850f; color: #fff !important; }
#main-content .et_pb_accordion .et_pb_toggle_content {
    padding-top: 12px !important;
    color: #333 !important;
    font-size: 16px;
    line-height: 1.7;
}
#main-content .et_pb_accordion .et_pb_toggle_content p { color: #333 !important; }
@media (max-width: 600px) {
    #main-content .et_pb_accordion .et_pb_toggle { padding: 18px 56px 18px 20px !important; }
    #main-content .et_pb_accordion .et_pb_toggle_title::before { right: -40px !important; }
}
#main-content .et_pb_accordion .et_pb_toggle_title::before {
    content: "+" !important;
    font-family: "Nunito Sans", Arial, sans-serif !important;
    font-weight: 700 !important;
    font-size: 22px !important;
    line-height: 31px !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    border: 1.5px solid #cfe5ca;
    box-sizing: border-box;
    top: 50% !important;
    position: absolute !important;
}
#main-content .et_pb_accordion .et_pb_toggle_open .et_pb_toggle_title::before {
    content: "–" !important;
    border-color: #1e850f;
}
#main-content .et_pb_accordion .et_pb_toggle_open,
#main-content .et_pb_accordion .et_pb_toggle_open:hover { background: #e9f3e4 !important; }
#main-content .et_pb_accordion .et_pb_toggle_title { cursor: pointer; }
/* Akkordeon hebt sich vom Sand-Kasten darueber ab: weiss mit feinem Rand */
#main-content .et_pb_accordion { margin-top: 18px; }
#main-content .et_pb_accordion .et_pb_toggle { background: #fff !important; border: 1.5px solid #e6e1d1 !important; }
#main-content .et_pb_accordion .et_pb_toggle:hover { background: #fbfaf6 !important; border-color: #d8d1bb !important; }
#main-content .et_pb_accordion .et_pb_toggle_open,
#main-content .et_pb_accordion .et_pb_toggle_open:hover { background: #e9f3e4 !important; border-color: #cfe5ca !important; }
#main-content .et_pb_accordion .et_pb_toggle_close .et_pb_toggle_title::before { background: #f5f1e6; border-color: #e6e1d1; }

/* --- Begruessung: Inhalt unveraendert (Grossbuchstaben, kein Untertitel),
   nur Optik: mittig, leicht gesperrt, heller Zierstrich darunter --------- */
.home #main-content .et_pb_row_0 { padding: 78px 7% 118px !important; }
.home #main-content .et_pb_section_0 .et_pb_text_0 h1 {
    text-align: center !important;
    letter-spacing: .06em !important;
    font-size: clamp(30px, 3.4vw, 50px) !important;
    line-height: 1.15 !important;
    margin: 0 !important;
}
.home #main-content .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner::after {
    content: "";
    display: block;
    width: 56px; height: 4px;
    margin: 22px auto 0;
    border-radius: 4px;
    background: rgba(255, 255, 255, .75);
}
@media (max-width: 980px) { .home #main-content .et_pb_row_0 { padding: 56px 7% 92px !important; } }
@media (max-width: 600px) { .home #main-content .et_pb_section_0 .et_pb_text_0 h1 { font-size: 28px !important; letter-spacing: .04em !important; } }
@media (max-width: 980px) { .home #main-content .et_pb_row_0 { padding: 56px 7% 60px !important; } }
.a11y-toolbar ul li button .aticon-font { display: block; line-height: 1 !important; }

/* Kontrast-Symbol: eigene, sauber runde Zeichnung direkt am Knopf (das
   Hochkontrast-Stylesheet des Plugins loescht Hintergruende an span) */
.a11y-toolbar .toggle-contrast .aticon-adjust { display: none !important; }
.a11y-toolbar .toggle-contrast::after {
    content: "";
    width: 22px; height: 22px;
    background: no-repeat center / 22px 22px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.6' fill='none' stroke='%23176a0b' stroke-width='2.2'/%3E%3Cpath d='M12 2.4a9.6 9.6 0 0 1 0 19.2z' fill='%23176a0b'/%3E%3C/svg%3E");
}
.a11y-toolbar ul li button { position: relative !important; }
/* Hinweistext beim Ueberfahren als kleines Etikett ueber dem Knopf */
.a11y-toolbar button:hover .offscreen, .a11y-toolbar button:focus .offscreen {
    left: 0 !important; right: auto !important;
    top: auto !important; bottom: calc(100% + 8px) !important;
    margin: 0 !important;
    padding: 6px 12px !important;
    border-radius: 999px !important;
    background: #1f1f1f !important;
    color: #fff !important;
    box-shadow: none !important;
    font-family: "Nunito Sans", Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 700;
}

/* --- Hochkontrast-Modus (body.contrast): eigene Flaechen schwarz mit
   weissem Rand, keine Verlaeufe - sonst mischt sich Neu und Kontrast ---- */
body.contrast.home #main-content .et_pb_row_0 { background: #000 !important; border: 2px solid #fff; }
body.contrast.home #main-content .et_pb_row_0::after,
body.contrast.home #main-content .et_pb_text_0 .et_pb_text_inner::after,
body.contrast.home #main-content .et_pb_text_1 .et_pb_text_inner::before { display: none !important; }
body.contrast.home #main-content .et_pb_column_2::before, body.contrast.home #main-content .et_pb_column_3::before,
body.contrast.home #main-content .et_pb_column_5::before, body.contrast.home #main-content .et_pb_blurb_3::before,
body.contrast.home #main-content .et_pb_blurb_4::before { background: #000 !important; border: 2px solid #fff; }
body.contrast .sw-grau, body.contrast .sw-kontakt-karte, body.contrast .sw-bereich, body.contrast .sw-team-karte,
body.contrast #main-content .et_pb_contact_form_container, body.contrast #main-content .dnxte_step_flow,
body.contrast #main-content .et_pb_accordion .et_pb_toggle, body.contrast.home #main-content .et_pb_text_1,
body.contrast .sw-404-ziele a, body.contrast .sw-fuss {
    background: #000 !important;
    border: 2px solid #fff !important;
}
body.contrast .sw-fuss, body.contrast .sw-fuss p, body.contrast .sw-fuss li, body.contrast .sw-fuss span { color: #fff !important; }
body.contrast #main-content .et-pb-icon, body.contrast #main-content .et_pb_accordion .et_pb_toggle_title::before,
body.contrast.home #main-content .et_pb_blurb .et_pb_module_header::after { background: #000 !important; border: 2px solid #fff !important; color: #fff !important; }
body.contrast #top-menu > li > a::before { display: none !important; }
body.contrast .sw-fuss-logo img, body.contrast #logo { mix-blend-mode: normal !important; }
body.contrast .a11y-toolbar ul li button { background: #fff !important; border: 2px solid #fff !important; }
body.contrast .a11y-toolbar .toggle-contrast::after {
    background: transparent no-repeat center / 22px 22px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.6' fill='none' stroke='%23000' stroke-width='2.2'/%3E%3Cpath d='M12 2.4a9.6 9.6 0 0 1 0 19.2z' fill='%23000'/%3E%3C/svg%3E") !important;
    content: "" !important; display: block !important; width: 22px !important; height: 22px !important;
}
body.contrast #top-menu > li.menu-item-30 > a { color: #fff !important; }
/* Hochkontrast: alle Texte der eigenen Bausteine weiss, Links gelb */
body.contrast #top-menu a, body.contrast .et_mobile_menu a,
body.contrast #main-content *:not(a):not(img):not(svg),
body.contrast .sw-fuss *:not(a):not(img) { color: #fff !important; }
body.contrast #main-content a, body.contrast .sw-fuss a, body.contrast #main-content a * { color: #ff0 !important; }
body.contrast #main-content a.sw-weiter, body.contrast #main-content a.sw-kontakt-knopf, body.contrast .sw-fuss a.sw-fuss-knopf,
body.contrast #main-content .et_pb_button, body.contrast #main-content .et_pb_contact_submit {
    background: #000 !important; border: 2px solid #ff0 !important; color: #ff0 !important;
}
body.contrast #main-content input.input, body.contrast #main-content textarea.input { background: #000 !important; color: #fff !important; border: 2px solid #fff !important; }
body.contrast #main-content input.input::placeholder, body.contrast #main-content textarea.input::placeholder { color: #ddd !important; }
body.contrast #main-content .et_pb_accordion .et_pb_toggle .et_pb_toggle_title,
body.contrast #main-content .et_pb_accordion .et_pb_toggle_open .et_pb_toggle_title,
body.contrast #main-content .et_pb_accordion .et_pb_toggle .et_pb_toggle_content,
body.contrast #main-content .et_pb_accordion .et_pb_toggle .et_pb_toggle_content p,
body.contrast #top-menu > li.current-menu-item > a, body.contrast #top-menu > li.current-menu-ancestor > a,
body.contrast #top-menu > li > a:hover { color: #fff !important; }
body.contrast #main-content .sw-team-karte .sw-team-text p.sw-team-mail a, body.contrast #main-content .sw-team-mail a { color: #ff0 !important; }
body.contrast #main-content .sw-grau h2, body.contrast #main-content .sw-grau h3, body.contrast #main-content .sw-grau h4, body.contrast #main-content [class*="icon"] { color: #fff !important; }
body.contrast #top-menu .sub-menu a, body.contrast #top-menu .sub-menu .current-menu-item > a { color: #fff !important; background: #000 !important; }
body.contrast #top-menu li.menu-item-has-children > .sub-menu { background: #000 !important; border: 2px solid #fff !important; }
