/* ============================================================
   Brain & Soul Solutions – Hauptstylesheet
   Autorin: Barbara König, Heilpraktikerin, Meerbusch
   Systemschriften, keine externen Ressourcen
   ============================================================ */

/* --- CSS Custom Properties (Design Tokens) --- */
:root {
    /* Farben */
    --color-aubergine:    #4a2c5a;
    --color-violet:       #6b3d8a;
    --color-lavender:     #9b7ab8;
    --color-lilac-light:  #c8a8d8;
    --color-lilac-pale:   #e8d8f0;
    --color-ivory:        #faf7f2;
    --color-offwhite:     #f5f0eb;
    --color-champagne:    #c9a96e;
    --color-bronze:       #a8854a;
    --color-text-dark:    #2a1a35;
    --color-text-mid:     #4a3a55;
    --color-text-light:   #7a6a85;
    --color-white:        #ffffff;
    --color-border:       #ddd0e8;
    --color-shadow:       rgba(74, 44, 90, 0.12);

    /* Typografie */
    --font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
                  "Helvetica Neue", Arial, "Noto Sans", sans-serif,
                  "Apple Color Emoji", "Segoe UI Emoji";
    --font-serif: Georgia, "Times New Roman", Times, serif;

    /* Schriftgrößen */
    --fs-xs:   0.75rem;
    --fs-sm:   0.875rem;
    --fs-base: 1rem;
    --fs-md:   1.125rem;
    --fs-lg:   1.25rem;
    --fs-xl:   1.5rem;
    --fs-2xl:  1.875rem;
    --fs-3xl:  2.25rem;
    --fs-4xl:  3rem;
    --fs-5xl:  3.75rem;

    /* Abstände */
    --space-1:  0.25rem;
    --space-2:  0.5rem;
    --space-3:  0.75rem;
    --space-4:  1rem;
    --space-5:  1.25rem;
    --space-6:  1.5rem;
    --space-8:  2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;
    --space-24: 6rem;
    --space-32: 8rem;

    /* Layout */
    --container-max: 1200px;
    --container-narrow: 800px;
    --radius-sm:  0.375rem;
    --radius-md:  0.75rem;
    --radius-lg:  1.25rem;
    --radius-xl:  2rem;
    --radius-full: 9999px;

    /* Schatten */
    --shadow-sm:  0 1px 3px var(--color-shadow);
    --shadow-md:  0 4px 16px var(--color-shadow);
    --shadow-lg:  0 8px 32px rgba(74, 44, 90, 0.15);

    /* Übergänge */
    --transition: 0.25s ease;
}

/* --- Reset & Basis --- */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    scroll-padding-top: 90px;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--font-stack);
    font-size: var(--fs-base);
    line-height: 1.7;
    color: var(--color-text-dark);
    background-color: var(--color-ivory);
    -webkit-font-smoothing: antialiased;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: var(--color-violet);
    text-decoration: none;
    transition: color var(--transition);
}

a:hover {
    color: var(--color-aubergine);
}

ul, ol {
    list-style: none;
}

/* --- Typografie --- */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-serif);
    font-weight: 400;
    line-height: 1.3;
    color: var(--color-aubergine);
    letter-spacing: -0.01em;
}

h1 { font-size: clamp(var(--fs-3xl), 5vw, var(--fs-5xl)); }
h2 { font-size: clamp(var(--fs-2xl), 3.5vw, var(--fs-4xl)); }
h3 { font-size: clamp(var(--fs-xl), 2.5vw, var(--fs-2xl)); }
h4 { font-size: var(--fs-lg); }
h5 { font-size: var(--fs-md); }
h6 { font-size: var(--fs-base); }

p {
    margin-bottom: var(--space-4);
    color: var(--color-text-mid);
    max-width: 70ch;
}

p:last-child { margin-bottom: 0; }

strong { color: var(--color-text-dark); font-weight: 600; }

.body--nav-open {
    overflow: hidden;
}


/* --- Layout-Utilities --- */
.container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--space-6);
}

.container--narrow {
    max-width: var(--container-narrow);
    margin-inline: auto;
    padding-inline: var(--space-6);
}

.section {
    padding-block: var(--space-20);
}

.section--light {
    background-color: var(--color-ivory);
}

.section--soft {
    background-color: var(--color-offwhite);
}

.section--lilac {
    background-color: var(--color-lilac-pale);
}

.section--aubergine {
    background-color: var(--color-aubergine);
    color: var(--color-white);
}

.section--aubergine h2,
.section--aubergine h3,
.section--aubergine h4 {
    color: var(--color-lilac-light);
}

.section--aubergine p {
    color: rgba(255,255,255,0.85);
}

.text-center { text-align: center; }
.text-center p { margin-inline: auto; }

.section-label {
    display: inline-block;
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-champagne);
    margin-bottom: var(--space-3);
}

.section-title {
    margin-bottom: var(--space-4);
}

.section-subtitle {
    font-size: var(--fs-lg);
    color: var(--color-text-light);
    max-width: 60ch;
    margin-inline: auto;
    margin-bottom: var(--space-12);
}

.divider {
    width: 3rem;
    height: 2px;
    background: linear-gradient(90deg, var(--color-champagne), var(--color-lavender));
    margin-block: var(--space-5);
    border: none;
}

.divider--center {
    margin-inline: auto;
}

/* --- Buttons --- */
.btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-8);
    border-radius: var(--radius-full);
    font-family: var(--font-stack);
    font-size: var(--fs-sm);
    font-weight: 500;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all var(--transition);
    border: 2px solid transparent;
    text-decoration: none;
    white-space: nowrap;
}

.btn--primary {
    background-color: var(--color-aubergine);
    color: var(--color-white);
    border-color: var(--color-aubergine);
}

.btn--primary:hover {
    background-color: var(--color-violet);
    border-color: var(--color-violet);
    color: var(--color-white);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.btn--outline {
    background-color: transparent;
    color: var(--color-aubergine);
    border-color: var(--color-aubergine);
}

.btn--outline:hover {
    background-color: var(--color-aubergine);
    color: var(--color-white);
    transform: translateY(-1px);
}

.btn--ghost {
    background-color: transparent;
    color: var(--color-white);
    border-color: rgba(255,255,255,0.6);
}

.btn--ghost:hover {
    background-color: rgba(255,255,255,0.15);
    color: var(--color-white);
    border-color: var(--color-white);
}

.btn--champagne {
    background-color: var(--color-champagne);
    color: var(--color-white);
    border-color: var(--color-champagne);
}

.btn--champagne:hover {
    background-color: var(--color-bronze);
    border-color: var(--color-bronze);
    color: var(--color-white);
    transform: translateY(-1px);
}

/* --- Header & Navigation --- */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(250, 247, 242, 0.92);
    border-bottom: 1px solid rgba(221, 208, 232, 0.82);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 12px 34px rgba(74, 44, 90, 0.06);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 78px;
    gap: 14px;
}

.site-logo {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    min-width: 255px;
    gap: 12px;
    color: var(--color-aubergine);
    text-decoration: none;
    white-space: nowrap;
}

.site-logo__mark {
    flex: 0 0 auto;
    width: 50px;
    height: 50px;
    object-fit: contain;
    filter: drop-shadow(0 10px 20px rgba(74, 44, 90, 0.12));
}

.site-logo__copy {
    display: flex;
    flex-direction: column;
    gap: 3px;
    line-height: 1.05;
}

.site-logo__name {
    font-family: var(--font-serif);
    font-size: 1.16rem;
    font-weight: 500;
    letter-spacing: -0.015em;
    color: var(--color-aubergine);
}

.site-logo__sub {
    color: var(--color-champagne);
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.site-nav {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    justify-content: flex-end;
    min-width: 0;
}

.site-nav__list {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 7px;
}

.site-nav__item {
    position: relative;
}

.site-nav__item--mobile-contact {
    display: none;
}

.site-nav__link {
    display: block;
    padding: 10px 9px;
    border-radius: var(--radius-full);
    color: var(--color-text-mid);
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.15;
    white-space: nowrap;
    cursor: pointer;
    transition: color var(--transition), background-color var(--transition), transform var(--transition);
}

.site-nav__link:hover,
.site-nav__link.active,
.site-nav__item--dropdown:hover > .site-nav__link {
    color: var(--color-aubergine);
    background: var(--color-ivory);
}

.site-nav__dropdown-toggle {
    display: flex;
    align-items: center;
    gap: 7px;
}

.site-nav__dropdown-toggle::after {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-left: 1px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    opacity: 0.7;
    transition: transform var(--transition);
}

.site-nav__item--dropdown:hover .site-nav__dropdown-toggle::after,
.site-nav__item--dropdown.open .site-nav__dropdown-toggle::after {
    transform: translateY(1px) rotate(225deg);
}

.site-nav__item--dropdown:hover .site-nav__dropdown,
.site-nav__item--dropdown:focus-within .site-nav__dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.site-nav__dropdown {
    position: absolute;
    top: 46px;
    right: 0;
    left: auto;
    min-width: 330px;
    padding: 14px;
    background:
        radial-gradient(circle at 90% 10%, rgba(201, 169, 110, 0.10), transparent 28%),
        rgba(255, 255, 255, 0.98);
    border: 1px solid var(--color-border);
    border-radius: 24px;
    box-shadow: 0 24px 60px rgba(74, 44, 90, 0.16);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    pointer-events: none;
    transition: opacity var(--transition), visibility var(--transition), transform var(--transition);
    z-index: 100;
}

.site-nav__dropdown--compact {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    min-width: 360px;
}

.site-nav__dropdown--wide {
    right: 50%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(860px, calc(100vw - 36px));
    max-width: min(860px, calc(100vw - 36px));
    min-width: 720px;
    gap: 16px;
    padding: 20px;
    transform: translate(50%, -8px);
}

.site-nav__item--dropdown:hover .site-nav__dropdown--wide,
.site-nav__item--dropdown:focus-within .site-nav__dropdown--wide {
    transform: translate(50%, 0);
}

.site-nav__dropdown-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.site-nav__dropdown-title {
    display: block;
    margin: 0 0 5px;
    padding: 0 4px 8px;
    color: var(--color-champagne);
    border-bottom: 1px solid var(--color-border);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    line-height: 1.2;
    text-transform: uppercase;
}

.site-nav__dropdown-card,
.site-nav__dropdown a {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 12px 13px;
    border: 1px solid transparent;
    border-radius: 17px;
    color: var(--color-text-mid);
    white-space: normal;
    transition: transform var(--transition), background var(--transition), border-color var(--transition), color var(--transition);
}

.site-nav__dropdown-card:hover,
.site-nav__dropdown a:hover {
    color: var(--color-aubergine);
    background: linear-gradient(135deg, var(--color-ivory), rgba(255, 255, 255, 0.94));
    border-color: var(--color-border);
    transform: translateY(-1px);
}

.site-nav__dropdown-card strong,
.site-nav__dropdown a strong {
    color: var(--color-aubergine);
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.18;
}

.site-nav__dropdown-card span,
.site-nav__dropdown a span {
    color: var(--color-text-light);
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.35;
}

.header-cta {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 12px;
}

.header-cta__button {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    height: 44px;
    padding: 0 20px !important;
    border-radius: var(--radius-full);
    border: 1px solid rgba(201, 169, 110, 0.48) !important;
    color: var(--color-white) !important;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.12), transparent 42%),
        linear-gradient(135deg, var(--color-aubergine), var(--color-violet)) !important;
    box-shadow:
        0 0 0 0 rgba(201, 169, 110, 0.34),
        0 14px 34px rgba(74, 44, 90, 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.18);
    font-size: 0.82rem !important;
    font-weight: 850;
    line-height: 1 !important;
    letter-spacing: 0.01em;
    white-space: nowrap;
    animation: headerCtaGlow 2.6s ease-out infinite;
}

.header-cta__button:hover {
    color: var(--color-white) !important;
    border-color: rgba(201, 169, 110, 0.68) !important;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.16), transparent 42%),
        linear-gradient(135deg, var(--color-violet), var(--color-aubergine)) !important;
    box-shadow:
        0 0 0 8px rgba(201, 169, 110, 0.12),
        0 18px 42px rgba(74, 44, 90, 0.30),
        inset 0 1px 0 rgba(255, 255, 255, 0.22);
    transform: translateY(-1px);
}

.header-cta__button:focus-visible {
    outline: 3px solid rgba(201, 169, 110, 0.45);
    outline-offset: 4px;
}

@keyframes headerCtaGlow {
    0% {
        box-shadow:
            0 0 0 0 rgba(201, 169, 110, 0.36),
            0 14px 34px rgba(74, 44, 90, 0.24),
            inset 0 1px 0 rgba(255, 255, 255, 0.18);
    }
    60% {
        box-shadow:
            0 0 0 11px rgba(201, 169, 110, 0),
            0 14px 34px rgba(74, 44, 90, 0.24),
            inset 0 1px 0 rgba(255, 255, 255, 0.18);
    }
    100% {
        box-shadow:
            0 0 0 0 rgba(201, 169, 110, 0),
            0 14px 34px rgba(74, 44, 90, 0.24),
            inset 0 1px 0 rgba(255, 255, 255, 0.18);
    }
}

.nav-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 44px;
    padding: 9px 14px;
    color: var(--color-aubergine);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(250, 247, 242, 0.88));
    border: 1px solid rgba(74, 44, 90, 0.18);
    border-radius: var(--radius-full);
    font: inherit;
    font-size: 0.86rem;
    font-weight: 850;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 10px 28px rgba(74, 44, 90, 0.08);
    transition: color var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.nav-toggle:hover {
    transform: translateY(-1px);
    border-color: rgba(201, 169, 110, 0.45);
    box-shadow: 0 14px 34px rgba(74, 44, 90, 0.12);
}

.nav-toggle-icon {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    width: 18px;
    height: 16px;
    gap: 4px;
}

.nav-toggle-icon i {
    display: block;
    width: 18px;
    height: 2px;
    background: currentColor;
    border-radius: var(--radius-full);
    transition: transform 0.24s ease, opacity 0.18s ease, width 0.22s ease;
}

.nav-toggle-text {
    color: currentColor;
}

.nav-toggle.open {
    color: var(--color-white);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.13), transparent 42%),
        linear-gradient(135deg, var(--color-aubergine), var(--color-violet));
    border-color: rgba(201, 169, 110, 0.65);
    box-shadow:
        0 16px 38px rgba(74, 44, 90, 0.22),
        0 0 0 4px rgba(201, 169, 110, 0.10),
        inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.nav-toggle.open .nav-toggle-icon i:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.nav-toggle.open .nav-toggle-icon i:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}

.nav-toggle.open .nav-toggle-icon i:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

.nav-toggle.open .nav-toggle-text {
    color: var(--color-lilac-pale);
}

/* --- Footer --- */
.site-footer {
    background-color: var(--color-aubergine);
    color: rgba(255,255,255,0.85);
    padding-top: var(--space-16);
    padding-bottom: var(--space-8);
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: var(--space-10);
    margin-bottom: var(--space-12);
}

.footer-brand__name {
    font-family: var(--font-serif);
    font-size: var(--fs-xl);
    color: var(--color-white);
    margin-bottom: var(--space-3);
    display: block;
}

.footer-brand__tagline {
    font-size: var(--fs-sm);
    color: rgba(255,255,255,0.65);
    margin-bottom: var(--space-5);
    max-width: 30ch;
}

.footer-brand__address {
    font-size: var(--fs-sm);
    color: rgba(255,255,255,0.65);
    line-height: 1.8;
}

.footer-brand__address a {
    color: var(--color-lilac-light);
}

.footer-col__title {
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-champagne);
    margin-bottom: var(--space-4);
}

.footer-col ul li {
    margin-bottom: var(--space-2);
}

.footer-col ul li a {
    font-size: var(--fs-sm);
    color: rgba(255,255,255,0.7);
    transition: color var(--transition);
}

.footer-col ul li a:hover {
    color: var(--color-white);
}

.footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.12);
    padding-top: var(--space-6);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-4);
}

.footer-bottom__copy {
    font-size: var(--fs-xs);
    color: rgba(255,255,255,0.5);
}

.footer-bottom__links {
    display: flex;
    gap: var(--space-5);
}

.footer-bottom__links a {
    font-size: var(--fs-xs);
    color: rgba(255,255,255,0.5);
    transition: color var(--transition);
}

.footer-bottom__links a:hover {
    color: var(--color-white);
}

