:root {
    --theme-primary: #171b23;
    --theme-accent: #f59e0b;
    --font-family-base: "Inter", "Segoe UI", Arial, sans-serif;
    --font-size-base: 16px;
    --line-height-base: 1.62;
    --button-radius: 0.65rem;
    --card-radius: 1rem;
    --shadow-strength: 0.26;
    --section-space: 4.5rem;
}

* {
    box-sizing: border-box;
}

body {
    font-family: var(--font-family-base);
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    text-rendering: optimizeLegibility;
}

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

.btn {
    border-radius: var(--button-radius);
    font-weight: 500;
    transition: all .2s ease;
}

.btn-accent {
    color: #171717;
    border-color: transparent;
    background: linear-gradient(135deg, var(--theme-accent), #ffbe4a);
    box-shadow: 0 12px 30px rgba(245, 158, 11, calc(var(--shadow-strength) + .1));
}

.btn-accent:hover {
    transform: translateY(-1px);
    color: #141414;
    background: linear-gradient(135deg, #ffc14f, #ff9f1f);
}

.content-card {
    background: linear-gradient(180deg, rgba(30, 37, 50, .94), rgba(18, 24, 34, .94));
    border: 1px solid #2f3a4d;
    border-radius: var(--card-radius);
    box-shadow: 0 16px 36px rgba(0, 0, 0, var(--shadow-strength));
}

/* Public layout */
.public-body {
    background: radial-gradient(circle at 0% 0%, #232b38 0%, #131923 44%, #0d1118 100%);
    color: #f6f8fb;
    padding-top: var(--public-header-offset, 84px);
}

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1100;
    backdrop-filter: blur(12px);
}

.top-strip {
    background: rgba(7, 11, 16, .92);
    border-bottom: 1px solid #1d2735;
}

.main-navbar {
    background: rgba(12, 16, 24, .86);
    border-bottom: 1px solid #263245;
    box-shadow: 0 12px 24px rgba(0, 0, 0, .3);
}

.main-navbar .nav-link {
    color: #d5dfec;
}

.main-navbar .nav-link:hover,
.main-navbar .nav-link:focus {
    color: #ffffff;
}

.site-main {
    overflow: clip;
}

.site-main > section {
    margin-top: 0;
}

.hero-section {
    position: relative;
    background-color: #10141b;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-bottom: 1px solid #2a3546;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, var(--hero-overlay, .45));
    backdrop-filter: blur(var(--hero-blur, 1.5px));
}

.hero-home {
    padding-top: var(--section-space);
    padding-bottom: calc(var(--section-space) - .7rem);
}

.min-vh-50 {
    min-height: 52vh;
}

@media (max-width: 767.98px) {
    .min-vh-50 {
        min-height: 42vh;
    }

    .hero-home {
        padding-top: calc(var(--section-space) * .75);
        padding-bottom: calc(var(--section-space) * .55);
    }
}

@media (max-width: 575.98px) {
    .min-vh-50 {
        min-height: 36vh;
    }

    .hero-home {
        padding-top: calc(var(--section-space) * .55);
        padding-bottom: calc(var(--section-space) * .4);
    }
}

.chip {
    display: inline-flex;
    align-items: center;
    padding: .38rem .8rem;
    border-radius: 999px;
    border: 1px solid #3a4c67;
    background: rgba(5, 9, 14, .58);
    color: #d7e0ec;
    font-size: .8rem;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.stats-row .hero-stat {
    background: linear-gradient(180deg, #ffffff, #eef3f9);
    border-radius: .8rem;
    color: #111827;
    text-align: center;
    padding: .8rem .55rem;
    height: 100%;
}

.stats-row .hero-stat strong {
    display: block;
    font-size: 1.2rem;
}

.stats-row .hero-stat span {
    font-size: .78rem;
    color: #4b5563;
}

.interactive-stack {
    display: grid;
    gap: .75rem;
}

.stack-item {
    display: flex;
    justify-content: space-between;
    gap: .7rem;
    align-items: center;
    border-radius: var(--card-radius);
    padding: 1rem 1.1rem;
    text-decoration: none;
    color: #111827;
    background: linear-gradient(180deg, rgba(253, 253, 254, .98), rgba(239, 244, 251, .95));
    border: 1px solid rgba(255, 255, 255, .6);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
    transition: transform .2s ease, box-shadow .2s ease;
}

.stack-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 30px rgba(0, 0, 0, .26);
}

.stack-item.highlight {
    color: #f8fafc;
    background: linear-gradient(140deg, #131821, #1d2634);
    border-color: #2d3a50;
}

.inner-hero {
    background: radial-gradient(circle at 75% 0%, rgba(245, 158, 11, .2), transparent 40%), #10141b;
    border-bottom: 1px solid #2d384a;
}

.section-light {
    background: linear-gradient(180deg, #141a24 0%, #111722 100%);
    border-top: 1px solid #28364a;
    border-bottom: 1px solid #28364a;
}

.benefit-card {
    height: 100%;
    background: linear-gradient(180deg, rgba(28, 36, 48, .96), rgba(19, 25, 35, .96));
    border: 1px solid #2f3d54;
    border-radius: var(--card-radius);
    padding: 1.15rem;
    box-shadow: 0 14px 28px rgba(0, 0, 0, .2);
}

.benefit-card h3 {
    font-size: 1.06rem;
    margin-bottom: .42rem;
}

.benefit-card p {
    margin: 0;
    color: #9fb0c6;
}

.cta-band {
    background: radial-gradient(circle at center, rgba(245, 158, 11, .16), transparent 54%), #0f151f;
    border-top: 1px solid #2b374b;
    border-bottom: 1px solid #2b374b;
}

.mega-menu {
    width: min(920px, 92vw);
    background: #141b26;
    border: 1px solid #2e3a4f;
    border-radius: .95rem;
}

.mega-menu .dropdown-item {
    border-radius: .55rem;
    color: #d7e1ed;
    padding: .5rem .62rem;
}

.mega-menu .dropdown-item:hover {
    color: #fff;
    background: #1d2736;
}

.menu-highlight {
    background: linear-gradient(180deg, #121821, #0f141c);
    border: 1px solid #2e3a4f;
    border-radius: .85rem;
}

.sticky-panel {
    position: sticky;
    top: 7.1rem;
}

.page-content-scroll {
    max-height: 76vh;
    overflow: auto;
    scrollbar-width: thin;
}

@media (max-width: 1199.98px) {
    .sticky-panel {
        position: static;
    }

    .page-content-scroll {
        max-height: none;
        overflow: visible;
    }
}

@media (max-width: 991.98px) {
    .admin-sidebar {
        position: static;
    }

    .admin-topbar-title {
        font-size: 1.18rem;
    }
}

/* --- EC-MS inspired public overrides --- */
.public-body {
    background: #f3f6fb !important;
    color: #12263a !important;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overscroll-behavior-x: none;
}

.site-main {
    flex: 1 0 auto;
}

.main-navbar {
    background: #ffffff !important;
    border-bottom: 1px solid #dbe3ef !important;
    box-shadow: 0 6px 16px rgba(21, 38, 61, .08) !important;
}

.main-navbar .navbar-brand,
.main-navbar .nav-link {
    color: #12263a !important;
}

.site-logo {
    display: inline-block;
    width: auto;
    height: 32px;
    max-width: 150px;
    object-fit: contain;
}

.main-navbar .nav-link:hover {
    color: #0d6efd !important;
}

.main-navbar .nav-services-dropdown .dropdown-menu {
    min-width: 250px;
    border: 1px solid #dbe3ef;
    box-shadow: 0 10px 22px rgba(16, 33, 56, .12);
}

.main-navbar .nav-services-dropdown .dropdown-item {
    color: #12263a;
    white-space: normal;
}

.main-navbar .nav-services-dropdown .dropdown-item:hover,
.main-navbar .nav-services-dropdown .dropdown-item:focus {
    background: #f1f6ff;
    color: #0a3e74;
}

.main-navbar .container {
    flex-wrap: nowrap;
}

.main-navbar .navbar-brand {
    min-width: 0;
    flex: 1 1 auto;
    margin-right: .6rem;
}

.main-navbar .navbar-brand .navbar-brand-text {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.main-navbar .navbar-toggler {
    flex: 0 0 auto;
}

@media (max-width: 767.98px) {
    .main-navbar .navbar-brand {
        gap: .45rem !important;
        max-width: calc(100% - 3.7rem);
    }

    .main-navbar .navbar-brand .navbar-brand-text {
        font-size: clamp(.98rem, 3.8vw, 1.25rem);
        white-space: normal;
        line-height: 1.22;
        padding-bottom: .08em;
        overflow: hidden;
        text-overflow: unset;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .main-navbar .site-logo {
        height: 30px;
        max-width: 118px;
    }

    .main-navbar .navbar-toggler {
        padding: .42rem .56rem;
    }
}

@media (max-width: 420px) {
    .main-navbar .navbar-brand {
        align-items: flex-start !important;
    }

    .main-navbar .navbar-brand .navbar-brand-text {
        font-size: clamp(.82rem, 3.7vw, 1rem);
        line-height: 1.22;
        padding-bottom: .06em;
        margin-top: .02rem;
    }

    .main-navbar .site-logo {
        height: 27px;
        max-width: 104px;
    }
}

.offcanvas {
    background: #ffffff;
    color: #12263a;
}

.hero-home {
    min-height: var(--hero-min-height, 52vh);
    height: var(--hero-height, auto);
    padding-top: 4.8rem !important;
    padding-bottom: 4.2rem !important;
    border-bottom: 0 !important;
}

.hero-home.has-custom-hero-height .min-vh-50 {
    min-height: 100% !important;
    padding-top: 1.25rem !important;
    padding-bottom: 1.25rem !important;
}

.hero-home .hero-overlay {
    background: linear-gradient(90deg, rgba(16, 27, 43, .72) 0%, rgba(16, 27, 43, .48) 38%, rgba(16, 27, 43, .18) 100%) !important;
}

.hero-home .display-4,
.hero-home .text-hero-sub {
    color: #ffffff !important;
}

.hero-home .btn-outline-primary {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: #0f2742 !important;
    opacity: 1 !important;
}

.hero-home .btn-outline-primary:hover,
.hero-home .btn-outline-primary:focus {
    background: #f4f8ff !important;
    border-color: #f4f8ff !important;
    color: #0b2138 !important;
}

.section-white {
    background: #ffffff;
    border-top: 1px solid #e8eef7;
    border-bottom: 1px solid #e8eef7;
}

.section-soft {
    background: #eef3fa;
    border-top: 1px solid #e0e8f3;
    border-bottom: 1px solid #e0e8f3;
}

.section-white .text-secondary,
.section-soft .text-secondary {
    color: #4d6480 !important;
}

#kontaktformular,
#kontaktdaten {
    scroll-margin-top: 110px;
}

.contact-business-card {
    border-radius: 1rem !important;
    overflow: hidden;
}

.contact-business-card-head {
    padding: 1.15rem 1.35rem 1rem;
    background: linear-gradient(145deg, #ffffff 0%, #f4f8ff 100%);
    border-bottom: 1px solid #dde7f4;
}

.contact-business-card-kicker {
    font-size: .78rem;
    letter-spacing: .03em;
    color: #48627d;
    text-transform: uppercase;
    margin-bottom: .35rem;
}

.contact-business-card-body {
    padding: 1.15rem 1.35rem .85rem;
}

.contact-business-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem 1.1rem;
}

.contact-business-card-item {
    background: #f8fbff;
    border: 1px solid #dde8f5;
    border-radius: .7rem;
    padding: .55rem .7rem;
}

.contact-business-card-item-full {
    grid-column: 1 / -1;
}

.contact-business-card-actions {
    padding: .95rem 1.35rem 1.2rem;
    border-top: 1px dashed #d9e4f2;
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

@media (max-width: 767.98px) {
    .contact-business-card-grid {
        grid-template-columns: 1fr;
    }

    .contact-business-card-actions .btn {
        width: 100%;
    }
}

.public-body .form-control,
.public-body .form-select,
.public-body .form-control:focus,
.public-body .form-select:focus {
    background: #ffffff;
    color: #102a44;
    border-color: #c9d8eb;
    box-shadow: none;
}

.public-body .form-control::placeholder {
    color: #6d839a;
}

.public-body .form-label {
    color: #17314f;
    font-weight: 500;
}

.section-head .h2 {
    font-weight: 700;
    color: #0f2742;
}

.service-card,
.shop-card,
.blog-card {
    background: #ffffff;
    border: 1px solid #dbe5f2;
    border-radius: .95rem;
    padding: 1.15rem;
    height: 100%;
    box-shadow: 0 10px 20px rgba(13, 38, 69, .08);
}

.service-card h3,
.shop-card h3,
.blog-card h3 {
    font-size: 1.1rem;
    margin-bottom: .5rem;
    color: #0f2742;
}

.service-card p,
.shop-card p,
.blog-card p {
    color: #54667d;
    margin-bottom: .85rem;
}

.service-card a,
.shop-card a,
.blog-card a {
    text-decoration: none;
    font-weight: 600;
    color: #0d6efd;
}

.service-card.has-service-hero {
    position: relative;
    overflow: hidden;
    border-color: rgba(206, 220, 237, .7);
    background: #112338;
}

.service-card.has-service-hero::before {
    content: "";
    position: absolute;
    inset: -8px;
    background-image: var(--service-card-bg-image);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    filter: blur(var(--service-card-bg-blur, 0px));
    transform: scale(1.04);
    z-index: 0;
}

.service-card.has-service-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(12, 23, 37, var(--service-card-overlay, .38));
    z-index: 1;
}

.service-card.has-service-hero h3,
.service-card.has-service-hero p,
.service-card.has-service-hero a {
    position: relative;
    z-index: 2;
    color: #f3f8ff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
}

.service-card.has-service-hero p {
    color: rgba(237, 244, 252, .92);
}

.service-card.has-service-hero .builder-card-tools {
    position: relative;
    z-index: 3;
    color: rgba(235, 243, 252, .92);
    border-bottom-color: rgba(229, 238, 249, .45);
}

.cta-band {
    background: linear-gradient(180deg, #ffffff 0%, #f3f7fc 100%) !important;
    border-top: 1px solid #dbe5f2 !important;
    border-bottom: 1px solid #dbe5f2 !important;
}

.content-card-light {
    background: #ffffff !important;
    border: 1px solid #dbe5f2 !important;
    color: #1a2f46 !important;
    box-shadow: 0 12px 24px rgba(13, 38, 69, .08) !important;
}

.site-footer {
    background: #0f2742;
    border-top: 0;
    color: #d5e2f2;
    margin-top: auto;
}

.site-footer .text-muted,
.site-footer small {
    color: #c4d4e6 !important;
}

.site-footer .footer-main-row {
    row-gap: 1.6rem !important;
    --bs-gutter-x: 2.1rem;
}

.site-footer .footer-title {
    font-size: 1.02rem;
    font-weight: 700;
    color: #f1f6fc;
    letter-spacing: .005em;
    margin-bottom: .2rem;
}

.site-footer .footer-subtitle {
    color: #d6e3f3;
    font-size: .88rem;
    line-height: 1.4;
}

.site-footer .footer-note {
    color: #b6c9df;
    font-size: .8rem;
    line-height: 1.5;
    max-width: 46ch;
}

.site-footer .footer-section-head {
    color: #f1f6fc;
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: .45rem;
}

.site-footer .footer-list {
    display: grid;
    gap: .34rem;
    color: #d5e2f2;
    font-size: .84rem;
    line-height: 1.38;
}

.site-footer .footer-list i {
    color: #b3c8df;
}

.site-footer .footer-address-block {
    display: grid;
    gap: .12rem;
}

.site-footer .footer-address-row {
    display: grid;
    grid-template-columns: 1.25rem 1fr;
    column-gap: .45rem;
    align-items: flex-start;
}

.site-footer .footer-address-row i {
    margin-top: .08rem;
    margin-right: 0 !important;
}

.site-footer .footer-icon-slot {
    width: 1.25rem;
    display: inline-flex;
    align-items: flex-start;
    justify-content: flex-start;
}

.site-footer .footer-address-indent {
    padding-left: 0;
}

.site-footer .footer-contact-row {
    display: grid;
    grid-template-columns: 1.25rem 1fr;
    column-gap: .45rem;
    align-items: flex-start;
}

.site-footer .footer-contact-row i {
    margin-top: .08rem;
    margin-right: 0 !important;
}

.site-footer .footer-address-row > :last-child,
.site-footer .footer-contact-row > :last-child {
    display: block;
    min-width: 0;
}

.site-footer .footer-contact-row .footer-inline-link {
    display: block;
}

.site-footer .footer-label {
    color: #a9c0da;
    font-weight: 600;
    margin-right: .2rem;
}

.site-footer .footer-inline-link {
    color: inherit;
    text-decoration: none;
}

.site-footer .footer-inline-link:hover {
    color: inherit;
    text-decoration: none;
}

.site-footer .footer-meta-value {
    margin-top: .1rem;
    color: #dce8f5;
    font-size: .83rem;
    font-weight: 600;
    letter-spacing: .01em;
}

.site-footer .footer-legal-meta {
    margin-top: .55rem;
    padding-top: .5rem;
    border-top: 1px dashed rgba(179, 203, 228, .26);
    display: grid;
    gap: .2rem;
    color: #dce8f5;
    font-size: .79rem;
}

.site-footer .footer-links {
    display: grid;
    gap: .34rem;
}

.site-footer .footer-links a {
    color: #dce8f5;
    text-decoration: none;
    font-size: .8rem;
    line-height: 1.35;
    transition: color .2s ease;
}

.site-footer .footer-links a:hover {
    color: #ffffff;
}

.site-footer .footer-bottom {
    border-top: 1px solid rgba(179, 203, 228, .28);
    color: #b8cbe0;
    font-size: .8rem;
}

.site-footer .footer-hours {
    border-left: 1px solid rgba(179, 203, 228, .22);
    padding-left: .9rem;
    min-height: 100%;
}

.site-footer .footer-hours-row + .footer-hours-row {
    margin-top: .14rem;
}

.site-footer .footer-hours-head {
    color: #e7f0fa;
    font-size: .79rem;
    font-weight: 600;
    margin-bottom: .32rem;
}

.site-footer .footer-hours-row {
    display: flex;
    align-items: baseline;
    gap: .55rem;
    line-height: 1.4;
}

.site-footer .footer-hours-label {
    min-width: 2.45rem;
    color: #abc0d8;
    font-size: .73rem;
    letter-spacing: .03em;
}

.site-footer .footer-hours-value {
    color: #eef4fb;
    font-size: .82rem;
    font-weight: 600;
}

.site-footer .footer-hours-status {
    margin-top: .55rem;
    padding-top: .5rem;
    border-top: 1px dashed rgba(179, 203, 228, .26);
    font-size: .76rem;
    color: #d8e5f3;
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    max-width: 11rem;
}

.site-footer .footer-hours-status::before {
    content: "";
    width: .55rem;
    height: .55rem;
    border-radius: 999px;
    background: #9db2ca;
    box-shadow: 0 0 0 2px rgba(157, 178, 202, .2);
}

.site-footer .footer-hours-status.is-open::before {
    background: #45c47a;
    box-shadow: 0 0 0 2px rgba(69, 196, 122, .25);
}

.site-footer .footer-hours-status.is-warning::before {
    background: #f6bd46;
    box-shadow: 0 0 0 2px rgba(246, 189, 70, .25);
}

.site-footer .footer-hours-status.is-closed::before {
    background: #e55b5b;
    box-shadow: 0 0 0 2px rgba(229, 91, 91, .26);
}

.site-footer .footer-hours-status-text {
    display: block;
}

.site-footer .footer-hours-status-main {
    display: block;
    color: #eef4fb;
    font-weight: 700;
    line-height: 1.25;
}

.site-footer .footer-hours-status-detail {
    display: block;
    margin-top: .14rem;
    color: #d8e5f3;
    font-weight: 600;
    line-height: 1.25;
}

.site-footer .footer-service-link {
    display: grid;
    grid-template-columns: 1.05rem minmax(0, 1fr);
    column-gap: .5rem;
    align-items: start;
    color: #dce8f5;
    text-decoration: none;
    font-size: .8rem;
    line-height: 1.35;
    transition: color .2s ease;
}

.site-footer .footer-service-link i {
    color: #b6cbe2;
    width: 1.05rem;
    text-align: center;
    margin-top: .05rem;
}

.site-footer .footer-service-link-text {
    overflow-wrap: anywhere;
}

.site-footer .footer-service-link:hover {
    color: #ffffff;
}

.site-footer .footer-service-link:hover i {
    color: #ffffff;
}

.site-footer .footer-social-list {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: .4rem;
    align-items: center;
}
@media (max-width: 400px) {
    .site-footer .footer-social-list { flex-wrap: wrap; }
}

@media (max-width: 991.98px) {
    .site-footer .footer-main-row {
        --bs-gutter-x: 1.4rem;
    }

    .site-footer .footer-hours {
        border-left: 0;
        border-top: 1px solid rgba(179, 203, 228, .22);
        padding-left: 0;
        padding-top: .65rem;
    }
}

@media (min-width: 1200px) {
    .site-footer .footer-services-col {
        padding-left: 3.1rem;
    }

    .site-footer .footer-legal-col {
        padding-left: 1.2rem;
    }

    .site-footer .footer-social-col {
        padding-left: 0;
        margin-left: -1rem;
    }
}

.hero-page {
    position: relative;
    background-color: #10141b;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.inner-hero.hero-page {
    min-height: var(--inner-hero-min-height, auto);
    height: var(--inner-hero-height, auto);
    display: flex;
    align-items: center;
    border-bottom: 1px solid #d5e1f1;
}

.inner-hero.hero-page.has-custom-hero-height {
    padding-top: 1.15rem !important;
    padding-bottom: 1.15rem !important;
}

.inner-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(95deg, rgba(12, 28, 47, .78) 0%, rgba(12, 28, 47, .58) 45%, rgba(12, 28, 47, .34) 100%);
}

.inner-hero.hero-page .container {
    position: relative;
    z-index: 1;
    width: 100%;
}

.admin-table-pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    flex-wrap: wrap;
}

.site-builder-toolbar {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 1080;
    display: flex;
    gap: .35rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    max-width: min(92vw, 470px);
    padding: .45rem;
    border-radius: 1rem;
    border: 1px solid rgba(18, 39, 66, .22);
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 8px 18px rgba(12, 28, 47, .14);
    backdrop-filter: blur(10px);
}

.builder-toolbar-main,
.builder-toolbar-secondary {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .35rem;
    justify-content: flex-end;
}

@media (max-width: 575.98px) {
    .site-builder-toolbar {
        right: .5rem;
        bottom: 5.1rem;
        max-width: calc(100vw - 1rem);
        padding: .45rem;
    }

    .builder-toolbar-main,
    .builder-toolbar-secondary {
        width: 100%;
        justify-content: flex-end;
    }

    .site-builder-toolbar.is-collapsed {
        right: .5rem;
        bottom: .8rem;
    }
}

.site-builder-toolbar.is-collapsed {
    max-width: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.site-builder-toolbar.is-collapsed .builder-toolbar-item {
    display: none !important;
}

.site-builder-toolbar.is-collapsed #builderCollapseBtn {
    width: 38px;
    height: 38px;
    min-width: 38px;
    padding: 0;
    border-radius: 999px;
    background: rgba(15, 39, 66, .72);
    border: 1px solid rgba(219, 229, 242, .6);
    color: #f3f8ff;
    box-shadow: 0 8px 18px rgba(12, 28, 47, .2);
}

.site-builder-toolbar .btn-dark {
    background: #16243a;
    border-color: #203758;
    color: #f2f7ff;
    --bs-btn-padding-y: .3rem;
    --bs-btn-padding-x: .58rem;
    --bs-btn-font-size: .82rem;
}

.site-builder-toolbar .btn-dark:hover {
    background: #1d3150;
    border-color: #294468;
}

.site-builder-toolbar .btn-accent {
    --bs-btn-padding-y: .3rem;
    --bs-btn-padding-x: .62rem;
    --bs-btn-font-size: .82rem;
}

.builder-grid-snap-wrap {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .22rem .45rem;
    border-radius: .45rem;
    border: 1px solid rgba(18, 39, 66, .18);
    background: rgba(248, 252, 255, .9);
    color: #274466;
    font-size: .76rem;
    font-weight: 600;
}

.builder-grid-snap-wrap .form-select {
    min-width: 72px;
    --bs-form-select-font-size: .76rem;
    --bs-form-select-padding-y: .18rem;
    --bs-form-select-padding-x: .3rem;
}

.builder-toolbar-hint {
    display: inline-flex;
    align-items: center;
    padding: .2rem .35rem;
    border-radius: .35rem;
    font-size: .72rem;
    color: #355272;
    background: rgba(237, 244, 255, .9);
}

.builder-card-tools {
    display: none;
    justify-content: space-between;
    align-items: center;
    font-size: .78rem;
    color: #5a6f87;
    margin-bottom: .5rem;
    padding-bottom: .4rem;
    border-bottom: 1px dashed #c9d6e6;
}

.builder-drag-handle {
    cursor: grab;
    user-select: none;
    font-weight: 700;
}

.builder-service-wrap.dragging .service-card {
    opacity: .65;
}

.builder-mode .builder-edit[data-setting] {
    outline: 2px dashed #4d8df6;
    outline-offset: 2px;
    border-radius: .35rem;
    padding: .1rem .22rem;
    background: rgba(77, 141, 246, .08);
}

.builder-mode.builder-move-all-enabled .builder-edit[data-setting],
.builder-mode.builder-move-all-enabled .builder-page-edit[data-page-field] {
    cursor: move;
}

.builder-mode .builder-grab-focus {
    outline: 2px solid rgba(255, 77, 79, .55);
    outline-offset: 2px;
}

.builder-mode .builder-page-edit[data-page-field] {
    outline: 2px dashed #22a06b;
    outline-offset: 2px;
    border-radius: .35rem;
    padding: .1rem .22rem;
    background: rgba(34, 160, 107, .08);
}

.builder-mode .builder-page-html.builder-page-html-editing {
    min-height: 120px;
    display: block;
}

.builder-mode .builder-page-link[data-page-field] {
    outline: 2px dashed #f59e0b;
    outline-offset: 2px;
    border-radius: .3rem;
}

.builder-mode .builder-link[data-setting] {
    outline: 2px dashed #f59e0b;
    outline-offset: 2px;
    border-radius: .3rem;
}

.builder-text-style-menu {
    position: fixed;
    z-index: 2500;
    width: min(320px, calc(100vw - 16px));
    background: #fff;
    border: 1px solid #cfd6de;
    border-radius: .5rem;
    box-shadow: 0 18px 36px rgba(16, 33, 52, .25);
    padding: .6rem;
}

.builder-text-style-menu-title {
    font-weight: 700;
    font-size: .84rem;
    margin-bottom: .45rem;
    color: #1d2f41;
}

.builder-design-token {
    display: none;
}

.builder-design-token-wrap {
    display: none;
    gap: .35rem;
    flex-wrap: wrap;
}

.builder-mode .builder-design-token-wrap {
    display: flex;
}

.builder-mode .builder-design-token {
    display: inline-block;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: .75rem;
    line-height: 1.15;
    color: #1f2b37;
    background: rgba(255, 255, 255, .88);
    border: 1px dashed rgba(31, 43, 55, .45);
    border-radius: .3rem;
    padding: .16rem .3rem;
    margin-bottom: .35rem;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.builder-mode .builder-card-tools {
    display: flex;
}

.builder-mode .builder-service-wrap {
    cursor: move;
}

.builder-mode .service-hidden .service-card {
    opacity: .35;
    filter: grayscale(.2);
}

.builder-movable {
    position: relative;
    transition: transform .12s ease;
}

.builder-move-handle {
    display: none;
    position: absolute;
    right: 0;
    top: -1.2rem;
    z-index: 3;
    border: 1px dashed #9fb7d8;
    background: rgba(237, 244, 255, .95);
    color: #15406e;
    border-radius: .4rem;
    font-size: .72rem;
    line-height: 1;
    padding: .28rem .45rem;
    cursor: move;
}

.builder-mode .builder-movable .builder-move-handle {
    display: inline-flex;
}

.builder-mode .builder-movable.builder-movable-enabled {
    outline: 1px dashed rgba(77, 141, 246, .45);
    outline-offset: 6px;
}

.builder-mode .builder-movable.is-dragging-block {
    transition: none;
    opacity: .92;
}

.builder-guide-line {
    position: fixed;
    z-index: 1200;
    pointer-events: none;
    opacity: 0;
    transition: opacity .12s ease;
}

.builder-guide-line.show {
    opacity: 1;
}

.builder-guide-x {
    top: 0;
    bottom: 0;
    left: 50%;
    width: 2px;
    background: rgba(255, 77, 79, .92);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .45);
}

.builder-guide-y {
    left: 0;
    right: 0;
    top: 50%;
    height: 2px;
    background: rgba(255, 77, 79, .92);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .45);
}

.builder-distance-label {
    position: fixed;
    z-index: 1201;
    transform: translate(-50%, -50%);
    font-size: .68rem;
    font-weight: 600;
    line-height: 1;
    padding: .2rem .35rem;
    border-radius: .35rem;
    color: #fff;
    background: rgba(15, 39, 66, .92);
    border: 1px solid rgba(255, 255, 255, .28);
    pointer-events: none;
    opacity: 0;
    transition: opacity .12s ease;
}

.builder-distance-label.show {
    opacity: 1;
}

.builder-grid-overlay {
    position: fixed;
    inset: 0;
    z-index: 1195;
    pointer-events: none;
    opacity: 0;
    transition: opacity .12s ease;
    --builder-grid-size: 10px;
    background-image:
        repeating-linear-gradient(to right, rgba(15, 39, 66, .06) 0, rgba(15, 39, 66, .06) 1px, transparent 1px, transparent var(--builder-grid-size)),
        repeating-linear-gradient(to bottom, rgba(15, 39, 66, .06) 0, rgba(15, 39, 66, .06) 1px, transparent 1px, transparent var(--builder-grid-size));
}

.builder-grid-overlay.is-builder-mode {
    opacity: .22;
}

.builder-grid-overlay.show {
    opacity: .55;
}

.cookie-banner {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 1090;
    display: none;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .2s ease, transform .2s ease;
}

.cookie-banner.show {
    opacity: 1;
    transform: translateY(0);
}

.cookie-banner-inner {
    max-width: 860px;
    margin: 0 auto;
    border-radius: .9rem;
    background: rgba(16, 27, 43, .96);
    border: 1px solid rgba(255, 255, 255, .18);
    box-shadow: 0 14px 28px rgba(4, 10, 18, .32);
    color: #e8f1ff;
    padding: 1rem 1.1rem;
}

.cookie-banner-inner p {
    color: #d6e4f8;
}

@media (max-width: 575.98px) {
    .cookie-banner {
        left: .6rem;
        right: .6rem;
        bottom: .6rem;
    }
}

/* --- Admin an Public-Design angepasst --- */
.admin-body {
    background: #f3f6fb !important;
    color: #12263a !important;
}

.admin-sidebar {
    background: linear-gradient(180deg, #ffffff, #f6f9fe) !important;
    border-right: 1px solid #dbe5f2 !important;
    box-shadow: 8px 0 18px rgba(13, 38, 69, .05);
}

.admin-sidebar::after {
    display: none;
}

.admin-brand {
    display: grid;
    gap: .2rem;
}

.admin-brand-kicker {
    color: #5e7289 !important;
}

.admin-brand-title {
    color: #0f2742 !important;
}

.admin-brand-sub {
    color: #5e7289 !important;
}

.admin-nav-link {
    color: #214160 !important;
    border: 1px solid #dbe5f2 !important;
    background: #ffffff !important;
    border-radius: .7rem;
    padding: .58rem .72rem;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
}

.admin-nav-link.active,
.admin-nav-link:hover {
    color: #0d6efd !important;
    background: #edf4ff !important;
    border-color: #c9dbf5 !important;
}

.admin-nav-icon {
    width: 1rem;
    text-align: center;
    opacity: .9;
}

.admin-main {
    overflow-x: clip;
}

.admin-topbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: .8rem;
    position: sticky;
    top: 0;
    z-index: 1040;
    padding: .25rem 0;
    background: rgba(243, 246, 251, .9);
    backdrop-filter: blur(8px);
}

.admin-topbar-title {
    color: #0f2742;
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700;
}

.admin-topbar-sub {
    color: #58708a;
    font-size: .92rem;
}

.admin-topbar-meta .badge {
    background: #e9f1fc !important;
    color: #17314f !important;
    border-color: #cddff6 !important;
}

.admin-body .content-card,
.admin-body .stat-card {
    background: #ffffff !important;
    border: 1px solid #dbe5f2 !important;
    color: #1a2f46 !important;
    box-shadow: 0 12px 24px rgba(13, 38, 69, .08) !important;
    backdrop-filter: none !important;
}

.admin-body .stat-card {
    border-radius: .85rem;
}

.admin-body .form-control,
.admin-body .form-select,
.admin-body .form-control:focus,
.admin-body .form-select:focus {
    background: #ffffff !important;
    color: #1a2f46 !important;
    border-color: #cedcf0 !important;
    box-shadow: none !important;
}

.admin-body .form-control::placeholder {
    color: #7a8fa6 !important;
}

.admin-body .form-check-input {
    background-color: #ffffff;
    border-color: #b9cee9;
}

.admin-body .form-check-input:checked {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

.admin-body .table {
    border-color: #dbe5f2 !important;
}

.admin-body .table-dark {
    --bs-table-bg: #ffffff;
    --bs-table-striped-bg: #f7faff;
    --bs-table-hover-bg: #eef4fd;
    --bs-table-color: #1a2f46;
    --bs-table-hover-color: #12263a;
    --bs-table-active-bg: #e4eefc;
    --bs-table-active-color: #0f2742;
    --bs-table-border-color: #dbe5f2;
}

.admin-body .table > :not(caption) > * > * {
    color: #1a2f46;
    padding: .82rem .75rem;
    vertical-align: middle;
}

.admin-body .table-hover > tbody > tr:hover > * {
    color: #102a44 !important;
    background-color: #eaf2ff !important;
}

.admin-body .table tbody tr.table-active > * {
    color: #0f2742 !important;
    background-color: #deebff !important;
}

.admin-body .modal-content {
    background: #ffffff !important;
    color: #1a2f46 !important;
    border: 1px solid #dbe5f2 !important;
    box-shadow: 0 16px 30px rgba(13, 38, 69, .13) !important;
}

.admin-body .ecs-ui-modal-content .modal-header {
    border-bottom: 1px solid #dbe5f2;
}

.admin-body .ecs-ui-modal-content .modal-footer {
    border-top: 1px solid #dbe5f2;
}

.admin-body .ecs-ui-modal-content .modal-title {
    color: #0f2742;
}

.ecs-plain-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(15, 24, 35, 0.42);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.ecs-plain-modal-card {
    width: min(560px, 100%);
    background: #ffffff;
    border: 1px solid #dbe5f2;
    border-radius: 1rem;
    box-shadow: 0 16px 30px rgba(13, 38, 69, .16);
    color: #1a2f46;
}

.ecs-plain-modal-header,
.ecs-plain-modal-body,
.ecs-plain-modal-footer {
    padding: 1rem 1.25rem;
}

.ecs-plain-modal-header {
    border-bottom: 1px solid #dbe5f2;
}

.ecs-plain-modal-footer {
    border-top: 1px solid #dbe5f2;
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
}

.admin-body .chip {
    border-color: #cdddf3;
    background: #edf4ff;
    color: #15406e;
}

.admin-body .btn-outline-light {
    color: #0d6efd;
    border-color: #b9d1f3;
    background: #ffffff;
}

.admin-body .btn-outline-light:hover {
    color: #0b5ed7;
    border-color: #9ec0ee;
    background: #edf4ff;
}

.admin-body .btn-outline-warning {
    color: #8a5a00;
    border-color: #e7bd5d;
    background: #fffdf5;
}

.admin-body .btn-outline-warning:hover,
.admin-body .btn-outline-warning:focus {
    color: #5f3c00;
    border-color: #d9a93a;
    background: #ffe9b8;
}

.admin-body .btn-outline-info {
    color: #0b4f70;
    border-color: #79c0dc;
    background: #f3fbff;
}

.admin-body .btn-outline-info:hover,
.admin-body .btn-outline-info:focus {
    color: #06344a;
    border-color: #58a8c8;
    background: #cfefff;
}

.admin-body .btn-outline-danger {
    color: #8f1f2d;
    border-color: #e5a3ab;
    background: #fff6f7;
}

.admin-body .btn-outline-danger:hover,
.admin-body .btn-outline-danger:focus {
    color: #651320;
    border-color: #d67884;
    background: #ffdce1;
}

.admin-body .is-focused-by-link {
    outline: 2px solid #0d6efd;
    outline-offset: 2px;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.2) !important;
}

.admin-body .btn:focus-visible,
.admin-body .form-control:focus-visible,
.admin-body .form-select:focus-visible,
.public-body .btn:focus-visible,
.public-body .form-control:focus-visible,
.public-body .form-select:focus-visible,
.public-body a:focus-visible,
.admin-body a:focus-visible {
    outline: 2px solid #0d6efd;
    outline-offset: 2px;
}

.admin-body .text-secondary,
.admin-body .text-muted {
    color: #5d738b !important;
}

.admin-body .table thead th {
    font-size: .82rem;
    letter-spacing: .02em;
    color: #4f6882;
    white-space: nowrap;
}

.admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.admin-actions .btn {
    --bs-btn-padding-y: .25rem;
    --bs-btn-padding-x: .5rem;
    --bs-btn-font-size: .78rem;
}

.admin-table-actions-col {
    min-width: 320px;
}

.admin-actions.admin-actions-icons .btn {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    white-space: nowrap;
}

.admin-actions.admin-actions-icons .btn i {
    font-size: .85rem;
}

.admin-actions.admin-actions-icons .admin-icon-btn {
    width: 2.15rem;
    height: 2.15rem;
    min-width: 2.15rem;
    padding: 0;
    justify-content: center;
}

.admin-actions.admin-actions-icons .admin-icon-btn i {
    font-size: 1rem;
    line-height: 1;
}

.admin-user-table,
.admin-role-table {
    table-layout: auto;
    border-collapse: separate;
    border-spacing: 0;
}

.admin-user-table tbody tr > td,
.admin-role-table tbody tr > td {
    border-bottom: 1px solid #dbe5f2 !important;
}

.admin-user-table tbody tr:last-child > td,
.admin-role-table tbody tr:last-child > td {
    border-bottom-color: transparent !important;
}

.settings-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: thin;
    padding-bottom: .25rem;
}

.settings-tabs .nav-link {
    white-space: nowrap;
}

.settings-group-card {
    border: 1px solid #dbe5f2;
    border-radius: .85rem;
    padding: .95rem;
    background: #f9fbff;
}

.settings-group-title {
    color: #0f2742;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: .75rem;
}

.settings-subtabs {
    border-bottom: 1px solid rgba(13, 110, 253, .15);
    margin-bottom: 1rem;
}

.settings-subtabs .nav-link {
    color: #6b7280;
    font-size: 0.9rem;
    border: none;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    padding: 0.4rem 0.9rem;
}

.settings-subtabs .nav-link:hover {
    color: #0d6efd;
}

.settings-subtabs .nav-link.active {
    color: #0d6efd;
    font-weight: 600;
    background: transparent;
    border-bottom-color: #0d6efd;
}

.settings-subtab-content {
    min-height: 1px;
}

.media-picker-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: .75rem;
}

.media-picker-item {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    text-align: left;
    border: 1px solid #dbe5f2;
    border-radius: .65rem;
    background: #fff;
    color: #14324f;
    padding: .5rem;
}

.media-picker-item:hover {
    border-color: #a8c3ea;
    background: #f6faff;
}

.media-picker-thumb {
    width: 100%;
    height: 110px;
    border-radius: .45rem;
    object-fit: cover;
    border: 1px solid #dbe5f2;
    background: #f4f8ff;
}

.media-picker-thumb.media-picker-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: #6b839e;
}

.media-picker-caption {
    font-size: .82rem;
    line-height: 1.3;
    color: #3d5876;
    word-break: break-word;
}

.builder-image-focus-preview {
    width: 100%;
    min-height: 220px;
    border: 1px solid #dbe5f2;
    border-radius: .6rem;
    background-color: #f4f8ff;
    background-size: 100%;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    position: relative;
    cursor: crosshair;
}

.builder-image-focus-preview::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 18px;
    height: 18px;
    transform: translate(-50%, -50%);
    border: 2px solid rgba(255, 255, 255, .9);
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(20, 50, 79, .45);
    pointer-events: none;
}

.builder-image-focus-preview.is-empty {
    background-image: repeating-linear-gradient(
        -45deg,
        rgba(119, 145, 170, .17) 0,
        rgba(119, 145, 170, .17) 10px,
        rgba(119, 145, 170, .06) 10px,
        rgba(119, 145, 170, .06) 20px
    );
}

.settings-service-accordion .accordion-item {
    border: 1px solid #dbe5f2;
    border-radius: .7rem;
    overflow: hidden;
}

.settings-service-accordion .accordion-item + .accordion-item {
    margin-top: .5rem;
}

.settings-service-accordion .accordion-button {
    background: #ffffff;
    color: #12304c;
    font-weight: 600;
}

.settings-service-accordion .accordion-button:not(.collapsed) {
    background: #edf4ff;
    color: #0d3e73;
}

.settings-service-accordion .accordion-body {
    background: #ffffff;
}

.page-tree-item {
    display: flex;
    align-items: center;
    gap: .4rem;
    min-height: 2rem;
}

.page-tree-depth-1 {
    padding-left: 1rem;
}

.page-tree-branch {
    color: #7a8fa6;
    font-weight: 700;
}

.page-tree-title {
    font-weight: 600;
    color: #14324f;
}

.admin-page-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1rem;
}

