/* Ecclesio Landing – Onepager */

:root {
    --gd-primary: #022253;
    --gd-accent: #cb8919;
    --gd-header: #cb8919;
    --gd-text: #1f2a37;
    --gd-muted: #5c6b7a;
    --gd-surface: #f4f6f9;
    --gd-border: rgba(2, 34, 83, 0.12);
    --gd-btn-text: #ffffff;
}

body.gd-landing-body {
    color: var(--gd-text);
    background: #fff;
    scroll-behavior: smooth;
}

/* ── Top navigation (auf orangem Header) ── */
.gd-landing-nav {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: var(--gd-header);
    border-bottom: 1px solid rgba(2, 34, 83, 0.12);
}

.gd-landing-nav .navbar-brand img {
    height: 48px;
    width: auto;
}

.gd-landing-nav .navbar-toggler {
    border-color: rgba(2, 34, 83, 0.35);
}

.gd-landing-nav .navbar-toggler-icon {
    filter: brightness(0) saturate(100%);
}

.gd-landing-nav .nav-link {
    color: var(--gd-primary);
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0.5rem 0.85rem !important;
}

.gd-landing-nav .nav-link:hover {
    color: #fff;
}

.gd-landing-nav .nav-link.active {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 0.35rem;
}

.gd-nav-cta {
    background: var(--gd-primary) !important;
    color: var(--gd-btn-text) !important;
    border-radius: 2rem;
    padding: 0.45rem 1.1rem !important;
    box-shadow: 0 4px 12px rgba(2, 34, 83, 0.25);
}

.gd-nav-cta:hover {
    background: #011a3d !important;
    color: var(--gd-btn-text) !important;
}

/* Unterseiten (Kontakt, Impressum, Datenschutz) */
.gd-landing-subpage {
    background: var(--gd-surface);
}

/* Legacy: helle Nav (nicht mehr für öffentliche Unterseiten) */
.gd-landing-nav.gd-landing-nav--light {
    background: #fff;
    border-bottom: 1px solid var(--gd-border);
}

.gd-landing-nav.gd-landing-nav--light .nav-link {
    color: var(--gd-text);
    font-weight: 500;
}

.gd-landing-nav.gd-landing-nav--light .nav-link:hover {
    color: var(--gd-primary);
}

/* ── Hero (Flyer-Orange) ── */
.gd-hero {
    padding: 2rem 0 4rem;
    /*background:
        radial-gradient(ellipse 70% 50% at 100% 0%, rgba(255, 255, 255, 0.12), transparent),
        radial-gradient(ellipse 50% 40% at 0% 100%, rgba(2, 34, 83, 0.08), transparent),
        linear-gradient(165deg, #d49520 0%, var(--gd-header) 45%, #cb8919 100%);*/
    background: var(--gd-surface);
    overflow: hidden;
}

/* Logo + Text: volle Breite oben */
.gd-hero-intro {
    display: flex;
    align-items: center;
    gap: clamp(1.25rem, 4vw, 3rem); 
    width: 100%;
}

.gd-hero-logo {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gd-hero-logo-img {
    width: clamp(140px, 22vw, 220px);
    height: auto;
    max-height: 240px;
    object-fit: contain;
    filter: drop-shadow(0 10px 28px rgba(2, 34, 83, 0.12));
}

.gd-hero-copy {
    flex: 1 1 16rem;
    min-width: 0;
}

.gd-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--gd-primary);
    color: var(--gd-btn-text);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.4rem 0.85rem;
    border-radius: 2rem;
    margin-bottom: 1.25rem;
}