/* --- Hero Section --- */
.hero {
    position: relative;
    min-height: 90vh;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(74, 44, 90, 0.75) 0%,
        rgba(107, 61, 138, 0.55) 50%,
        rgba(74, 44, 90, 0.35) 100%
    );
}

.hero__content {
    position: relative;
    z-index: 1;
    color: var(--color-white);
    max-width: 700px;
    padding-block: var(--space-20);
}

.hero__eyebrow {
    display: inline-block;
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-champagne);
    margin-bottom: var(--space-4);
}

.hero__title {
    font-family: var(--font-serif);
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 400;
    line-height: 1.15;
    color: var(--color-white);
    margin-bottom: var(--space-6);
}

.hero__subtitle {
    font-size: var(--fs-lg);
    color: rgba(255,255,255,0.9);
    max-width: 55ch;
    margin-bottom: var(--space-8);
    line-height: 1.7;
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    align-items: center;
}

.hero__badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-10);
}

.hero__badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    background-color: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: var(--radius-full);
    padding: var(--space-2) var(--space-4);
    font-size: var(--fs-xs);
    color: rgba(255,255,255,0.9);
    backdrop-filter: blur(4px);
}

/* --- Karten --- */
.card {
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    overflow: hidden;
    transition: transform var(--transition), box-shadow var(--transition);
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.card__img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
}

.card__body {
    padding: var(--space-6);
}

.card__label {
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-champagne);
    margin-bottom: var(--space-2);
}

.card__title {
    font-family: var(--font-serif);
    font-size: var(--fs-xl);
    color: var(--color-aubergine);
    margin-bottom: var(--space-3);
}

.card__text {
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    margin-bottom: var(--space-5);
}

.card__link {
    font-size: var(--fs-sm);
    font-weight: 500;
    color: var(--color-violet);
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.card__link::after {
    content: "→";
    transition: transform var(--transition);
}

.card__link:hover::after {
    transform: translateX(4px);
}

/* --- Grid-Layouts --- */
.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-8);
}

.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-8);
}

.grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-6);
}

/* --- Leistungswelten (Feature-Bereich) --- */
.worlds-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-8);
    margin-top: var(--space-12);
}

.world-card {
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: transform var(--transition), box-shadow var(--transition);
}

.world-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg);
}

.world-card__img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
}

.world-card__body {
    padding: var(--space-6) var(--space-6) var(--space-8);
}

.world-card__number {
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-champagne);
    margin-bottom: var(--space-2);
}

.world-card__title {
    font-family: var(--font-serif);
    font-size: var(--fs-xl);
    color: var(--color-aubergine);
    margin-bottom: var(--space-3);
}

.world-card__text {
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    line-height: 1.7;
    margin-bottom: var(--space-5);
}

/* --- Abwechselnde Bild-Text-Bereiche --- */
.split-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-16);
    align-items: center;
    padding-block: var(--space-16);
}

.split-section--reverse {
    direction: rtl;
}

.split-section--reverse > * {
    direction: ltr;
}

.split-img {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}

.split-img img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
}

.split-content {
    padding-inline: var(--space-4);
}

/* --- Ablauf-Bereich --- */
.process-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-6);
    margin-top: var(--space-12);
}

.process-card {
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    padding: var(--space-8) var(--space-6);
    box-shadow: var(--shadow-md);
    text-align: center;
    position: relative;
}

.process-card::after {
    content: "→";
    position: absolute;
    right: calc(-1 * var(--space-4));
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-lavender);
    font-size: var(--fs-xl);
    z-index: 1;
}

.process-card:last-child::after {
    display: none;
}

.process-card__number {
    width: 3rem;
    height: 3rem;
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, var(--color-aubergine), var(--color-violet));
    color: var(--color-white);
    font-family: var(--font-serif);
    font-size: var(--fs-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--space-4);
}

.process-card__title {
    font-family: var(--font-serif);
    font-size: var(--fs-lg);
    color: var(--color-aubergine);
    margin-bottom: var(--space-3);
}

.process-card__text {
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    line-height: 1.7;
}

/* --- FAQ-Bereich --- */
.faq-list {
    max-width: 800px;
    margin-inline: auto;
}

.faq-item {
    border-bottom: 1px solid var(--color-border);
}

.faq-item:first-child {
    border-top: 1px solid var(--color-border);
}

.faq-question {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-5) 0;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: var(--font-serif);
    font-size: var(--fs-md);
    color: var(--color-aubergine);
    transition: color var(--transition);
}

.faq-question:hover {
    color: var(--color-violet);
}

.faq-icon {
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: var(--radius-full);
    border: 1.5px solid var(--color-lavender);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-sm);
    color: var(--color-lavender);
    transition: all var(--transition);
}

.faq-item.open .faq-icon {
    background-color: var(--color-aubergine);
    border-color: var(--color-aubergine);
    color: var(--color-white);
    transform: rotate(45deg);
}

.faq-answer {
    display: none;
    padding-bottom: var(--space-5);
    font-size: var(--fs-base);
    color: var(--color-text-mid);
    line-height: 1.8;
    max-width: 70ch;
}

.faq-item.open .faq-answer {
    display: block;
}

/* --- Kontaktformular --- */
.contact-section {
    background: linear-gradient(135deg, var(--color-aubergine) 0%, var(--color-violet) 100%);
    padding-block: var(--space-20);
}

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: var(--space-16);
    align-items: start;
}

.contact-info {
    color: var(--color-white);
}

.contact-info h2 {
    color: var(--color-white);
    margin-bottom: var(--space-4);
}

.contact-info p {
    color: rgba(255,255,255,0.85);
    margin-bottom: var(--space-8);
}

.contact-detail {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}

.contact-detail__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-full);
    background-color: rgba(255,255,255,0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-md);
    flex-shrink: 0;
}

.contact-detail__text {
    font-size: var(--fs-sm);
    color: rgba(255,255,255,0.85);
    line-height: 1.6;
}

.contact-detail__text strong {
    display: block;
    color: var(--color-white);
    margin-bottom: var(--space-1);
}

.contact-form {
    background-color: var(--color-white);
    border-radius: var(--radius-xl);
    padding: var(--space-10);
    box-shadow: var(--shadow-lg);
}

.form-group {
    margin-bottom: var(--space-5);
}

.form-label {
    display: block;
    font-size: var(--fs-sm);
    font-weight: 500;
    color: var(--color-text-dark);
    margin-bottom: var(--space-2);
}

.form-input,
.form-textarea {
    width: 100%;
    padding: var(--space-3) var(--space-4);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    font-family: var(--font-stack);
    font-size: var(--fs-base);
    color: var(--color-text-dark);
    background-color: var(--color-ivory);
    transition: border-color var(--transition), box-shadow var(--transition);
    outline: none;
}

.form-input:focus,
.form-textarea:focus {
    border-color: var(--color-lavender);
    box-shadow: 0 0 0 3px rgba(155, 122, 184, 0.15);
    background-color: var(--color-white);
}

.form-input.is-invalid,
.form-textarea.is-invalid {
    border-color: #c0392b;
}

.form-privacy.is-invalid {
    color: #c0392b;
}

.form-textarea {
    min-height: 130px;
    resize: vertical;
}

.form-privacy {
    font-size: var(--fs-xs);
    color: var(--color-text-light);
    margin-bottom: var(--space-5);
    line-height: 1.6;
}

.form-privacy a {
    color: var(--color-violet);
}

.form-message {
    border-radius: var(--radius-md);
    padding: var(--space-4);
    margin-bottom: var(--space-5);
    font-size: var(--fs-sm);
    line-height: 1.6;
}

.form-message strong {
    display: block;
    margin-bottom: var(--space-1);
    color: var(--color-text-dark);
}

.form-message span {
    display: block;
    color: var(--color-text-mid);
}

.form-message--success {
    background-color: #f1f7f1;
    border: 1px solid #bed8be;
}

.form-message--error {
    background-color: #fff4f1;
    border: 1px solid #e5b8ad;
}

.form-checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    cursor: pointer;
}

.form-checkbox-label input[type="checkbox"] {
    margin-top: 3px;
    flex-shrink: 0;
    accent-color: var(--color-violet);
}

.form-honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.form-submit {
    width: 100%;
    justify-content: center;
}

.form-required-note {
    font-size: 0.75rem;
    color: var(--color-text-light);
    margin-top: 1rem;
    text-align: center;
}

.form-error {
    display: block;
    min-height: 1.25rem;
    margin-top: var(--space-2);
    margin-bottom: 0;
    color: #a03225;
    font-size: var(--fs-xs);
    line-height: 1.45;
}

.form-error:empty {
    min-height: 0;
    margin-top: 0;
}

.form-input.is-invalid:focus,
.form-textarea.is-invalid:focus {
    border-color: #c0392b;
    box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.14);
}

.thanks-card {
    max-width: 760px;
    margin-inline: auto;
}

.thanks-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-4);
    margin-top: var(--space-7);
}

/* --- Breadcrumb --- */
.breadcrumb {
    padding-block: var(--space-4);
    border-bottom: 1px solid var(--color-border);
    background-color: var(--color-offwhite);
}

.breadcrumb__list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
    font-size: var(--fs-xs);
    color: var(--color-text-light);
}

.breadcrumb__item + .breadcrumb__item::before {
    content: "/";
    margin-right: var(--space-2);
    color: var(--color-border);
}

.breadcrumb__item a {
    color: var(--color-text-light);
}

.breadcrumb__item a:hover {
    color: var(--color-aubergine);
}

.breadcrumb__item--current {
    color: var(--color-aubergine);
    font-weight: 500;
}

/* --- Page Hero (Unterseiten) --- */
.page-hero {
    background: linear-gradient(135deg, var(--color-aubergine) 0%, var(--color-violet) 100%);
    padding-block: var(--space-16);
    text-align: center;
    color: var(--color-white);
}

.page-hero__label {
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-champagne);
    margin-bottom: var(--space-3);
}

.page-hero__title {
    color: var(--color-white);
    margin-bottom: var(--space-4);
}

.page-hero__subtitle {
    font-size: var(--fs-lg);
    color: rgba(255,255,255,0.85);
    max-width: 55ch;
    margin-inline: auto;
}

/* --- Leistungs-Teaser auf Startseite --- */
.services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
}

.service-card {
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--color-border);
    transition: all var(--transition);
}

.service-card:hover {
    box-shadow: var(--shadow-md);
    border-color: var(--color-lilac-light);
    transform: translateY(-2px);
}

.service-card__world {
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-champagne);
    margin-bottom: var(--space-2);
}

.service-card__title {
    font-family: var(--font-serif);
    font-size: var(--fs-lg);
    color: var(--color-aubergine);
    margin-bottom: var(--space-3);
}

.service-card__text {
    font-size: var(--fs-sm);
    color: var(--color-text-light);
    line-height: 1.7;
    margin-bottom: var(--space-4);
}

.service-card__link {
    font-size: var(--fs-sm);
    font-weight: 500;
    color: var(--color-violet);
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    transition: gap var(--transition);
}

.service-card__link:hover {
    gap: var(--space-3);
    color: var(--color-aubergine);
}

/* --- Preise --- */
.price-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
}

.price-card {
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    padding: var(--space-8);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--color-border);
}

.price-card--featured {
    border-color: var(--color-lavender);
    background: linear-gradient(160deg, var(--color-white) 0%, var(--color-lilac-pale) 100%);
}

.price-card__category {
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-champagne);
    margin-bottom: var(--space-3);
}

.price-card__title {
    font-family: var(--font-serif);
    font-size: var(--fs-xl);
    color: var(--color-aubergine);
    margin-bottom: var(--space-2);
}

.price-card__amount {
    font-size: var(--fs-3xl);
    font-weight: 700;
    color: var(--color-aubergine);
    margin-bottom: var(--space-1);
}

.price-card__note {
    font-size: var(--fs-xs);
    color: var(--color-text-light);
    margin-bottom: var(--space-5);
}

.price-card__items {
    list-style: none;
    margin-bottom: var(--space-6);
}

.price-card__items li {
    font-size: var(--fs-sm);
    color: var(--color-text-mid);
    padding-block: var(--space-2);
    border-bottom: 1px solid var(--color-border);
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
}

.price-card__items li:last-child {
    border-bottom: none;
}

/* --- Über-mich-Sektion (Startseite) --- */
.about-section {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: var(--space-16);
    align-items: center;
}

.about-img-wrap {
    position: relative;
}

.about-img-wrap img {
    border-radius: var(--radius-lg);
    width: 100%;
    box-shadow: var(--shadow-lg);
}

.about-img-badge {
    position: absolute;
    bottom: var(--space-6);
    right: calc(-1 * var(--space-6));
    background-color: var(--color-white);
    border-radius: var(--radius-md);
    padding: var(--space-4) var(--space-5);
    box-shadow: var(--shadow-md);
    text-align: center;
}

.about-img-badge__number {
    font-family: var(--font-serif);
    font-size: var(--fs-2xl);
    color: var(--color-aubergine);
    line-height: 1;
}

.about-img-badge__label {
    font-size: var(--fs-xs);
    color: var(--color-text-light);
    margin-top: var(--space-1);
}

/* --- Preise-Teaser --- */
.price-teaser {
    background-color: var(--color-lilac-pale);
    border-radius: var(--radius-lg);
    padding: var(--space-10);
    text-align: center;
}

/* --- Hinweis-Box --- */
.notice-box {
    background-color: var(--color-lilac-pale);
    border-left: 3px solid var(--color-lavender);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    padding: var(--space-5) var(--space-6);
    margin-block: var(--space-6);
}

.notice-box p {
    font-size: var(--fs-sm);
    color: var(--color-text-mid);
    margin: 0;
}


/* --- Ausgelagerte Layout-Helfer aus ehemaligen Inline-Styles --- */
.section--error {
    min-height: 60vh;
    display: flex;
    align-items: center;
}

.error-code {
    font-family: var(--font-serif);
    font-size: 5rem;
    color: var(--color-champagne);
    line-height: 1;
    margin-bottom: var(--space-4);
}

.error-title {
    font-family: var(--font-serif);
    color: var(--color-aubergine);
    margin-bottom: var(--space-4);
}

.error-text {
    color: var(--color-text-mid);
    max-width: 40ch;
    margin-inline: auto;
    margin-bottom: var(--space-8);
}

.hero__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.block-action {
    text-align: center;
    margin-top: var(--space-8);
}

.cta-text {
    max-width: 50ch;
    margin-inline: auto;
    margin-bottom: var(--space-8);
}

.cta-actions {
    display: flex;
    gap: var(--space-4);
    justify-content: center;
    flex-wrap: wrap;
}

.btn--outline-light {
    border-color: rgba(255,255,255,0.4);
    color: rgba(255,255,255,0.85);
}

.btn--outline-light:hover {
    border-color: var(--color-white);
    color: var(--color-aubergine);
    background-color: var(--color-white);
}

.btn--full {
    width: 100%;
    justify-content: center;
}

.legal-address {
    font-style: normal;
    line-height: 2;
    margin-bottom: var(--space-8);
}

.legal-list {
    list-style: disc;
    padding-left: var(--space-6);
    margin-bottom: var(--space-4);
    color: var(--color-text-mid);
}

.price-teaser__text {
    max-width: 55ch;
    margin-inline: auto;
    margin-bottom: var(--space-8);
    color: var(--color-text-mid);
}

.grid-3--price-teaser {
    margin-bottom: var(--space-10);
}

.service-card--center {
    text-align: center;
}

.divider--light {
    background: linear-gradient(90deg, var(--color-champagne), rgba(255,255,255,0.3));
}

.link-on-dark,
.link-on-dark:hover {
    color: rgba(255,255,255,0.85);
}

.contact-form__title {
    font-family: var(--font-serif);
    color: var(--color-aubergine);
    margin-bottom: var(--space-6);
}

.price-section-group {
    margin-bottom: var(--space-12);
}

.price-section-heading {
    font-family: var(--font-serif);
    color: var(--color-aubergine);
    margin-bottom: var(--space-6);
    font-size: var(--fs-xl);
}

.notice-box--top {
    margin-top: var(--space-8);
}

.qualification-title {
    font-family: var(--font-serif);
    color: var(--color-aubergine);
    margin-bottom: var(--space-6);
}

.check-list {
    list-style: none;
    padding: 0;
}

.check-list__item {
    display: flex;
    gap: var(--space-3);
    align-items: flex-start;
    margin-bottom: 0.875rem;
    font-size: 0.9375rem;
    color: var(--color-text-mid);
}