.admin-page-title {
    margin: 0;
    color: #0f2742;
    font-size: 1.2rem;
    font-weight: 700;
}

.admin-page-sub {
    margin: .15rem 0 0;
    color: #60778f;
    font-size: .9rem;
}

.admin-page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.admin-section-card {
    padding: 1rem 1.15rem;
}

.admin-section-title {
    color: #0f2742;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: .75rem;
}

.legal-editor-wrap {
    border: 1px solid #d5deea;
    border-radius: .6rem;
    overflow: hidden;
    background: #fff;
}

.legal-editor-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
    padding: .5rem;
    border-bottom: 1px solid #e2e9f2;
    background: #f7f9fc;
}

.legal-editor-toolbar .btn {
    min-width: 2rem;
    padding: .2rem .45rem;
}

.legal-editor-toolbar .btn.is-active {
    background: #1f5db8;
    border-color: #1f5db8;
    color: #fff;
}

.legal-editor-toolbar .legal-editor-size {
    width: auto;
    min-width: 8.3rem;
}

.legal-editor-toolbar .legal-editor-line-height {
    width: auto;
    min-width: 8.5rem;
}

.legal-editor-body {
    min-height: 380px;
    padding: .85rem .9rem;
    color: #10273f;
    line-height: 1.55;
    outline: none;
}

