@font-face {
    font-family: 'Manrope';
    src: url('../fonts/manrope-latin-variable.woff2') format('woff2');
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
}

/* Reusable native Contao content groups; page chrome is scoped to startseite. */
body.startseite, .home-page {
    --home-paper: #fcfbfc;
    --home-panel: #f4ebef;
    --home-ink: #30242c;
    --home-copy: #61515c;
    --home-accent: #af2755;
    --home-accent-hover: #8b1c42;
    --home-on-accent: #fffafd;
    --home-line: #dfd2d9;
    --home-width: 1160px;
    --home-gutter: 32px;
    --ink: var(--home-ink);
    --muted: var(--home-copy);
    --brand: var(--home-accent);
    --brand-dark: var(--home-accent-hover);
    --surface: var(--home-panel);
    background: var(--home-paper);
    color: var(--home-ink);
    font-family: 'Manrope', sans-serif;
    font-size: 17px;
    line-height: 1.65;
}
body.startseite[data-home-theme="dark"], body[data-home-theme="dark"] .home-page {
    --home-paper: #1d191d;
    --home-panel: #31262d;
    --home-ink: #f8f1f5;
    --home-copy: #d4c2ce;
    --home-accent: #f1a3bf;
    --home-accent-hover: #fac9dc;
    --home-on-accent: #321622;
    --home-line: #58414e;
    color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
    body.startseite:not([data-home-theme="light"]), body:not([data-home-theme="light"]) .home-page {
        --home-paper: #1d191d;
        --home-panel: #31262d;
        --home-ink: #f8f1f5;
        --home-copy: #d4c2ce;
        --home-accent: #f1a3bf;
        --home-accent-hover: #fac9dc;
        --home-on-accent: #321622;
        --home-line: #58414e;
        color-scheme: dark;
    }
}
.startseite[data-home-theme="light"], body[data-home-theme="light"] .home-page { color-scheme: light; }
.startseite ::selection { background: var(--home-accent); color: var(--home-on-accent); }
.startseite #main { border-bottom: 0; }
.startseite #main > .inside { max-width: none; padding: 0; }
#main .home-page .home-container {
    width: 100%;
    max-width: var(--home-width);
    margin-inline: auto;
    padding-inline: var(--home-gutter);
}
#main .home-page h1, #main .home-page h2, #main .home-page h3 {
    margin: 0;
    color: var(--home-ink);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.15;
    text-wrap: balance;
}
#main .home-page h2 { font-size: clamp(1.8rem, 3.2vw, 2.5rem); }
#main .home-page h3 { font-size: 1.15rem; letter-spacing: -.015em; }
#main .home-page p { margin: 0 0 10px; line-height: 1.65; }
#main .home-page p:last-child { margin-bottom: 0; }
#main .home-page a { color: var(--home-accent); }
#main .home-page a:not(.home-button):is(:hover, :focus-visible) { color: var(--home-accent-hover); text-decoration-line: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
#main .home-page a:focus-visible, #main .home-page button:focus-visible,
#main .home-page summary:focus-visible { outline: 3px solid var(--home-accent); outline-offset: 4px; }
#main .home-page .home-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 13px 22px;
    border: 1px solid transparent;
    border-radius: 4px;
    background: var(--home-accent);
    color: var(--home-on-accent);
    font: 700 15px/1.4 'Manrope', sans-serif;
    text-align: center;
    text-decoration: none;
    transition: background-color 140ms ease-out;
}
#main .home-page .home-button:is(:hover, :focus-visible) { background: var(--home-accent-hover); color: var(--home-on-accent); }
#main .home-page .home-button:focus-visible { transition: none; }
#main .home-page .home-button:active { transform: translateY(1px); }
#main .home-page .home-text-link { display: inline-block; padding-block: 10px; text-decoration: underline; text-underline-offset: 5px; font-size: 15px; font-weight: 700; }
#main .home-page .home-hero {
    display: grid;
    grid-template-columns: 1.06fr 1fr;
    align-items: center;
    gap: 64px;
    padding-block: 64px 60px;
}
#main .home-page .home-hero h1 { max-width: 10em; text-wrap: wrap; font-size: clamp(2.6rem, 4.7vw, 3.75rem); font-weight: 800; line-height: 1.1; letter-spacing: -.045em; }
#main .home-page .home-hero h1 { color: var(--home-accent); }
#main .home-page .home-hero h1::first-line { color: var(--home-ink); }
#main .home-page .home-hero-copy > .content-text { max-width: 45ch; margin-block: 24px; color: var(--home-copy); font-size: 18px; }
.home-hero-visual { min-width: 0; }
.home-identity { position: relative; width: 100%; aspect-ratio: 1.15; overflow: clip; isolation: isolate; }
.home-profile { display: block; width: 100%; height: 100%; overflow: visible; color: var(--home-accent); }
.home-profile path { fill: currentColor; fill-opacity: .12; stroke: currentColor; stroke-opacity: .55; stroke-width: 1.4; stroke-linejoin: round; }
.home-butterfly-flight { position: absolute; top: 53%; left: 25%; width: 48%; transform-origin: center; }
.home-butterfly { display: block; width: 100%; height: auto; aspect-ratio: 1000 / 667; object-fit: contain; }
/* The butterfly is already at the throat without JS or when motion is reduced. */
@media (prefers-reduced-motion: no-preference) {
    .home-identity.is-arriving .home-butterfly-flight { animation: butterfly-arrive 1300ms cubic-bezier(.37, 0, .2, 1) both; }
    .home-identity.is-arriving .home-butterfly { animation: butterfly-wings 260ms cubic-bezier(.45, 0, .55, 1) 5; }
}
@keyframes butterfly-arrive {
    0% { transform: translate(70%, -150%) rotate(-24deg) scale(.86); opacity: 0; }
    12% { opacity: 1; }
    38% { transform: translate(23%, -94%) rotate(12deg) scale(.92); }
    68% { transform: translate(-10%, -32%) rotate(-8deg) scale(.97); }
    86% { transform: translate(2%, -6%) rotate(3deg); }
    100% { transform: none; opacity: 1; }
}
@keyframes butterfly-wings {
    0%, 100% { transform: scaleX(1); }
    50% { transform: scaleX(.78); }
}
.home-meeting { background: var(--home-panel); }
#main .home-page .home-meeting-layout { display: grid; grid-template-columns: 1fr 1fr 1.1fr; gap: 40px; align-items: center; padding-block: 32px; }
#main .home-page .home-meeting h2 { font-size: 25px; line-height: 1.2; }
#main .home-page .home-meeting-time p { color: var(--home-copy); font-size: 15px; margin-bottom: 7px; }
#main .home-page .home-meeting-time strong { color: var(--home-ink); font-size: 22px; font-weight: 700; letter-spacing: -.03em; }
#main .home-page .home-meeting-place h3 { margin-bottom: 7px; }
#main .home-page .home-meeting-place p { font-size: 14px; color: var(--home-copy); }
#main .home-page .home-meeting-place .home-small { font-size: 13px; margin-top: 10px; }
#main .home-page .home-about { display: grid; grid-template-columns: 1.1fr 1fr; gap: 96px; align-items: start; padding-block: 72px 64px; }
#main .home-page .home-about-copy > .content-text { color: var(--home-copy); margin-top: 18px; max-width: 50ch; }
#main .home-page .home-about-copy .rte p + p { margin-top: 10px; }
#main .home-page .home-reasons { padding-top: 8px; }
#main .home-page .home-reasons h3 { margin-bottom: 24px; }
#main .home-page .home-reasons ul { margin: 0; padding: 0; list-style: none; }
#main .home-page .home-reasons li { margin: 0 0 22px; padding: 0; list-style: none; font-size: 21px; line-height: 1.45; font-weight: 500; letter-spacing: -.02em; }
#main .home-page .home-reasons li p { line-height: inherit; margin: 0; }
.home-details { margin-top: 20px; }
.home-details summary { display: list-item; width: fit-content; padding: 9px 0; color: var(--home-accent); font-size: 15px; font-weight: 700; cursor: pointer; }
.home-details summary::marker { color: var(--home-accent); }
#main .home-page .home-details summary:is(:hover, :focus-visible) { color: var(--home-accent-hover); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.home-details summary:is(:hover, :focus-visible)::marker { color: var(--home-accent-hover); }
.home-details[open] summary { margin-bottom: 10px; }
#main .home-page .home-prose { color: var(--home-copy); font-size: 16px; line-height: 1.65; }
#main .home-page .home-prose p { margin-bottom: 10px; }
#main .home-page .home-prose p:last-child { margin-bottom: 0; }
#main .home-page .home-offers { display: grid; grid-template-columns: .9fr 1.2fr; align-items: start; gap: 80px; padding-block: 0 72px; }
#main .home-page .home-offers h2 { margin-bottom: 0; }
#main .home-page .home-offer-list ul { padding-left: 1.2em; margin: 0; }
#main .home-page .home-offer-list li { font-size: 16px; line-height: 1.55; margin-bottom: 4px; padding-left: .25em; }
#main .home-page .home-offer-list li:last-child { margin-bottom: 0; }
.home-reading { background: var(--home-panel); padding-block: 48px; }
#main .home-page .home-reading h2 { margin-bottom: 28px; }
.home-reading-links { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
#main .home-page .home-reading-links > .home-reading-entry { display: block; padding-block: 20px 8px; border-top: 1px solid var(--home-line); text-decoration: none; }
#main .home-page .home-reading-links h3 { margin-bottom: 12px; font-size: 25px; }
#main .home-page .home-reading-links p { max-width: 40ch; color: var(--home-copy); font-size: 16px; }
#main .home-page .home-reading-entry:has(a:is(:hover, :focus-visible)) h3 { color: var(--home-accent-hover); }
#main .home-page .home-contact { display: flex; align-items: center; justify-content: space-between; gap: 48px; padding-block: 64px; }
#main .home-page .home-contact h2 { font-size: clamp(1.8rem, 3.2vw, 2.25rem); margin-bottom: 16px; }
#main .home-page .home-contact p { max-width: 62ch; color: var(--home-copy); }
#main .home-page .home-contact > .content-hyperlink { flex: 0 0 auto; }
#main .home-page .home-funding { display: grid; grid-template-columns: 1.5fr 1fr; align-items: center; gap: 64px; border-top: 1px solid var(--home-line); padding-block: 32px 16px; }
#main .home-page .home-funding h2 { font-size: 17px; margin-bottom: 12px; letter-spacing: 0; }
#main .home-page .home-funding .home-prose { font-size: 13px; }
#main .home-page .home-funding figure { margin: 0; background: #fff; border-radius: 4px; padding: 12px; }
#main .home-page .home-funding figure img { width: 100%; height: auto; }
.home-funding-details { margin-top: 8px; }
.home-funding-details summary { font-size: 12px; }
#main .home-page .home-funding .home-prose ul { margin: 8px 0; }
#main .home-page .home-appearance { padding-block: 0 16px; text-align: right; }
.home-theme-toggle { min-height: 44px; border: 0; padding: 10px 0 10px 16px; background: transparent; color: var(--home-accent); font: 600 13px/1.4 'Manrope', sans-serif; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.home-theme-toggle[hidden] { display: none; }
.startseite #footer { background: var(--home-panel); border-top: 1px solid var(--home-line); color: var(--home-copy); }
.startseite #footer .inside { max-width: var(--home-width); }
.startseite #footer a { color: var(--home-accent); }
.startseite .cookiebar { background: #681c37; }
.startseite .cookiebar-close { color: #681c37; font-family: inherit; }
.startseite .skip-to-content { background: var(--home-paper); color: var(--home-accent); }

@media (max-width: 1000px) {
    #main .home-page .home-hero { gap: 32px; padding-block: 44px; }
    #main .home-page .home-hero h1 { font-size: clamp(2.5rem, 4.7vw, 46px); }
    #main .home-page .home-about { gap: 48px; }
    #main .home-page .home-offers { gap: 48px; }
    #main .home-page .home-meeting-layout { gap: 24px; grid-template-columns: 1fr 1fr; }
    .home-meeting-place { grid-column: 2; }
    .home-meeting-layout > div:first-child { grid-row: span 2; }
}
@media (max-width: 767px) {
    body.startseite, .home-page { --home-gutter: 24px; font-size: 16px; }
    #main .home-page .home-hero { display: block; padding-block: 32px 36px; }
    #main .home-page .home-hero h1 { font-size: clamp(2.25rem, 8.5vw, 3.2rem); letter-spacing: -.04em; }
    #main .home-page .home-hero-copy > .content-text { font-size: 16px; margin-block: 18px 20px; max-width: 46ch; }
    .home-hero-visual { margin: 24px auto 0; max-width: 420px; }
    .home-identity { max-width: 340px; margin-inline: auto; aspect-ratio: 1.15; }
    #main .home-page .home-meeting-layout { display: block; padding-block: 28px; }
    #main .home-page .home-meeting h2 { font-size: 25px; }
    .home-meeting-time { margin-top: 18px; }
    .home-meeting-place { margin-top: 22px; }
    #main .home-page .home-meeting-time strong { font-size: 22px; }
    #main .home-page .home-about { display: block; padding-block: 40px; }
    #main .home-page .home-about h2, #main .home-page .home-offers h2,
    #main .home-page .home-reading h2 { font-size: 30px; }
    #main .home-page .home-reasons { margin-top: 32px; padding-top: 0; }
    #main .home-page .home-reasons h3 { margin-bottom: 18px; }
    #main .home-page .home-reasons li { font-size: 18px; margin-bottom: 14px; }
    #main .home-page .home-offers { display: flex; flex-direction: column; gap: 28px; padding-bottom: 40px; }
    #main .home-page .home-offers h2 { margin-bottom: 0; }
    .home-reading { padding-block: 36px; }
    .home-reading-links { display: block; }
    #main .home-page .home-reading-links > .home-reading-entry { margin-bottom: 20px; }
    #main .home-page .home-reading-links > .home-reading-entry:last-child { margin-bottom: 0; }
    #main .home-page .home-reading-links h3 { font-size: 23px; }
    #main .home-page .home-contact { display: block; padding-block: 40px; }
    #main .home-page .home-contact h2 { font-size: 30px; }
    #main .home-page .home-contact .home-button { margin-top: 24px; }
    #main .home-page .home-funding { display: block; padding-block: 24px 8px; }
    #main .home-page .home-funding figure { margin: 20px 0 0; max-width: 320px; }
    #main .home-page .home-prose { font-size: 15px; }
}
@media (max-width: 360px) {
    body.startseite, .home-page { --home-gutter: 20px; }
    #main .home-page .home-hero h1 { font-size: 32px; }
}
@media (prefers-reduced-motion: reduce) {
    #main .home-page .home-button { transition: none; }
}
@media print {
    .startseite { background: #fff !important; color: #000 !important; }
    .home-theme-toggle, .home-appearance, .home-button { display: none !important; }
    #main .home-page .home-container { padding-inline: 0; }
    .home-identity { max-width: 240px; }
    .home-details > .home-prose { display: block !important; }
}

/* The extra wrappers are generated by Contao's standard content elements. */
#main .home-page .content-element-group > * { min-width: 0; }
#main .home-page [class*="content-"], #main .home-page [class*="ce_"] { margin-inline: 0; }
#main .home-page .home-container { margin-inline: auto; }
#main .home-page figure { margin: 0; }
#main .home-page .home-about-copy > h2 { max-width: 12ch; }
#main .home-page .home-offers > h2 { max-width: 12ch; }
#main .home-page .home-meeting h2 { max-width: 13ch; }
#main .home-page .home-reading h2 { max-width: 24ch; }
#main .home-page .home-reading-entry { position: relative; }
#main .home-page .home-reading-entry .home-text-link::after { content: ''; position: absolute; inset: 0; }
#main .home-page .home-funding figure { background: #fff; border-radius: 4px; padding: 12px; }
#main .home-page .home-hero-visual figure { margin: 0; }
@media (max-width: 767px) {
    #main .home-page .home-funding figure { margin: 20px 0 0; max-width: 320px; }
}