@media (max-width: 767.98px) {
    .gd-hero-intro {
        flex-direction: column;
        text-align: center;
        align-items: center;
    }

    .gd-hero-copy {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .gd-hero-lead {
        max-width: none;
    }

    .gd-hero-actions {
        justify-content: center;
    }
}

.gd-hero h1 {
    font-size: clamp(2rem, 4.5vw, 2.75rem);
    font-weight: 800;
    line-height: 1.15;
    color: var(--gd-primary);
    margin-bottom: 0.5rem;
}

.gd-hero h1 .gd-accent-text {
    color: var(--gd-primary);
}

.gd-hero-lead {
    font-size: 1.15rem;
    color: var(--gd-primary);
    max-width: 52rem;
    line-height: 1.6;
}

.gd-hero-panel-row {
    margin-top: 0.25rem;
}

.gd-hero-mockup-wrap {
    height: 100%;
}

.gd-hero-mockup-wrap .gd-app-mock {
    height: 100%;
    min-height: 320px;
}

.gd-hero-mockup-wrap .gd-app-mock-body {
    min-height: 280px;
}

@media (min-width: 992px) {
    .gd-hero-panel-row .gd-sticky-login {
        top: 5.5rem;
    }
}

.gd-hero-lead strong {
    color: var(--gd-primary);
}

.gd-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.75rem;
}

/* Buttons: Blau mit weißer Schrift (gut lesbar auf Orange und Weiß) */
.gd-btn-primary-lg,
.gd-btn-login,
.gd-nav-cta {
    background: var(--gd-primary) !important;
    color: var(--gd-btn-text) !important;
    border: 2px solid var(--gd-primary) !important;
}

.gd-btn-primary-lg {
    font-weight: 600;
    padding: 0.7rem 1.5rem;
    border-radius: 0.65rem;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
    box-shadow: 0 8px 24px rgba(2, 34, 83, 0.35);
}

.gd-btn-primary-lg:hover,
.gd-btn-login:hover,
.gd-nav-cta:hover {
    background: #011a3d !important;
    border-color: #011a3d !important;
    color: var(--gd-btn-text) !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(2, 34, 83, 0.4);
}

.gd-btn-outline-lg {
    background: #fff;
    color: var(--gd-primary) !important;
    font-weight: 600;
    padding: 0.7rem 1.5rem;
    border-radius: 0.65rem;
    border: 2px solid var(--gd-primary);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    box-shadow: 0 4px 16px rgba(2, 34, 83, 0.12);
    transition: transform 0.15s, background 0.15s, color 0.15s;
}

.gd-btn-outline-lg:hover {
    background: var(--gd-primary);
    border-color: var(--gd-primary);
    color: var(--gd-btn-text) !important;
    transform: translateY(-2px);
}

/* App mockup */
.gd-app-mock {
    background: #fff;
    border-radius: 1rem;
    box-shadow:
        0 4px 6px rgba(0, 45, 84, 0.04),
        0 24px 48px rgba(0, 45, 84, 0.14);
    border: 1px solid var(--gd-border);
    overflow: hidden;
}

.gd-app-mock-bar {
    background: var(--gd-primary);
    color: #fff;
    padding: 0.5rem 1rem;
    font-size: 0.7rem;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.gd-app-mock-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
}

.gd-app-mock-body {
    display: flex;
    min-height: 280px;
}

.gd-app-sidebar {
    width: 28%;
    background: var(--gd-surface);
    padding: 0.75rem 0.5rem;
    border-right: 1px solid var(--gd-border);
}

.gd-app-sidebar-item {
    font-size: 0.65rem;
    padding: 0.35rem 0.5rem;
    border-radius: 0.35rem;
    color: var(--gd-muted);
    margin-bottom: 0.15rem;
}

.gd-app-sidebar-item.active {
    background: rgba(0, 45, 84, 0.1);
    color: var(--gd-primary);
    font-weight: 600;
}

.gd-app-main {
    flex: 1;
    padding: 0.75rem;
}

.gd-app-main-title {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--gd-primary);
    margin-bottom: 0.5rem;
}

.gd-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    font-size: 0.55rem;
}

