/* Theme Saturn (Kundenwebsite BodenDesign). Farben und Schriften aus theme.json; die Klassen
   .cms-gs-* setzt die Website (globale Stile) über style.globals an einzelne Blöcke. */

body { font-size: 1rem; line-height: 1.65; }

h1, h2, h3, h4 { font-weight: 600; letter-spacing: -0.02em; }

a { color: var(--cms-color-primary); }

/* Info-Leiste */

.site-topbar { background: var(--cms-color-akzent); color: #fff; font-size: 0.875rem; font-weight: 600; }

.site-topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    max-width: var(--cms-size-wide);
    margin-inline: auto;
    padding: 0.5rem var(--cms-size-gutter);
}

.site-topbar a { display: inline-flex; align-items: center; gap: 0.5rem; color: inherit; text-decoration: none; }
.site-topbar a:hover { text-decoration: underline; }

/* Kopf */

.site-header { position: sticky; top: 0; z-index: 30; background: var(--cms-color-background); }
.site-header-inner { gap: 1rem 2rem; padding-block: 1rem; }
.site-brand { flex: none; line-height: 0; }
.site-brand img { width: auto; height: 2.5rem; }

.site-nav { margin-left: auto; font-family: var(--cms-font-heading); }
.site-nav .menu { align-items: center; gap: 0.25rem 2rem; }
.site-nav a { padding: 0.5rem 0; font-size: 1.0625rem; font-weight: 600; }

.site-nav a:hover,
.site-nav [aria-current='page'],
.site-nav .is-in-trail > a { color: var(--cms-color-primary); }

/* Pfeil an Einträgen mit Untermenü */
.site-nav .menu > .has-children > a { display: inline-flex; align-items: center; gap: 0.375rem; }

.site-nav .menu > .has-children > a::after {
    content: '';
    width: 0.45em;
    height: 0.45em;
    margin-top: -0.25em;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
}

.site-nav .sub-menu { min-width: 15rem; padding: 0.5rem; border-color: var(--cms-color-border); border-radius: 0.5rem; box-shadow: 0 20px 40px rgb(0 0 0 / 0.12); }
.site-nav .sub-menu a { padding: 0.5rem 0.75rem; border-radius: 0.375rem; font-family: var(--cms-font-body); font-size: 0.9375rem; }
.site-nav .sub-menu a:hover { background: var(--cms-color-surface); color: var(--cms-color-text); }

/* Der letzte Eintrag des Hauptmenüs ist der Knopf „Beratung anfragen“. */
.site-nav .menu > li:last-child > a,
.bd-button {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    border: 2px solid var(--cms-color-akzent);
    border-radius: 0.375rem;
    background: var(--cms-color-akzent);
    color: var(--cms-color-text);
    font-family: var(--cms-font-heading);
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
}

.site-nav .menu > li:last-child > a:hover,
.site-nav .menu > li:last-child > a[aria-current='page'],
.bd-button:hover { border-color: var(--cms-color-akzent-hell); background: var(--cms-color-akzent-hell); color: var(--cms-color-text); }

.bd-button.is-outline { border-color: #fff; background: transparent; color: #fff; }
.bd-button.is-outline:hover { background: rgb(255 255 255 / 0.1); color: #fff; }

@media (max-width: 1024px) {
    .site-topbar-text { display: none; }
    .site-nav-toggle { display: block; margin-left: auto; }
    .site-nav-toggle summary {
        cursor: pointer;
        padding: 0.5rem 0.875rem;
        border: 1px solid var(--cms-color-border);
        border-radius: 0.375rem;
        font-weight: 600;
        list-style: none;
    }
    .site-nav-toggle summary::-webkit-details-marker { display: none; }
    .site-nav { display: none; width: 100%; margin-left: 0; }
    .site-nav-toggle[open] + .site-nav { display: block; }
    .site-nav .menu { flex-direction: column; align-items: stretch; gap: 0; }
    .site-nav .menu > li { border-bottom: 1px solid var(--cms-color-border); }
    .site-nav .menu > li:last-child { margin-top: 1rem; border-bottom: 0; }
    .site-nav .menu > li:last-child > a { display: block; text-align: center; }
    .site-nav .menu > .has-children > a::after { display: none; }
    .site-nav .sub-menu { position: static; display: block; padding: 0 0 0.5rem 1rem; border: 0; box-shadow: none; }
}

@media (max-width: 640px) {
    .site-brand img { height: 2.25rem; }
}

/* Fuß */

/* Seiten mit Titel (Impressum, Datenschutz, Beiträge) enden mit Text; Seiten ohne Titel
   enden mit vollbreiten Abschnitten, die ihren Abstand selbst mitbringen. */
.site-main { padding-bottom: 5rem; }
.is-front-page .site-main { padding-bottom: 0; }

.site-footer { margin-top: 0; border: 0; background: var(--cms-color-text); color: rgb(255 255 255 / 0.75); font-size: 0.9375rem; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--cms-color-akzent); }

.site-footer-cta { border-bottom: 1px solid rgb(255 255 255 / 0.1); }
.site-footer-cta .site-footer-inner { justify-content: center; gap: 1rem 2rem; padding-block: 2.5rem; }
.site-footer-cta-title { color: #fff; font-family: var(--cms-font-heading); font-size: 1.75rem; font-weight: 600; letter-spacing: -0.02em; }
.site-footer-cta-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.site-footer .bd-button { color: var(--cms-color-text); }
.site-footer .bd-button.is-outline { color: #fff; }

.site-footer-main { display: grid; grid-template-columns: 2fr 1.5fr 2fr; align-items: start; gap: 2.5rem; padding-block: 3.5rem; }
.footer-about img { width: auto; height: 2.5rem; margin-bottom: 1rem; }
.footer-about p { max-width: 22rem; }

.footer-heading { margin-bottom: 0.75rem; color: #fff; font-family: var(--cms-font-heading); font-size: 1.0625rem; font-weight: 600; }
.footer-column address { margin-bottom: 0.75rem; font-style: normal; }
.footer-links .menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem 1.5rem; }

.site-footer-bottom { border-top: 1px solid rgb(255 255 255 / 0.1); font-size: 0.8125rem; }
.site-footer-bottom .site-footer-inner { justify-content: space-between; gap: 0.5rem 1.5rem; padding-block: 1.25rem; }

@media (max-width: 1024px) {
    .site-footer-main { grid-template-columns: 1fr 1fr; }
    .footer-about { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .site-footer-main { grid-template-columns: 1fr; }
    .site-footer-cta-title { width: 100%; font-size: 1.5rem; text-align: center; }
    .site-footer-cta-actions { justify-content: center; }
}

/* Formulare: Absenden im Orange der Website */

.cms-form button[type='submit'] {
    padding: 0.75rem 1.5rem;
    border: 2px solid var(--cms-color-akzent);
    border-radius: 0.375rem;
    background: var(--cms-color-akzent);
    color: var(--cms-color-text);
    font-family: var(--cms-font-heading);
    font-weight: 600;
}

.cms-form button[type='submit']:hover { border-color: var(--cms-color-akzent-hell); background: var(--cms-color-akzent-hell); }

/* Links auf dunklen Flächen (globale Stile der Website) übernehmen die Textfarbe. */
.cms-gs-telefon-gross a,
.cms-gs-link-hell a,
.cms-gs-info-karte a,
.cms-gs-dunkle-box a { color: inherit; text-decoration: none; }

.cms-gs-telefon-gross a:hover,
.cms-gs-link-hell a:hover,
.cms-gs-info-karte a:hover,
.cms-gs-dunkle-box a:hover { color: var(--cms-color-akzent); }