.check-list__icon {
    color: var(--color-champagne);
    flex-shrink: 0;
    margin-top: 2px;
}

.service-card--full-height {
    height: 100%;
}

.service-card__title--spaced {
    margin-bottom: var(--space-5);
}

.practice-address {
    font-style: normal;
    font-size: 0.9375rem;
    color: var(--color-text-mid);
    line-height: 1.9;
}

.practice-address strong {
    color: var(--color-text-dark);
}

.practice-card__actions {
    margin-top: var(--space-6);
}

.footer-brand__address {
    font-style: normal;
}

.footer-hours {
    margin-top: var(--space-6);
}

.footer-hours__text {
    font-size: 0.8rem;
    color: rgba(255,255,255,0.65);
    line-height: 1.8;
    margin: 0;
}

/* --- Responsive --- */
@media (max-width: 1024px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .process-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .process-card::after {
        display: none;
    }

    .price-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .worlds-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    :root {
        --space-20: 3.5rem;
        --space-16: 2.5rem;
    }

    .site-nav {
        display: none;
        position: fixed;
        top: 4.5rem;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: var(--color-ivory);
        flex-direction: column;
        align-items: stretch;
        padding: var(--space-6);
        overflow-y: auto;
        z-index: 999;
    }

    .site-nav.open {
        display: flex;
    }

    .site-nav__list {
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-1);
    }

    .site-nav__link {
        padding: var(--space-3) var(--space-4);
        font-size: var(--fs-base);
    }

    .site-nav__dropdown {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: none;
        background-color: var(--color-lilac-pale);
        border-radius: var(--radius-md);
        margin-top: var(--space-2);
        padding: var(--space-2);
        display: none;
    }

    .site-nav__item--dropdown.open .site-nav__dropdown {
        display: block;
    }

    .header-cta .btn--primary {
        display: none;
    }

    .nav-toggle {
        display: flex;
    }

    .hero {
        min-height: 80vh;
    }

    .hero__title {
        font-size: clamp(2rem, 8vw, 3rem);
    }

    .grid-2,
    .grid-3,
    .grid-4,
    .worlds-grid,
    .services-grid,
    .price-grid {
        grid-template-columns: 1fr;
    }

    .split-section {
        grid-template-columns: 1fr;
        gap: var(--space-8);
    }

    .split-section--reverse {
        direction: ltr;
    }

    .contact-grid {
        grid-template-columns: 1fr;
        gap: var(--space-8);
    }

    .about-section {
        grid-template-columns: 1fr;
    }

    .about-img-badge {
        right: var(--space-4);
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: var(--space-8);
    }

    .footer-bottom {
        flex-direction: column;
        text-align: center;
    }

    .process-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .container {
        padding-inline: var(--space-4);
    }

    .hero__actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .contact-form {
        padding: var(--space-6);
    }
}



/* --- R17: Startseite optisch hochwertiger --- */
.hero__overlay {
    background:
        radial-gradient(circle at 18% 42%, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0) 34%),
        linear-gradient(135deg, rgba(44, 24, 54, 0.88) 0%, rgba(74, 44, 90, 0.74) 46%, rgba(42, 24, 52, 0.58) 100%);
}

.hero__content {
    max-width: 760px;
}

.hero__eyebrow,
.hero__title,
.hero__subtitle,
.hero__badge {
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.38);
}

.hero__eyebrow {
    color: #f0dba9;
}

.hero__title {
    text-shadow: 0 3px 24px rgba(0, 0, 0, 0.48);
}

.hero__subtitle {
    color: rgba(255,255,255,0.96);
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.48);
}

.hero .btn {
    padding: 0.95rem 2.25rem;
    font-size: 0.95rem;
    font-weight: 650;
    letter-spacing: 0.035em;
    box-shadow: 0 12px 28px rgba(0,0,0,0.18);
}

.hero .btn--champagne {
    border-color: rgba(255,255,255,0.78);
    background: linear-gradient(135deg, #d5b77b 0%, var(--color-champagne) 55%, var(--color-bronze) 100%);
    color: var(--color-white);
}

.hero .btn--champagne:hover {
    border-color: var(--color-white);
    box-shadow: 0 16px 34px rgba(0,0,0,0.26);
}

.hero .btn--ghost {
    background: rgba(255,255,255,0.18);
    border-color: rgba(255,255,255,0.58);
    color: var(--color-white);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.hero .btn--ghost:hover {
    background: rgba(255,255,255,0.28);
    border-color: var(--color-white);
}

.concern-card {
    position: relative;
    overflow: hidden;
    padding: var(--space-7, 1.75rem);
    background: linear-gradient(160deg, var(--color-white) 0%, #fffaf4 100%);
    box-shadow: 0 12px 30px rgba(74, 44, 90, 0.08);
    transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.concern-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, var(--color-champagne), var(--color-lavender));
    opacity: 0.85;
}

.concern-card:hover {
    transform: translateY(-4px);
    border-color: rgba(201, 169, 110, 0.55);
    box-shadow: 0 18px 42px rgba(74, 44, 90, 0.13);
}

.concern-card__icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    background: linear-gradient(145deg, rgba(232,216,240,0.95), rgba(250,247,242,0.95));
    border: 1px solid rgba(201,169,110,0.35);
    box-shadow: 0 8px 22px rgba(74,44,90,0.08);
    font-size: 1.35rem;
    margin-bottom: var(--space-4);
}

.services-grid--home {
    gap: var(--space-8);
}

.services-grid--home .service-card--visual {
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 0;
    box-shadow: 0 14px 34px rgba(74, 44, 90, 0.11);
    background: var(--color-white);
}

.services-grid--home .service-card--visual:hover {
    transform: translateY(-6px);
    box-shadow: 0 22px 50px rgba(74, 44, 90, 0.17);
}

.service-card__media {
    position: relative;
    overflow: hidden;
}

.service-card__media::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 52%;
    background: linear-gradient(0deg, rgba(74,44,90,0.28), rgba(74,44,90,0));
}

.service-card__media img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.services-grid--home .service-card--visual:hover .service-card__media img {
    transform: scale(1.045);
}

.service-card__body {
    padding: var(--space-6) var(--space-6) var(--space-7, 1.75rem);
    display: flex;
    flex-direction: column;
    flex: 1;
}

.services-grid--home .service-card__link {
    margin-top: auto;
}

.process-grid--refined {
    gap: var(--space-8);
}

.process-grid--refined .process-card {
    overflow: hidden;
    padding: var(--space-8) var(--space-6) var(--space-7, 1.75rem);
    background:
        linear-gradient(var(--color-white), var(--color-white)) padding-box,
        linear-gradient(145deg, rgba(201,169,110,0.75), rgba(200,168,216,0.65)) border-box;
    border: 1px solid transparent;
    box-shadow: 0 16px 38px rgba(74,44,90,0.10);
}

.process-grid--refined .process-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5px;
    background: linear-gradient(90deg, var(--color-champagne), var(--color-lavender));
}

.process-grid--refined .process-card__number {
    width: 3.35rem;
    height: 3.35rem;
    font-size: 1rem;
    margin-bottom: var(--space-3);
    background: radial-gradient(circle at 30% 20%, var(--color-lavender), var(--color-aubergine));
    box-shadow: 0 10px 24px rgba(74,44,90,0.18);
}

.process-card__label {
    margin: 0 0 var(--space-2);
    color: var(--color-champagne);
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.price-teaser {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 18% 8%, rgba(255,255,255,0.75) 0%, rgba(255,255,255,0) 36%),
        linear-gradient(145deg, var(--color-lilac-pale) 0%, var(--color-ivory) 58%, #fff9ef 100%);
    border: 1px solid rgba(201,169,110,0.25);
    box-shadow: 0 18px 48px rgba(74,44,90,0.10);
}

.price-teaser .service-card {
    border: 1px solid rgba(201,169,110,0.22);
    box-shadow: 0 10px 28px rgba(74,44,90,0.08);
}

.price-mini-card .service-card__title {
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    margin-bottom: var(--space-2);
}

.price-package-note {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: none;
    padding: var(--space-3) var(--space-6);
    margin: 0 auto var(--space-6);
    border-radius: var(--radius-full);
    background-color: rgba(255,255,255,0.72);
    border: 1px solid rgba(201,169,110,0.35);
    color: var(--color-aubergine);
    font-weight: 650;
    box-shadow: 0 8px 20px rgba(74,44,90,0.07);
}

@media (max-width: 768px) {
    .hero .btn {
        width: 100%;
        justify-content: center;
        padding-inline: var(--space-6);
    }

    .service-card__media img {
        aspect-ratio: 16 / 9;
    }

    .process-grid--refined .process-card {
        text-align: left;
    }

    .process-grid--refined .process-card__number {
        margin-left: 0;
    }

    .price-package-note {
        border-radius: var(--radius-lg);
    }
}

/* --- Accessibility --- */
:focus-visible {
    outline: 2px solid var(--color-violet);
    outline-offset: 3px;
    border-radius: var(--radius-sm);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* --- Skip Link --- */
.skip-link {
    position: absolute;
    top: -100%;
    left: var(--space-4);
    background-color: var(--color-aubergine);
    color: var(--color-white);
    padding: var(--space-3) var(--space-6);
    border-radius: var(--radius-md);
    font-size: var(--fs-sm);
    z-index: 9999;
    transition: top var(--transition);
}

.skip-link:focus {
    top: var(--space-4);
}

/* --- Utility --- */
.mt-auto { margin-top: auto; }
.mt-12 { margin-top: var(--space-12); }
.mb-0 { margin-bottom: 0; }
.text-champagne { color: var(--color-champagne); }
.text-violet { color: var(--color-violet); }
.text-aubergine { color: var(--color-aubergine); }

/* --- Startseite: Begleitungs- und Verbindungsbereiche --- */
.concerns-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
    margin-top: var(--space-12);
}

.concern-card {
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: var(--space-6);
}

.concern-card__title {
    font-family: var(--font-serif);
    font-size: var(--fs-lg);
    color: var(--color-aubergine);
    margin-bottom: var(--space-3);
}

.concern-card p {
    color: var(--color-text-light);
    font-size: var(--fs-sm);
    line-height: 1.75;
}

.bridge-section {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    gap: var(--space-12);
    align-items: center;
}

.bridge-section__content p {
    max-width: 68ch;
}

.bridge-panel {
    display: grid;
    gap: var(--space-4);
    background-color: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: var(--radius-xl);
    padding: var(--space-6);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}

.bridge-panel__item {
    background-color: rgba(255, 255, 255, 0.08);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
}

.bridge-panel__item strong {
    display: block;
    color: var(--color-lilac-light);
    font-family: var(--font-serif);
    font-size: var(--fs-xl);
    font-weight: 400;
    margin-bottom: var(--space-2);
}

.bridge-panel__item span {
    display: block;
    color: rgba(255, 255, 255, 0.82);
    line-height: 1.7;
}

.services-grid--home {
    align-items: stretch;
}

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

    .bridge-section {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .concerns-grid {
        grid-template-columns: 1fr;
    }

    .bridge-panel {
        padding: var(--space-4);
    }
}

/* --- R18: Startseite Korrekturen nach Sichtprüfung --- */
.concern-card {
    position: relative;
    overflow: hidden;
    padding: var(--space-6) var(--space-6) var(--space-7);
    background: linear-gradient(160deg, var(--color-white) 0%, #fffaf4 100%);
    border: 1px solid rgba(200, 168, 216, 0.35);
    border-radius: var(--radius-lg);
    box-shadow: 0 12px 30px rgba(74, 44, 90, 0.08);
    transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.concern-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, var(--color-champagne), var(--color-lavender));
    opacity: 0.9;
}

.concern-card:hover {
    transform: translateY(-4px);
    border-color: rgba(201, 169, 110, 0.55);
    box-shadow: 0 18px 42px rgba(74, 44, 90, 0.13);
}

.concern-card__head {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.concern-card__icon {
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    background: linear-gradient(145deg, rgba(232,216,240,0.95), rgba(250,247,242,0.95));
    border: 1px solid rgba(201,169,110,0.35);
    box-shadow: 0 8px 22px rgba(74,44,90,0.08);
    font-size: 1.25rem;
    margin: 0;
}

.concern-card__title {
    margin: 0;
    line-height: 1.25;
}

.services-grid--main-offers {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-8);
    max-width: 1050px;
    margin: var(--space-14, 4rem) auto 0;
}

.services-grid--main-offers .service-card__media img {
    aspect-ratio: 16 / 8.5;
}

.services-grid--main-offers .service-card__body {
    min-height: 280px;
}

.process-grid--visual {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-8);
    margin-top: var(--space-14, 4rem);
}

.process-grid--visual .process-card {
    min-height: 520px;
    padding: 0;
    overflow: hidden;
    text-align: left;
    border-radius: 2rem;
    border: 1px solid rgba(255,255,255,0.14);
    box-shadow: 0 22px 56px rgba(74,44,90,0.18);
    background: #201528;
    isolation: isolate;
}

.process-grid--visual .process-card::after,
.process-grid--visual .process-card::before {
    display: none;
}

.process-card__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2;
    transform: scale(1.02);
    transition: transform 0.55s ease;
}

.process-grid--visual .process-card:hover .process-card__image {
    transform: scale(1.07);
}

.process-card__shade {
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(circle at 22% 18%, rgba(255,255,255,0.20) 0%, rgba(255,255,255,0) 34%),
        linear-gradient(180deg, rgba(26,18,30,0.26) 0%, rgba(26,18,30,0.72) 48%, rgba(21,12,24,0.92) 100%);
}

.process-card__content {
    min-height: 520px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: var(--space-7);
    color: var(--color-white);
}

.process-card__topline {
    position: absolute;
    inset: var(--space-6) var(--space-6) auto var(--space-6);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
}

.process-card__icon {
    width: 4.25rem;
    height: 4.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 1.25rem;
    border: 1px solid rgba(255,255,255,0.46);
    background: rgba(255,255,255,0.14);
    box-shadow: 0 12px 32px rgba(0,0,0,0.18);
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
    font-size: 1.6rem;
}

.process-grid--visual .process-card__number {
    width: 3.2rem;
    height: 3.2rem;
    margin: 0;
    border-radius: 1rem;
    background: linear-gradient(145deg, rgba(200,168,216,0.94), rgba(112,70,128,0.94));
    color: var(--color-white);
    box-shadow: 0 10px 28px rgba(0,0,0,0.22);
}

.process-grid--visual .process-card__label {
    color: var(--color-lilac-light);
    text-shadow: 0 2px 12px rgba(0,0,0,0.45);
}

.process-grid--visual .process-card__title {
    color: var(--color-white);
    font-size: clamp(1.65rem, 2vw, 2.15rem);
    margin-bottom: var(--space-4);
    text-shadow: 0 3px 18px rgba(0,0,0,0.45);
}

.process-grid--visual .process-card__text {
    color: rgba(255,255,255,0.88);
    font-size: 0.98rem;
    line-height: 1.75;
    text-shadow: 0 2px 12px rgba(0,0,0,0.38);
}

.process-card__list {
    display: grid;
    gap: var(--space-2);
    margin: var(--space-5) 0 0;
    padding: var(--space-4) var(--space-5);
    list-style: none;
    border-radius: 1.25rem;
    background: rgba(20, 12, 23, 0.58);
    border: 1px solid rgba(255,255,255,0.16);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.process-card__list li {
    color: rgba(255,255,255,0.90);
    font-size: 0.9rem;
    line-height: 1.45;
    padding-left: 1.25rem;
    position: relative;
}

.process-card__list li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--color-champagne);
}

@media (max-width: 1180px) {
    .process-grid--visual {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .services-grid--main-offers,
    .process-grid--visual {
        grid-template-columns: 1fr;
    }

    .services-grid--main-offers .service-card__body {
        min-height: auto;
    }

    .process-grid--visual .process-card,
    .process-card__content {
        min-height: 460px;
    }

    .process-card__content {
        padding: var(--space-6);
    }
}

/* --- R19: Startseite – Korrektur Begleitungskarten & Ablaufkarten --- */
#begleitung .concerns-grid {
    gap: clamp(1.15rem, 2vw, 1.75rem);
    margin-top: clamp(2.5rem, 4vw, 4rem);
}

#begleitung .concern-card {
    padding: clamp(1.35rem, 2.2vw, 1.9rem) clamp(1.45rem, 2.4vw, 2.05rem) clamp(1.45rem, 2.5vw, 2.1rem);
    border-radius: 1.15rem;
    background: linear-gradient(155deg, #ffffff 0%, #fffaf3 100%);
    border: 1px solid rgba(200, 168, 216, 0.42);
    box-shadow: 0 14px 34px rgba(74, 44, 90, 0.09);
}