.gd-cal-head {
    text-align: center;
    color: var(--gd-muted);
    font-weight: 600;
    padding: 0.2rem 0;
}

.gd-cal-cell {
    aspect-ratio: 1;
    border-radius: 3px;
    background: #f8f9fb;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1px;
    line-height: 1.1;
}

.gd-cal-cell.has-event {
    background: rgba(0, 45, 84, 0.08);
    border: 1px solid rgba(0, 45, 84, 0.12);
}

.gd-cal-cell .ev {
    font-size: 0.45rem;
    font-weight: 600;
    color: var(--gd-primary);
    white-space: nowrap;
    overflow: hidden;
    max-width: 100%;
}

.gd-cal-cell .ev.gold { color: #8a6a3a; }
.gd-cal-cell .ev.green { color: #1a6b42; }

/* Login card */
.gd-login-card {
    border: 1px solid var(--gd-border);
    border-radius: 1rem;
    box-shadow: 0 16px 40px rgba(6, 28, 61, 0.1);
    background: #fff;
}

.gd-login-card .card-body {
    padding: 1.75rem;
}

.gd-login-title {
    color: var(--gd-primary);
}

.gd-sticky-login {
    position: sticky;
    top: 5rem;
}

.gd-btn-login {
    display: block;
    width: 100%;
    padding: 0.625rem 1rem;
    font-weight: 600;
    border-radius: 0.65rem;
    cursor: pointer;
    transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
    box-shadow: 0 6px 18px rgba(2, 34, 83, 0.25);
}

/* ── Section commons ── */
.gd-section {
    padding: 4.5rem 0;
}

.gd-section-label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--gd-accent);
    margin-bottom: 0.5rem;
}

.gd-section-title {
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 800;
    color: var(--gd-primary);
    margin-bottom: 0.75rem;
    line-height: 1.2;
}

.gd-section-intro {
    color: var(--gd-muted);
    max-width: 36rem;
    line-height: 1.65;
}

/* ── Challenge block (navy) ── */
.gd-block-challenges {
    background: var(--gd-primary);
    color: #fff;
}

.gd-block-challenges .gd-section-label {
    color: var(--gd-accent);
}

.gd-block-challenges .gd-section-title {
    color: #fff;
}

.gd-block-challenges .gd-section-title .gd-accent-text {
    color: var(--gd-accent);
}

.gd-challenge-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
    margin-top: 2.5rem;
}

.gd-challenge-card {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 1rem;
    padding: 1.35rem;
    transition: background 0.2s, transform 0.2s;
}

.gd-challenge-card:hover {
    background: rgba(255, 255, 255, 0.1);
    transform: translateY(-2px);
}

.gd-challenge-card .icon-wrap {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    margin-bottom: 1rem;
}

.gd-challenge-card p {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.5;
    opacity: 0.95;
}

.gd-badge-round {
    display: inline-block;
    background: var(--gd-primary);
    color: var(--gd-btn-text);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.6rem 1.1rem;
    border-radius: 2rem;
    line-height: 1.35;
    text-align: center;
}

/* ── Solution band ── */
.gd-block-solution {
    background: var(--gd-accent);
    padding: 2.5rem 0;
}

.gd-solution-inner {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.gd-solution-icon {
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    background: rgba(0, 45, 84, 0.12);
    color: var(--gd-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    flex-shrink: 0;
}

.gd-solution-text {
    font-size: clamp(1.4rem, 3.5vw, 2rem);
    font-weight: 800;
    color: var(--gd-primary);
    margin: 0;
    letter-spacing: 0.02em;
}

/* ── Features grid ── */
.gd-block-features {
    background: var(--gd-surface);
}

.gd-feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.25rem;
    margin-top: 2.5rem;
}

.gd-feature-card {
    background: #fff;
    border: 1px solid var(--gd-border);
    border-radius: 1rem;
    padding: 1.5rem;
    height: 100%;
    transition: box-shadow 0.2s, transform 0.2s;
}

.gd-feature-card:hover {
    box-shadow: 0 12px 32px rgba(0, 45, 84, 0.1);
    transform: translateY(-3px);
}

.gd-feature-card .icon {
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, rgba(0, 45, 84, 0.1), rgba(197, 156, 94, 0.15));
    color: var(--gd-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    margin-bottom: 1rem;
}

.gd-feature-card h3 {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--gd-primary);
    margin-bottom: 0.5rem;
}