.legal-editor-body:focus {
    box-shadow: inset 0 0 0 2px rgba(32, 93, 186, .14);
}

.legal-editor-body h2,
.legal-editor-body h3,
.legal-editor-body h4 {
    color: #0f2742;
    margin-top: 1rem;
}

.maintenance-admin-hint {
    position: relative;
    z-index: 2;
    background: #f59e0b;
    color: #1f1f23;
    font-size: .88rem;
    font-weight: 600;
    padding: .46rem 0;
    border-bottom: 1px solid rgba(14, 24, 40, .14);
}

.maintenance-admin-hint .btn {
    border-color: rgba(20, 27, 39, .45);
    color: #1f1f23;
}

.maintenance-admin-hint .btn:hover {
    background: rgba(16, 32, 54, .1);
    color: #101f33;
}

.notice-layout {
    background: #f5f7fb;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

.notice-header {
    background: #ffffff;
    border-bottom: 1px solid #dce4ee;
}

.notice-layout main {
    flex: 1 0 auto;
    display: flex;
    align-items: center;
}

.notice-maintenance-section {
    width: 100%;
    padding: clamp(2rem, 4vw, 3.5rem) 0;
}

.notice-maintenance-card {
    max-width: 840px;
    margin: 0 auto;
}

.notice-footer {
    border-top: 1px solid #dce4ee;
    background: #ffffff;
}

.notice-legal-link {
    color: #2a4766;
    text-decoration: none;
    font-size: .88rem;
}

.notice-legal-link:hover {
    color: #10273f;
    text-decoration: underline;
}

.mobile-call-fab {
    position: fixed;
    right: .95rem;
    bottom: calc(.95rem + env(safe-area-inset-bottom));
    width: 3.15rem;
    height: 3.15rem;
    border-radius: 999px;
    background: #f59e0b;
    color: #10273f;
    display: none;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 10px 20px rgba(16, 39, 66, .28);
    border: 1px solid rgba(16, 39, 66, .18);
    z-index: 1080;
}

/* --- Public redesign nach Screenshot-Layout --- */
.public-body {
    background: #f3f3f1 !important;
    color: #1f2b37 !important;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    margin: 0;
    padding-top: 0 !important;
}

.site-header {
    position: sticky;
    top: 0;
    background: #f3f3f1;
    border-bottom: 1px solid #b8c0c7;
    backdrop-filter: none;
}

.top-strip {
    display: none;
}

.main-navbar {
    background: #f3f3f1 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    padding-top: .5rem !important;
    padding-bottom: .25rem !important;
}

.main-navbar .container {
    max-width: 100% !important;
    padding-left: 10px;
    padding-right: 10px;
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: .55rem;
}

.main-navbar .navbar-brand {
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 86px);
}