#begleitung .concern-card::before {
    width: 5px;
}

#begleitung .concern-card__head {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin: 0 0 0.8rem;
}

#begleitung .concern-card__icon {
    width: 2.35rem;
    height: 2.35rem;
    flex: 0 0 2.35rem;
    margin: 0;
    font-size: 1.05rem;
    border-radius: 0.9rem;
}

#begleitung .concern-card__title {
    margin: 0;
    font-size: clamp(1rem, 1.4vw, 1.18rem);
    line-height: 1.28;
}

#begleitung .concern-card p {
    margin: 0;
    padding-left: 0;
    font-size: 0.94rem;
    line-height: 1.72;
}

.process-grid--visual {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1.25rem, 2.4vw, 2rem);
    margin-top: clamp(3rem, 5vw, 4.5rem);
}

.process-grid--visual .process-card {
    position: relative;
    min-height: auto;
    padding: 0;
    overflow: hidden;
    text-align: left;
    border-radius: 1.55rem;
    border: 1px solid rgba(200, 168, 216, 0.42);
    background:
        radial-gradient(circle at 15% 8%, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0) 24%),
        linear-gradient(145deg, rgba(255,255,255,0.96) 0%, rgba(250,247,242,0.96) 48%, rgba(242,230,248,0.88) 100%);
    box-shadow: 0 18px 44px rgba(74, 44, 90, 0.12);
    isolation: isolate;
}

.process-grid--visual .process-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(circle at 92% 10%, rgba(200,168,216,0.34) 0 0.72rem, rgba(200,168,216,0) 0.76rem),
        radial-gradient(circle at 82% 22%, rgba(201,169,110,0.22) 0 1.1rem, rgba(201,169,110,0) 1.15rem),
        radial-gradient(circle at 12% 88%, rgba(112,70,128,0.10) 0 2.6rem, rgba(112,70,128,0) 2.7rem);
    opacity: 1;
}

.process-grid--visual .process-card::after {
    content: "";
    position: absolute;
    inset: auto 1.35rem 0 1.35rem;
    height: 4px;
    border-radius: 999px 999px 0 0;
    background: linear-gradient(90deg, var(--color-champagne), var(--color-lavender));
    opacity: 0.85;
}

.process-card__image,
.process-card__shade,
.process-card__icon {
    display: none !important;
}

.process-card__content {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: clamp(1.55rem, 2.5vw, 2.2rem);
    color: var(--color-text);
}

.process-card__topline {
    position: static;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: clamp(1.2rem, 2vw, 1.65rem);
}

.process-grid--visual .process-card__number {
    width: 3.05rem;
    height: 3.05rem;
    margin: 0;
    border-radius: 50%;
    background: linear-gradient(145deg, var(--color-aubergine), var(--color-violet));
    color: var(--color-white);
    box-shadow: 0 12px 28px rgba(74,44,90,0.20);
    font-family: var(--font-serif);
}

.process-grid--visual .process-card__label {
    color: var(--color-champagne-dark, #a98242);
    text-shadow: none;
    margin: 0;
    letter-spacing: 0.16em;
    font-size: 0.72rem;
    line-height: 1;
}

.process-grid--visual .process-card__title {
    color: var(--color-aubergine);
    font-size: clamp(1.45rem, 1.9vw, 1.9rem);
    margin-bottom: 1rem;
    text-shadow: none;
}

.process-grid--visual .process-card__text {
    color: var(--color-text-light);
    font-size: 0.96rem;
    line-height: 1.72;
    text-shadow: none;
}

.process-card__list {
    display: grid;
    gap: 0.55rem;
    margin: auto 0 0;
    padding: 1rem 1.05rem;
    list-style: none;
    border-radius: 1.05rem;
    background: rgba(255,255,255,0.74);
    border: 1px solid rgba(200,168,216,0.34);
    box-shadow: 0 10px 24px rgba(74,44,90,0.07);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.process-card__list li {
    color: var(--color-text);
    font-size: 0.88rem;
    line-height: 1.45;
    padding-left: 1.05rem;
    position: relative;
}

.process-card__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.62em;
    width: 0.35rem;
    height: 0.35rem;
    border-radius: 50%;
    background: var(--color-champagne);
}

.process-grid--visual .process-card:hover {
    transform: translateY(-5px);
    border-color: rgba(201,169,110,0.5);
    box-shadow: 0 24px 52px rgba(74,44,90,0.16);
}

@media (max-width: 1180px) {
    .process-grid--visual {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    #begleitung .concern-card {
        padding: 1.35rem 1.35rem 1.45rem;
    }

    #begleitung .concern-card__head {
        align-items: flex-start;
    }

    .process-grid--visual {
        grid-template-columns: 1fr;
    }

    .process-grid--visual .process-card,
    .process-card__content {
        min-height: auto;
    }
}


/* --- R21: Header responsive --- */
@media (max-width: 1180px) {
    .site-nav {
        display: none;
        position: fixed;
        top: 78px;
        left: 0;
        right: 0;
        bottom: 0;
        align-items: stretch;
        justify-content: flex-start;
        padding: var(--space-6);
        background:
            radial-gradient(circle at 88% 8%, rgba(201, 169, 110, 0.10), transparent 30%),
            linear-gradient(180deg, rgba(250, 247, 242, 0.98), rgba(232, 216, 240, 0.98));
        border-top: 1px solid rgba(221, 208, 232, 0.88);
        overflow-y: auto;
        z-index: 999;
    }

    .site-nav.open {
        display: flex;
    }

    .site-nav__list {
        width: min(560px, 100%);
        margin: 0 auto;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }

    .site-nav__link {
        padding: 14px 16px;
        border-radius: 18px;
        background: rgba(255, 255, 255, 0.72);
        border: 1px solid rgba(221, 208, 232, 0.72);
        font-size: 1rem;
    }

    .site-nav__dropdown {
        position: static;
        display: none;
        width: auto;
        min-width: 0;
        max-width: none;
        padding: 12px;
        margin: 8px 0 2px;
        border-radius: 20px;
        opacity: 1;
        visibility: visible;
        transform: none !important;
        pointer-events: auto;
        box-shadow: 0 12px 28px rgba(74, 44, 90, 0.10);
    }

    .site-nav__item--dropdown.open .site-nav__dropdown {
        display: grid;
    }

    .site-nav__dropdown--compact,
    .site-nav__dropdown--wide {
        grid-template-columns: 1fr;
        min-width: 0;
        width: auto;
        gap: 10px;
    }

    .site-nav__dropdown-group {
        gap: 8px;
    }

    .site-nav__dropdown-title {
        margin-top: 6px;
    }

    .header-cta__button {
        display: none !important;
    }

    .nav-toggle {
        display: inline-flex;
    }
}

@media (max-width: 640px) {
    .header-inner {
        min-height: 70px;
    }

    .site-logo {
        min-width: 0;
        gap: 9px;
    }

    .site-logo__mark {
        width: 42px;
        height: 42px;
    }

    .site-logo__name {
        font-size: 1rem;
    }

    .site-logo__sub {
        font-size: 0.56rem;
        letter-spacing: 0.11em;
    }

    .site-nav {
        top: 70px;
        padding: var(--space-4);
    }

    .nav-toggle {
        min-height: 40px;
        padding: 8px 11px;
    }

    .nav-toggle-text {
        display: none;
    }
}


/* --- R22: Header Feinschliff / Dropdown-Stabilität --- */
.site-header .container {
    max-width: min(1380px, 100%);
    padding-inline: clamp(1rem, 2.2vw, 2rem);
}

.header-inner {
    gap: 10px;
}

.site-logo {
    min-width: 230px;
    max-width: 275px;
    flex: 0 1 255px;
    overflow: visible;
}

.site-logo__mark {
    width: 46px;
    height: 46px;
}

.site-logo__name {
    font-size: clamp(0.98rem, 1.05vw, 1.12rem);
    line-height: 1.05;
}

.site-logo__sub {
    font-size: 0.60rem;
    letter-spacing: 0.115em;
}

.site-nav__list {
    gap: 4px;
}

.site-nav__link {
    padding: 9px 7px;
    border: 1px solid transparent;
    background: transparent;
    color: rgba(74, 44, 90, 0.82);
    transition:
        color var(--transition),
        background var(--transition),
        border-color var(--transition),
        box-shadow var(--transition),
        transform var(--transition);
}

.site-nav__link:hover,
.site-nav__link:focus-visible,
.site-nav__link.active,
.site-nav__item--dropdown:hover > .site-nav__link,
.site-nav__item--dropdown:focus-within > .site-nav__link {
    color: var(--color-aubergine);
    background:
        linear-gradient(135deg, rgba(255,255,255,0.92), rgba(250,247,242,0.82));
    border-color: rgba(201, 169, 110, 0.28);
    box-shadow: 0 8px 22px rgba(74, 44, 90, 0.08);
    transform: translateY(-1px);
}

.site-nav__item--dropdown::after {
    content: "";
    position: absolute;
    top: 100%;
    left: -10px;
    right: -10px;
    height: 18px;
    pointer-events: auto;
}

.site-nav__dropdown {
    top: calc(100% + 8px);
}

.site-nav__dropdown--wide {
    width: min(820px, calc(100vw - 36px));
    max-width: min(820px, calc(100vw - 36px));
    min-width: 700px;
}

.header-cta {
    gap: 10px;
}

.header-cta__button {
    min-width: 96px;
    padding: 0 18px !important;
    font-size: 0.82rem !important;
}

@media (min-width: 1181px) and (max-width: 1300px) {
    .site-header .container {
        padding-inline: 1rem;
    }

    .site-logo {
        min-width: 212px;
        flex-basis: 224px;
    }

    .site-logo__mark {
        width: 42px;
        height: 42px;
    }

    .site-logo__name {
        font-size: 0.98rem;
    }

    .site-logo__sub {
        font-size: 0.56rem;
        letter-spacing: 0.095em;
    }

    .site-nav__link {
        padding-inline: 6px;
        font-size: 0.80rem;
    }

    .site-nav__list {
        gap: 3px;
    }

    .header-cta__button {
        min-width: 88px;
        padding-inline: 15px !important;
        font-size: 0.80rem !important;
    }
}

@media (max-width: 1180px) {
    .site-logo {
        max-width: none;
    }

    .site-nav__item--dropdown::after {
        display: none;
    }
}


/* --- R23: Header Abstand & mobile Navigation sichtbar --- */
@media (min-width: 1181px) {
    .site-header .container {
        max-width: min(1340px, 100%);
        padding-inline: clamp(1.25rem, 2.6vw, 2.4rem);
    }

    .header-inner {
        gap: 18px;
    }

    .site-logo {
        flex: 0 0 auto;
        min-width: 286px;
        max-width: none;
    }

    .site-nav__list {
        gap: 9px;
    }

    .site-nav__link {
        padding: 10px 13px;
    }

    .site-nav__dropdown {
        top: calc(100% + 9px);
    }

    .site-nav__item--dropdown::after {
        left: -14px;
        right: -14px;
        height: 22px;
    }
}

@media (min-width: 1181px) and (max-width: 1320px) {
    .site-header .container {
        padding-inline: 1.1rem;
    }

    .header-inner {
        gap: 12px;
    }

    .site-logo {
        min-width: 258px;
    }

    .site-logo__mark {
        width: 42px;
        height: 42px;
    }

    .site-logo__name {
        font-size: 1rem;
    }

    .site-logo__sub {
        font-size: 0.56rem;
        letter-spacing: 0.095em;
    }

    .site-nav__list {
        gap: 6px;
    }

    .site-nav__link {
        padding: 9px 10px;
        font-size: 0.82rem;
    }

    .header-cta__button {
        min-width: 82px;
        padding-inline: 14px !important;
    }
}

@media (max-width: 1180px) {
    .site-header {
        z-index: 3000;
    }

    .site-nav {
        position: fixed !important;
        display: none !important;
        top: 78px !important;
        left: 0 !important;
        right: 0 !important;
        bottom: auto !important;
        width: 100vw !important;
        height: calc(100dvh - 78px) !important;
        max-height: calc(100dvh - 78px) !important;
        padding: 22px clamp(18px, 4vw, 34px) 34px !important;
        overflow-y: auto !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        background:
            radial-gradient(circle at 88% 8%, rgba(201, 169, 110, 0.12), transparent 32%),
            linear-gradient(180deg, rgba(250, 247, 242, 0.99), rgba(232, 216, 240, 0.99)) !important;
        border-top: 1px solid rgba(221, 208, 232, 0.9) !important;
        box-shadow: 0 28px 58px rgba(74, 44, 90, 0.16) !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        pointer-events: auto !important;
        z-index: 2990 !important;
    }

    .site-nav.open {
        display: block !important;
    }

    .site-nav__list {
        width: min(600px, 100%) !important;
        margin: 0 auto !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
    }

    .site-nav__item {
        width: 100%;
    }

    .site-nav__link {
        display: flex !important;
        width: 100% !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding: 15px 17px !important;
        border-radius: 18px !important;
        background: rgba(255, 255, 255, 0.76) !important;
        border: 1px solid rgba(221, 208, 232, 0.78) !important;
        box-shadow: 0 10px 24px rgba(74, 44, 90, 0.07) !important;
        font-size: 1rem !important;
    }

    .site-nav__dropdown {
        position: static !important;
        display: none !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 10px 0 4px !important;
        padding: 13px !important;
        border-radius: 20px !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        pointer-events: auto !important;
        box-shadow: 0 14px 30px rgba(74, 44, 90, 0.10) !important;
    }

    .site-nav__item--dropdown.open .site-nav__dropdown {
        display: grid !important;
    }

    .site-nav__dropdown--compact,
    .site-nav__dropdown--wide {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .site-nav__dropdown-group {
        gap: 8px !important;
    }
}

@media (max-width: 640px) {
    .site-nav {
        top: 70px !important;
        height: calc(100dvh - 70px) !important;
        max-height: calc(100dvh - 70px) !important;
        padding: 18px 16px 28px !important;
    }
}

/* ============================================================
   Footer & Floating Contact – Brain & Soul Solutions
   ============================================================ */
.footer {
    padding: 76px 0 30px;
    color: var(--color-white);
    background:
        radial-gradient(circle at 12% 12%, rgba(201, 169, 110, 0.14), transparent 28%),
        linear-gradient(135deg, #2f1b3b, var(--color-aubergine));
}

.footer a {
    color: var(--color-white);
}

.footer a:hover {
    color: #ead8a8;
}

.footer h3 {
    margin-bottom: 16px;
    color: var(--color-white);
    font-size: 1.22rem;
}

.footer .muted {
    color: rgba(255, 255, 255, 0.72);
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.35fr 0.9fr 0.85fr 1.05fr;
    gap: 38px;
    align-items: start;
}

.footer-brand {
    max-width: 380px;
}

.footer-logo {
    width: min(290px, 100%);
    height: auto;
    margin-bottom: 22px;
    filter: brightness(0) invert(1);
    opacity: 0.94;
}

.footer-brand a:hover .footer-logo {
    opacity: 1;
    filter: brightness(0) invert(1) drop-shadow(0 8px 24px rgba(255, 255, 255, 0.10));
}

.footer-brand .muted {
    max-width: 40ch;
    margin-bottom: 18px;
    font-size: 0.94rem;
    line-height: 1.75;
}

.footer-address-block {
    margin-bottom: 24px;
}

.footer-subheading {
    margin-top: 26px;
}

.footer-contact-lines {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-top: 0;
    font-size: 0.94rem;
    font-weight: 700;
}

.footer-contact-lines--stacked {
    line-height: 1.55;
}

.footer-contact-lines a {
    width: fit-content;
    color: #ead8a8;
}

.footer-contact-lines a:hover {
    color: var(--color-white);
}

.footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 18px;
}

.social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    color: var(--color-white);
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    transition: transform 0.22s ease, border-color 0.22s ease, background 0.22s ease, color 0.22s ease;
}

.social-link svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.social-link:hover {
    color: #ead8a8;
    background: rgba(255, 255, 255, 0.13);
    border-color: rgba(201, 169, 110, 0.46);
    transform: translateY(-2px);
}

.footer-link-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.footer-link-list li {
    line-height: 1.35;
}

.footer-link-list a {
    color: rgba(255, 255, 255, 0.74);
    font-size: 0.94rem;
}