.gd-feature-card p {
    font-size: 0.9rem;
    color: var(--gd-muted);
    margin: 0;
    line-height: 1.55;
}

.gd-feature-card.highlight {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1.5rem;
    align-items: center;
    background: linear-gradient(135deg, #022253 0%, #033a6e 100%);
    border: none;
    color: #fff;
}

.gd-feature-card.highlight .icon {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    width: 4rem;
    height: 4rem;
    font-size: 1.75rem;
}

.gd-feature-card.highlight h3,
.gd-feature-card.highlight p {
    color: #fff;
}

.gd-feature-card.highlight p {
    opacity: 0.88;
}

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

/* ── Benefits ── */
.gd-benefit-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
    margin-top: 2.5rem;
}

@media (max-width: 991.98px) {
    .gd-benefit-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

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

.gd-benefit-card {
    text-align: center;
    padding: 2rem 1.25rem;
    border-radius: 1rem;
    border: 1px solid var(--gd-border);
    background: #fff;
    transition: transform 0.2s, border-color 0.2s;
}

.gd-benefit-card:hover {
    transform: translateY(-4px);
    border-color: var(--gd-accent);
}

.gd-benefit-card i {
    font-size: 2.25rem;
    color: var(--gd-accent);
    margin-bottom: 1rem;
    display: block;
}

.gd-benefit-card h3 {
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--gd-primary);
    margin-bottom: 0.5rem;
}

.gd-benefit-card p {
    font-size: 0.875rem;
    color: var(--gd-muted);
    margin: 0;
    line-height: 1.5;
}

/* ── CTA block ── */
.gd-block-cta {
    background: var(--gd-primary);
    color: #fff;
    position: relative;
    padding: 4rem 0;
}

.gd-block-cta::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: linear-gradient(90deg, transparent, var(--gd-header) 25%, var(--gd-header) 75%, transparent);
}

.gd-cta-grid {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2rem;
    align-items: center;
}

@media (max-width: 767.98px) {
    .gd-cta-grid {
        grid-template-columns: 1fr;
        text-align: center;
    }
}

.gd-cta-grid h2 {
    font-weight: 800;
    margin-bottom: 0.75rem;
}

.gd-cta-grid .lead {
    opacity: 0.85;
    margin-bottom: 0;
}