.main-navbar .navbar-brand .navbar-brand-copy {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
}

.main-navbar .navbar-brand .navbar-brand-text {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.25rem, 4.2vw, var(--dp-font-size-brand)) !important;
    line-height: 1.28 !important;
    padding-bottom: .06em;
    color: #243444 !important;
    font-weight: 500;
    display: block;
    white-space: normal;
    overflow: hidden;
    text-overflow: ellipsis;
}

.main-navbar .navbar-brand .navbar-brand-text--line2 {
    font-size: clamp(2.0rem, 3.8vw, var(--dp-font-size-brand)) !important;
    font-weight: 500;
    margin-top: 0;
}

.header-brand-lightning {
    color: #f59e0b;
    font-weight: 800;
    display: inline-block;
    transform: translateY(.02em);
    margin: 0 .08em;
}

.header-brand-lightning-img {
    height: .86em;
    width: auto;
    display: inline-block;
    vertical-align: middle;
    transform: translateY(-0.12em);
    margin: 0 .18em 0 .40em; /* Blitz minimal weiter nach rechts */
    pointer-events: none;
}

.main-navbar .navbar-brand .navbar-brand-subline {
    font-size: clamp(.9rem, 1.05vw, 1.2rem);
    line-height: 1.25;
    color: #31414f;
    margin-top: .28rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.main-navbar .navbar-toggler {
    display: inline-flex !important;
    border: 0;
    border-radius: 999px;
    background: #040404;
    color: #fff;
    width: 62px;
    height: 36px;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 0 0 auto;
    z-index: 4;
}

.main-navbar .navbar-toggler-icon {
    filter: invert(1);
    width: 1.05rem;
    height: 1.05rem;
}

#mainNav {
    display: none !important;
}

