/* Design-Tokens aus der Vorlage zentrum-osteopathie.de */
:root {
    --zo-base: #f9f8f5;
    --zo-base-2: #f6decd;
    --zo-contrast: #000;
    --zo-accent: #d73301;
    --zo-yellow: #fbcc40;
    /* Sanfter Verlauf: heller Lichtpunkt oben links, warmes Gelb, leicht goldener Ausklang */
    --zo-yellow-gradient:
        radial-gradient(circle at 15% 15%, rgba(255, 255, 255, 0.35), transparent 45%),
        linear-gradient(135deg, #fde3a1 0%, #fbcc40 50%, #f5b52f 100%);
    --zo-font-heading: 'Jost', sans-serif;
    --zo-font-body: 'Instrument Sans', sans-serif;

    --bs-body-bg: var(--zo-base);
    --bs-body-color: var(--zo-contrast);
    --bs-body-font-family: var(--zo-font-body);
    --bs-body-font-size: 1.125rem;
    --bs-body-line-height: 1.6;
    --bs-link-color-rgb: 0, 0, 0;
    --bs-link-hover-color-rgb: 215, 51, 1;
}

h1, h2, h3, h4, .zo-heading {
    font-family: var(--zo-font-heading);
    font-weight: 400;
    line-height: 1.2;
}

h1, .h1 { font-size: clamp(2.2rem, 4vw, 3.2rem); }
h2, .h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); margin-bottom: 1.5rem; }

html { scroll-padding-top: 1rem; }

/* Hinweisleiste (twig.globals.notice) */
.zo-notice {
    background: var(--zo-accent);
    color: #fff;
    font-size: 0.95rem;
    font-weight: 500;
}

/* Header */
.zo-header {
    background: var(--zo-base);
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.zo-header .navbar-brand img { height: 80px; width: auto; }

.zo-header .zo-site-title {
    font-family: var(--zo-font-heading);
    font-size: 1.15rem;
    white-space: normal;
}

.zo-header .zo-site-name {
    font-family: var(--zo-font-body);
    font-size: 0.85em;
    color: rgba(0, 0, 0, 0.65);
    margin-top: 0.15rem;
}

/* Menü-Leiste: Linie oben trennt sie vom Logo-Block */
.zo-header .navbar-collapse {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    margin-top: 1rem;
}

@media (min-width: 992px) {
    .zo-header .navbar-brand img { height: 130px; }
    .zo-header .zo-site-title { font-size: 1.5rem; }
    .zo-header .navbar { padding-bottom: 0; }
    .zo-header .navbar-collapse { margin-top: 1.25rem; padding: 0.4rem 0; }
}

.zo-header .nav-link {
    color: var(--zo-contrast);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: 0.02em;
}

.zo-header .nav-link:hover,
.zo-header .nav-link:focus { color: var(--zo-accent); }

/* Abschnitte */
.zo-section { padding: clamp(3rem, 7vw, 6rem) 0; }
.zo-narrow { max-width: 760px; }
.zo-yellow { background: var(--zo-yellow); background-image: var(--zo-yellow-gradient); }
.zo-peach { background: var(--zo-base-2); }
.zo-band { padding: clamp(2rem, 4vw, 3rem) 0; }

/* Accordion: keine weißen Kästen */
.zo-section .accordion {
    --bs-accordion-bg: transparent;
    --bs-accordion-active-bg: rgba(0, 0, 0, 0.05);
    --bs-accordion-active-color: inherit;
    --bs-accordion-border-color: rgba(0, 0, 0, 0.15);
}

.zo-section .accordion-button { font-size: 1.25rem; }

.zo-rounded { border-radius: 1.5rem; }

.zo-quote {
    font-family: var(--zo-font-heading);
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    text-align: center;
}

/* Buttons */
.btn-zo {
    --bs-btn-bg: var(--zo-contrast);
    --bs-btn-color: var(--zo-base);
    --bs-btn-border-color: var(--zo-contrast);
    --bs-btn-hover-bg: var(--zo-accent);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-border-color: var(--zo-accent);
    --bs-btn-active-bg: var(--zo-accent);
    --bs-btn-active-border-color: var(--zo-accent);
    --bs-btn-padding-x: 1.75rem;
    --bs-btn-padding-y: 0.75rem;
    --bs-btn-border-radius: 0.4rem;
}

/* Lebenslauf: Jahreszahl hervorheben */
.zo-cv li { margin-bottom: 1rem; }
.zo-cv strong { font-family: var(--zo-font-heading); font-weight: 500; }

/* „Mehr zum Thema“-Karten, Überschriften mit Sternchen wie im Original */
.zo-link-card h3 {
    font-family: var(--zo-font-body);
    font-size: 1.15rem;
    font-weight: 600;
}

.zo-link-card h3::before {
    content: '*';
    display: block;
    font-size: 2rem;
    line-height: 1;
    color: var(--zo-accent);
}

.zo-link-card a { word-break: break-word; }

/* Veranstaltungen */
.zo-event img { aspect-ratio: 3 / 4; object-fit: cover; }
.zo-event-date { font-family: var(--zo-font-heading); font-size: 1.4rem; }
.zo-event-sep { border-color: rgba(0, 0, 0, 0.1); opacity: 1; }

@media (max-width: 575.98px) {
    .zo-event-date { font-size: 1.15rem; }
}

/* Rechtstexte */
.zo-legal h2 { font-size: 1.5rem; margin-top: 2.5rem; margin-bottom: 1rem; }
.zo-legal { overflow-wrap: break-word; }

/* Footer */
.zo-footer { border-top: 1px solid rgba(0, 0, 0, 0.1); font-size: 1rem; }
.zo-footer .zo-logo { height: 80px; width: auto; }
.zo-footer .zo-vod { height: 70px; width: auto; }

/* Kontakt */
.zo-divider { border-top: 1px solid rgba(0, 0, 0, 0.1); }

.zo-info-tile {
    background: var(--zo-yellow);
    background-image: var(--zo-yellow-gradient);
    border-radius: 1.5rem;
    padding: 2rem 1.5rem;
}

.zo-info-tile h3 {
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
}

.zo-info-tile a { overflow-wrap: anywhere; }

/* Kontaktformular */
#Kontakt .form-label { font-weight: 500; margin-bottom: 0.4rem; }
#Kontakt .form-control { padding: 0.75rem 1rem; border-radius: 0.5rem; }
#Kontakt .form-text { margin-top: 0.5rem; line-height: 1.5; }