.gd-btn-accent-lg {
    background: #fff;
    color: var(--gd-primary) !important;
    font-weight: 700;
    padding: 0.85rem 2rem;
    border-radius: 0.65rem;
    border: 2px solid #fff;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.05rem;
    white-space: nowrap;
    transition: transform 0.15s, box-shadow 0.15s, background 0.15s, color 0.15s;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.gd-btn-accent-lg:hover {
    background: var(--gd-accent);
    border-color: var(--gd-accent);
    color: var(--gd-primary) !important;
    transform: translateY(-2px);
}

/* CTA-Bereich: weißer Button auf blauem Grund */
.gd-block-cta .gd-btn-accent-lg {
    background: #fff;
    border-color: #fff;
    color: var(--gd-primary) !important;
}

.gd-block-cta .gd-btn-accent-lg:hover {
    background: var(--gd-header);
    border-color: var(--gd-header);
    color: var(--gd-primary) !important;
}

.gd-cta-contact {
    margin-top: 1.5rem;
    font-size: 0.9rem;
}

.gd-cta-contact a {
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;
    margin-right: 1.25rem;
}

.gd-cta-contact a:hover {
    color: #fff;
}

/* ── Tagline strip ── */
.gd-tagline-strip {
    text-align: center;
    padding: 2rem 0;
    border-top: 1px solid var(--gd-border);
    background: #fff;
}

.gd-tagline-strip p {
    font-size: 1.1rem;
    color: var(--gd-muted);
    margin: 0;
    max-width: 40rem;
    margin-inline: auto;
}

.gd-tagline-strip strong {
    color: var(--gd-primary);
}

/* Form + footer shared */
.gd-landing-footer { margin-top: auto; }
.gd-footer-inner {
    background: #022253;
    color: #fff;
}
.gd-footer-wave {
    height: 12px;
    background: linear-gradient(180deg, var(--gd-header), #022253);
}
.gd-footer-church-icon {
    width: 3rem; height: 3rem; border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.25rem; color: #fff;
}
.gd-footer-nav a { color: rgba(255,255,255,0.9); text-decoration: none; font-size: 0.9rem; margin: 0 0.15rem; }
.gd-footer-nav a:hover { color: var(--gd-header); }

.gd-legal-content h2 { font-size: 1.15rem; font-weight: 700; color: var(--gd-primary); margin-top: 1.75rem; margin-bottom: 0.75rem; }
.gd-legal-content h3 { font-size: 1rem; font-weight: 600; margin-top: 1.25rem; }
.gd-legal-content p, .gd-legal-content li { line-height: 1.65; }
.gd-back-link { color: var(--gd-primary); text-decoration: none; font-weight: 600; }
.gd-back-link:hover { color: var(--gd-header); }

.form-control { border-radius: 0.65rem; border-color: #ced8ea; }
.form-control:focus { border-color: var(--gd-primary); box-shadow: 0 0 0 0.2rem rgba(0, 45, 84, 0.15); }

/* Cookie consent */
.klaro {
    --green1: var(--gd-primary);
    --green2: var(--gd-header);
    --green3: #b8d4ff;
    --button-text-color: #fff;
    --border-radius: 0.75rem;
    --notice-max-width: 34rem;
}

.klaro .cookie-notice:not(.cookie-modal-notice),
.klaro .cookie-modal .cm-modal.cm-klaro,
.klaro .cookie-modal-notice {
    box-shadow: 0 1.5rem 4rem rgba(2, 34, 83, 0.22);
}

.klaro .cookie-notice:not(.cookie-modal-notice) .cn-body {
    padding: 1.1rem;
}

.klaro .cookie-modal .cm-btn,
.klaro .context-notice .cm-btn,
.klaro .cookie-notice .cm-btn {
    border-radius: 999px;
    font-weight: 700;
    padding: 0.55rem 0.9rem;
}

@media (max-width: 991.98px) {
    .gd-sticky-login { position: static; }
    .gd-hero { padding-top: 2rem; }
}

/* ── Preisseite ── */
.gd-pricing-hero {
    position: relative;
    padding: 3.5rem 0 4rem;
    overflow: hidden;
}

.gd-pricing-hero-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 55% 70% at 100% 0%, rgba(203, 137, 25, 0.22), transparent 55%),
        radial-gradient(ellipse 45% 50% at 0% 100%, rgba(2, 34, 83, 0.06), transparent 50%),
        linear-gradient(165deg, #eef1f6 0%, var(--gd-surface) 40%, #fff 100%);
    z-index: 0;
}

.gd-pricing-hero .container {
    z-index: 1;
}

.gd-pricing-hero-title {
    font-size: clamp(1.85rem, 4.5vw, 2.65rem);
    font-weight: 800;
    color: var(--gd-primary);
    line-height: 1.15;
    margin-bottom: 1rem;
}

.gd-pricing-hero-title .gd-accent-text {
    color: var(--gd-accent);
}

.gd-pricing-hero-lead {
    font-size: 1.1rem;
    color: var(--gd-muted);
    line-height: 1.65;
    margin-bottom: 1.75rem;
}

.gd-pricing-logic-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}

@media (max-width: 575.98px) {
    .gd-pricing-logic-grid {
        grid-template-columns: 1fr;
    }
}

.gd-pricing-logic-chip {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    background: #fff;
    border: 1px solid var(--gd-border);
    border-radius: 0.75rem;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--gd-primary);
    box-shadow: 0 4px 14px rgba(2, 34, 83, 0.06);
}