.offcanvas {
    background: #f3f3f1;
    z-index: 1210;
    top: 0;
    height: 100vh;
    max-width: min(92vw, 420px);
}

.offcanvas-backdrop {
    z-index: 1200;
}

.site-main {
    padding-top: .35rem;
}

.dp-home-intro {
    max-width: 100%;
    margin: 0 auto;
    padding: .55rem 24px .65rem;
    border-top: 1px solid #9ea3a8;
}

.dp-intro-head {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin-bottom: .38rem;
    flex-wrap: wrap;
}

.dp-intro-request {
    display: inline-flex;
    align-items: center;
    min-height: 1.62rem;
    padding: .1rem .5rem;
    font-size: .78rem;
    line-height: 1;
    letter-spacing: .03em;
    color: #f4f8ff;
    background: #183e66;
    border: 1px solid #93a4b8;
    text-decoration: none;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity .38s ease, transform .38s ease;
}

.dp-intro-request:hover,
.dp-intro-request:focus {
    color: #fff;
    background: #1f4a78;
}

.public-body.intro-requests-ready .dp-intro-request {
    opacity: 1;
    transform: translateY(0);
}

.dp-intro-title {
    font-size: clamp(1.25rem, 1.45vw, 1.8rem);
    font-family: Georgia, "Times New Roman", serif;
    margin: .02rem 0 0;
    color: #253746;
    line-height: 1.12;
}