.footer-link-list a:hover {
    color: #ead8a8;
}

.footer-link-list--compact {
    gap: 7px;
}

.footer-link-list--compact a {
    font-size: 0.9rem;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 46px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.footer-bottom p {
    margin: 0;
    font-size: 0.86rem;
}

.footer-bottom a {
    font-size: 0.86rem;
    color: rgba(255, 255, 255, 0.72);
}

.footer-bottom a:hover {
    color: #ead8a8;
}

.floating-contact {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 120;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.floating-contact-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    color: var(--color-white);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.14), transparent 42%),
        linear-gradient(135deg, var(--color-aubergine), var(--color-violet));
    border: 2px solid rgba(255, 255, 255, 0.86);
    border-radius: 999px;
    box-shadow:
        0 16px 38px rgba(51, 34, 56, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.18);
    transition:
        transform 0.22s ease,
        border-color 0.22s ease,
        box-shadow 0.22s ease,
        background 0.22s ease,
        color 0.22s ease;
}

.floating-contact-btn svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
}

.floating-contact-btn:hover {
    color: #ead8a8;
    border-color: var(--color-white);
    transform: translateY(-2px);
    box-shadow:
        0 20px 46px rgba(51, 34, 56, 0.34),
        0 0 0 7px rgba(201, 169, 110, 0.13),
        inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.floating-contact-btn:focus-visible {
    outline: 3px solid rgba(201, 169, 110, 0.52);
    outline-offset: 4px;
}

.floating-contact-call {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.16), transparent 42%),
        linear-gradient(135deg, var(--color-aubergine), var(--color-violet));
}

.floating-contact-mail {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.16), transparent 42%),
        linear-gradient(135deg, var(--color-aubergine), var(--color-violet));
}

.floating-contact-whatsapp {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.18), transparent 42%),
        linear-gradient(135deg, #25D366, #128C7E);
}

.floating-contact-whatsapp:hover {
    color: var(--color-white);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.22), transparent 42%),
        linear-gradient(135deg, #2EE374, #0F7F72);
    border-color: var(--color-white);
}

@media (max-width: 980px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 34px 28px;
    }

    .footer-brand {
        max-width: none;
    }
}

@media (max-width: 640px) {
    .footer {
        padding: 58px 0 28px;
        text-align: center;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 30px;
        justify-items: center;
    }

    .footer-brand,
    .footer-brand .muted {
        max-width: none;
        margin-left: auto;
        margin-right: auto;
    }

    .footer-logo {
        display: block;
        width: min(250px, 100%);
        margin-left: auto;
        margin-right: auto;
    }

    .footer-contact-lines,
    .footer-link-list,
    .footer-social {
        align-items: center;
        justify-content: center;
    }

    .footer-contact-lines a {
        width: auto;
    }

    .footer-bottom {
        align-items: center;
        justify-content: center;
        flex-direction: column;
        margin-top: 36px;
        text-align: center;
    }
}

@media (max-width: 520px) {
    .floating-contact {
        right: 14px;
        bottom: 14px;
        gap: 10px;
    }

    .floating-contact-btn {
        width: 52px;
        height: 52px;
        border-width: 2px;
    }

    .floating-contact-btn svg {
        width: 22px;
        height: 22px;
    }
}

/* ==========================================================
   Unterseiten – Hero, Kartenabstände, CTA-Band, FAQ-Veredelung
   ========================================================== */

/* Hero der Unterseiten */
.page-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 18%, rgba(255,255,255,0.10), transparent 16%),
        radial-gradient(circle at 84% 20%, rgba(201, 169, 110, 0.14), transparent 20%),
        radial-gradient(circle at 78% 82%, rgba(255,255,255,0.08), transparent 18%),
        linear-gradient(135deg, #5b3574 0%, #6e4689 100%);
}

.page-hero::before,
.page-hero::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
}

.page-hero::before {
    top: -42px;
    left: -18px;
    width: 210px;
    height: 210px;
    border: 1px solid rgba(255,255,255,0.14);
    box-shadow:
        inset 0 0 0 26px rgba(255,255,255,0.03),
        inset 0 0 0 54px rgba(255,255,255,0.025);
}

.page-hero::after {
    right: 38px;
    bottom: 28px;
    width: 160px;
    height: 160px;
    opacity: .42;
    background-image: radial-gradient(rgba(255,255,255,0.26) 1.2px, transparent 1.2px);
    background-size: 16px 16px;
    background-position: 0 0;
}

.page-hero .container {
    position: relative;
    z-index: 1;
}

.page-hero__label {
    display: block;
    max-width: 46ch;
    margin: 0 auto var(--space-4);
    text-align: center;
    line-height: 1.6;
}

.page-hero__subtitle {
    line-height: 1.75;
}

/* Mehr Luft zwischen Einleitung/Lead und Kartenbereichen */
.text-center + .grid-2,
.text-center + .grid-3,
.text-center + .grid-4,
.text-center + .faq-list {
    margin-top: var(--space-4);
}

.section-subtitle {
    margin-bottom: var(--space-14, 4rem);
}

/* Unterseiten-CTA vor dem Footer heller absetzen */
main > section.section--aubergine:last-of-type {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 14% 20%, rgba(255,255,255,0.26), transparent 22%),
        radial-gradient(circle at 86% 18%, rgba(201,169,110,0.18), transparent 20%),
        linear-gradient(135deg, #decfef 0%, #cfbce4 100%);
}

main > section.section--aubergine:last-of-type::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 76% 72%, rgba(91,53,116,0.08), transparent 20%),
        radial-gradient(circle at 22% 88%, rgba(91,53,116,0.06), transparent 18%);
    pointer-events: none;
}

main > section.section--aubergine:last-of-type .container {
    position: relative;
    z-index: 1;
}

main > section.section--aubergine:last-of-type h2,
main > section.section--aubergine:last-of-type h3,
main > section.section--aubergine:last-of-type p,
main > section.section--aubergine:last-of-type .cta-text {
    color: var(--color-aubergine);
}

main > section.section--aubergine:last-of-type .btn--ghost {
    color: var(--color-aubergine);
    border-color: rgba(91, 53, 116, 0.28);
    background: rgba(255,255,255,0.55);
}

main > section.section--aubergine:last-of-type .btn--ghost:hover {
    color: var(--color-white);
    border-color: var(--color-aubergine);
    background: var(--color-aubergine);
}

/* FAQ hochwertiger */
.faq-list {
    max-width: 900px;
}

.faq-item {
    margin-bottom: 14px;
    overflow: hidden;
    background: rgba(255,255,255,0.76);
    border: 1px solid rgba(107, 78, 127, 0.12);
    border-radius: 22px;
    box-shadow: 0 14px 36px rgba(51, 34, 56, 0.06);
}

.faq-item,
.faq-item:first-child {
    border-top: 1px solid rgba(107, 78, 127, 0.12);
}

.faq-question {
    padding: 22px 26px;
    font-size: 1.03rem;
}

.faq-question:hover {
    color: var(--color-aubergine);
}

.faq-icon {
    position: relative;
    width: 2.1rem;
    height: 2.1rem;
    border: 1px solid rgba(107, 78, 127, 0.18);
    background: linear-gradient(135deg, rgba(255,255,255,0.92), rgba(237,228,244,0.88));
    box-shadow: 0 10px 24px rgba(51,34,56,0.07);
    color: transparent;
    font-size: 0;
}

.faq-icon::before,
.faq-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 2px;
    border-radius: 999px;
    background: var(--color-aubergine);
    transform: translate(-50%, -50%);
    transition: transform .24s ease, opacity .2s ease, background .2s ease;
}

.faq-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.faq-item.open .faq-icon {
    background: linear-gradient(135deg, rgba(91,53,116,0.12), rgba(201,169,110,0.18));
    border-color: rgba(91,53,116,0.18);
    transform: none;
}

.faq-item.open .faq-icon::after {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(90deg) scaleX(.5);
}

.faq-answer {
    padding: 0 26px 24px;
    color: var(--color-text);
    max-width: 76ch;
}

@media (max-width: 900px) {
    .page-hero::before {
        width: 170px;
        height: 170px;
        top: -34px;
        left: -24px;
    }

    .page-hero::after {
        width: 120px;
        height: 120px;
        right: 18px;
        bottom: 18px;
    }
}

@media (max-width: 768px) {
    .page-hero {
        padding-block: var(--space-14, 4rem);
    }

    .page-hero__label {
        max-width: 28ch;
    }

    .section-subtitle {
        margin-bottom: var(--space-12);
    }

    .faq-question {
        padding: 18px 20px;
        font-size: 1rem;
    }

    .faq-answer {
        padding: 0 20px 20px;
    }
}


/* ==========================================================
   Unterseiten – Abstandskorrektur Kartenbereiche & CTA-Buttons
   ========================================================== */

/* Deutlich mehr Luft zwischen zentriertem Lead/Text und direkt folgenden Karten */
.text-center + .grid-2,
.text-center + .grid-3,
.text-center + .grid-4 {
    margin-top: var(--space-12) !important;
}

/* Wenn innerhalb eines Header-Blocks noch ein Subtitle steht, Abstand zu Karten ebenfalls größer */
.section-subtitle + .grid-2,
.section-subtitle + .grid-3,
.section-subtitle + .grid-4 {
    margin-top: var(--space-12) !important;
}

/* FAQ darf etwas kompakter bleiben als Kartenbereiche */
.text-center + .faq-list {
    margin-top: var(--space-8) !important;
}

/* Secondary-/Outline-Buttons im nun helleren CTA-Bereich unten dunkler darstellen */
main > section.section--aubergine:last-of-type .btn--outline-light,
main > section.section--aubergine:last-of-type .btn--outline,
main > section.section--aubergine:last-of-type .btn--secondary {
    color: var(--color-aubergine) !important;
    border-color: rgba(91, 53, 116, 0.42) !important;
    background: rgba(255, 255, 255, 0.38) !important;
}

main > section.section--aubergine:last-of-type .btn--outline-light:hover,
main > section.section--aubergine:last-of-type .btn--outline:hover,
main > section.section--aubergine:last-of-type .btn--secondary:hover {
    color: var(--color-white) !important;
    border-color: var(--color-aubergine) !important;
    background: var(--color-aubergine) !important;
}

@media (max-width: 768px) {
    .text-center + .grid-2,
    .text-center + .grid-3,
    .text-center + .grid-4,
    .section-subtitle + .grid-2,
    .section-subtitle + .grid-3,
    .section-subtitle + .grid-4 {
        margin-top: var(--space-10) !important;
    }
}


/* ==========================================================
   Infusionsdetailseiten – Vorher-beachten-Karten & Preisbox Fix
   ========================================================== */

/* Gezielt für den Sicherheits-/Vorher-beachten-Bereich der Infusionsseiten */
section[aria-labelledby="safety-title"] .service-card,
.section--aubergine[aria-labelledby="safety-title"] .service-card {
    background:
        radial-gradient(circle at 92% 12%, rgba(201, 169, 110, 0.13), transparent 28%),
        linear-gradient(135deg, rgba(255,255,255,0.98), rgba(250,247,252,0.96)) !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    box-shadow:
        0 20px 52px rgba(25, 13, 34, 0.22),
        inset 0 1px 0 rgba(255,255,255,0.82) !important;
}

section[aria-labelledby="safety-title"] .service-card,
section[aria-labelledby="safety-title"] .service-card *,
.section--aubergine[aria-labelledby="safety-title"] .service-card,
.section--aubergine[aria-labelledby="safety-title"] .service-card * {
    color: var(--color-text-mid) !important;
}

section[aria-labelledby="safety-title"] .service-card__title,
section[aria-labelledby="safety-title"] .service-card h3,
.section--aubergine[aria-labelledby="safety-title"] .service-card__title,
.section--aubergine[aria-labelledby="safety-title"] .service-card h3 {
    color: var(--color-aubergine) !important;
}

section[aria-labelledby="safety-title"] .service-card p,
section[aria-labelledby="safety-title"] .service-card li,
.section--aubergine[aria-labelledby="safety-title"] .service-card p,
.section--aubergine[aria-labelledby="safety-title"] .service-card li {
    color: var(--color-text-mid) !important;
}

section[aria-labelledby="safety-title"] .check-list li::before,
.section--aubergine[aria-labelledby="safety-title"] .check-list li::before {
    color: var(--color-champagne) !important;
}

/* Einzelne Preisboxen auf Infusionsseiten mittig und breiter setzen */
.price-grid {
    display: flex;
    justify-content: center;
}

.price-grid .price-card {
    width: min(760px, 100%);
}

.price-grid .price-card--featured {
    margin-left: auto;
    margin-right: auto;
}

.price-grid .price-card__items li {
    gap: var(--space-6);
}

@media (min-width: 761px) {
    .price-grid .price-card--featured {
        padding: var(--space-7) var(--space-8);
    }
}


/* ==========================================================
   Infusionsdetailseiten – expliziter Fix Vorher-beachten-Karten
   ========================================================== */

.infusion-safety-section .infusion-safety-card {
    min-height: 0 !important;
    background:
        radial-gradient(circle at 92% 10%, rgba(201, 169, 110, .16), transparent 26%),
        linear-gradient(135deg, #ffffff 0%, #fbf7fe 100%) !important;
    border: 1px solid rgba(255, 255, 255, .42) !important;
    box-shadow:
        0 22px 54px rgba(25, 13, 34, .25),
        inset 0 1px 0 rgba(255, 255, 255, .9) !important;
    padding: var(--space-7) !important;
}

.infusion-safety-section .infusion-safety-card,
.infusion-safety-section .infusion-safety-card p,
.infusion-safety-section .infusion-safety-card li,
.infusion-safety-section .infusion-safety-card span,
.infusion-safety-section .infusion-safety-card .service-card__text {
    color: #47314f !important;
}

.infusion-safety-section .infusion-safety-card h3,
.infusion-safety-section .infusion-safety-card .service-card__title {
    color: var(--color-aubergine) !important;
    margin-bottom: var(--space-4) !important;
}

.infusion-safety-section .infusion-safety-card .check-list {
    margin-top: var(--space-4) !important;
}

.infusion-safety-section .infusion-safety-card .check-list li {
    color: #47314f !important;
}

.infusion-safety-section .infusion-safety-card .check-list li::before {
    color: var(--color-champagne) !important;
}

.infusion-safety-section .grid-2 {
    align-items: stretch;
}

/* Preisbox auf Infusionsdetailseiten final mittig */
.price-grid {
    display: flex !important;
    justify-content: center !important;
    align-items: stretch;
}

.price-grid .price-card {
    width: min(760px, 100%) !important;
    margin-inline: auto !important;
}


/* ==========================================================
   Infusionsdetailseiten – Vorher-beachten-Karten sauber final
   ========================================================== */

/* Feste Werte, keine undefinierten Space-Variablen */
.infusion-safety-section .grid-2 {
    gap: 48px !important;
    align-items: stretch !important;
}

.infusion-safety-section .infusion-safety-card {
    min-height: 360px !important;
    padding: 38px 42px 40px !important;
    border-radius: 26px !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(201, 169, 110, .16), transparent 24%),
        radial-gradient(circle at 8% 92%, rgba(91, 53, 116, .07), transparent 28%),
        linear-gradient(135deg, #ffffff 0%, #fbf7fe 100%) !important;
    border: 1px solid rgba(255, 255, 255, .52) !important;
    box-shadow:
        0 24px 58px rgba(25, 13, 34, .24),
        inset 0 1px 0 rgba(255, 255, 255, .95) !important;
    overflow: hidden !important;
}

/* Gleiche Typografie in beiden Karten */
.infusion-safety-section .infusion-safety-card,
.infusion-safety-section .infusion-safety-card p,
.infusion-safety-section .infusion-safety-card li,
.infusion-safety-section .infusion-safety-card .service-card__text {
    color: #47314f !important;
    font-size: 1rem !important;
    line-height: 1.78 !important;
    font-weight: 400 !important;
}

.infusion-safety-section .infusion-safety-card h3,
.infusion-safety-section .infusion-safety-card .service-card__title {
    margin: 0 0 22px !important;
    color: var(--color-aubergine) !important;
    font-size: 1.38rem !important;
    line-height: 1.25 !important;
    font-weight: 500 !important;
}

.infusion-safety-section .infusion-safety-card p {
    margin: 0 0 18px !important;
}

.infusion-safety-section .infusion-safety-card p:last-child {
    margin-bottom: 0 !important;
}

.infusion-safety-section .infusion-safety-card .check-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 13px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.infusion-safety-section .infusion-safety-card .check-list li {
    position: relative !important;
    padding-left: 24px !important;
    margin: 0 !important;
}

.infusion-safety-section .infusion-safety-card .check-list li::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: .72em !important;
    width: 7px !important;
    height: 7px !important;
    border-radius: 999px !important;
    background: var(--color-champagne) !important;
}