.gd-pricing-logic-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    background: linear-gradient(135deg, rgba(2, 34, 83, 0.08), rgba(203, 137, 25, 0.2));
    color: var(--gd-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.1rem;
}

.gd-pricing-hero-panel {
    background: #fff;
    border: 1px solid var(--gd-border);
    border-radius: 1.25rem;
    padding: 1.75rem;
    box-shadow: 0 20px 48px rgba(2, 34, 83, 0.1);
}

.gd-pricing-hero-panel-label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gd-accent);
    margin-bottom: 1.25rem;
}

.gd-pricing-hero-steps {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.gd-pricing-hero-step {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.gd-pricing-hero-step .step-num {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--gd-primary);
    color: #fff;
    font-size: 0.85rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.gd-pricing-hero-step strong {
    display: block;
    color: var(--gd-primary);
    font-size: 0.95rem;
    margin-bottom: 0.15rem;
}

.gd-pricing-hero-step p {
    margin: 0;
    font-size: 0.85rem;
    color: var(--gd-muted);
    line-height: 1.45;
}

.gd-pricing-billing-toggle {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem 0.75rem;
    margin-top: 1.5rem;
    padding: 0.35rem;
    background: #fff;
    border: 1px solid var(--gd-border);
    border-radius: 2rem;
    box-shadow: 0 8px 24px rgba(2, 34, 83, 0.08);
}

.gd-pricing-billing-btn {
    border: none;
    background: transparent;
    color: var(--gd-muted);
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0.5rem 1.25rem;
    border-radius: 2rem;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
}

.gd-pricing-billing-btn.active {
    background: var(--gd-primary);
    color: #fff;
    box-shadow: 0 4px 14px rgba(2, 34, 83, 0.25);
}

.gd-pricing-billing-btn:hover:not(.active) {
    color: var(--gd-primary);
}

.gd-pricing-billing-save {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--gd-primary);
    background: rgba(203, 137, 25, 0.18);
    padding: 0.35rem 0.75rem;
    border-radius: 2rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.gd-kontakt-paket-hinweis {
    border-color: var(--gd-border) !important;
    color: var(--gd-text);
}

.gd-kontakt-paket-hinweis strong {
    color: var(--gd-primary);
}

.form-select {
    border-radius: 0.65rem;
    border-color: #ced8ea;
}

.form-select:focus {
    border-color: var(--gd-primary);
    box-shadow: 0 0 0 0.2rem rgba(0, 45, 84, 0.15);
}

.gd-pricing-section {
    padding-top: 4rem;
    padding-bottom: 4.5rem;
    background: #fff;
}

.gd-pricing-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
    align-items: stretch;
}

@media (max-width: 1199.98px) {
    .gd-pricing-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

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

.gd-pricing-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--gd-border);
    border-radius: 1.25rem;
    padding: 1.65rem 1.5rem 1.5rem;
    height: 100%;
    overflow: hidden;
    transition: box-shadow 0.25s, transform 0.25s, border-color 0.25s;
}

.gd-pricing-card-accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--gd-primary);
}