.dp-intro-list {
    margin: 0;
    padding-left: 1.15rem;
    font-size: clamp(.98rem, 1.02vw, 1.18rem);
    line-height: 1.22;
}

.dp-home-stage-inline {
    display: none;
    margin-top: 1.2rem;
}

.dp-home-stage {
    min-height: var(--dp-home-stage-min-height, 58vh);
    padding: 1.8rem 0;
    background-size: cover;
    background-position: center 56%;
    border-top: 1px solid #d3d7dc;
    border-bottom: 1px solid #d3d7dc;
}

.dp-stage-card {
    display: flex;
    position: relative;
    overflow: hidden;
    min-height: var(--dp-card-height, var(--dp-home-stage-card-min-height, 300px));
    width: var(--dp-card-width, 100%);
    margin-inline: auto;
    border: 1px solid rgba(255, 255, 255, .35);
    background: rgba(0, 0, 0, .25);
    color: #fff;
    text-decoration: none;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1rem;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transform: translate(var(--dp-card-shift-x, 0), var(--dp-card-shift-y, 0));
}

.dp-stage-card:hover {
    color: #fff;
}

.dp-stage-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, .45), rgba(0, 0, 0, .05));
}

.dp-stage-card > * {
    position: relative;
    z-index: 1;
}

.dp-tile-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(0%, 0%) scale(1);
    transform-origin: center center;
    z-index: 0;
    pointer-events: none;
}

.dp-service-photo,
.dp-plan-photo {
    position: relative;
    overflow: hidden;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item) {
    cursor: move;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot {
    cursor: move;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot::after {
    content: "↔";
    position: absolute;
    right: .45rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 4;
    color: #fff;
    font-size: 1.05rem;
    font-weight: 700;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .55);
    pointer-events: none;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="e"],
.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="w"] {
    cursor: ew-resize;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="n"],
.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="s"] {
    cursor: ns-resize;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="ne"],
.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="sw"] {
    cursor: nesw-resize;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="nw"],
.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="se"] {
    cursor: nwse-resize;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="w"]::after {
    content: "↔";
    left: .45rem;
    right: auto;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="n"]::after {
    content: "↕";
    top: .4rem;
    right: 50%;
    transform: translateX(50%);
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="s"]::after {
    content: "↕";
    bottom: .4rem;
    top: auto;
    right: 50%;
    transform: translateX(50%);
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="ne"]::after,
.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="sw"]::after {
    content: "⤡";
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="nw"]::after,
.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="se"]::after {
    content: "⤢";
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="nw"]::after {
    left: .45rem;
    right: auto;
    top: .4rem;
    transform: none;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="ne"]::after {
    right: .45rem;
    top: .4rem;
    transform: none;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="sw"]::after {
    left: .45rem;
    right: auto;
    bottom: .4rem;
    top: auto;
    transform: none;
}

.builder-mode :is(.dp-stage-card, .dp-sv-wrap .dp-service-item, .dp-plan-wrap .dp-plan-item).builder-resize-hotspot[data-builder-resize-mode="se"]::after {
    right: .45rem;
    bottom: .4rem;
    top: auto;
    transform: none;
}