/* Mobile: weiterhin luftig, aber nicht riesig */
@media (max-width: 768px) {
    .infusion-safety-section .grid-2 {
        gap: 24px !important;
    }

    .infusion-safety-section .infusion-safety-card {
        min-height: 0 !important;
        padding: 28px 24px 30px !important;
        border-radius: 22px !important;
    }

    .infusion-safety-section .infusion-safety-card h3,
    .infusion-safety-section .infusion-safety-card .service-card__title {
        font-size: 1.24rem !important;
    }
}


/* ==========================================================
   Infusionsdetailseiten – Sicherheitskarten untereinander
   ========================================================== */

.infusion-safety-section .grid-2 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    max-width: 1040px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.infusion-safety-section .infusion-safety-card {
    width: 100% !important;
    min-height: 0 !important;
    padding: 34px 42px 36px !important;
}

.infusion-safety-section .infusion-safety-card .check-list {
    gap: 11px !important;
}

@media (max-width: 768px) {
    .infusion-safety-section .grid-2 {
        gap: 20px !important;
    }

    .infusion-safety-section .infusion-safety-card {
        padding: 26px 22px 28px !important;
    }
}


/* ==========================================================
   Infusionsdetailseiten – Textbreite Sicherheitskarten korrigieren
   ========================================================== */

.infusion-safety-section .infusion-safety-card p,
.infusion-safety-section .infusion-safety-card .service-card__text,
.infusion-safety-section .infusion-safety-card .check-list,
.infusion-safety-section .infusion-safety-card ul {
    max-width: none !important;
    width: 100% !important;
}

.infusion-safety-section .infusion-safety-card .service-card__text {
    display: block !important;
}

.infusion-safety-section .infusion-safety-card {
    text-wrap: pretty;
}


/* ==========================================================
   Infusionsdetailseiten – Preisbox sauber final
   ========================================================== */

/* Preisbereich auf Infusionsseiten: mittig, luftig, eindeutig */
section[aria-labelledby="price-title"] .price-grid {
    display: flex !important;
    justify-content: center !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 920px !important;
    margin: 42px auto 0 !important;
}

section[aria-labelledby="price-title"] .price-card {
    width: min(820px, 100%) !important;
    max-width: 820px !important;
    margin: 0 auto !important;
    padding: 34px 38px 36px !important;
    border-radius: 26px !important;
    background:
        radial-gradient(circle at 94% 10%, rgba(201, 169, 110, .15), transparent 24%),
        linear-gradient(135deg, #ffffff 0%, #fbf7fe 100%) !important;
    border: 1px solid rgba(107, 78, 127, .14) !important;
    box-shadow:
        0 18px 48px rgba(51, 34, 56, .12),
        inset 0 1px 0 rgba(255, 255, 255, .86) !important;
}

section[aria-labelledby="price-title"] .price-card__category {
    margin: 0 0 8px !important;
    color: var(--color-champagne) !important;
    font-size: .76rem !important;
    font-weight: 800 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
}

section[aria-labelledby="price-title"] .price-card__title {
    margin: 0 0 22px !important;
    color: var(--color-aubergine) !important;
    font-size: 1.46rem !important;
    line-height: 1.22 !important;
}

section[aria-labelledby="price-title"] .price-card__items {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
    list-style: none !important;
}

section[aria-labelledby="price-title"] .price-card__items li {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 28px !important;
    padding: 16px 18px !important;
    border-radius: 18px !important;
    background: rgba(255, 255, 255, .68) !important;
    border: 1px solid rgba(107, 78, 127, .10) !important;
    color: var(--color-text-mid) !important;
}

section[aria-labelledby="price-title"] .price-card__items li span {
    color: var(--color-text-mid) !important;
    font-size: 1rem !important;
    line-height: 1.4 !important;
}

section[aria-labelledby="price-title"] .price-card__items li strong {
    color: var(--color-aubergine) !important;
    font-size: 1.18rem !important;
    white-space: nowrap !important;
}

section[aria-labelledby="price-title"] .price-card__note {
    max-width: none !important;
    margin: 0 0 24px !important;
    color: var(--color-text-mid) !important;
    font-size: .96rem !important;
    line-height: 1.7 !important;
}

section[aria-labelledby="price-title"] .price-card .btn {
    width: auto !important;
    min-width: 210px !important;
}

@media (max-width: 680px) {
    section[aria-labelledby="price-title"] .price-grid {
        margin-top: 32px !important;
    }

    section[aria-labelledby="price-title"] .price-card {
        padding: 28px 22px 30px !important;
        border-radius: 22px !important;
    }

    section[aria-labelledby="price-title"] .price-card__items li {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 6px !important;
        padding: 14px 15px !important;
    }

    section[aria-labelledby="price-title"] .price-card .btn {
        width: 100% !important;
    }
}


/* ==========================================================
   Über-mich-Seite – gezielte Korrekturen ohne globale Nebenwirkungen
   ========================================================== */

/* Leitsatz-Karte: keine leere weiße Fläche, sondern ausgewogene Karte */
.about-mantra-card {
    min-height: 0 !important;
    height: auto !important;
    padding: 38px 40px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    background:
        radial-gradient(circle at 92% 10%, rgba(201, 169, 110, .16), transparent 26%),
        radial-gradient(circle at 10% 92%, rgba(91, 53, 116, .08), transparent 28%),
        linear-gradient(135deg, #ffffff 0%, #fbf7fe 100%) !important;
    border: 1px solid rgba(107, 78, 127, .14) !important;
    box-shadow:
        0 18px 46px rgba(51, 34, 56, .10),
        inset 0 1px 0 rgba(255, 255, 255, .86) !important;
}

.about-mantra-card .service-card__world {
    color: var(--color-champagne) !important;
}

.about-mantra-card .service-card__title {
    color: var(--color-aubergine) !important;
    margin-bottom: 22px !important;
}

.about-mantra-card .service-card__text {
    max-width: none !important;
    color: var(--color-text-mid) !important;
    font-size: 1rem !important;
    line-height: 1.78 !important;
}

/* "Meine Arbeit" – Karten im dunklen Bereich gezielt lesbar machen */
.about-work-section .section-subtitle {
    color: rgba(255, 255, 255, .82) !important;
}

.about-work-section .about-work-card {
    min-height: 0 !important;
    padding: 30px 32px !important;
    background:
        radial-gradient(circle at 92% 10%, rgba(201, 169, 110, .13), transparent 25%),
        linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(250, 247, 252, .96)) !important;
    border: 1px solid rgba(255, 255, 255, .32) !important;
    border-radius: 22px !important;
    box-shadow:
        0 20px 48px rgba(25, 13, 34, .20),
        inset 0 1px 0 rgba(255, 255, 255, .86) !important;
}

.about-work-section .about-work-card,
.about-work-section .about-work-card p,
.about-work-section .about-work-card .service-card__text {
    color: var(--color-text-mid) !important;
}

.about-work-section .about-work-card .service-card__world {
    color: var(--color-champagne) !important;
}

.about-work-section .about-work-card .service-card__title,
.about-work-section .about-work-card h3 {
    color: var(--color-aubergine) !important;
}

/* FAQ auf Über-mich-Seite an das normale FAQ-System angleichen */
.about-faq-list {
    max-width: 900px !important;
}

.about-faq-list .faq-answer {
    max-width: none !important;
}

@media (max-width: 768px) {
    .about-mantra-card,
    .about-work-section .about-work-card {
        padding: 26px 22px !important;
    }
}


/* ==========================================================
   Preisseite – gezielte Ordnung ohne globale Nebenwirkungen
   ========================================================== */

.page-prices .prices-main-section .container {
    max-width: 1160px;
}

.page-prices .section-subtitle {
    max-width: 58ch;
    margin-bottom: 34px;
}

/* Hinweisboxen nur so breit wie der Einleitungstext */
.page-prices .price-note-box,
.page-prices .notice-box,
.page-prices .hint-box,
.page-prices .info-box {
    max-width: 680px !important;
    width: 100%;
    margin: 28px auto 42px !important;
    padding: 22px 26px !important;
    border-radius: 20px !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(201,169,110,.12), transparent 25%),
        linear-gradient(135deg, rgba(230,213,244,.78), rgba(244,235,250,.84)) !important;
    border: 1px solid rgba(107,78,127,.13) !important;
    box-shadow: 0 16px 38px rgba(51,34,56,.07) !important;
}

/* Falls der Hinweis nicht als eigene Boxklasse markiert ist, begrenzen wir prominente Absätze in der Preisseite */
.page-prices .prices-main-section > .container > .text-center + p,
.page-prices .prices-main-section .container > p.price-note,
.page-prices .prices-main-section .container > .price-note {
    max-width: 680px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Preisgruppen sauber staffeln */
.page-prices .price-section-title,
.page-prices h3.price-section-title,
.page-prices .prices-main-section h3 {
    max-width: 1160px;
    margin: 48px auto 20px;
}

/* Preisraster kontrollieren: keine 8 Karten in einer absurden Reihe */
.page-prices .price-grid,
.page-prices .pricing-grid,
.page-prices .prices-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 24px !important;
    align-items: stretch !important;
    max-width: 1160px !important;
    margin: 0 auto 46px !important;
}