.gd-pricing-card--demo .gd-pricing-card-accent {
    background: linear-gradient(90deg, #5c6b7a, #8a9aab);
}

.gd-pricing-card--featured .gd-pricing-card-accent {
    background: linear-gradient(90deg, var(--gd-primary), var(--gd-accent));
    height: 5px;
}

.gd-pricing-card--unlimited .gd-pricing-card-accent {
    background: linear-gradient(90deg, var(--gd-accent), var(--gd-primary));
}

.gd-pricing-card:hover {
    box-shadow: 0 16px 40px rgba(2, 34, 83, 0.12);
    transform: translateY(-4px);
}

.gd-pricing-card--featured {
    border-color: var(--gd-primary);
    box-shadow: 0 20px 48px rgba(2, 34, 83, 0.16);
    background: linear-gradient(180deg, #fff 0%, rgba(244, 246, 249, 0.6) 100%);
}

.gd-pricing-card--featured:hover {
    box-shadow: 0 24px 56px rgba(2, 34, 83, 0.2);
}

.gd-pricing-badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: var(--gd-accent);
    color: var(--gd-primary);
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.35rem 0.75rem;
    border-radius: 2rem;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    z-index: 2;
}

.gd-pricing-icon {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 0.85rem;
    background: linear-gradient(135deg, rgba(2, 34, 83, 0.08), rgba(203, 137, 25, 0.18));
    color: var(--gd-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

.gd-pricing-card--featured .gd-pricing-icon {
    background: linear-gradient(135deg, var(--gd-primary), #033a6e);
    color: #fff;
}

.gd-pricing-card-head {
    margin-bottom: 1rem;
    padding-top: 0.25rem;
}

.gd-pricing-card--featured .gd-pricing-card-head {
    padding-top: 1.5rem;
}

.gd-pricing-plan-name {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--gd-primary);
    margin-bottom: 0.65rem;
}

.gd-pricing-price {
    margin-bottom: 0.5rem;
}

.gd-pricing-amount {
    font-size: clamp(2.25rem, 4vw, 2.75rem);
    font-weight: 800;
    color: var(--gd-primary);
    line-height: 1;
}

.gd-pricing-currency {
    font-size: 0.55em;
    font-weight: 700;
}

.gd-pricing-period {
    display: block;
    font-size: 0.85rem;
    color: var(--gd-muted);
    margin-top: 0.25rem;
}

.gd-pricing-gemeinden {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--gd-accent);
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: rgba(203, 137, 25, 0.12);
    padding: 0.35rem 0.65rem;
    border-radius: 2rem;
}

.gd-pricing-desc {
    font-size: 0.9rem;
    color: var(--gd-muted);
    line-height: 1.55;
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px dashed var(--gd-border);
}

.gd-pricing-features {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
    flex-grow: 1;
}

.gd-pricing-features li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--gd-text);
    line-height: 1.45;
    margin-bottom: 0.55rem;
}

.gd-pricing-features i {
    color: var(--gd-accent);
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

/* Vergleichstabelle */
.gd-pricing-compare {
    padding: 4rem 0 4.5rem;
    background: var(--gd-surface);
}

.gd-pricing-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 1.25rem;
    border: 1px solid var(--gd-border);
    background: #fff;
    box-shadow: 0 16px 40px rgba(2, 34, 83, 0.08);
}

.gd-pricing-table {
    width: 100%;
    min-width: 640px;
    border-collapse: collapse;
    margin: 0;
    font-size: 0.9rem;
}

.gd-pricing-table thead th {
    background: var(--gd-primary);
    color: #fff;
    padding: 1.25rem 1rem;
    text-align: center;
    vertical-align: bottom;
    border: none;
    font-weight: 600;
}

.gd-pricing-table thead th:first-child {
    text-align: left;
    background: #011a3d;
    min-width: 11rem;
}