.dp-stage-card--sv {
    background-image: url("/assets/img/home-target.png");
    background-position: left 32% top 36%;
}

.dp-stage-card--plan {
    background-image: url("/assets/img/home-target.png");
    background-position: right 15% top 36%;
}

.dp-stage-title {
    font-size: clamp(2rem, 3.2vw, var(--dp-font-size-stage-title));
    font-family: Georgia, "Times New Roman", serif;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .45);
}

.dp-stage-link {
    font-size: .95rem;
}

.dp-page-wrap {
    max-width: 100%;
    margin: 0 auto;
    padding: .6rem 24px 1.2rem;
}

.dp-page-wrap.dp-legal-wrap,
.dp-contact-wrap {
    background: #f3f3f1;
    border-top: 1px solid #b8c0c7;
    padding: .85rem 24px 1.75rem;
}

.dp-contact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem 1.5rem;
    max-width: 860px;
    margin-bottom: 1.5rem;
}

.dp-contact-item {
    padding: .75rem 1rem;
    background: #fff;
    border: 1px solid #d3d7dc;
    border-radius: .5rem;
}

.dp-contact-item-label {
    font-size: .8rem;
    color: #4d6480;
    margin-bottom: .25rem;
}

.dp-contact-item-value {
    font-weight: 600;
    color: #253746;
}

.dp-contact-item-value a {
    color: inherit;
    text-decoration: none;
}

.dp-contact-item-value a:hover {
    text-decoration: underline;
}

.dp-contact-item-full {
    grid-column: 1 / -1;
}

.dp-contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1rem;
}

.dp-contact-actions .btn-accent {
    color: #f4f8ff !important;
    background: #183e66 !important;
    border: 1px solid #93a4b8 !important;
    box-shadow: none;
}

.dp-contact-actions .btn-accent:hover {
    color: #fff !important;
    background: #1f4a78 !important;
    border-color: #93a4b8 !important;
    transform: none;
}

@media (max-width: 575.98px) {
    .dp-contact-grid {
        grid-template-columns: 1fr;
    }
}

.dp-page-title {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, var(--dp-font-size-page-title));
    color: #253746;
    margin-bottom: .5rem;
    line-height: 1.2;
}

.dp-page-lead {
    max-width: 900px;
    margin-bottom: 1rem;
    color: #31414f;
    font-size: clamp(.98rem, 1.02vw, 1.1rem);
    line-height: 1.35;
}

.dp-content-body {
    max-width: 860px;
    line-height: 1.52;
    font-size: var(--dp-font-size-body);
    color: #253746;
}

.dp-page-wrap.dp-legal-wrap .dp-content-body h2,
.dp-contact-wrap .dp-content-body h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.2rem, 1.4vw, 1.5rem);
    color: #253746;
    margin-top: 1.35rem;
    margin-bottom: .45rem;
    line-height: 1.25;
}

.dp-page-wrap.dp-legal-wrap .dp-content-body h2:first-child,
.dp-contact-wrap .dp-content-body h2:first-child {
    margin-top: 0;
}

.dp-page-wrap.dp-legal-wrap .dp-content-body h3,
.dp-contact-wrap .dp-content-body h3 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.05rem, 1.15vw, 1.25rem);
    color: #253746;
    margin-top: 1.1rem;
    margin-bottom: .35rem;
    line-height: 1.28;
}

.dp-page-wrap.dp-legal-wrap .dp-content-body p,
.dp-contact-wrap .dp-content-body p {
    margin-bottom: .65rem;
    color: #253746;
}

.dp-page-wrap.dp-legal-wrap .dp-content-body ul,
.dp-contact-wrap .dp-content-body ul {
    margin: .5rem 0 .75rem;
    padding-left: 1.15rem;
    color: #253746;
}

.dp-page-wrap.dp-legal-wrap .dp-content-body a,
.dp-contact-wrap .dp-content-body a {
    color: #183e66;
    text-decoration: none;
}

.dp-page-wrap.dp-legal-wrap .dp-content-body a:hover,
.dp-contact-wrap .dp-content-body a:hover {
    color: #1f4a78;
    text-decoration: underline;
}

.dp-references-list {
    display: grid;
    gap: .75rem;
    max-width: 980px;
}

.dp-reference-item {
    display: grid;
    grid-template-columns: 62px 1fr;
    gap: .8rem;
    padding-bottom: .7rem;
    border-bottom: 1px solid #b9c2ca;
}

.dp-reference-index {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.5rem;
    color: #243444;
}

.dp-reference-item h2 {
    margin: 0 0 .35rem;
    font-size: 1.2rem;
    color: #243444;
}

.dp-reference-item ul {
    margin: 0;
    padding-left: 1rem;
}

.dp-service-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.2rem;
}

.dp-service-item {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 1rem;
    width: var(--dp-service-width, 100%);
    transform: translate(var(--dp-service-shift-x, 0), var(--dp-service-shift-y, 0));
    min-height: var(--dp-service-photo-height, 165px);
    position: relative;
}

.dp-service-photo {
    height: 100%;
    min-height: var(--dp-service-photo-height, 165px);
    width: var(--dp-service-image-width, 100%);
    transform: translate(var(--dp-service-image-shift-x, 0), var(--dp-service-image-shift-y, 0));
    border: 1px solid #c6cdd3;
    background: linear-gradient(145deg, #cad5de, #9cadbc);
    position: relative;
}

.dp-service-item h2 {
    font-size: 1.7rem;
    font-family: Georgia, "Times New Roman", serif;
    margin: 0 0 .35rem;
    color: #243444;
}

.dp-sv-wrap .dp-sv-header {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.dp-sv-wrap .dp-page-title {
    margin: 0;
}

.dp-sv-wrap .dp-service-item h2 {
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    font-size: 1.85rem;
    font-weight: 700;
    margin-bottom: .45rem;
}

.dp-sv-wrap .dp-service-item p {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.45;
}

.dp-plan-wrap .dp-plan-grid {
    display: grid;
    gap: 1.15rem;
}

.dp-plan-wrap .dp-plan-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem 1.6rem;
    align-items: start;
}

.dp-plan-wrap .dp-plan-item {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: .85rem;
    align-items: start;
    width: var(--dp-service-width, 100%);
    transform: translate(var(--dp-service-shift-x, 0), var(--dp-service-shift-y, 0));
    min-height: var(--dp-service-photo-height, 140px);
    position: relative;
}

.dp-plan-wrap .dp-plan-photo {
    height: 100%;
    min-height: var(--dp-service-photo-height, 140px);
    width: var(--dp-service-image-width, 100%);
    transform: translate(var(--dp-service-image-shift-x, 0), var(--dp-service-image-shift-y, 0));
    border: 1px solid #c6cdd3;
    background: linear-gradient(145deg, #cad5de, #9cadbc);
    position: relative;
}

/* Public view: keep all service photos visually uniform. */
.public-body:not(.builder-mode) .dp-service-photo,
.public-body:not(.builder-mode) .dp-plan-photo {
    width: 100% !important;
    min-height: 165px !important;
    height: 165px !important;
    transform: none !important;
    background-size: cover !important;
    background-position: 50% 50% !important;
    background-repeat: no-repeat !important;
}

.builder-mode .dp-sv-wrap .dp-service-item,
.builder-mode .dp-plan-wrap .dp-plan-item {
    outline: 2px dashed rgba(245, 158, 11, .85);
    outline-offset: 2px;
}

.dp-plan-wrap .dp-plan-item h2 {
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    font-size: 1.45rem;
    font-weight: 700;
    margin-bottom: .35rem;
}

.dp-plan-wrap .dp-plan-item p {
    margin: 0;
    font-size: .98rem;
    line-height: 1.45;
}

.dp-service-photo--placeholder {
    background:
        linear-gradient(145deg, rgba(88, 111, 131, .45), rgba(42, 58, 73, .35)),
        repeating-linear-gradient(
            -45deg,
            rgba(255, 255, 255, .14) 0,
            rgba(255, 255, 255, .14) 8px,
            rgba(255, 255, 255, .03) 8px,
            rgba(255, 255, 255, .03) 16px
        );
}

.dp-service-photo--custom {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.builder-mode .builder-image-setting[data-image-setting="1"] {
    outline: 2px dashed rgba(77, 141, 246, .65);
    outline-offset: 2px;
}

.builder-mode .builder-image-setting[data-image-setting="1"].builder-resize-hotspot {
    cursor: move;
}

.builder-mode .builder-image-setting[data-image-setting="1"].builder-resize-hotspot[data-builder-resize-mode="e"],
.builder-mode .builder-image-setting[data-image-setting="1"].builder-resize-hotspot[data-builder-resize-mode="w"] {
    cursor: ew-resize;
}

.builder-mode .builder-image-setting[data-image-setting="1"].builder-resize-hotspot[data-builder-resize-mode="n"],
.builder-mode .builder-image-setting[data-image-setting="1"].builder-resize-hotspot[data-builder-resize-mode="s"] {
    cursor: ns-resize;
}

.builder-mode .builder-image-setting[data-image-setting="1"].builder-resize-hotspot[data-builder-resize-mode="ne"],
.builder-mode .builder-image-setting[data-image-setting="1"].builder-resize-hotspot[data-builder-resize-mode="sw"] {
    cursor: nesw-resize;
}

.builder-mode .builder-image-setting[data-image-setting="1"].builder-resize-hotspot[data-builder-resize-mode="nw"],
.builder-mode .builder-image-setting[data-image-setting="1"].builder-resize-hotspot[data-builder-resize-mode="se"] {
    cursor: nwse-resize;
}

.site-footer {
    background: #f3f3f1 !important;
    color: #223444 !important;
    border-top: 1px solid #b8c0c7 !important;
    margin-top: 1rem;
}

.site-footer .footer-main-row {
    row-gap: .9rem !important;
}

.site-footer .footer-services-col,
.site-footer .footer-legal-col {
    display: none;
}

.site-footer .footer-social-col .footer-section-head {
    display: none;
}

.site-footer .footer-social-list {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: .75rem;
    align-items: center;
}
@media (max-width: 400px) {
    .site-footer .footer-social-list { flex-wrap: wrap; }
}

.site-footer .footer-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    color: #fff !important;
    transition: transform .2s ease, box-shadow .2s ease;
}

.site-footer .footer-social-link:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .3);
}