.page-prices .price-grid:has(.price-card:nth-child(5)),
.page-prices .pricing-grid:has(.price-card:nth-child(5)),
.page-prices .prices-grid:has(.price-card:nth-child(5)) {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* Analysebereich mit 2 Karten */
.page-prices .price-grid:has(.price-card:nth-child(2):last-child),
.page-prices .pricing-grid:has(.price-card:nth-child(2):last-child),
.page-prices .prices-grid:has(.price-card:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: 900px !important;
}

/* Falls ein einzelner Preisblock existiert */
.page-prices .price-grid:has(.price-card:only-child),
.page-prices .pricing-grid:has(.price-card:only-child),
.page-prices .prices-grid:has(.price-card:only-child) {
    grid-template-columns: minmax(0, 760px) !important;
    justify-content: center !important;
}

/* Karten einheitlich hoch und Buttons unten */
.page-prices .price-card {
    display: flex !important;
    flex-direction: column !important;
    min-height: 100% !important;
    padding: 26px 24px 24px !important;
    border-radius: 22px !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(201,169,110,.10), transparent 24%),
        linear-gradient(135deg, #ffffff, #fbf7fe) !important;
    border: 1px solid rgba(107,78,127,.13) !important;
    box-shadow:
        0 18px 42px rgba(51,34,56,.09),
        inset 0 1px 0 rgba(255,255,255,.88) !important;
}

.page-prices .price-card--featured {
    background:
        radial-gradient(circle at 94% 8%, rgba(201,169,110,.16), transparent 24%),
        linear-gradient(135deg, #f2e5fb, #ffffff) !important;
    border-color: rgba(107,78,127,.22) !important;
}

.page-prices .price-card__category {
    margin: 0 0 10px !important;
    color: var(--color-champagne) !important;
    font-size: .72rem !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    letter-spacing: .13em !important;
    text-transform: uppercase !important;
}

.page-prices .price-card__title {
    margin: 0 0 14px !important;
    color: var(--color-aubergine) !important;
    font-size: 1.25rem !important;
    line-height: 1.22 !important;
}

.page-prices .price-card__price,
.page-prices .price-card .price {
    margin: 0 0 18px !important;
    color: var(--color-aubergine) !important;
    font-size: 1.55rem !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
}

/* Preislisten innerhalb der Karten */
.page-prices .price-card__items {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
    list-style: none !important;
}

.page-prices .price-card__items li {
    display: flex !important;
    justify-content: space-between !important;
    gap: 16px !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid rgba(107,78,127,.10) !important;
    color: var(--color-text-mid) !important;
    font-size: .92rem !important;
    line-height: 1.35 !important;
}

.page-prices .price-card__items li strong {
    color: var(--color-aubergine) !important;
    white-space: nowrap !important;
}

/* Hinweistext in Karten */
.page-prices .price-card__note,
.page-prices .price-card p {
    color: var(--color-text-mid) !important;
    font-size: .92rem !important;
    line-height: 1.62 !important;
}

/* Button immer unten in jeder Karte */
.page-prices .price-card .btn {
    margin-top: auto !important;
    width: 100% !important;
    align-self: stretch !important;
}

/* Unterer Hinweis ebenfalls Textbreite statt Seitenbreite */
.page-prices .prices-main-section .price-note-box:last-of-type,
.page-prices .prices-main-section .notice-box:last-of-type {
    max-width: 680px !important;
    margin-top: 30px !important;
}

/* Prozessbereich ordentlicher halten */
.page-prices .prices-process-section .grid-4,
.page-prices .prices-process-section .process-grid {
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Kleine Desktops / Tablets */
@media (max-width: 1180px) {
    .page-prices .price-grid,
    .page-prices .pricing-grid,
    .page-prices .prices-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        max-width: 920px !important;
    }

    .page-prices .price-grid:has(.price-card:nth-child(2):last-child),
    .page-prices .pricing-grid:has(.price-card:nth-child(2):last-child),
    .page-prices .prices-grid:has(.price-card:nth-child(2):last-child) {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 820px) {
    .page-prices .price-grid,
    .page-prices .pricing-grid,
    .page-prices .prices-grid,
    .page-prices .price-grid:has(.price-card:nth-child(2):last-child),
    .page-prices .pricing-grid:has(.price-card:nth-child(2):last-child),
    .page-prices .prices-grid:has(.price-card:nth-child(2):last-child) {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        max-width: 680px !important;
    }
}

@media (max-width: 560px) {
    .page-prices .price-grid,
    .page-prices .pricing-grid,
    .page-prices .prices-grid,
    .page-prices .price-grid:has(.price-card:nth-child(2):last-child),
    .page-prices .pricing-grid:has(.price-card:nth-child(2):last-child),
    .page-prices .prices-grid:has(.price-card:nth-child(2):last-child) {
        grid-template-columns: 1fr !important;
        max-width: 420px !important;
        gap: 18px !important;
    }

    .page-prices .price-note-box,
    .page-prices .notice-box,
    .page-prices .hint-box,
    .page-prices .info-box {
        padding: 20px 18px !important;
        margin-top: 22px !important;
        margin-bottom: 32px !important;
    }
}


/* ==========================================================
   Preisseite – echter Fix gegen globale price-grid-Nebenwirkung
   ========================================================== */

/* Wichtig: Direkter Selektor auf die echte Preisseiten-Sektion.
   Überschreibt die globale .price-grid-Flex-Regel von Infusionsseiten. */
section[aria-labelledby="prices-title"] .price-section-group {
    max-width: 1160px !important;
    margin: 0 auto 54px !important;
}

section[aria-labelledby="prices-title"] .price-section-group > h3 {
    margin: 0 0 24px !important;
    color: var(--color-aubergine) !important;
    font-size: 1.32rem !important;
    line-height: 1.3 !important;
}

section[aria-labelledby="prices-title"] .price-grid {
    display: grid !important;
    align-items: stretch !important;
    gap: 24px !important;
    width: 100% !important;
    max-width: 1160px !important;
    margin: 0 auto !important;
    overflow: visible !important;
}

section[aria-labelledby="prices-title"] .price-grid--therapy {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

section[aria-labelledby="prices-title"] .price-grid--analysis {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: 900px !important;
}

section[aria-labelledby="prices-title"] .price-grid--infusions {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* Fallback, falls die Modifier-Klassen aus irgendeinem Grund nicht geladen sind */
section[aria-labelledby="prices-title"] .price-section-group:nth-of-type(1) .price-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

section[aria-labelledby="prices-title"] .price-section-group:nth-of-type(2) .price-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: 900px !important;
}

section[aria-labelledby="prices-title"] .price-section-group:nth-of-type(3) .price-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* Hinweisboxen auf Textbreite */
section[aria-labelledby="prices-title"] .notice-box,
section[aria-labelledby="prices-title"] .price-note-box {
    display: block !important;
    max-width: 680px !important;
    width: auto !important;
    margin: 28px auto 46px !important;
    padding: 22px 26px !important;
    border-radius: 20px !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(201,169,110,.13), transparent 26%),
        linear-gradient(135deg, rgba(230,213,244,.82), rgba(244,235,250,.9)) !important;
    border: 1px solid rgba(107,78,127,.14) !important;
    box-shadow: 0 16px 38px rgba(51,34,56,.07) !important;
}

/* Karten: saubere Höhe, Button unten */
section[aria-labelledby="prices-title"] .price-card {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
    min-height: 100% !important;
    padding: 26px 24px 24px !important;
    border-radius: 22px !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(201,169,110,.10), transparent 24%),
        linear-gradient(135deg, #ffffff, #fbf7fe) !important;
    border: 1px solid rgba(107,78,127,.13) !important;
    box-shadow:
        0 18px 42px rgba(51,34,56,.09),
        inset 0 1px 0 rgba(255,255,255,.88) !important;
}

section[aria-labelledby="prices-title"] .price-card--featured {
    background:
        radial-gradient(circle at 94% 8%, rgba(201,169,110,.16), transparent 24%),
        linear-gradient(135deg, #f2e5fb, #ffffff) !important;
    border-color: rgba(107,78,127,.22) !important;
}

section[aria-labelledby="prices-title"] .price-card__category {
    margin: 0 0 10px !important;
    color: var(--color-champagne) !important;
    font-size: .72rem !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    letter-spacing: .13em !important;
    text-transform: uppercase !important;
}

section[aria-labelledby="prices-title"] .price-card__title {
    margin: 0 0 14px !important;
    color: var(--color-aubergine) !important;
    font-size: 1.25rem !important;
    line-height: 1.22 !important;
}

section[aria-labelledby="prices-title"] .price-card__amount,
section[aria-labelledby="prices-title"] .price-card__price,
section[aria-labelledby="prices-title"] .price-card .price {
    margin: 0 0 18px !important;
    color: var(--color-aubergine) !important;
    font-size: 1.55rem !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
}

section[aria-labelledby="prices-title"] .price-card__note,
section[aria-labelledby="prices-title"] .price-card p {
    color: var(--color-text-mid) !important;
    font-size: .92rem !important;
    line-height: 1.62 !important;
}

section[aria-labelledby="prices-title"] .price-card__items {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
    list-style: none !important;
}

section[aria-labelledby="prices-title"] .price-card__items li {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 16px !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid rgba(107,78,127,.10) !important;
    color: var(--color-text-mid) !important;
    font-size: .92rem !important;
    line-height: 1.35 !important;
}

section[aria-labelledby="prices-title"] .price-card__items li span:last-child,
section[aria-labelledby="prices-title"] .price-card__items li strong {
    text-align: right !important;
    color: var(--color-aubergine) !important;
}

section[aria-labelledby="prices-title"] .price-card .btn,
section[aria-labelledby="prices-title"] .price-card a.btn {
    margin-top: auto !important;
    width: 100% !important;
    align-self: stretch !important;
}

/* Responsive */
@media (max-width: 1180px) {
    section[aria-labelledby="prices-title"] .price-grid--therapy,
    section[aria-labelledby="prices-title"] .price-grid--infusions,
    section[aria-labelledby="prices-title"] .price-section-group:nth-of-type(1) .price-grid,
    section[aria-labelledby="prices-title"] .price-section-group:nth-of-type(3) .price-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        max-width: 920px !important;
    }
}

@media (max-width: 820px) {
    section[aria-labelledby="prices-title"] .price-grid--therapy,
    section[aria-labelledby="prices-title"] .price-grid--analysis,
    section[aria-labelledby="prices-title"] .price-grid--infusions,
    section[aria-labelledby="prices-title"] .price-section-group:nth-of-type(1) .price-grid,
    section[aria-labelledby="prices-title"] .price-section-group:nth-of-type(2) .price-grid,
    section[aria-labelledby="prices-title"] .price-section-group:nth-of-type(3) .price-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        max-width: 680px !important;
    }
}

@media (max-width: 560px) {
    section[aria-labelledby="prices-title"] .price-grid--therapy,
    section[aria-labelledby="prices-title"] .price-grid--analysis,
    section[aria-labelledby="prices-title"] .price-grid--infusions,
    section[aria-labelledby="prices-title"] .price-section-group:nth-of-type(1) .price-grid,
    section[aria-labelledby="prices-title"] .price-section-group:nth-of-type(2) .price-grid,
    section[aria-labelledby="prices-title"] .price-section-group:nth-of-type(3) .price-grid {
        grid-template-columns: 1fr !important;
        max-width: 420px !important;
        gap: 18px !important;
    }

    section[aria-labelledby="prices-title"] .notice-box,
    section[aria-labelledby="prices-title"] .price-note-box {
        padding: 20px 18px !important;
        margin-top: 22px !important;
        margin-bottom: 34px !important;
    }
}


/* ==========================================================
   Infusionstherapie-Übersicht – hochwertigere Kartenstruktur
   ========================================================== */

.page-infusion-overview .infusion-why-section .section-subtitle {
    margin-bottom: 54px !important;
}

.page-infusion-overview .infusion-why-section .grid-3 {
    gap: 28px !important;
}

.page-infusion-overview .infusion-why-card {
    position: relative;
    min-height: 250px;
    padding: 34px 32px 32px !important;
    overflow: hidden;
    background:
        radial-gradient(circle at 92% 10%, rgba(201,169,110,.16), transparent 26%),
        radial-gradient(circle at 10% 90%, rgba(91,53,116,.08), transparent 26%),
        linear-gradient(135deg, #ffffff 0%, #fbf7fe 100%) !important;
    border: 1px solid rgba(107,78,127,.14) !important;
    border-radius: 26px !important;
    box-shadow:
        0 20px 48px rgba(51,34,56,.10),
        inset 0 1px 0 rgba(255,255,255,.88) !important;
}

.page-infusion-overview .infusion-why-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 22px;
    color: var(--color-white);
    background:
        linear-gradient(135deg, rgba(255,255,255,.16), transparent 42%),
        linear-gradient(135deg, var(--color-aubergine), var(--color-violet));
    border-radius: 18px;
    box-shadow: 0 12px 28px rgba(51,34,56,.15);
    font-size: 1.25rem;
}

.page-infusion-overview .infusion-why-card__label {
    margin: 0 0 8px !important;
    color: var(--color-champagne) !important;
    font-size: .72rem !important;
    font-weight: 800 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
}

.page-infusion-overview .infusion-why-card h3 {
    margin-bottom: 16px;
    color: var(--color-aubergine);
    font-size: 1.38rem;
    line-height: 1.25;
}

.page-infusion-overview .infusion-why-card p {
    color: var(--color-text-mid);
    line-height: 1.72;
}

/* Zielbereiche */
.page-infusion-overview .infusion-types-section .section-subtitle {
    margin-bottom: 56px !important;
}

.page-infusion-overview .infusion-group {
    max-width: 1080px;
    margin: 0 auto 48px;
    padding: 34px;
    border-radius: 30px;
    background:
        radial-gradient(circle at 94% 10%, rgba(201,169,110,.10), transparent 22%),
        linear-gradient(135deg, rgba(255,255,255,.78), rgba(250,247,252,.84));
    border: 1px solid rgba(107,78,127,.10);
    box-shadow: 0 18px 44px rgba(51,34,56,.07);
}

.page-infusion-overview .infusion-group:last-child {
    margin-bottom: 0;
}

.page-infusion-overview .infusion-group__head {
    max-width: 760px;
    margin: 0 auto 28px;
    text-align: center;
}

.page-infusion-overview .infusion-group__eyebrow {
    display: inline-block;
    margin-bottom: 10px;
    color: var(--color-champagne);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.page-infusion-overview .infusion-group__head h3 {
    margin-bottom: 12px;
    color: var(--color-aubergine);
    font-size: clamp(1.45rem, 2vw, 2rem);
    line-height: 1.22;
}

.page-infusion-overview .infusion-group__head p {
    color: var(--color-text-mid);
    line-height: 1.72;
}

.page-infusion-overview .infusion-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.page-infusion-overview .infusion-service-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 28px 26px !important;
    border-radius: 22px !important;
    background: #fff !important;
    border: 1px solid rgba(107,78,127,.13) !important;
    box-shadow: 0 14px 34px rgba(51,34,56,.07) !important;
}

.page-infusion-overview .infusion-service-card .service-card__title {
    font-size: 1.22rem;
}

.page-infusion-overview .infusion-service-card .service-card__link {
    margin-top: auto;
}

/* Trance-Healing Hinweisbox im Stil der Praxis-/Hinweisboxen */
.page-trance-healing .trance-note-box,
.trance-experience-section .trance-note-box {
    min-height: 0 !important;
    padding: 28px 30px !important;
    border-radius: 24px !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(201,169,110,.14), transparent 24%),
        linear-gradient(135deg, rgba(255,255,255,.96), rgba(250,247,252,.92)) !important;
    border: 1px solid rgba(107,78,127,.14) !important;
    box-shadow:
        0 16px 38px rgba(51,34,56,.09),
        inset 0 1px 0 rgba(255,255,255,.86) !important;
}

.page-trance-healing .trance-note-box,
.page-trance-healing .trance-note-box p,
.page-trance-healing .trance-note-box li,
.trance-experience-section .trance-note-box,
.trance-experience-section .trance-note-box p,
.trance-experience-section .trance-note-box li {
    color: var(--color-text-mid) !important;
}

.page-trance-healing .trance-note-box h3,
.trance-experience-section .trance-note-box h3 {
    color: var(--color-aubergine) !important;
}

@media (max-width: 900px) {
    .page-infusion-overview .infusion-card-grid {
        grid-template-columns: 1fr;
    }

    .page-infusion-overview .infusion-group {
        padding: 28px 22px;
    }

    .page-infusion-overview .infusion-why-section .grid-3 {
        grid-template-columns: 1fr;
    }
}


.trance-experience-section .trance-note-box {
    max-width: 760px;
    margin: 42px auto 0;
    text-align: center;
}

.trance-experience-section .trance-note-box p {
    margin: 0;
    line-height: 1.75;
}


/* ==========================================================
   Fix R39 – Infusionstherapie-Übersicht & Trance-Healing gezielt
   ========================================================== */

/* Infusionstherapie: Brain-&-Soul-Zusammenhang */
.infusion-overview-why .section-subtitle {
    margin-bottom: 54px !important;
}

.infusion-overview-why__grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 28px !important;
    max-width: 1080px !important;
    margin: 0 auto !important;
}

.infusion-overview-why__card {
    display: block !important;
    min-height: 280px !important;
    padding: 34px 32px 32px !important;
    border-radius: 28px !important;
    background:
        radial-gradient(circle at 92% 10%, rgba(201,169,110,.16), transparent 26%),
        radial-gradient(circle at 10% 90%, rgba(91,53,116,.08), transparent 26%),
        linear-gradient(135deg, #ffffff 0%, #fbf7fe 100%) !important;
    border: 1px solid rgba(107,78,127,.14) !important;
    box-shadow:
        0 20px 48px rgba(51,34,56,.10),
        inset 0 1px 0 rgba(255,255,255,.88) !important;
}

.infusion-overview-why__icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 46px !important;
    height: 46px !important;
    margin-bottom: 22px !important;
    color: #fff !important;
    background:
        linear-gradient(135deg, rgba(255,255,255,.16), transparent 42%),
        linear-gradient(135deg, var(--color-aubergine), var(--color-violet));
    border-radius: 18px;
    box-shadow: 0 12px 28px rgba(51,34,56,.15);
    font-size: 1.18rem;
}

.infusion-overview-why__label {
    margin: 0 0 8px !important;
    color: var(--color-champagne) !important;
    font-size: .72rem !important;
    font-weight: 850 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
}

.infusion-overview-why__card h3 {
    margin: 0 0 16px !important;
    color: var(--color-aubergine) !important;
    font-size: 1.34rem !important;
    line-height: 1.25 !important;
}

.infusion-overview-why__card p {
    color: var(--color-text-mid) !important;
    line-height: 1.72 !important;
}

/* Infusionstherapie: Zielbereiche */
.infusion-overview-types .section-subtitle {
    margin-bottom: 56px !important;
}

.infusion-overview-group {
    max-width: 1080px !important;
    margin: 0 auto 48px !important;
    padding: 34px !important;
    border-radius: 30px !important;
    background:
        radial-gradient(circle at 94% 10%, rgba(201,169,110,.10), transparent 22%),
        linear-gradient(135deg, rgba(255,255,255,.86), rgba(250,247,252,.92)) !important;
    border: 1px solid rgba(107,78,127,.10) !important;
    box-shadow: 0 18px 44px rgba(51,34,56,.07) !important;
}

.infusion-overview-group:last-child {
    margin-bottom: 0 !important;
}

.infusion-overview-group__head {
    max-width: 760px !important;
    margin: 0 auto 28px !important;
    text-align: center !important;
}

.infusion-overview-group__head span {
    display: inline-block !important;
    margin-bottom: 10px !important;
    color: var(--color-champagne) !important;
    font-size: .72rem !important;
    font-weight: 850 !important;
    letter-spacing: .15em !important;
    text-transform: uppercase !important;
}

.infusion-overview-group__head h3 {
    margin: 0 0 12px !important;
    color: var(--color-aubergine) !important;
    font-size: clamp(1.45rem, 2vw, 2rem) !important;
    line-height: 1.22 !important;
}

.infusion-overview-group__head p {
    color: var(--color-text-mid) !important;
    line-height: 1.72 !important;
}

.infusion-overview-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 22px !important;
}

.infusion-overview-card {
    display: flex !important;
    flex-direction: column !important;
    min-height: 100% !important;
    padding: 28px 26px !important;
    border-radius: 22px !important;
    background: #fff !important;
    border: 1px solid rgba(107,78,127,.13) !important;
    box-shadow: 0 14px 34px rgba(51,34,56,.07) !important;
}

.infusion-overview-card p {
    margin: 0 0 8px !important;
    color: var(--color-champagne) !important;
    font-size: .70rem !important;
    font-weight: 850 !important;
    letter-spacing: .13em !important;
    text-transform: uppercase !important;
}

.infusion-overview-card h4 {
    margin: 0 0 12px !important;
    color: var(--color-aubergine) !important;
    font-size: 1.18rem !important;
    line-height: 1.25 !important;
}

.infusion-overview-card span {
    display: block !important;
    color: var(--color-text-mid) !important;
    line-height: 1.62 !important;
    font-size: .95rem !important;
}

.infusion-overview-card a {
    margin-top: auto !important;
    padding-top: 18px !important;
    color: var(--color-aubergine) !important;
    font-weight: 800 !important;
    font-size: .9rem !important;
}

/* Trance-Healing: weiß auf weiß im dunklen Bereich verhindern */
.trance-space-section .trance-space-card {
    min-height: 0 !important;
    padding: 30px 32px !important;
    border-radius: 22px !important;
    background:
        radial-gradient(circle at 92% 10%, rgba(201,169,110,.14), transparent 25%),
        linear-gradient(135deg, #ffffff 0%, #fbf7fe 100%) !important;
    border: 1px solid rgba(255,255,255,.34) !important;
    box-shadow:
        0 20px 46px rgba(25,13,34,.22),
        inset 0 1px 0 rgba(255,255,255,.86) !important;
}

.trance-space-section .trance-space-card,
.trance-space-section .trance-space-card p,
.trance-space-section .trance-space-card .service-card__text {
    color: var(--color-text-mid) !important;
}

.trance-space-section .trance-space-card h3,
.trance-space-section .trance-space-card .service-card__title {
    color: var(--color-aubergine) !important;
}

.trance-space-section .trance-space-card .service-card__world {
    color: var(--color-champagne) !important;
}

/* Trance-Healing: Hinweis unter Ablauf wie Preishinweise */
.trance-process-note {
    max-width: 780px !important;
    margin: 42px auto 0 !important;
    padding: 22px 26px !important;
    border-radius: 20px !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(201,169,110,.13), transparent 26%),
        linear-gradient(135deg, rgba(230,213,244,.82), rgba(244,235,250,.9)) !important;
    border: 1px solid rgba(107,78,127,.14) !important;
    box-shadow: 0 16px 38px rgba(51,34,56,.07) !important;
}

.trance-process-note p {
    margin: 0 !important;
    color: var(--color-text-mid) !important;
    line-height: 1.75 !important;
}

/* Responsiv */
@media (max-width: 900px) {
    .infusion-overview-why__grid,
    .infusion-overview-grid {
        grid-template-columns: 1fr !important;
    }

    .infusion-overview-group {
        padding: 28px 22px !important;
    }
}