.gd-pricing-table thead th.col-featured {
    background: linear-gradient(180deg, var(--gd-accent) 0%, #b87a15 100%);
    color: var(--gd-primary);
}

.gd-pricing-th-badge {
    display: block;
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 0.35rem;
    opacity: 0.9;
}

.gd-pricing-th-name {
    display: block;
    font-size: 1.05rem;
    font-weight: 800;
}

.gd-pricing-th-price {
    display: block;
    font-size: 1.35rem;
    font-weight: 800;
    margin-top: 0.25rem;
}

.gd-pricing-table tbody th {
    text-align: left;
    padding: 0.85rem 1.25rem;
    font-weight: 600;
    color: var(--gd-primary);
    background: rgba(244, 246, 249, 0.6);
    border-bottom: 1px solid var(--gd-border);
    white-space: nowrap;
}

.gd-pricing-table tbody td {
    text-align: center;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--gd-border);
    color: var(--gd-text);
    font-weight: 500;
}

.gd-pricing-table tbody tr:nth-child(even) td,
.gd-pricing-table tbody tr:nth-child(even) th {
    background: rgba(244, 246, 249, 0.35);
}

.gd-pricing-table tbody td.col-featured,
.gd-pricing-table tbody th + td.col-featured {
    background: rgba(203, 137, 25, 0.08);
}

.gd-pricing-table tbody tr:nth-child(even) td.col-featured {
    background: rgba(203, 137, 25, 0.12);
}

.gd-pricing-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: rgba(2, 34, 83, 0.08);
    color: var(--gd-primary);
    font-weight: 700;
}

.gd-pricing-table td.col-featured .gd-pricing-check {
    background: var(--gd-primary);
    color: #fff;
}

.gd-pricing-dash {
    color: var(--gd-muted);
    font-weight: 400;
}

.gd-pricing-table-actions td,
.gd-pricing-table-actions th {
    padding: 1.25rem 1rem;
    border-bottom: none;
    vertical-align: middle;
}

.gd-btn-primary-sm,
.gd-btn-outline-sm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.45rem 0.85rem;
    font-size: 0.8rem;
    font-weight: 600;
    border-radius: 0.5rem;
    text-decoration: none;
    white-space: nowrap;
    transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
}

.gd-btn-primary-sm {
    background: var(--gd-primary) !important;
    color: var(--gd-btn-text) !important;
    border: 2px solid var(--gd-primary);
}

.gd-btn-primary-sm:hover {
    background: #011a3d !important;
    border-color: #011a3d;
    color: #fff !important;
    transform: translateY(-1px);
}

.gd-btn-outline-sm {
    background: #fff;
    color: var(--gd-primary) !important;
    border: 2px solid var(--gd-primary);
}

.gd-btn-outline-sm:hover {
    background: var(--gd-primary);
    color: #fff !important;
}

.gd-pricing-table-hint {
    margin-top: 1.25rem;
    font-size: 0.875rem;
    color: var(--gd-muted);
}

.gd-pricing-table-hint i {
    color: var(--gd-accent);
    margin-right: 0.25rem;
}

.gd-pricing-note {
    padding: 4.5rem 0;
    background: #fff;
    border-top: 1px solid var(--gd-border);
}

.gd-pricing-note-text {
    color: var(--gd-muted);
    line-height: 1.65;
}

.gd-pricing-note-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.85rem;
}

@media (max-width: 575.98px) {
    .gd-pricing-note-grid {
        grid-template-columns: 1fr;
    }
}

.gd-pricing-note-card {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1.1rem 1.15rem;
    background: var(--gd-surface);
    border: 1px solid var(--gd-border);
    border-radius: 0.85rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--gd-primary);
    line-height: 1.4;
    transition: border-color 0.2s, transform 0.2s;
}

.gd-pricing-note-card:hover {
    border-color: var(--gd-accent);
    transform: translateY(-2px);
}

.gd-pricing-note-card i {
    font-size: 1.35rem;
    color: var(--gd-accent);
    flex-shrink: 0;
}

.gd-pricing-note-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

@media (min-width: 576px) {
    .gd-pricing-note-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .gd-pricing-note-card:last-child:nth-child(odd) {
        grid-column: span 2;
    }
}