.site-footer .footer-social-link i {
    font-size: 1.35rem;
    color: inherit !important;
}

.site-footer .footer-social-link--facebook {
    background: #1877f2;
}

.site-footer .footer-social-link--instagram {
    background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
}

.site-footer .footer-social-link--linkedin {
    background: #0a66c2;
}

.site-footer .footer-social-link--xing {
    background: #006567;
}

.site-footer .footer-social-link--youtube {
    background: #ff0000;
}

.site-footer .footer-social-link span {
    display: none;
}

.site-footer .container {
    max-width: 100% !important;
    padding-left: 24px;
    padding-right: 24px;
}

.site-footer .footer-title,
.site-footer .footer-subtitle,
.site-footer .footer-list,
.site-footer .footer-inline-link,
.site-footer small {
    color: #223444 !important;
    opacity: 1 !important;
}

.site-footer .footer-title,
.site-footer .footer-subtitle {
    font-size: clamp(1.6rem, 3.3vw, var(--dp-font-size-footer-title));
}

.site-footer .footer-list,
.site-footer .footer-inline-link,
.site-footer small {
    font-size: var(--dp-font-size-footer-text);
}

.site-footer .footer-hours {
    border-left: 0;
    background: transparent;
    border-radius: 0;
    padding: 0;
}

.site-footer .footer-hours-head {
    color: #223444;
}

.site-footer .footer-hours-label {
    color: #4e6378;
}

.site-footer .footer-hours-value {
    color: #1d3348;
}

.site-footer .footer-hours-status {
    border-top: 1px dashed #b8c0c7;
    color: #41586d;
    max-width: 11rem;
}

.site-footer .footer-hours-status-main {
    color: #20384f;
}

.site-footer .footer-hours-status-detail {
    color: #4b6378;
}

@media (max-width: 991.98px) {
    .main-navbar .navbar-brand .navbar-brand-text {
        font-size: 2rem !important;
        line-height: 1.28 !important;
        padding-bottom: .06em;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    .main-navbar .navbar-brand .navbar-brand-subline {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    .dp-service-grid {
        grid-template-columns: 1fr;
    }

    .dp-service-item {
        grid-template-columns: 1fr;
    }
    /* Auf Mobile wird die Foto-Box deutlich breiter (1 Spalte).
       Mit fixer Höhe (165px) schneidet `background-size: cover` stärker ab.
       Wir halten das Desktop-Seitenverhältnis (220/165) über aspect-ratio. */
    .public-body:not(.builder-mode) .dp-service-photo,
    .public-body:not(.builder-mode) .dp-plan-photo {
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 220 / 165 !important;
    }

    .dp-sv-wrap .dp-sv-header {
        align-items: flex-start;
    }

    .dp-sv-wrap .dp-service-item h2 {
        font-size: 1.35rem;
    }

    .dp-sv-wrap .dp-service-item p {
        font-size: .98rem;
    }

    .dp-plan-wrap .dp-plan-grid {
        grid-template-columns: 1fr;
    }

    .dp-plan-wrap .dp-plan-row {
        grid-template-columns: 1fr;
    }

    .dp-plan-wrap .dp-plan-item {
        grid-template-columns: 1fr;
    }

    .dp-plan-wrap .dp-plan-item h2 {
        font-size: 1.3rem;
    }

    .dp-plan-wrap .dp-plan-item p {
        font-size: .95rem;
    }

    .dp-stage-title {
        font-size: 2rem;
    }

    .dp-home-intro,
    .dp-page-wrap,
    .site-footer .container {
        padding-left: 12px;
        padding-right: 12px;
    }

    .site-footer .footer-hours {
        border-top: 0;
        border-left: 0;
    }
}

.mobile-call-fab i {
    font-size: 1.2rem;
    line-height: 1;
}

.mobile-call-fab:hover {
    color: #10273f;
    background: #f7ae2a;
}

@media (max-width: 991.98px) {
    .mobile-call-fab {
        display: inline-flex;
    }
}

@media (max-width: 575.98px) {
    .notice-maintenance-card .h2 {
        font-size: clamp(1.35rem, 6vw, 1.75rem);
    }

    /* Nur Mobil: Titel soll exakt in 2 Zeilen dargestellt werden. */
    .dp-sv-wrap .dp-page-title .dp-title-line--1,
    .dp-sv-wrap .dp-page-title .dp-title-line--2 {
        display: block;
        margin-left: 0;
    }

    .dp-sv-wrap .dp-page-title .dp-title-line--2 {
        overflow-wrap: anywhere;
        word-break: break-word;
        line-height: 1.12;
    }
}

/* --- Zusätzliche Responsive-Optimierung (Tablet/Mobil) --- */
@media (max-width: 1199.98px) {
    .main-navbar .navbar-brand .navbar-brand-text {
        font-size: clamp(1.8rem, 3.6vw, 2.45rem) !important;
    }

    .main-navbar .navbar-brand .navbar-brand-subline {
        font-size: clamp(.88rem, 1.35vw, 1.05rem);
    }
}

@media (max-width: 991.98px) {
    .main-navbar .container {
        align-items: flex-start;
        gap: .4rem;
    }

    .dp-home-intro {
        padding-top: .4rem;
        padding-bottom: .55rem;
    }

    .dp-home-intro .row {
        row-gap: .8rem !important;
    }

    .dp-intro-head {
        gap: .4rem;
        margin-bottom: .25rem;
        flex-direction: column;
        align-items: flex-start;
        flex-wrap: nowrap;
    }

    .dp-home-stage-inline {
        display: block;
        margin-top: .9rem;
    }

    .dp-home-stage {
        display: none;
    }

    .dp-intro-title {
        font-size: clamp(1.15rem, 3vw, 1.55rem);
        line-height: 1.15;
    }

    .dp-intro-list {
        font-size: .98rem;
        line-height: 1.3;
        padding-left: 1.1rem;
    }

    .dp-home-stage {
        padding: 1rem 0 1.2rem;
        min-height: 0;
    }

    .dp-stage-card {
        width: 100% !important;
        min-height: clamp(230px, 45vw, 320px);
        transform: translate(0, 0) !important;
    }

    .site-builder-toolbar {
        max-width: calc(100vw - 1rem);
    }
}

@media (max-width: 575.98px) {
    .main-navbar {
        padding-top: .35rem !important;
        padding-bottom: .18rem !important;
    }

    .main-navbar .navbar-brand .navbar-brand-text {
        font-size: clamp(1.45rem, 6.4vw, 2rem) !important;
        line-height: 1.26 !important;
        padding-bottom: .06em;
    }

    .main-navbar .navbar-brand .navbar-brand-subline {
        font-size: .9rem;
        line-height: 1.25;
    }

    .main-navbar .navbar-toggler {
        width: 52px;
        height: 32px;
    }

    .dp-intro-request {
        min-height: 1.5rem;
        font-size: .74rem;
        padding: .08rem .42rem;
    }

    .site-footer .footer-title,
    .site-footer .footer-subtitle {
        font-size: clamp(1.25rem, 6.1vw, 1.7rem);
    }

    .site-footer .footer-list,
    .site-footer .footer-inline-link,
    .site-footer small {
        font-size: .96rem;
    }
}