/* ==========================================================
   R40 – Hinweisboxen Trance/Hypnose gezielt bereinigt
   ========================================================== */

.hypnose-what-section .hypnose-note-box,
.trance-process-note {
    max-width: 780px !important;
    margin: 42px auto 0 !important;
    padding: 22px 26px !important;
    border-radius: 20px !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(201,169,110,.13), transparent 26%),
        linear-gradient(135deg, rgba(230,213,244,.82), rgba(244,235,250,.9)) !important;
    border: 1px solid rgba(107,78,127,.14) !important;
    box-shadow: 0 16px 38px rgba(51,34,56,.07) !important;
}

.hypnose-what-section .hypnose-note-box,
.hypnose-what-section .hypnose-note-box p,
.hypnose-what-section .hypnose-note-box li,
.trance-process-note,
.trance-process-note p,
.trance-process-note li {
    color: var(--color-text-mid) !important;
    line-height: 1.75 !important;
}

.hypnose-what-section .hypnose-note-box h3,
.trance-process-note h3 {
    color: var(--color-aubergine) !important;
}

.hypnose-what-section .hypnose-note-box p,
.trance-process-note p {
    margin: 0 !important;
}


/* ==========================================================
   Rechtstexte – Typografie Impressum & Datenschutz
   ========================================================== */

.page-legal .legal-content h2 {
    font-size: clamp(1.28rem, 1.65vw, 1.72rem) !important;
    line-height: 1.28 !important;
    margin-top: 2.35rem !important;
    margin-bottom: 0.95rem !important;
}

.page-legal .legal-content h2:first-of-type {
    margin-top: 0 !important;
}

.page-legal .legal-content p {
    line-height: 1.78;
}

@media (max-width: 768px) {
    .page-legal .legal-content h2 {
        font-size: 1.24rem !important;
        line-height: 1.3 !important;
        margin-top: 2rem !important;
        margin-bottom: 0.85rem !important;
    }

    .page-datenschutz .page-hero__title {
        font-size: clamp(2.05rem, 9vw, 2.65rem) !important;
        line-height: 1.08 !important;
    }
}

@media (max-width: 420px) {
    .page-datenschutz .page-hero__title {
        font-size: 2rem !important;
    }
}


/* ==========================================================
   R44 – Rechtstexte direkte Typografie-Korrektur
   ========================================================== */

/* Direkt auf die Rechtstext-Container, unabhängig von Body-Klassen */
.legal-content--compact h2,
.legal-content h2 {
    font-size: 1.42rem !important;
    line-height: 1.28 !important;
    margin-top: 2.15rem !important;
    margin-bottom: 0.85rem !important;
}

.legal-content--compact h2:first-of-type,
.legal-content h2:first-of-type {
    margin-top: 0 !important;
}

.legal-content--compact p,
.legal-content p {
    line-height: 1.78 !important;
}

/* Nur Datenschutzerklärung: mobile H1 kleiner */
@media (max-width: 768px) {
    .legal-content--compact h2,
    .legal-content h2 {
        font-size: 1.18rem !important;
        line-height: 1.3 !important;
        margin-top: 1.85rem !important;
        margin-bottom: 0.75rem !important;
    }

    .privacy-hero-title {
        font-size: 2.05rem !important;
        line-height: 1.08 !important;
        letter-spacing: -0.03em !important;
        overflow-wrap: anywhere !important;
        hyphens: auto !important;
    }
}

@media (max-width: 420px) {
    .privacy-hero-title {
        font-size: 1.82rem !important;
    }
}


/* ==========================================================
   R45 – Startseiten-Hero wie Brain & Beauty: Desktop/Mobile Bild
   ========================================================== */
.hero--home {
    min-height: calc(100vh - 78px);
    padding: 118px 0 96px;
    background-color: var(--color-aubergine-dark, #2c1736);
}

.hero--home .container {
    position: relative;
    z-index: 2;
}

.hero--home .hero__picture,
.hero--home .hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.hero--home .hero__bg img,
.hero--home .hero__picture img {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center center;
}

.hero--home .hero__overlay {
    z-index: 1;
    background:
        linear-gradient(
            90deg,
            rgba(30, 18, 38, .86) 0%,
            rgba(47, 29, 58, .72) 36%,
            rgba(67, 40, 79, .43) 62%,
            rgba(67, 40, 79, .14) 100%
        );
}

.hero--home .hero__content {
    z-index: 2;
    max-width: 760px;
    margin-left: clamp(1rem, 8vw, 9.5rem);
    padding-block: 0;
    text-shadow: 0 3px 18px rgba(0, 0, 0, .42);
}

.hero--home .hero__subtitle {
    color: rgba(255,255,255,.92);
    text-shadow: 0 2px 14px rgba(0, 0, 0, .48);
}

.hero--home .hero__actions,
.hero--home .hero__badges {
    justify-content: flex-start;
}

@media (max-width: 980px) {
    .hero--home {
        min-height: calc(100svh - 72px);
        padding: 86px 0 72px;
        align-items: center;
    }

    .hero--home .hero__content {
        max-width: 720px;
        margin-inline: auto;
        text-align: center;
    }

    .hero--home .hero__subtitle {
        margin-inline: auto;
    }

    .hero--home .hero__actions,
    .hero--home .hero__badges {
        justify-content: center;
    }
}

@media (max-width: 768px) {
    .hero--home {
        min-height: calc(100svh - 72px);
        padding: 78px 0 64px;
    }

    .hero--home .hero__bg img,
    .hero--home .hero__picture img {
        object-position: center center;
    }

    .hero--home .hero__overlay {
        background:
            linear-gradient(
                180deg,
                rgba(30, 18, 38, .46) 0%,
                rgba(38, 22, 48, .54) 38%,
                rgba(38, 22, 48, .76) 100%
            );
    }

    .hero--home .hero__content {
        width: min(100%, 640px);
        padding-top: 4vh;
    }

    .hero--home .hero__title {
        font-size: clamp(2.18rem, 10vw, 3.25rem);
        line-height: 1.08;
    }

    .hero--home .hero__subtitle {
        max-width: 34rem;
        font-size: 1rem;
        line-height: 1.68;
    }

    .hero--home .hero__badges {
        gap: .55rem;
    }

    .hero--home .hero__badge {
        font-size: .72rem;
    }
}

@media (max-width: 520px) {
    .hero--home {
        min-height: calc(100svh - 72px);
        padding: 76px 0 58px;
    }

    .hero--home .hero__content {
        padding-top: 2vh;
    }

    .hero--home .hero__actions {
        display: grid;
        grid-template-columns: 1fr;
        justify-items: center;
        width: min(100%, 320px);
        margin-inline: auto;
    }

    .hero--home .hero__actions .btn {
        width: 100%;
        justify-content: center;
    }
}

/* --- Top Notice / seitenweiter Hinweis --- */

:root {
    --top-notice-height: 38px;
}

body.has-top-notice .top-notice {
    position: sticky;
    top: 0;
    z-index: 5000;
    display: block;
    width: 100%;
    height: var(--top-notice-height);
    background: linear-gradient(135deg, var(--color-aubergine), var(--color-violet));
    color: var(--color-white);
    border-bottom: 1px solid rgba(201, 169, 110, 0.32);
    box-shadow: 0 8px 24px rgba(74, 44, 90, 0.14);
}

body.has-top-notice .site-header {
    top: var(--top-notice-height);
}

body.no-top-notice .site-header {
    top: 0;
}

.top-notice__inner {
    height: var(--top-notice-height);
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    padding-block: 0;
    font-size: 0.84rem;
    line-height: 1;
    text-align: center;
    overflow: hidden;
}

.top-notice__label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 100%;
    color: var(--color-champagne);
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.68rem;
    line-height: 1;
    white-space: nowrap;
    transform: translateY(1px);
}

.top-notice__label::before {
    content: "";
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--color-champagne);
    box-shadow: 0 0 0 4px rgba(201, 169, 110, 0.18);
}

.top-notice__text {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    color: rgba(255, 255, 255, 0.94);
    line-height: 1;
    white-space: nowrap;
}

.top-notice__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 0.35em;
    font-family: "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", system-ui, sans-serif;
    font-size: 1.04em;
    line-height: 1;
    vertical-align: -0.04em;
}

.top-notice__link {
    display: inline-flex;
    align-items: center;
    color: var(--color-white);
    font-weight: 700;
    line-height: 1;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    white-space: nowrap;
}

.top-notice__link:hover,
.top-notice__link:focus-visible {
    color: var(--color-champagne);
}

@media (max-width: 1180px) {
    body.has-top-notice .site-nav {
        top: calc(var(--top-notice-height) + 78px) !important;
        height: calc(100dvh - var(--top-notice-height) - 78px) !important;
        max-height: calc(100dvh - var(--top-notice-height) - 78px) !important;
    }
}

@media (max-width: 760px) {
    :root {
        --top-notice-height: 34px;
    }

    .top-notice__inner {
        justify-content: center;
        gap: 0;
        padding-inline: 16px;
        font-size: 0.76rem;
    }

    .top-notice__label {
        display: none;
    }

    .top-notice__text {
        display: block;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        line-height: var(--top-notice-height);
    }

    .top-notice__icon {
        margin-left: 0.3em;
        font-size: 1em;
    }

    .top-notice__link {
        display: none;
    }
}

@media (max-width: 640px) {
    body.has-top-notice .site-nav {
        top: calc(var(--top-notice-height) + 70px) !important;
        height: calc(100dvh - var(--top-notice-height) - 70px) !important;
        max-height: calc(100dvh - var(--top-notice-height) - 70px) !important;
    }
}

/* ==========================================================
   Top Notice V4 – wirklich fest + Preisseite mobil repariert
   ========================================================== */

:root {
    --site-header-height: 78px;
}

body.has-top-notice {
    padding-top: calc(var(--top-notice-height) + var(--site-header-height));
}

body.has-top-notice .top-notice {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 6000 !important;
}

body.has-top-notice .site-header {
    position: fixed !important;
    top: var(--top-notice-height) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 5900 !important;
}

@media (max-width: 1180px) {
    body.has-top-notice .site-nav {
        top: calc(var(--top-notice-height) + var(--site-header-height)) !important;
        height: calc(100dvh - var(--top-notice-height) - var(--site-header-height)) !important;
        max-height: calc(100dvh - var(--top-notice-height) - var(--site-header-height)) !important;
    }
}

@media (max-width: 760px) {
    :root {
        --top-notice-height: 34px;
    }
}

@media (max-width: 640px) {
    :root {
        --site-header-height: 70px;
    }
}

/* Preisseite: mobil hart auf Einspalter setzen.
   Hintergrund: globale .price-grid-Regeln werden auf einzelnen Seiten mehrfach überschrieben.
   Auf Smartphone-Größe ist display:block hier robuster als Grid/Flex. */
@media (max-width: 760px) {
    body.page-prices .prices-main-section,
    body.page-prices .prices-main-section .container,
    body.page-prices section[aria-labelledby="prices-title"] .price-section-group {
        overflow: visible !important;
    }

    body.page-prices section[aria-labelledby="prices-title"] .price-section-group {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto 42px !important;
    }

    body.page-prices section[aria-labelledby="prices-title"] .price-grid,
    body.page-prices section[aria-labelledby="prices-title"] .price-grid--therapy,
    body.page-prices section[aria-labelledby="prices-title"] .price-grid--analysis,
    body.page-prices section[aria-labelledby="prices-title"] .price-grid--infusions,
    body.page-prices .price-grid,
    body.page-prices .pricing-grid,
    body.page-prices .prices-grid {
        display: block !important;
        width: 100% !important;
        max-width: 420px !important;
        margin: 0 auto 36px !important;
        padding: 0 !important;
        gap: 0 !important;
        grid-template-columns: none !important;
        overflow: visible !important;
    }

    body.page-prices section[aria-labelledby="prices-title"] .price-card,
    body.page-prices .price-grid .price-card,
    body.page-prices .pricing-grid .price-card,
    body.page-prices .prices-grid .price-card {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 0 18px !important;
        flex: none !important;
        box-sizing: border-box !important;
    }

    body.page-prices section[aria-labelledby="prices-title"] .price-card:last-child,
    body.page-prices .price-grid .price-card:last-child,
    body.page-prices .pricing-grid .price-card:last-child,
    body.page-prices .prices-grid .price-card:last-child {
        margin-bottom: 0 !important;
    }

    body.page-prices section[aria-labelledby="prices-title"] .price-card__items li {
        flex-wrap: wrap !important;
    }

    body.page-prices section[aria-labelledby="prices-title"] .price-card__items li span:last-child,
    body.page-prices section[aria-labelledby="prices-title"] .price-card__items li strong {
        text-align: left !important;
        white-space: normal !important;
    }
}

/* ==========================================================
   Mobile Menü V7 – Rollback V6 + sicherer Scroll-Puffer
   ========================================================== */

@media (max-width: 1180px) {
    body.has-top-notice .site-nav,
    body.no-top-notice .site-nav {
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px)) !important;
    }

    body.body--nav-open {
        overflow: hidden;
    }

    .site-nav__list {
        padding-bottom: 28px !important;
    }
}

@media (max-width: 640px) {
    body.has-top-notice .site-nav,
    body.no-top-notice .site-nav {
        padding-bottom: calc(128px + env(safe-area-inset-bottom, 0px)) !important;
    }

    .site-nav__list {
        padding-bottom: 34px !important;
    }
}


/* Mobile Kontakt-CTA im Menü */
@media (max-width: 1180px) {
    .site-nav__item--mobile-contact {
        display: block !important;
        margin-top: 6px !important;
    }

    .site-nav__link--mobile-cta {
        justify-content: center !important;
        min-height: 54px !important;
        padding: 16px 22px !important;
        border-radius: var(--radius-full) !important;
        border: 1px solid rgba(201, 169, 110, 0.56) !important;
        color: var(--color-white) !important;
        background:
            linear-gradient(135deg, rgba(255, 255, 255, 0.12), transparent 42%),
            linear-gradient(135deg, var(--color-aubergine), var(--color-violet)) !important;
        box-shadow:
            0 16px 34px rgba(74, 44, 90, 0.24),
            inset 0 1px 0 rgba(255, 255, 255, 0.18) !important;
        font-weight: 850 !important;
        letter-spacing: 0.01em !important;
        text-align: center !important;
    }

    .site-nav__link--mobile-cta:hover,
    .site-nav__link--mobile-cta:focus-visible {
        color: var(--color-white) !important;
        border-color: rgba(201, 169, 110, 0.72) !important;
        background:
            linear-gradient(135deg, rgba(255, 255, 255, 0.16), transparent 42%),
            linear-gradient(135deg, var(--color-violet), var(--color-aubergine)) !important;
        box-shadow:
            0 18px 42px rgba(74, 44, 90, 0.30),
            inset 0 1px 0 rgba(255, 255, 255, 0.22) !important;
    }
}

/* ==========================================================
   Mobile Menü V8 – direkt unter festem Header, ohne Zwischenbalken
   ========================================================== */

@media (max-width: 1180px) {
    body.has-top-notice .site-header,
    body.no-top-notice .site-header {
        overflow: visible !important;
    }

    body.has-top-notice .site-nav,
    body.no-top-notice .site-nav {
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        right: 0 !important;
        bottom: auto !important;
        width: 100vw !important;
        height: calc(100dvh - var(--top-notice-height, 0px) - var(--site-header-height, 78px)) !important;
        max-height: calc(100dvh - var(--top-notice-height, 0px) - var(--site-header-height, 78px)) !important;
        margin: 0 !important;
        padding: 24px clamp(16px, 4vw, 28px) calc(96px + env(safe-area-inset-bottom, 0px)) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        background: linear-gradient(180deg, rgba(250, 247, 242, 0.99), rgba(245, 238, 249, 0.99)) !important;
        border-top: 1px solid rgba(221, 208, 232, 0.9) !important;
        box-shadow: 0 22px 48px rgba(74, 44, 90, 0.16) !important;
        z-index: 1 !important;
    }

    body.has-top-notice .site-nav.open,
    body.no-top-notice .site-nav.open {
        display: block !important;
    }

    body.has-top-notice .site-nav__list,
    body.no-top-notice .site-nav__list {
        margin-top: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 36px !important;
    }
}

@media (max-width: 640px) {
    body.has-top-notice .site-nav,
    body.no-top-notice .site-nav {
        padding-top: 22px !important;
        padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px)) !important;
    }
}
