/* ============================================================
   DO NOT EDIT THIS FILE - EDIT /src/css/*.css AND RUN build-css.js
   Generiert: 2026-09-22T17:27:25.441Z
   Quelldateien: 00-cms-imports.css, abstand.css, base.css, buecher-detail.css, content-cards.css, cta.css, erlebnis-detail.css, error-page.css, ew.css, hero.css, kontakt.css, link-kacheln.css, newsletter.css, termine.css, tv-film.css, unternehmen.css, ut-additions.css, youtube-player.css, zz-cms-compat.css
   ============================================================ */

/* ===== Quelle: src/css/00-cms-imports.css ===== */ @import url("/css/styles_fonts.css?v=1789037453"); @import url("/css/styles_forms.css?v=1789835475"); /* ===== Quelle: src/css/abstand.css ===== */ /* ============================================================= ABSTÄNDE vor/nach einem Content-Bereich – abstand.css Die Felder „Abstand vor“ / „Abstand nach“ im Redaktionsformular schreiben die Klassen .abstand.pt_0 … .pt_6 in zwei <span>-Elemente um den Bereich (siehe inc.content_parts.php). Werte laut helpTables „distances“: 0 = ohne, 1 = 20px, 2 = 50px, 3 = 70px, 4 = 120px, 5 = 160px, 6 = 240px. Bis 17.09.2026 gab es dafür im Frontend gar keine Regeln – die Auswahl wurde gespeichert, blieb aber wirkungslos. Große Abstände auf kleinen Bildschirmen halbiert, sonst entstehen dort riesige Leerflächen. ============================================================= */ .abstand { display: block; width: 100%; }
.abstand.pt_0 { height: 0; }
.abstand.pt_1 { height: 20px; }
.abstand.pt_2 { height: 50px; }
.abstand.pt_3 { height: 70px; }
.abstand.pt_4 { height: 120px; }
.abstand.pt_5 { height: 160px; }
.abstand.pt_6 { height: 240px; }
.abstand.bg_1 { background: #fff; }
.abstand.bg_2 { background: var(--color-stone-50); }
@media (max-width: 768px) { .abstand.pt_3 { height: 50px; }
.abstand.pt_4 { height: 70px; }
.abstand.pt_5 { height: 90px; }
.abstand.pt_6 { height: 120px; }
}
/* ===== Quelle: src/css/base.css ===== */ /* ============================================================= THOMAS BREZINA – styles.css Überarbeitung: reduzierte Palette, konsolidierte Headline-Skala, ein Badge-Stil, Gold nur noch als Einzel-Akzent, Bugfix .btn--outline ============================================================= */ :root { --color-red: #b80201; --color-red-dark: #391212; --color-red-hover: #8e0101; --color-gold: #c9a227; --color-cream: #fff5c8; --color-orange: #f55203; --color-dark-maroon: #2a0d0d; --color-stone-50: #fafaf9; --color-stone-100: #f5f5f4; --color-stone-200: #e7e5e4; --color-stone-300: #d6d3d1; --color-stone-500: #78716c; --color-stone-600: #57534e; --color-stone-700: #44403c; --color-stone-800: #292524; --color-stone-900: #1c1917; --font-display: 'playfair-display', 'Playfair Display', Georgia, serif; --font-sub: 'montserrat', 'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif; --font-body: 'Helvetica Neue', Helvetica, Arial, sans-serif; --container-max: 1280px; --container-px: clamp(16px, 5vw, 40px); --header-h: 70px; --header-logo-h: 48px; --header-pad: 24px; --header-pad-klein: 12px; --header-h-xl: 96px; --radius-sm: 4px; --radius-md: 8px; --radius-lg: 14px; --radius-xl: 20px; --radius-full: 9999px; --shadow-sm: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.05); --shadow-md: 0 4px 16px rgba(0,0,0,.09), 0 2px 6px rgba(0,0,0,.06); --shadow-lg: 0 12px 40px rgba(0,0,0,.13), 0 4px 12px rgba(0,0,0,.08); --shadow-xl: 0 24px 64px rgba(0,0,0,.18); --ease-out: cubic-bezier(0.16, 1, 0.3, 1); --dur-fast: 150ms; --dur-base: 300ms; --dur-slow: 500ms; --title-lg: clamp(2rem, 4.5vw, 3rem); --title-md: clamp(1.75rem, 3.5vw, 2.25rem); --mwHalf: 640px; }
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; font-size: 16px; overflow-x: hidden; }
body { font-family: var(--font-body); font-size: 1rem; line-height: 1.6; color: var(--color-stone-900); background: var(--color-stone-50); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
#sec-footer { opacity: 1 !important; transform: none !important; }
img, svg, video { display: block; max-width: 100%; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; font-family: inherit; border: none; background: none; }
input, textarea, select { font-family: inherit; font-size: inherit; }
h1, h2 { font-family: var(--font-display); font-weight: 700; line-height: 1.2; color: var(--color-stone-900); }
h3, h4, h5, h6 { font-family: var(--font-sub); font-weight: 700; line-height: 1.25; color: var(--color-stone-900); }
p { max-width: 72ch; }
strong { font-weight: 700; }
small { font-size: .875em; }
.text-center { text-align: center; }
.sr-only, .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border-width: 0; }
.hidden { display: none !important; }
.container { width: 100%; max-width: var(--container-max); margin-inline: auto; padding-inline: var(--container-px); }
.skip-link { position: absolute; top: -100%; left: 16px; z-index: 9999; padding: 8px 16px; background: var(--color-red-dark); color: #fff; border-radius: var(--radius-md); font-size: .875rem; font-weight: 600; transition: top var(--dur-fast); }
.skip-link:focus { top: 8px; }
#site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; padding-block: var(--header-pad); background: rgba(255,255,255,.10); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); transition: padding-block .5s ease, background .5s ease, backdrop-filter .5s ease, box-shadow .5s ease; }
#site-header.scrolled { padding-block: var(--header-pad-klein); background: rgba(255,255,255,.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 4px 12px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.06); }
#site-header { background-image: linear-gradient(to bottom, rgba(28,25,23,.50) 0%, rgba(28,25,23,.24) 60%, rgba(28,25,23,0) 100%); }
#site-header:has(.header-inner--dark) { background-image: none; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; max-width: var(--container-max); margin-inline: auto; padding-inline: var(--container-px); }
.header-logo img { height: var(--header-logo-h); width: auto; filter: brightness(0) invert(1); transition: filter .5s ease, opacity .3s ease; }
.header-logo:hover img { opacity: .82; }
#site-header.scrolled .header-logo img { filter: none; }
.main-nav { display: flex; align-items: center; gap: 32px; }
.main-nav ul { display: flex; align-items: center; gap: 32px; }
.nav-link { display: inline-flex; align-items: center; gap: 6px; font-size: .9375rem; font-weight: 600; color: rgba(255,255,255,.90); transition: color .5s ease, border-color .5s ease; white-space: nowrap; padding-bottom: 2px; border-bottom: 2px solid transparent; }
.nav-link:hover { color: #fff; border-bottom-color: rgba(255,255,255,.55); }
.nav-link--active { color: #fff; border-bottom-color: rgba(255,255,255,.80); }
#site-header.scrolled .nav-link { color: var(--color-red-dark); }
#site-header.scrolled .nav-link:hover { color: var(--color-red); border-bottom-color: transparent; }
#site-header.scrolled .nav-link--active { color: var(--color-red); border-bottom-color: var(--color-red); }
.main-nav .btn--navy, .main-nav .btn--primary { background: rgba(255,255,255,.15); border: 1.5px solid rgba(255,255,255,.75); color: #fff; transition: background .5s ease, border-color .5s ease, color .5s ease, transform var(--dur-fast); }
.main-nav .btn--navy:hover, .main-nav .btn--primary:hover { background: #fff; border-color: #fff; color: var(--color-red-dark); transform: scale(1.05); }
#site-header.scrolled .main-nav .btn--navy, #site-header.scrolled .main-nav .btn--primary { background: var(--color-red); border-color: var(--color-red); color: #fff; }
#site-header.scrolled .main-nav .btn--navy:hover, #site-header.scrolled .main-nav .btn--primary:hover { background: var(--color-red-hover); border-color: var(--color-red-hover); }
.nav-toggle { display: none; align-items: center; justify-content: center; width: 40px; height: 40px; color: rgba(255,255,255,.90); transition: color .5s ease; }
.nav-toggle:hover { color: #fff; }
#site-header.scrolled .nav-toggle { color: var(--color-red-dark); }
#site-header.scrolled .nav-toggle:hover { color: var(--color-red); }
.header-inner--dark .nav-link { color: var(--color-red-dark); }
.header-inner--dark .nav-link:hover { color: var(--color-red); border-bottom-color: transparent; }
.header-inner--dark .nav-link--active { color: var(--color-red); border-bottom-color: var(--color-red); }
.header-inner--dark .nav-link--has-dropdown .nav-chevron { color: var(--color-stone-500); }
.header-inner--dark .header-logo img { filter: none; }
.header-inner--dark .nav-toggle { color: var(--color-red-dark); }
.header-inner--dark .nav-toggle:hover { color: var(--color-red); }
.header-inner--dark .main-nav .btn--navy { background: var(--color-red); border-color: var(--color-red); color: #fff; }
.header-inner--dark .main-nav .btn--navy:hover { background: var(--color-red-hover); border-color: var(--color-red-hover); }
.icon-close { display: none; }
.nav-toggle[aria-expanded="true"] .icon-menu { display: none; }
.nav-toggle[aria-expanded="true"] .icon-close { display: block; }
#site-header.scrolled ~ .mobile-menu { top: calc(var(--header-logo-h) + 2 * var(--header-pad-klein)); }
@media (max-width: 768px) { :root { --header-logo-h: 40px; --header-pad: 14px; --header-pad-klein: 8px; }
}
.mobile-menu { position: fixed; top: calc(var(--header-logo-h) + 2 * var(--header-pad)); left: 0; right: 0; bottom: 0; z-index: 9999; background: #fff; display: flex; flex-direction: column; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-16px); transition: opacity .35s ease, visibility .35s ease, transform .35s ease; }
.mobile-menu.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.mobile-menu ul { min-height: 0; display: flex; flex-direction: column; width: 100%; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.mobile-menu > a.btn { flex-shrink: 0; margin: 16px 24px 32px; width: calc(100% - 48px); }
.mobile-nav-link { display: flex; align-items: center; gap: 14px; padding: 18px 12px; font-size: 1.0625rem; font-weight: 600; color: #292524; background: #fff; border-bottom: 1px solid #e7e5e4; text-decoration: none; transition: color .2s ease, background .2s ease; width: 100%; }
.mobile-nav-link svg { color: #78716c; flex-shrink: 0; transition: color .2s ease; }
.mobile-nav-link:hover { color: #b80201; background: #fafaf9; }
.mobile-nav-link:hover svg { color: #b80201; }
.mobile-nav-link--active { color: #b80201; }
.mobile-nav-link--active svg { color: #b80201; }
#site-header { z-index: 10000; }
#site-header.menu-open { background: #fff !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; box-shadow: 0 2px 8px rgba(0,0,0,.12) !important; }
#site-header.menu-open .header-logo img { filter: none !important; }
#site-header.menu-open .nav-toggle { color: #292524 !important; }
#site-header.menu-open .nav-toggle:hover{ color: #b80201 !important; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 24px; border-radius: var(--radius-md); font-size: .9375rem; font-weight: 600; font-family: var(--font-sub); line-height: 1; white-space: nowrap; cursor: pointer; text-decoration: none; max-width: 100%; border: 2px solid transparent; transition: background var(--dur-base), color var(--dur-base), border-color var(--dur-base), box-shadow var(--dur-base), transform var(--dur-fast); }
.btn:hover { transform: scale(1.05); }
.btn:active { transform: scale(.98); }
.btn--navy, .btn--primary, .btn--amber { background: var(--color-red); color: #fff; border-color: var(--color-red); }
.btn--navy:hover, .btn--primary:hover, .btn--amber:hover { background: var(--color-red-hover); border-color: var(--color-red-hover); box-shadow: var(--shadow-md); }
.btn--ghost, .btn--outline-dark, .btn--outline-amber, .btn--outline-red { background: transparent; color: var(--color-red); border-color: var(--color-red); }
.btn--ghost:hover, .btn--outline-dark:hover, .btn--outline-amber:hover, .btn--outline-red:hover { background: var(--color-red); color: #fff; }
.btn--outline-white { background: transparent; color: #fff; border-color: rgba(255,255,255,.8); }
.btn--outline-white:hover { background: #fff; color: var(--color-red-dark); border-color: #fff; }
.btn--outline { background: transparent; color: inherit; border-color: var(--color-stone-300); }
.btn--outline:hover { background: var(--color-stone-100); color: var(--color-stone-900); border-color: var(--color-stone-400, var(--color-stone-300)); }
.btn--white { background: #fff; color: var(--color-red); border-color: #fff; font-weight: 700; }
.btn--white:hover { background: var(--color-stone-100); border-color: var(--color-stone-100); }
.btn--light { background: #fff; color: var(--color-red-dark); border-color: #fff; font-weight: 700; }
.btn--light:hover { background: var(--color-stone-100); border-color: var(--color-stone-100); }
.btn--sm { padding: 8px 16px; font-size: .875rem; }
.btn--lg { padding: 16px 36px; font-size: 1.0625rem; }
.btn--full { width: 100%; }
.badge { display: inline-flex; align-items: center; gap: 8px; font-size: .8125rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--color-red); margin-bottom: 16px; }
.badge--on-dark { color: rgba(255,255,255,.75); }
.badge--amber-light, .badge--amber-solid, .badge--stone { color: var(--color-red); }
.badge--amber-translucent, .badge--white-translucent { color: rgba(255,255,255,.75); }
.badge--red { color: var(--color-red); }
.section { padding-block: 96px; }
.section--white { background: #fff; }
.section--stone { background: var(--color-stone-50); }
.section--cream { background: #f7f2ea; }
.section-intro { margin-bottom: 56px; }
.section-intro--left { text-align: left; }
.section-intro:not(.section-intro--left) { text-align: center; }
.section-intro:not(.section-intro--left) .section-desc { margin-inline: auto; }
.section-title { font-family: var(--font-display); font-size: var(--title-md); font-weight: 700; color: var(--color-stone-900); margin-bottom: 12px; }
.section-desc { font-family: var(--font-body); font-size: 1.0625rem; color: var(--color-stone-600); max-width: 60ch; line-height: 1.65; margin-top: 8px; }
.section-label { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--color-red); margin-bottom: 12px; }
.section-action { text-align: center; margin-top: 48px; }
.section-action--left { text-align: left; }
.section-hero { position: relative; min-height: 100svh; display: flex; align-items: center; justify-content: center; overflow: hidden; color: #fff; isolation: isolate; }
.hero-subtitle { font-size: clamp(1rem, 2.5vw, 1.375rem); line-height: 1.65; color: rgba(245,245,244,.9); max-width: 56ch; margin-inline: auto; margin-bottom: 48px; }
@keyframes heroBounce { 0%,100% { transform: translateX(-50%) translateY(-10px); }
50% { transform: translateX(-50%) translateY(0); }
}
.book-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.book-grid-slider .slide { padding: 0 14px 90px 14px; }
.book-grid-slider .slick-list { margin: 0 -14px -90px -14px; }
.slick-prev, .slick-next { position: absolute; top: 50%; z-index: 2; width: 40px; height: 40px; padding: 0; border: none; border-radius: 50%; background: #fff; box-shadow: var(--shadow-md); cursor: pointer; font-size: 0; line-height: 0; transform: translateY(-50%); transition: background var(--dur-base), box-shadow var(--dur-base); }
.slick-prev:hover, .slick-next:hover { background: var(--color-stone-50); box-shadow: var(--shadow-lg); }
.slick-prev { left: -8px; }
.slick-next { right: -8px; }
.slick-prev::before, .slick-next::before { content: ''; display: block; width: 9px; height: 9px; margin: 0 auto; border: solid var(--color-stone-700); border-width: 0 2px 2px 0; }
.slick-prev::before { transform: rotate(135deg) translate(1px,1px); }
.slick-next::before { transform: rotate(-45deg) translate(1px,1px); }
.slick-disabled { opacity: .35; cursor: default; pointer-events: none; }
.slick-dots { display: flex; justify-content: center; gap: 8px; list-style: none; margin: 20px 0 0; padding: 0; }
.slick-dots li { display: flex; }
.slick-dots button { width: 8px; height: 8px; padding: 0; border: none; border-radius: 50%; background: var(--color-stone-300); font-size: 0; cursor: pointer; transition: background var(--dur-base); }
.slick-dots li.slick-active button { background: var(--color-red); }
.book-card { background: #fff; border: 1px solid var(--color-stone-200); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform var(--dur-slow) var(--ease-out), box-shadow var(--dur-slow) var(--ease-out); display: flex; flex-direction: column; min-height: 560px; }
.book-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-xl); }
.book-card__cover { position: relative; overflow: hidden; background: var(--color-stone-100); height: 256px; flex: 0 0 auto; }
.book-card__cover img { width: 100%; height: 100%; object-fit: contain; display: block; transition: transform .7s var(--ease-out); }
.book-card:hover .book-card__cover img { transform: scale(1.05); }
.book-card__badge { position: absolute; top: 12px; right: 12px; background: var(--color-red); color: #fff; font-size: .75rem; font-weight: 700; padding: 3px 10px; border-radius: var(--radius-sm); }
.book-card__body { padding: 24px; display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.book-card__title { font-size: 1.25rem; font-weight: 700; color: var(--color-stone-900); margin-bottom: 4px; transition: color var(--dur-base); }
.book-card:hover .book-card__title { color: var(--color-red); }
.book-card__target { font-size: .8125rem; font-weight: 600; color: var(--color-red); margin-bottom: 10px; }
.book-card__desc { font-size: .9375rem; line-height: 1.65; color: var(--color-stone-600); margin-bottom: 20px; max-width: none; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.book-card__link { display: inline-flex; align-items: center; gap: 6px; font-size: .875rem; font-weight: 600; color: var(--color-red); transition: color var(--dur-base); margin-top: auto; }
.book-card__link:hover { color: var(--color-red-hover); }
.book-card__availability { margin: auto 0 0; font-size: .875rem; font-weight: 600; font-style: italic; color: var(--color-stone-500); }
.book-card__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(28,25,23,0.88) 0%, rgba(28,25,23,0.35) 55%, transparent 100%); opacity: 0; transition: opacity 0.45s ease; display: flex; align-items: flex-end; pointer-events: none; }
.book-card:hover .book-card__overlay { opacity: 1; pointer-events: auto; }
.book-card__cover img { transition: filter 0.45s ease; }
.book-card:hover .book-card__cover img { filter: brightness(0.82) saturate(1.1); }
.book-card__overlay-inner { padding: 1.25rem 1.25rem 1.5rem; width: 100%; }
.book-card__order-btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; gap: 0.5rem; background-color: var(--color-red); color: #ffffff; font-family: inherit; font-size: 0.9375rem; font-weight: 600; line-height: 1; padding: 0.75rem 1.25rem; border-radius: 0.375rem; text-decoration: none; transition: background-color 0.25s ease, transform 0.2s ease; box-shadow: 0 2px 8px rgba(184,2,1,0.35); }
.book-card__order-btn:hover, .book-card__order-btn:focus-visible { background-color: var(--color-red-hover); transform: translateY(-1px); }
.book-card__order-btn svg { flex-shrink: 0; }
@media (orientation: landscape) and (max-height: 520px) { .book-card { min-height: 320px; height: auto; }
.book-card__cover { height: 158px; }
.book-card__body { padding: 10px 16px 12px; }
.book-card__title { font-size: 1.0625rem; margin-bottom: 2px; }
.book-card__target { font-size: .75rem; margin-bottom: 4px; }
.book-card__desc { font-size: .8125rem; line-height: 1.45; -webkit-line-clamp: 2; margin-bottom: 8px; }
.book-card__link { font-size: .8125rem; }
.book-card__badge { font-size: .6875rem; padding: 2px 8px; top: 8px; right: 8px; }
.book-card__order-btn { font-size: .8125rem; padding: .5rem 1rem; }
.book-card__overlay-inner { padding: .75rem .75rem 1rem; }
}
.section-keynote { position: relative; overflow: hidden; padding-block: 128px; color: #fff; }
.keynote-bg-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.keynote-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(to right, rgba(28,25,23,.95) 0%, rgba(28,25,23,.85) 55%, rgba(28,25,23,.70) 100%); }
.section-keynote .container { position: relative; z-index: 2; }
.keynote-content { max-width: 680px; }
.keynote-title { font-size: var(--title-lg); font-weight: 700; color: #fff; margin: 16px 0 24px; line-height: 1.15; }
.keynote-title em { font-style: italic; color: var(--color-gold); }
.keynote-text { font-size: 1rem; line-height: 1.75; color: rgba(214,211,209,.9); margin-bottom: 16px; max-width: 58ch; }
.keynote-text--large { font-size: 1.25rem; color: rgba(231,229,228,.95); }
.keynote-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 36px; }
.keynote-actions:has(> .btn ~ .btn) { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); max-width: 640px; }
.testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.testimonial-grid-slider .slide { padding: 0 14px 80px 14px; }
.testimonial-grid-slider .slick-list { margin: 0 -14px -80px -14px; }
.testimonial-card { background: #fff; border: 1px solid var(--color-stone-200); border-radius: var(--radius-lg); padding: 36px; box-shadow: var(--shadow-sm); transition: box-shadow var(--dur-base); display: flex; flex-direction: column; min-height: 340px; }
.testimonial-card:hover { box-shadow: var(--shadow-lg); }
.testimonial-card__stars { font-size: 1.25rem; color: var(--color-red); margin-bottom: 16px; letter-spacing: .05em; flex: 0 0 auto; }
.testimonial-card__quote { font-size: 1rem; line-height: 1.75; color: var(--color-stone-700); font-style: italic; margin-bottom: 24px; max-width: none; flex: 1 1 auto; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; }
.testimonial-card__footer { flex: 0 0 auto; }
.testimonial-card__footer strong { font-weight: 700; color: var(--color-stone-900); display: block; }
.testimonial-card__footer span { font-size: .875rem; color: var(--color-stone-500); }
.event-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.event-grid-slider .slide { padding: 24px 14px; }
.event-grid-slider .slick-list { margin: -24px -14px; }
.event-card { background: #fff; border: 1px solid var(--color-stone-200); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base); }
.event-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.event-card__body { padding: 24px; }
.event-card__date { display: flex; flex-direction: column; align-items: center; background: var(--color-red); color: #fff; border-radius: var(--radius-lg); padding: 16px; margin-bottom: 16px; text-align: center; width: 100%; }
.event-card__day { font-size: 1.875rem; font-weight: 700; line-height: 1; }
.event-card__month { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.event-card__title { font-size: 1.125rem; font-weight: 700; color: var(--color-stone-900); margin: 12px 0 4px; transition: color var(--dur-base); }
.event-card:hover .event-card__title { color: var(--color-red); }
.event-card__subtitle { font-size: .875rem; color: var(--color-stone-600); font-style: italic; margin-bottom: 12px; }
.event-card__meta { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.event-card__meta li { display: flex; align-items: center; gap: 8px; font-size: .875rem; color: var(--color-stone-600); }
.event-card__meta svg { color: var(--color-red); flex-shrink: 0; }
.event-card__link { display: inline-flex; align-items: center; gap: 6px; font-size: .875rem; font-weight: 600; color: var(--color-red); transition: color var(--dur-base); }
.event-card__link:hover { color: var(--color-red-hover); }
.section-erlebnis { position: relative; overflow: hidden; padding-block: 128px; color: #fff; }
.erlebnis-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(to bottom, rgba(28,25,23,.35) 0%, rgba(28,25,23,.55) 45%, rgba(28,25,23,.85) 100%); }
.erlebnis-wave { position: absolute; bottom: 0; left: 0; right: 0; width: 100%; height: 96px; z-index: 2; color: rgba(28,25,23,.8); }
.section-erlebnis .container { position: relative; z-index: 3; }
.erlebnis-content { }
.erlebnis-title { font-size: var(--title-lg); font-weight: 700; color: #fff; margin: 16px 0 24px; line-height: 1.15; max-width: var(--mwHalf); }
.erlebnis-text { font-size: 1rem; line-height: 1.75; color: rgba(231,229,228,.9); margin-bottom: 12px; max-width: 55ch; }
.erlebnis-text--lead { font-size: 1.375rem; font-weight: 400; color: rgba(245,245,244,.97); }
.erlebnis-actions { display: flex; gap: 14px; flex-wrap: wrap; align-items: flex-start; margin-top: 36px; }
.erlebnis-actions:has(> .btn ~ .btn) { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 382px), 1fr)); max-width: 800px; align-items: stretch; }
.social-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: start; }
.instagram-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 24px; margin-bottom: 32px; }
.instagram-item { display: block; position: relative; aspect-ratio: 1; overflow: hidden; border-radius: var(--radius-md); cursor: pointer; }
.instagram-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-out); }
.instagram-item:hover img { transform: scale(1.1); }
.instagram-item__overlay { position: absolute; inset: 0; background: rgba(28,25,23,.7); opacity: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: #fff; font-size: .875rem; font-weight: 600; transition: opacity var(--dur-base); padding: 12px; }
.instagram-item:hover .instagram-item__overlay { opacity: 1; }
.instagram-modal { position: relative; display: flex; flex-direction: column; background: #fff; border-radius: var(--radius-lg); overflow: hidden; margin: 0 auto; }
.fancybox__content.instagram-modal { width: fit-content; height: auto; min-width: 440px; max-width: min(92vw, 480px); max-height: 78vh; padding: 30px 0 0 0; }
.instagram-modal__image { width: auto; max-width: 100%; max-height: 46vh; object-fit: contain; display: block; flex-shrink: 0; margin: 0 auto; background: var(--color-stone-100, #f5f5f4); }
.instagram-modal__close { position: absolute; top: 6px; right: 6px; z-index: 10; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; background: rgba(24, 24, 27, 0.65); color: #fff; border: none; border-radius: 50%; cursor: pointer; padding: 0; transition: background var(--dur-base); }
.instagram-modal__close:hover { background: rgba(24, 24, 27, 0.85); }
.instagram-modal .f-button.is-close-btn { display: none !important; }
.fancybox__container { --fancybox-zIndex: 10010; --fancybox-bg: rgba(24, 24, 27, 0.6) !important; }
.instagram-modal__body { padding: 20px 24px 24px; overflow-y: auto; }
.instagram-modal__caption { font-size: .9rem; line-height: 1.6; color: var(--color-stone-900); margin: 0 0 12px; max-width: none; }
.instagram-modal__meta { font-size: .82rem; color: var(--color-stone-600); margin: 0 0 16px; }
.podcast-card { border: 1px solid var(--color-stone-200); border-radius: var(--radius-lg); overflow: hidden; background: #fff; box-shadow: var(--shadow-md); transition: box-shadow var(--dur-base); }
.podcast-card:hover { box-shadow: var(--shadow-lg); }
.podcast-card__header { position: relative; height: 260px; overflow: hidden; background: var(--color-red-dark); display: flex; align-items: flex-end; flex-shrink: 0; }
.podcast-card__portrait { position: absolute; right: 0; top: 0; bottom: 0; height: 100%; width: auto; object-fit: contain; object-position: bottom right; }
.podcast-card__header::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to right, rgba(57,18,18,.85) 0%, transparent 65%); z-index: 1; }
.podcast-card__header-text { position: relative; z-index: 2; padding: 24px; color: #fff; max-width: 55%; }
.podcast-card__header-text h3 { font-size: 1.375rem; font-weight: 700; color: #fff; margin: 8px 0 4px; }
.podcast-card__header-text p { font-size: .875rem; color: rgba(255,255,255,.88); max-width: none; }
.podcast-card__body { padding: 24px; background: #fff; }
.podcast-player { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.podcast-player__play { width: 48px; height: 48px; background: var(--color-red); border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; color: #fff; flex-shrink: 0; transition: background var(--dur-base); box-shadow: var(--shadow-md); }
.podcast-player__play:hover { background: var(--color-red-hover); }
.podcast-player__progress { flex: 1; }
.podcast-player__bar { width: 100%; height: 8px; background: var(--color-stone-200); border-radius: var(--radius-full); overflow: hidden; cursor: pointer; margin-bottom: 6px; }
.podcast-player__fill { height: 100%; background: var(--color-red); border-radius: var(--radius-full); transition: width .5s linear; }
.podcast-player__time { display: flex; justify-content: space-between; font-size: .75rem; color: var(--color-stone-500); }
.podcast-card__actions { display: flex; gap: 8px; }
.podcast-card__actions .btn { flex: 1; justify-content: center; }
.section-cta { background: var(--color-red); color: #fff; text-align: center; padding-block: 96px; }
.cta-title { font-family: var(--font-display); font-size: var(--title-lg); font-weight: 700; color: #fff; margin-bottom: 20px; }
.cta-desc { font-size: 1.0625rem; color: rgba(255,255,255,.88); max-width: 52ch; margin-inline: auto; margin-bottom: 48px; line-height: 1.65; }
.section-badge { display: inline-flex; align-items: center; gap: 6px; }
.section-badge svg { flex-shrink: 0; }
#site-footer { background: var(--color-red-dark); color: var(--color-stone-300); padding-top: 80px; padding-bottom: 40px; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 48px; }
.footer-brand__name { font-family: var(--font-display); font-size: 1.375rem; font-weight: 700; color: var(--color-orange); margin-bottom: 12px; }
.footer-brand p { font-size: .9rem; line-height: 1.65; color: var(--color-stone-300); max-width: 28ch; }
.footer-col__heading { font-family: var(--font-sub); font-size: .9375rem; font-weight: 700; color: #fff; margin-bottom: 16px; }
.footer-col ul:not(.footer-social) { display: flex; flex-direction: column; gap: 10px; }
.footer-col a { font-size: .9rem; color: var(--color-stone-300); transition: color var(--dur-base); }
.footer-col a:hover { color: #fff; }
.footer-contact-link { display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; color: var(--color-stone-300); transition: color var(--dur-base); }
.footer-contact-link:hover { color: #fff; }
.footer-contact-link svg { color: var(--color-orange); flex-shrink: 0; }
.footer-social { display: flex; flex-direction: row; gap: 12px; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; }
.social-btn { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius-full); background: rgba(255,255,255,.08); color: var(--color-stone-300); transition: background var(--dur-base), color var(--dur-base), transform var(--dur-base); }
.social-btn:hover { background: var(--color-red); color: #fff; transform: scale(1.1); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 32px; border-top: 1px solid rgba(255,255,255,.1); font-size: .85rem; color: var(--color-stone-300); gap: 16px; flex-wrap: wrap; }
.footer-legal { display: flex; gap: 24px; }
.footer-legal a { color: var(--color-stone-300); font-size: .85rem; transition: color var(--dur-base); }
.footer-legal a:hover { color: #fff; }
@keyframes fadeSlideUp { from { opacity: 0; transform: translateY(24px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn { from { opacity: 0; transform: scale(.97); }
to { opacity: 1; transform: scale(1); }
}
.reveal { opacity: 0; transform: translateY(20px); transition: opacity .6s var(--ease-out), transform .6s var(--ease-out); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal--delay-1 { transition-delay: .10s; }
.reveal--delay-2 { transition-delay: .20s; }
.reveal--delay-3 { transition-delay: .30s; }
html :focus-visible { outline: 2px solid var(--color-red); outline-offset: 3px; border-radius: 2px; box-shadow: 0 0 0 6px rgba(255,255,255,.95); }
a:focus-visible { border-radius: var(--radius-sm); }
html main[tabindex="-1"]:focus, html main[tabindex="-1"]:focus-visible { outline: none; box-shadow: none; }
.buecher-hero { position: relative; padding-block: 160px 100px; overflow: hidden; color: #fff; text-align: center; }
.kategorie-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; max-width: 880px; margin-inline: auto; }
.kategorie-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 48px 32px; border-radius: var(--radius-lg); border: 1px solid var(--color-stone-200); box-shadow: var(--shadow-sm); background: var(--color-stone-50); text-decoration: none; color: inherit; transition: transform var(--dur-slow) var(--ease-out), box-shadow var(--dur-slow) var(--ease-out); }
.kategorie-card--dark { background: #fff; }
.kategorie-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-xl); }
.kategorie-card__icon { width: 64px; height: 64px; background: var(--color-red); border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; color: #fff; margin-bottom: 20px; transition: transform var(--dur-base) var(--ease-out); }
.kategorie-card--dark .kategorie-card__icon { background: var(--color-red-dark); }
.kategorie-card:hover .kategorie-card__icon { transform: scale(1.1); }
.kategorie-card__title { font-size: 1.375rem; font-weight: 700; color: var(--color-stone-900); margin-bottom: 8px; }
.kategorie-card__desc { font-size: .9375rem; color: var(--color-stone-600); line-height: 1.55; max-width: none; }
.newsletter-form { display: flex; gap: 12px; max-width: 520px; margin-inline: auto; flex-wrap: wrap; justify-content: center; }
.newsletter-form__input { flex: 1; min-width: 220px; padding: 14px 20px; border-radius: var(--radius-md); border: none; font-size: 1rem; font-family: var(--font-body); color: var(--color-stone-900); background: #fff; outline: none; transition: box-shadow var(--dur-base); }
.newsletter-form__input:focus { box-shadow: 0 0 0 3px rgba(255,255,255,.4); }
html .newsletter-form__input:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.newsletter-form__input::placeholder { color: var(--color-stone-500); }
@media (max-width: 1024px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
.book-grid { grid-template-columns: repeat(2, 1fr); }
.testimonial-grid { grid-template-columns: repeat(2, 1fr); }
.event-grid { grid-template-columns: repeat(2, 1fr); }
.social-grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
}
@media (max-width: 768px) { .section { padding-block: 64px; }
.main-nav { display: none; }
.nav-toggle { display: flex; }
.book-grid { grid-template-columns: 1fr; }
.testimonial-grid { grid-template-columns: 1fr; }
.event-grid { grid-template-columns: 1fr; }
.footer-grid { grid-template-columns: 1fr 1fr; }
.keynote-actions, .erlebnis-actions { flex-direction: column; align-items: flex-start; }
.kategorie-grid { grid-template-columns: 1fr; }
.podcast-card__header { height: 200px; }
}
@media (max-width: 480px) { .btn { white-space: normal; text-align: center; line-height: 1.25; }
.btn--lg { padding-inline: 16px; font-size: 1rem; }
.podcast-card__actions { flex-wrap: wrap; }
.podcast-card__actions .btn { flex: 1 1 auto; }
.footer-grid { grid-template-columns: 1fr; }
.footer-bottom { flex-direction: column; align-items: flex-start; }
.instagram-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
html { scroll-behavior: auto; }
}
.img-fade { opacity: 0; transform: scale(1.02); transition: opacity .6s ease, transform .6s ease; }
.kinder-hero { position: relative; overflow: hidden; background: var(--color-stone-50); padding-top: calc(var(--header-h) + 32px); padding-bottom: 64px; }
@keyframes bubbleDrift1 { 0%, 100% { transform: translate(0, 0) scale(1); }
33% { transform: translate(14px, -10px) scale(1.08); }
66% { transform: translate(-8px, 8px) scale(0.95); }
}
@keyframes bubbleDrift2 { 0%, 100% { transform: translate(0, 0) scale(1); }
50% { transform: translate(-16px, 12px) scale(1.1); }
}
@keyframes bubbleDrift3 { 0%, 100% { transform: translate(0, 0) scale(1); }
40% { transform: translate(10px, 14px) scale(0.92); }
70% { transform: translate(-12px, -6px) scale(1.06); }
}
.kinder-hero__title-accent { position: relative; display: inline-block; color: var(--color-red); margin-inline: 8px; }
.filter-bar { position: sticky; top: 64px; z-index: 20; background: rgba(255,255,255,.95); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid var(--color-stone-100); padding-block: 12px; box-shadow: var(--shadow-sm); }
.filter-bar__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; width: 100%; max-width: var(--container-max); margin-inline: auto; padding-inline: var(--container-px); }
.filter-label { font-size: .875rem; font-weight: 600; color: var(--color-stone-500); margin-right: 8px; flex-shrink: 0; }
.filter-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; row-gap: 12px; }
.kinder-card[hidden], .erwachsene-card[hidden] { display: none; }
.filter-btn { padding: 6px 16px; border-radius: var(--radius-full); font-size: .875rem; font-weight: 500; cursor: pointer; border: none; background: var(--color-stone-100); color: var(--color-stone-600); transition: background var(--dur-base), color var(--dur-base), transform var(--dur-fast); font-family: var(--font-body); white-space: nowrap; }
.filter-btn:hover { background: var(--color-stone-200); color: var(--color-red); }
.filter-btn--active { background: var(--color-red); color: #fff; box-shadow: var(--shadow-sm); transform: scale(1.05); }
.filter-btn--active:hover { background: var(--color-red-hover); color: #fff; }
.filter-btn__count { opacity: .85; font-size: .8em; margin-left: 2px; }
.filter-count { margin-left: auto; font-size: .875rem; color: var(--color-stone-400); flex-shrink: 0; }
.filter-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; width: 100%; margin-top: 6px; }
.filter-search { position: relative; flex: 1 1 280px; max-width: 520px; color: var(--color-stone-400); }
.filter-search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.filter-search__input { width: 100%; padding: 8px 14px 8px 38px; border: 1px solid var(--color-stone-200); border-radius: var(--radius-full); background: #fff; font: inherit; font-size: .875rem; color: var(--color-stone-700, #44403c); }
.filter-search__input:focus, .filter-sort__select:focus { outline: none; border-color: var(--color-red); box-shadow: 0 0 0 3px rgba(184,2,1,.12); }
html .filter-search__input:focus-visible, html .filter-sort__select:focus-visible { outline: 2px solid var(--color-red); outline-offset: 2px; }
.filter-sort { display: flex; align-items: center; gap: 8px; margin-left: auto; font-size: .875rem; color: var(--color-stone-500); }
.filter-sort__select { padding: 8px 32px 8px 14px; border: 1px solid var(--color-stone-200); border-radius: var(--radius-full); background: #fff; font: inherit; font-size: .875rem; color: var(--color-stone-700, #44403c); cursor: pointer; }
.filter-empty { margin: 32px 0; text-align: center; color: var(--color-stone-500); }
@media (max-width: 600px) { .filter-sort { margin-left: 0; width: 100%; }
.filter-sort__label { display: none; }
.filter-sort__select, .filter-search { width: 100%; max-width: none; }
}
.kinder-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.kinder-card { background: #fff; border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-sm); border: 1px solid var(--color-stone-100); display: flex; flex-direction: column; transition: transform 350ms var(--ease-out), box-shadow 350ms var(--ease-out), border-color 350ms; }
.kinder-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-xl); border-color: rgba(184,2,1,.20); }
.kinder-card.is-hidden { display: none; }
.kinder-card__thumb { position: relative; height: 210px; overflow: hidden; flex-shrink: 0; background: var(--color-stone-100); }
.kinder-card__thumb img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s var(--ease-out); }
.kinder-card:hover .kinder-card__thumb img { transform: scale(1.05); }
.kinder-card__placeholder { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.kinder-card__placeholder::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(255,255,255,.10) 1px, transparent 1px); background-size: 20px 20px; }
.kinder-card__placeholder-letter { font-family: var(--font-display); font-size: 80px; font-weight: 700; color: rgba(255,255,255,.30); line-height: 1; position: relative; z-index: 1; }
.kinder-card__placeholder-name { position: absolute; bottom: 12px; left: 0; right: 0; text-align: center; font-size: .75rem; font-weight: 700; color: rgba(255,255,255,.70); padding-inline: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kinder-placeholder--blue { background: linear-gradient(145deg, #1d4ed8, #6366f1); }
.kinder-placeholder--green { background: linear-gradient(145deg, #15803d, #16a34a); }
.kinder-placeholder--purple { background: linear-gradient(145deg, #7c3aed, #a855f7); }
.kinder-placeholder--teal { background: linear-gradient(145deg, #0f766e, #14b8a6); }
.kinder-placeholder--amber { background: linear-gradient(145deg, #b45309, #f59e0b); }
.kinder-placeholder--pink { background: linear-gradient(145deg, #9d174d, #ec4899); }
.kinder-placeholder--sky { background: linear-gradient(145deg, #0369a1, #38bdf8); }
.kinder-placeholder--darkpurple { background: linear-gradient(145deg, #4c1d95, #8b5cf6); }
.kinder-placeholder--emerald { background: linear-gradient(145deg, #065f46, #34d399); }
.kinder-placeholder--rust { background: linear-gradient(145deg, #7c2d12, #fb923c); }
.kinder-placeholder--red { background: linear-gradient(145deg, var(--color-red), #8e0101); }
.kinder-placeholder--dark { background: linear-gradient(145deg, var(--color-red-dark), #1a0707); }
.kinder-placeholder--gold { background: linear-gradient(145deg, #7a5500, #b38000); }
.kinder-card__year { position: absolute; top: 12px; left: 12px; background: rgba(255,255,255,.90); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); border-radius: var(--radius-full); padding: 4px 10px; font-size: .75rem; font-weight: 700; color: var(--color-stone-600); box-shadow: var(--shadow-sm); }
.kinder-card__body { padding: 16px; display: flex; flex-direction: column; flex: 1; }
a.kinder-card__series:hover, a.erwachsene-card__genre:hover { text-decoration: underline; }
.kinder-card__series { display: inline-flex; align-items: center; border-radius: var(--radius-md); padding: 2px 10px; font-size: .75rem; font-weight: 700; align-self: flex-start; margin-bottom: 8px; box-shadow: var(--shadow-sm); }
.kinder-series--blue { background: rgba(29,78,216,.094); color: #1d4ed8; }
.kinder-series--green { background: rgba(21,128,61,.094); color: #15803d; }
.kinder-series--purple { background: rgba(124,58,237,.094); color: #7c3aed; }
.kinder-series--teal { background: rgba(15,118,110,.094); color: #0f766e; }
.kinder-series--amber { background: rgba(180,83,9,.094); color: #b45309; }
.kinder-series--pink { background: rgba(157,23,77,.094); color: #9d174d; }
.kinder-series--sky { background: rgba(3,105,161,.094); color: #0369a1; }
.kinder-series--darkpurple { background: rgba(76,29,149,.094); color: #4c1d95; }
.kinder-series--emerald { background: rgba(6,95,70,.094); color: #065f46; }
.kinder-series--rust { background: rgba(124,45,18,.094); color: #7c2d12; }
.kinder-series--red { background: rgba(184,2,1,.094); color: var(--color-red); }
.kinder-series--dark { background: rgba(28,25,23,.094); color: #1c1917; }
.kinder-series--gold { background: rgba(179,128,0,.12); color: #7a5500; }
.kinder-card__title { font-family: var(--font-sub); font-size: 1rem; font-weight: 700; color: var(--color-red-dark); margin-bottom: 8px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; transition: color var(--dur-base); }
.kinder-card:hover .kinder-card__title { color: var(--color-red); }
.kinder-card__desc { font-size: .75rem; color: var(--color-stone-500); line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; flex: 1; margin-bottom: 16px; max-width: none; }
.kinder-card__btn { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; background: var(--color-red); color: #fff; font-size: .75rem; font-weight: 700; padding: 10px 16px; border-radius: var(--radius-lg); text-decoration: none; margin-top: auto; transition: background var(--dur-base), transform var(--dur-fast); }
.kinder-card__btn:hover { background: var(--color-red-hover); transform: scale(1.02); }
.kinder-card__btn svg { flex-shrink: 0; }
section[data-info="kinder"], section[data-info="erwachsene"] { background: var(--color-red-dark); }
@media (max-width: 1280px) { .kinder-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) { .kinder-grid { grid-template-columns: repeat(2, 1fr); }
.filter-label { display: none; }
.filter-count { display: none; }
}
@media (max-width: 480px) { .kinder-grid { grid-template-columns: repeat(1, 1fr); }
.kinder-card__thumb { height: 160px; }
.kinder-card__placeholder-letter { font-size: 56px; }
}
.nav-dropdown-wrapper { position: relative; }
.nav-dropdown { position: absolute; top: calc(100% + 12px); left: 50%; transform: translateX(-50%) translateY(-6px) scale(0.97); min-width: 300px; background: #fff; border: 1px solid var(--color-stone-100); border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); overflow: hidden; opacity: 0; pointer-events: none; transition: opacity var(--dur-fast), transform var(--dur-fast); z-index: 200; }
.nav-dropdown-wrapper:hover .nav-dropdown, .nav-dropdown-wrapper.is-hover .nav-dropdown, .nav-dropdown-wrapper:focus-within .nav-dropdown { opacity: 1; pointer-events: all; transform: translateX(-50%) translateY(0) scale(1); }
.nav-dropdown::before { content: ''; position: absolute; top: -7px; left: 50%; transform: translateX(-50%) rotate(45deg); width: 14px; height: 14px; background: #fff; border-top: 1px solid var(--color-stone-100); border-left: 1px solid var(--color-stone-100); }
.nav-dropdown__list { padding: 8px 0; }
.nav-dropdown__item { display: flex; align-items: center; gap: 16px; padding: 16px 20px; border-left: 2px solid transparent; border-bottom: 1px solid var(--color-stone-50); transition: background var(--dur-fast), border-color var(--dur-fast); text-decoration: none; color: inherit; }
.nav-dropdown__item:last-child { border-bottom: none; }
.nav-dropdown__item:hover { background: var(--color-stone-50); border-left-color: var(--color-red); }
.nav-dropdown__text { flex: 1; min-width: 0; }
.nav-dropdown__title { font-size: .875rem; font-weight: 700; color: var(--color-red-dark); line-height: 1.3; transition: color var(--dur-fast); }
.nav-dropdown__item:hover .nav-dropdown__title { color: var(--color-red); }
.nav-dropdown__desc { font-size: .75rem; color: var(--color-stone-500); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nav-link--has-dropdown { display: flex; align-items: center; gap: 4px; }
.nav-link--has-dropdown .nav-chevron { transition: transform var(--dur-fast); color: var(--color-stone-500); }
.nav-dropdown-wrapper:hover .nav-chevron { transform: rotate(180deg); }
.mobile-dropdown { overflow: hidden; max-height: 0; opacity: 0; transition: max-height var(--dur-base), opacity var(--dur-base); }
.mobile-dropdown.is-open { max-height: 320px; opacity: 1; }
.mobile-dropdown__list { margin: 4px 0 4px 16px; padding-left: 12px; }
.mobile-dropdown__item { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: var(--radius-lg); text-decoration: none; transition: background var(--dur-fast), color var(--dur-fast); color: var(--color-stone-600); }
.mobile-dropdown__item:hover, .mobile-dropdown__item--active { background: var(--color-stone-50); color: var(--color-red); }
.mobile-dropdown__title { font-size: .875rem; font-weight: 600; line-height: 1.3; }
.mobile-dropdown__desc { font-size: .75rem; color: var(--color-stone-500); margin-top: 1px; }
.mobile-nav-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; font-size: 1rem; font-weight: 600; color: var(--color-red); background: rgba(184,2,1,.05); transition: background var(--dur-fast); }
.mobile-nav-toggle .nav-chevron { transition: transform var(--dur-base); color: var(--color-stone-400); }
.mobile-nav-toggle.is-open .nav-chevron { transform: rotate(180deg); }
.erwachsene-hero { position: relative; overflow: hidden; background: var(--color-red-dark); padding-top: calc(var(--header-h) + 32px); padding-bottom: 64px; color: #fff; }
.erwachsene-hero__title-accent { color: #fff; }
.erwachsene-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.erwachsene-card { background: #fff; border: 1px solid var(--color-stone-200); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; transition: transform var(--dur-slow) var(--ease-out), box-shadow var(--dur-slow) var(--ease-out); }
.erwachsene-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-xl); }
.erwachsene-card.is-hidden { display: none; }
.erwachsene-card__thumb { position: relative; height: 200px; overflow: hidden; }
.erwachsene-card__thumb img { width: 100%; height: 100%; object-fit: contain; transition: transform .6s var(--ease-out); }
.erwachsene-card:hover .erwachsene-card__thumb img { transform: scale(1.06); }
.erwachsene-card__placeholder { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 16px; }
.erwachsene-placeholder--dark { background: linear-gradient(135deg, var(--color-red-dark), #1a0707); }
.erwachsene-placeholder--gold { background: linear-gradient(135deg, #7a5500, #b38000); }
.erwachsene-placeholder--red { background: linear-gradient(135deg, var(--color-red), #8e0101); }
.erwachsene-placeholder--blue { background: linear-gradient(135deg, #1e3a5f, #2d5a9e); }
.erwachsene-card__placeholder-letter { font-family: var(--font-display); font-size: 64px; font-weight: 700; color: rgba(255,255,255,.25); line-height: 1; }
.erwachsene-card__placeholder-name { font-size: .75rem; font-weight: 600; color: rgba(255,255,255,.5); text-align: center; }
.erwachsene-card__year { position: absolute; top: 10px; right: 10px; background: rgba(0,0,0,.55); color: #fff; font-size: .7rem; font-weight: 700; padding: 3px 8px; border-radius: var(--radius-sm); backdrop-filter: blur(4px); }
.erwachsene-card__body { padding: 18px 20px 20px; flex: 1; display: flex; flex-direction: column; }
.erwachsene-card__genre { display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; padding: 3px 8px; border-radius: var(--radius-sm); margin-bottom: 8px; }
.erwachsene-genre--krimi { background: rgba(28,25,23,.12); color: var(--color-stone-800); }
.erwachsene-genre--roman { background: rgba(30,58,95,.12); color: #1e3a5f; }
.erwachsene-genre--ratgeber { background: var(--color-stone-100); color: var(--color-stone-700); }
.erwachsene-genre--sachbuch { background: rgba(184,2,1,.10); color: var(--color-red); }
.erwachsene-card__title { font-size: 1rem; font-weight: 700; color: var(--color-stone-900); margin-bottom: 8px; line-height: 1.35; transition: color var(--dur-base); }
.erwachsene-card:hover .erwachsene-card__title { color: var(--color-red); }
.erwachsene-card__desc { font-size: .875rem; line-height: 1.65; color: var(--color-stone-600); margin-bottom: 16px; flex: 1; max-width: none; }
.erwachsene-card__btn { display: inline-flex; align-items: center; gap: 6px; font-size: .875rem; font-weight: 600; color: var(--color-red); margin-top: auto; transition: color var(--dur-base); }
.erwachsene-card__btn:hover { color: var(--color-red-hover); }
@media (max-width: 1280px) { .erwachsene-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) { .erwachsene-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) { .erwachsene-grid { grid-template-columns: repeat(1, 1fr); }
.erwachsene-card__thumb { height: 160px; }
}
.section--fliesstext { padding-block: 72px; }
.fliesstext { max-width: 760px; margin-inline: auto; }
.fliesstext__badge { margin-bottom: 12px; }
.fliesstext__titel { font-family: var(--font-display, var(--font-headline)); font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.15; font-weight: 700; color: var(--color-red-dark); margin: 0 0 20px; }
.fliesstext__lead { font-size: 1.0625rem; line-height: 1.7; color: var(--color-stone-600); margin-bottom: 32px; }
.fliesstext__lead p:last-child { margin-bottom: 0; }
.fliesstext__body { font-size: 1rem; line-height: 1.75; color: var(--color-stone-700, var(--color-stone-600)); }
.fliesstext__body h2 { font-family: var(--font-sub); font-size: 1.375rem; font-weight: 700; line-height: 1.3; color: var(--color-red-dark); margin: 40px 0 12px; }
.fliesstext__body h3 { font-family: var(--font-sub); font-size: 1.0625rem; font-weight: 700; color: var(--color-stone-900); margin: 28px 0 8px; }
.fliesstext__body h2:first-child, .fliesstext__body h3:first-child { margin-top: 0; }
.fliesstext__body p { margin: 0 0 16px; max-width: none; }
.fliesstext__body ul, .fliesstext__body ol { margin: 0 0 16px; padding-left: 22px; }
.fliesstext__body li { margin-bottom: 6px; }
.fliesstext__body a { color: var(--color-red); text-decoration: underline; text-underline-offset: 2px; }
.fliesstext__body a:hover { color: var(--color-red-hover); }
.fliesstext__body strong { color: var(--color-stone-900); }
.fliesstext__body hr { border: 0; border-top: 1px solid var(--color-stone-200); margin: 32px 0; }
.fliesstext__body table { width: 100%; border-collapse: collapse; margin: 0 0 20px; font-size: .9375rem; }
.fliesstext__body th, .fliesstext__body td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--color-stone-200); vertical-align: top; }
.fliesstext__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
@media (max-width: 768px) { .section--fliesstext { padding-block: 48px; }
.fliesstext__body h2 { margin-top: 32px; }
}
@media (max-width: 600px) { .fancybox__content.instagram-modal { min-width: 0; width: calc(100vw - 24px); max-width: calc(100vw - 24px); max-height: 86vh; padding-top: 0; }
.instagram-modal__image { width: 100%; max-height: 40vh; }
.instagram-modal__body { padding: 14px 16px 18px; }
.instagram-modal__caption { font-size: .875rem; }
.instagram-modal__close { top: 10px; right: 10px; }
.fancybox__container:has(.instagram-modal) .f-thumbs { display: none; }
}
@media (max-width: 600px) { .instagram-grid { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--container-px); overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; margin-inline: calc(-1 * var(--container-px)); padding-inline: var(--container-px); padding-bottom: 2px; scrollbar-width: none; }
.instagram-grid::-webkit-scrollbar { display: none; }
.instagram-grid > li { flex: 0 0 62%; min-width: 0; scroll-snap-align: start; }
}
@media (max-width: 480px) { .kinder-card, .erwachsene-card { flex-direction: row; align-items: stretch; }
.kinder-card__thumb, .erwachsene-card__thumb { width: 38%; max-width: 132px; flex: none; height: auto; align-self: stretch; }
.kinder-card__thumb img, .erwachsene-card__thumb img { object-fit: contain; padding: 8px; }
.kinder-card__body, .erwachsene-card__body { padding: 12px 14px 12px 12px; min-width: 0; }
.kinder-card__desc { -webkit-line-clamp: 3; margin-bottom: 12px; }
.erwachsene-card__desc { font-size: .8125rem; line-height: 1.5; margin-bottom: 12px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.kinder-card__placeholder-letter, .erwachsene-card__placeholder-letter { font-size: 40px; }
.kinder-card__placeholder-name, .erwachsene-card__placeholder-name { display: none; }
}
.content.bg_1 > section { background: #fff; }
.content.bg_2 > section { background: var(--color-stone-50); }
/* ===== Quelle: src/css/buecher-detail.css ===== */ /* ============================================================= BUECHER-DETAIL.CSS – Detailseite für einzelne Bücher Alle seitenspezifischen Styles mit Präfix bd- Lädt zusätzlich zu styles.css Update: Gewicht 900→700 (konsolidierte Headline-Skala) ============================================================= */ @keyframes bookFloat { 0%, 100% { transform: rotate(2deg) translateY(0); }
50% { transform: rotate(2deg) translateY(-10px); }
}
.bd-hero { padding-top: calc(var(--header-h-xl) + 8px); padding-bottom: 80px; overflow: hidden; position: relative; background: var(--color-stone-50); }
.bd-deco { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.bd-deco__circle { position: absolute; border-radius: 50%; }
.bd-deco__circle--1 { width: 128px; height: 128px; top: 4%; right: 3%; background: rgba(184,2,1,.06); }
.bd-deco__circle--2 { width: 80px; height: 80px; bottom: 8%; left: 2%; background: rgba(184,2,1,.05); }
.bd-deco__circle--3 { width: 56px; height: 56px; top: 20%; left: 33%; background: rgba(184,2,1,.04); }
.bd-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; font-size: .875rem; color: var(--color-stone-500); padding-bottom: 24px; }
.bd-breadcrumb a { transition: color var(--dur-fast); }
.bd-breadcrumb a:hover { color: var(--color-red); }
.bd-breadcrumb__sep { display: flex; align-items: center; color: var(--color-stone-300); }
.bd-breadcrumb__current { color: var(--color-stone-700); font-weight: 500; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bd-hero__layout { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 48px; }
.bd-cover { flex-shrink: 0; width: 224px; }
.bd-cover__wrapper { border-radius: var(--radius-lg); overflow: hidden; animation: bookFloat 5s ease-in-out infinite; filter: drop-shadow(-8px 16px 40px rgba(0,0,0,.30)) drop-shadow(-2px 4px 10px rgba(0,0,0,.15)); }
.bd-cover__frame { width: 100%; aspect-ratio: 2/3; }
.bd-cover__frame img { width: 100%; height: 100%; object-fit: contain; display: block; }
.bd-cover__placeholder { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px; }
.bd-cover__letter { font-family: var(--font-display); font-size: 6rem; font-weight: 700; color: rgba(255,255,255,.25); line-height: 1; }
.bd-cover__name { font-size: .875rem; font-weight: 600; color: rgba(255,255,255,.55); text-align: center; }
.bd-ph--blue { background: linear-gradient(135deg, #1e3a5f, #2d5a9e); }
.bd-ph--green { background: linear-gradient(135deg, #14532d, #166534); }
.bd-ph--purple { background: linear-gradient(135deg, #4a1d96, #6d28d9); }
.bd-ph--amber { background: linear-gradient(135deg, #92400e, #b45309); }
.bd-ph--pink { background: linear-gradient(135deg, #831843, #9d174d); }
.bd-ph--red { background: linear-gradient(135deg, var(--color-red), var(--color-red-hover)); }
.bd-ph--dark { background: linear-gradient(135deg, var(--color-red-dark), #1a0707); }
.bd-ph--gold { background: linear-gradient(135deg, #7a5500, #b38000); }
.bd-ph--sky { background: linear-gradient(135deg, #0c4a6e, #0369a1); }
.bd-ph--teal { background: linear-gradient(135deg, #134e4a, #0f766e); }
.bd-ph--emerald { background: linear-gradient(135deg, #064e3b, #065f46); }
.bd-ph--rust { background: linear-gradient(135deg, #7c2d12, #9a3412); }
.bd-ph--darkpurple{ background: linear-gradient(135deg, #3b0764, #4c1d95); }
.bd-meta { flex: 1; text-align: center; }
.bd-meta__badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 16px; }
.bd-badge { display: inline-flex; align-items: center; font-size: .75rem; font-weight: 600; letter-spacing: .04em; }
.bd-badge--series { color: var(--color-red); }
a.bd-badge--series:hover { text-decoration: underline; }
.bd-series-books { padding: 56px 0 72px; background: var(--color-stone-50, #fafaf9); }
.bd-series-books .bd-related__title { margin-bottom: 0; }
.bd-series-books__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; margin-bottom: 28px; }
.bd-series-books__link { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; color: var(--color-red); }
.bd-series-books__link:hover { text-decoration: underline; }
.bd-series-books__count { font-weight: 400; color: var(--color-stone-500); }
.bd-badge--stone { color: var(--color-stone-500); }
.bd-badge--nicht_lieferbar { color: var(--color-stone-500); font-style: italic; }
.bd-badge--vorbestellbar { color: var(--color-red); }
.bd-title { font-family: var(--font-display); font-size: clamp(2rem, 6vw, 3.75rem); font-weight: 700; line-height: 1.1; color: var(--color-red-dark); margin-bottom: 12px; }
.bd-subtitle { font-size: clamp(1rem, 2.5vw, 1.25rem); color: var(--color-red); margin-bottom: 20px; max-width: none; }
.bd-divider { width: 48px; height: 4px; border-radius: var(--radius-full); background: var(--color-red); margin: 0 auto 24px; }
.bd-desc { font-size: clamp(.9375rem, 1.5vw, 1.0625rem); line-height: 1.75; color: var(--color-stone-600); max-width: 64ch; margin: 0 auto 32px; }
.bd-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.bd-btn-buy { display: inline-flex; align-items: center; gap: 8px; padding: 14px 32px; border-radius: var(--radius-full); font-family: var(--font-sub); font-size: 1rem; font-weight: 600; background: var(--color-red); color: #fff; box-shadow: var(--shadow-md); transition: background var(--dur-base), transform var(--dur-fast), box-shadow var(--dur-base); }
.bd-btn-buy:hover { background: var(--color-red-hover); transform: scale(1.05); box-shadow: var(--shadow-lg); }
.bd-btn-leseprobe { display: inline-flex; align-items: center; gap: 8px; padding: 14px 32px; border-radius: var(--radius-full); font-family: var(--font-sub); font-size: 1rem; font-weight: 600; background: transparent; color: var(--color-red); border: 2px solid var(--color-red); transition: background var(--dur-base), color var(--dur-base), transform var(--dur-fast); }
.bd-btn-leseprobe:hover { background: var(--color-red); color: #fff; transform: scale(1.02); }
.bd-leseprobe { background: #fff; padding-block: 80px; }
.bd-leseprobe__inner { max-width: 768px; margin-inline: auto; }
.bd-leseprobe__header { display: flex; align-items: center; gap: 16px; margin-bottom: 40px; flex-wrap: wrap; }
.bd-leseprobe__icon { width: 40px; height: 40px; flex-shrink: 0; background: var(--color-red); border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; color: #fff; }
.bd-leseprobe__label-group { display: flex; flex-direction: column; }
.bd-leseprobe__label { font-size: .75rem; font-weight: 700; color: var(--color-red); text-transform: uppercase; letter-spacing: .1em; margin-bottom: 2px; }
.bd-leseprobe__heading { font-size: clamp(1.375rem, 3vw, 1.875rem); font-weight: 700; color: var(--color-red-dark); line-height: 1.2; }
.bd-leseprobe__sep { width: 1px; height: 40px; background: var(--color-stone-200); flex-shrink: 0; }
.bd-leseprobe__book-title { font-style: italic; font-size: .875rem; color: var(--color-stone-500); }
.bd-leseprobe__body { position: relative; }
.bd-leseprobe__deco-quote { position: absolute; top: -24px; left: -16px; font-size: 9rem; font-weight: 700; font-family: var(--font-display); color: rgba(184,2,1,.10); line-height: 1; pointer-events: none; user-select: none; }
.bd-leseprobe__blockquote { position: relative; z-index: 1; padding-left: 24px; border-left: 4px solid rgba(184,2,1,.20); }
.bd-leseprobe__blockquote p { font-style: italic; font-size: clamp(.9375rem, 1.5vw, 1.0625rem); color: var(--color-stone-700); line-height: 1.75; margin-bottom: 24px; max-width: none; }
.bd-leseprobe__blockquote p:last-child { margin-bottom: 0; }
.bd-leseprobe__eintrag + .bd-leseprobe__eintrag { margin-top: 48px; }
.bd-leseprobe__eintrag-titel { display: block; margin: 0 0 16px 28px; }
.bd-leseprobe__body--nur-pdf .bd-leseprobe__eintrag-titel { margin-left: 0; }
.bd-leseprobe__download { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 14px; margin: 32px 0 0 28px; padding: 12px 24px 12px 12px; border-radius: var(--radius-full); border: 2px solid var(--color-red); color: var(--color-red); background: #fff; font-family: var(--font-sub); text-decoration: none; transition: background var(--dur-base), color var(--dur-base), transform var(--dur-fast); }
.bd-leseprobe__body--nur-pdf .bd-leseprobe__download { margin: 0; }
.bd-leseprobe__download:hover, .bd-leseprobe__download:focus-visible { background: var(--color-red); color: #fff; transform: scale(1.02); }
.bd-leseprobe__download-icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(184,2,1,.10); flex-shrink: 0; transition: background var(--dur-base); }
.bd-leseprobe__download:hover .bd-leseprobe__download-icon, .bd-leseprobe__download:focus-visible .bd-leseprobe__download-icon { background: rgba(255,255,255,.20); }
.bd-leseprobe__download-text { display: flex; flex-direction: column; line-height: 1.25; }
.bd-leseprobe__download-titel { font-size: 1rem; font-weight: 600; }
.bd-leseprobe__download-meta { font-size: .8125rem; font-weight: 500; opacity: .85; }
.bd-slider { background: var(--color-stone-50); padding-block: 64px; }
.bd-slider__title { font-family: var(--font-display); font-size: clamp(1.375rem, 3vw, 1.875rem); font-weight: 700; color: var(--color-red-dark); text-align: center; margin-bottom: 32px; }
.bd-slider__wrap { max-width: 896px; margin-inline: auto; }
.bd-slider__stage { position: relative; border-radius: var(--radius-xl); overflow: hidden; background: var(--color-stone-900); user-select: none; }
.bd-slider__track { display: flex; transition: transform 600ms ease-in-out; }
.bd-slider__slide { flex-shrink: 0; width: 100%; aspect-ratio: 16/9; background: var(--color-stone-800); position: relative; }
.bd-slider__slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.bd-slider__btn { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; background: rgba(0,0,0,.40); backdrop-filter: blur(4px); border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; color: #fff; transition: background var(--dur-fast), transform var(--dur-fast); }
.bd-slider__btn:hover { background: var(--color-red); transform: translateY(-50%) scale(1.10); }
.bd-slider__btn--prev { left: 12px; }
.bd-slider__btn--next { right: 12px; }
.bd-slider__dots { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; }
.bd-slider__dot { height: 8px; border-radius: var(--radius-full); width: 8px; background: rgba(255,255,255,.40); cursor: pointer; transition: background var(--dur-base), width var(--dur-base); }
.bd-slider__dot--active { background: #fff; width: 24px; }
.bd-slider__dot:hover:not(.bd-slider__dot--active) { background: rgba(255,255,255,.70); }
.bd-related { background: #fff; border-top: 1px solid var(--color-stone-50); padding-block: 64px; }
.bd-related__title { font-family: var(--font-display); font-size: clamp(1.375rem, 3vw, 1.875rem); font-weight: 700; color: var(--color-red-dark); margin-bottom: 32px; }
.bd-related__pills { display: flex; flex-wrap: wrap; gap: 12px; }
.bd-related__pill { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: var(--radius-full); font-size: .875rem; font-weight: 500; border: 2px solid var(--color-red); color: var(--color-red); transition: background var(--dur-base), color var(--dur-base), transform var(--dur-fast); }
.bd-related__pill:hover { background: var(--color-red); color: #fff; transform: scale(1.05); }
.bd-bottom-bar { background: var(--color-stone-50); border-top: 1px solid var(--color-stone-100); padding-block: 48px; }
.bd-bottom-bar__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.bd-bottom-bar__back { display: inline-flex; align-items: center; gap: 8px; font-size: .9375rem; font-weight: 500; color: var(--color-stone-500); transition: color var(--dur-base); }
.bd-bottom-bar__back:hover { color: var(--color-red); }
@media (min-width: 640px) { .bd-cover { width: 256px; }
}
@media (min-width: 1024px) { .bd-hero__layout { flex-direction: row; align-items: flex-start; gap: 64px; }
.bd-cover { width: 288px; }
.bd-meta { text-align: left; }
.bd-meta__badges { justify-content: flex-start; }
.bd-divider { margin-inline: 0; }
.bd-desc { margin-inline: 0; }
.bd-actions { justify-content: flex-start; }
}
@media (max-width: 640px) { .bd-hero { padding-bottom: 56px; }
.bd-leseprobe { padding-block: 56px; }
.bd-leseprobe__sep { display: none; }
.bd-leseprobe__download { margin-left: 0; max-width: 100%; }
.bd-leseprobe__eintrag-titel { margin-left: 0; }
.bd-bottom-bar__inner { flex-direction: column; align-items: stretch; }
}
/* ===== Quelle: src/css/content-cards.css ===== */ /* ============================================================= GENERISCHE CONTENT-PART-LAYOUTS – content-cards.css Layout 67 "Karten-Grid" (.cardgrid*) und Layout 68 "FAQ-Akkordeon" (.faqakk*) - wiederverwendbar auf mehreren Seiten, Karten kommen aus der Tabelle content_cards (Redaktion: "Karten (Themen/FAQ)"). Optik an die bisherigen seitenspezifischen .kontakt-topics/.kontakt-card/.kontakt-faq* Klassen angelehnt (siehe kontakt.css), hier aber seitenunabhaengig benannt, damit dieselben Klassen auf jeder Seite funktionieren, die Layout 67/68 verwendet. ============================================================= */ .cardgrid { padding-block: 80px; background: #fff; }
.cardgrid__intro { text-align: center; margin-bottom: 48px; max-width: 760px; margin-inline: auto; }
.cardgrid__title { font-family: var(--font-display); font-size: clamp(1.75rem, 4vw, 3rem); font-weight: 700; color: var(--color-red-dark); line-height: 1.15; margin-bottom: 16px; }
.cardgrid__subtitle { font-size: 1.0625rem; color: var(--color-stone-600); line-height: 1.65; }
.cardgrid__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 1200px; margin-inline: auto; }
.cardgrid-card { position: relative; background: #fff; border: 1px solid var(--color-stone-100); border-radius: var(--radius-xl); padding: 24px; overflow: hidden; display: block; text-decoration: none; color: inherit; transition: border-color var(--dur-base), box-shadow var(--dur-base), transform var(--dur-base) var(--ease-out); }
a.cardgrid-card:hover { border-color: transparent; box-shadow: var(--shadow-xl); transform: translateY(-6px); }
.cardgrid-card__bar { position: absolute; top: 0; left: 0; right: 0; height: 4px; transform: scaleX(0); transform-origin: left center; transition: transform var(--dur-base) var(--ease-out); }
a.cardgrid-card:hover .cardgrid-card__bar { transform: scaleX(1); }
.cardgrid-card__icon { position: relative; width: 56px; height: 56px; border-radius: var(--radius-xl); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; font-size: 1.75rem; line-height: 1; box-shadow: var(--shadow-sm); transition: transform var(--dur-base) var(--ease-out); flex-shrink: 0; font-family: "Segoe UI Symbol", "Apple Symbols", Arial, sans-serif; font-variant-emoji: text; }
a.cardgrid-card:hover .cardgrid-card__icon { transform: scale(1.1) rotate(3deg); }
.cardgrid-card__heading { font-family: var(--font-sub); font-size: clamp(1rem, 1.5vw, 1.25rem); font-weight: 700; color: var(--color-red-dark); margin-bottom: 8px; line-height: 1.3; }
.cardgrid-card__sub { font-size: .8125rem; color: var(--color-stone-500); margin-bottom: 8px; }
.cardgrid-card__desc { font-size: .9375rem; color: var(--color-stone-600); line-height: 1.6; margin-bottom: 20px; }
.cardgrid-card--img { padding: 0; display: flex; flex-direction: column; }
.cardgrid-card__img { aspect-ratio: 16/10; overflow: hidden; background: var(--color-stone-100); }
.cardgrid-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--dur-base) var(--ease-out); }
a.cardgrid-card--img:hover .cardgrid-card__img img { transform: scale(1.05); }
.cardgrid-card--img .cardgrid-card__heading, .cardgrid-card--img .cardgrid-card__sub, .cardgrid-card--img .cardgrid-card__desc { padding-inline: 24px; }
.cardgrid-card--img .cardgrid-card__heading { margin-top: 20px; }
.cardgrid-card--img .cardgrid-card__footer { margin-inline: 24px; }
.cardgrid-card--img .cardgrid-card__desc:last-child { margin-bottom: 24px; }
.cardgrid-card__desc p:last-child { margin-bottom: 0; }
.cardgrid-card__footer { display: flex; align-items: center; justify-content: space-between; padding-top: 16px; border-top: 1px solid var(--color-stone-100); }
.cardgrid-card__cta { font-family: var(--font-sub); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; display: inline-flex; align-items: center; gap: 6px; }
.faqakk { padding-block: 80px; background: var(--color-stone-50); }
.faqakk__intro { text-align: center; margin-bottom: 48px; }
.faqakk__label { font-family: var(--font-sub); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--color-red); margin-bottom: 12px; }
.faqakk__title { font-family: var(--font-display); font-size: clamp(1.625rem, 4vw, 2.5rem); font-weight: 700; color: var(--color-red-dark); }
.faqakk__list { max-width: 760px; margin-inline: auto; display: flex; flex-direction: column; gap: 12px; }
.faqakk-item { background: var(--color-stone-50); border: 1px solid var(--color-stone-100); border-radius: var(--radius-xl); overflow: hidden; transition: border-color var(--dur-base); }
.faqakk-item:hover { border-color: var(--color-stone-200); }
.faqakk-item.is-open { background: #fff; border-color: rgba(184,2,1,.2); box-shadow: var(--shadow-md); }
.faqakk-item__btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px; text-align: left; cursor: pointer; background: none; border: none; font-family: var(--font-sub); }
.faqakk-item__question { font-size: clamp(.9375rem, 1.5vw, 1.125rem); font-weight: 700; color: var(--color-red-dark); line-height: 1.4; transition: color var(--dur-base); }
.faqakk-item:not(.is-open):hover .faqakk-item__question { color: var(--color-red); }
.faqakk-item.is-open .faqakk-item__question { color: var(--color-red); }
.faqakk-item__chevron { color: var(--color-stone-400, #a8a29e); flex-shrink: 0; transition: transform var(--dur-base) var(--ease-out), color var(--dur-base); }
.faqakk-item.is-open .faqakk-item__chevron { transform: rotate(90deg); color: var(--color-red); }
.faqakk-item__body { max-height: 0; opacity: 0; overflow: hidden; transition: max-height var(--dur-base) var(--ease-out), opacity var(--dur-base); }
.faqakk-item.is-open .faqakk-item__body { max-height: 400px; opacity: 1; }
.faqakk-item__answer { padding: 0 20px 20px; font-size: 1rem; color: var(--color-stone-600); line-height: 1.75; }
.faqakk-item__answer p:last-child { margin-bottom: 0; }
@media (max-width: 1024px) { .cardgrid__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) { .cardgrid__grid { grid-template-columns: 1fr; }
}
.cardgrid-card__blob { position: absolute; top: -40px; right: -40px; width: 128px; height: 128px; border-radius: 50%; opacity: .2; pointer-events: none; transition: transform .5s var(--ease-out); }
a.cardgrid-card:hover .cardgrid-card__blob { transform: scale(1.25); }
.cardgrid-card__icon svg { display: block; }
.cardgrid__title em, .faqakk__title em, .btnleiste__title em { font-style: italic; color: var(--color-red); }
.cardgrid__subtitle p:last-child, .faqakk__subtitle p:last-child, .btnleiste__text p:last-child { margin-bottom: 0; }
.faqakk__subtitle { font-size: 1.0625rem; color: var(--color-stone-600); line-height: 1.65; max-width: 760px; margin: 16px auto 0; }
.btnleiste { padding-block: 64px; background: #fff; text-align: center; }
.btnleiste__label { font-family: var(--font-sub); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--color-red); margin-bottom: 12px; }
.btnleiste__title { font-family: var(--font-display); font-size: clamp(1.625rem, 4vw, 2.5rem); font-weight: 700; color: var(--color-red-dark); margin-bottom: 32px; }
.btnleiste__text { font-size: 1.0625rem; color: var(--color-stone-600); line-height: 1.65; max-width: 760px; margin: -16px auto 32px; }
.btnleiste__buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.btnleiste-btn { display: inline-flex; align-items: center; gap: 12px; padding: 14px 28px; border-radius: var(--radius-full); font-family: var(--font-sub); font-size: .9375rem; font-weight: 700; text-decoration: none; color: #fff; transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base), background var(--dur-base), color var(--dur-base); box-shadow: var(--shadow-md); }
.btnleiste-btn:hover { transform: scale(1.05); box-shadow: var(--shadow-lg); color: #fff; }
.btnleiste-btn--instagram { background: linear-gradient(135deg, #833ab4 0%, #fd1d1d 50%, #fcb045 100%); }
.btnleiste-btn--youtube { background: #dc2626; }
.btnleiste-btn--youtube:hover { background: #b91c1c; }
.btnleiste-btn--facebook { background: #1877f2; }
.btnleiste-btn--linkedin { background: #0a66c2; }
.btnleiste-btn--tiktok { background: #111; }
.btnleiste-btn--spotify { background: #121212; }
.btnleiste-btn--spotify svg:first-child { color: #1ed760; }
.btnleiste-btn--spotify:hover { background: #000; }
.btnleiste-btn--apple-podcasts { background: linear-gradient(135deg, #9933cc 0%, #6c1fb0 100%); }
.btnleiste-btn__extern { opacity: .8; margin-left: -4px; }
.btnleiste__hinweis { margin-top: 20px; font-size: .875rem; color: var(--color-stone-600); line-height: 1.5; }
.btnleiste__hinweis p { margin: 0 auto; }
section.el--anschliessen { padding-top: 0; }
.btnleiste-btn--outline { background: transparent; border: 2px solid var(--color-red); color: var(--color-red); }
.btnleiste-btn--outline:hover { background: var(--color-red); color: #fff; }
@media (max-width: 768px) { .btnleiste__buttons { flex-direction: column; align-items: center; }
.btnleiste-btn { width: min(100%, 320px); justify-content: center; }
}
/* ===== Quelle: src/css/cta.css ===== */ /* ============================================================= CTA-BANNER – generisches Layout 92 / Preset tb_cta (17.09.2026) Präfix `tbc`. Optik kommt aus dem Feld „Gestaltung" des Content-Bereichs (siehe redaktion/classes/PresetGestaltung.php): Farbe, Deko, Abstand, Titelgröße und Button-Stil sind frei kombinierbar – statt je Seite ein eigenes CTA-Layout (bisher .section-cta / .kinder-cta / .erwachsene-cta / .tvfilm-cta). ============================================================= */ .tbc { position: relative; overflow: hidden; text-align: center; color: #fff; background: var(--color-red); padding-block: 96px; }
.tbc--farbe-rot { background: var(--color-red); }
.tbc--farbe-dunkelrot { background: var(--color-red-dark); }
.tbc--farbe-hell { background: var(--color-stone-50); color: var(--color-stone-900); }
.tbc--abstand-kompakt { padding-block: 80px; }
.tbc--abstand-gross { padding-block: 120px; }
.tbc__rauschen { position: absolute; inset: 0; opacity: .04; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.tbc__inner { position: relative; z-index: 1; }
.tbc__icon { display: block; color: #fff; margin-inline: auto; margin-bottom: 16px; }
.tbc__icon--kreis { width: 64px; height: 64px; border-radius: var(--radius-full); background: rgba(255,255,255,.10); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.tbc--farbe-hell .tbc__icon { color: var(--color-red); }
.tbc--farbe-hell .tbc__icon--kreis { background: rgba(184,2,1,.08); }
.tbc__badge { display: inline-flex; align-items: center; gap: 6px; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.88); margin-bottom: 16px; }
.tbc__badge svg { flex-shrink: 0; }
.tbc--farbe-hell .tbc__badge { color: var(--color-red); }
.tbc__title { font-family: var(--font-display); font-size: var(--title-lg); font-weight: 700; color: inherit; margin-bottom: 20px; }
.tbc__text { font-size: 1.0625rem; color: rgba(255,255,255,.85); max-width: 52ch; margin-inline: auto; margin-bottom: 48px; line-height: 1.65; }
.tbc--farbe-hell .tbc__text { color: var(--color-stone-600); }
.tbc--titel-m .tbc__title { font-size: var(--title-md); margin-bottom: 16px; }
.tbc--titel-m .tbc__text { margin-bottom: 32px; }
.tbc__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.tbc__actions:has(> .btn ~ .btn) { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); max-width: 700px; margin-inline: auto; align-items: stretch; }
/* ===== Quelle: src/css/erlebnis-detail.css ===== */ /* ============================================================= ERLEBNIS-DETAIL.CSS – Detailseite einer Erlebniswelt Präfix ew- · lädt zusätzlich zu styles.css Update: Gold-Badge/-Titelakzent entfernt (Stilmittel bleibt der Keynote-Sektion vorbehalten), Gewicht 900→700, .btn--gold entfernt (auf dunklem Grund .btn--outline-white aus styles.css verwenden) ============================================================= */ .ew-breadcrumb-wrap { background: var(--color-stone-50); padding-top: var(--header-h-xl); }
.ew-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; font-size: .875rem; color: var(--color-stone-500); padding-block: 16px; }
.ew-breadcrumb a { transition: color var(--dur-fast); }
.ew-breadcrumb a:hover { color: var(--color-red); }
.ew-breadcrumb__sep { display: flex; align-items: center; color: var(--color-stone-300); }
.ew-breadcrumb__current { color: var(--color-stone-700); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 280px; }
main:has(.ew-hero) { background: #fff; }
.ew-hero { position: relative; height: clamp(480px, 60vh, 680px); overflow: hidden; }
.ew-hero__img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.ew-hero__overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(57,18,18,.30) 0%, rgba(57,18,18,.40) 45%, rgba(57,18,18,.85) 100%); }
.ew-hero__wave { position: absolute; bottom: -1px; display: block; left: 0; right: 0; width: 100%; color: #fff; pointer-events: none; }
.ew-hero__content { position: absolute; inset: 0; display: flex; align-items: center; }
.ew-hero__inner { max-width: 820px; }
.ew-hero__badge { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-sub); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.80); margin-bottom: 20px; }
.ew-hero__title { font-family: var(--font-display); font-size: clamp(2.5rem, 7vw, 5rem); font-weight: 700; color: #fff; line-height: 1.05; letter-spacing: -.025em; margin-bottom: 16px; text-shadow: 0 2px 16px rgba(0,0,0,.30); }
.ew-hero__location { font-family: var(--font-sub); font-size: clamp(1.125rem, 2.5vw, 1.75rem); font-weight: 600; color: rgba(255,255,255,.85); letter-spacing: .04em; margin-bottom: 24px; text-shadow: 0 1px 8px rgba(0,0,0,.20); }
.ew-hero__chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ew-chip { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.15); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); color: #fff; font-family: var(--font-sub); font-size: .875rem; font-weight: 500; padding: 8px 16px; border-radius: var(--radius-full); border: 1px solid rgba(255,255,255,.20); }
.ew-quote { padding-block: 80px; background: #fff; text-align: center; }
.ew-quote__inner { max-width: 860px; margin-inline: auto; position: relative; }
.ew-quote__icon { position: absolute; top: -24px; left: 50%; transform: translateX(-50%); width: 64px; height: 64px; color: rgba(184,2,1,.12); pointer-events: none; }
.ew-quote__blockquote { padding-top: 32px; }
.ew-quote__text { font-family: var(--font-display); font-size: clamp(1.375rem, 3vw, 2.125rem); font-weight: 700; font-style: italic; color: var(--color-red-dark); line-height: 1.45; max-width: none; }
.ew-quote__footer { margin-top: 32px; display: flex; align-items: center; justify-content: center; gap: 16px; }
.ew-quote__line { height: 1px; width: 48px; background: var(--color-red); flex-shrink: 0; }
.ew-quote__author { font-style: normal; font-family: var(--font-sub); font-size: .8125rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--color-red); }
.ew-desc { padding-block: 0 64px; background: #fff; }
.ew-desc__inner { max-width: 720px; margin-inline: auto; display: flex; flex-direction: column; gap: 20px; }
.ew-desc__lead { font-size: clamp(1.0625rem, 2vw, 1.25rem); font-weight: 600; color: var(--color-red-dark); line-height: 1.65; max-width: none; }
.ew-desc__body { font-size: clamp(1rem, 1.8vw, 1.125rem); color: var(--color-stone-600); line-height: 1.75; max-width: none; }
.ew-desc__scroll-btn { display: inline-flex; align-items: center; gap: 6px; color: var(--color-red); font-family: var(--font-sub); font-weight: 600; font-size: 1rem; background: none; border: none; cursor: pointer; padding: 0; margin-top: 8px; transition: gap var(--dur-base), color var(--dur-base); }
.ew-desc__scroll-btn:hover { color: var(--color-red-hover); gap: 10px; }
.ew-paths { padding-block: 80px; position: relative; overflow: hidden; background: var(--color-stone-50); }
.ew-paths__deco { position: absolute; inset: 0; pointer-events: none; }
.ew-paths__deco-blob { position: absolute; border-radius: 50%; filter: blur(48px); opacity: .30; }
.ew-paths__deco-blob--1 { top: 80px; left: 48px; width: 128px; height: 128px; background: rgba(184,2,1,.10); }
.ew-paths__deco-blob--2 { bottom: 80px; right: 64px; width: 160px; height: 160px; background: rgba(184,2,1,.08); }
.ew-paths__intro { text-align: center; margin-bottom: 56px; position: relative; }
.ew-paths__divider { width: 64px; height: 4px; background: var(--color-red); border-radius: var(--radius-full); margin: 24px auto 0; }
.ew-paths__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; position: relative; }
.ew-path-card { position: relative; border-radius: 24px; overflow: hidden; padding: 32px; transition: transform var(--dur-slow) var(--ease-out), box-shadow var(--dur-slow) var(--ease-out); }
.ew-path-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-xl); }
.ew-path-card__deco { position: absolute; top: -32px; right: -32px; width: 128px; height: 128px; border-radius: 50%; opacity: .20; transition: transform var(--dur-slow) var(--ease-out); }
.ew-path-card:hover .ew-path-card__deco { transform: scale(1.25); }
.ew-path-card__emoji { font-size: 3.5rem; line-height: 1; margin-bottom: 20px; display: inline-block; position: relative; z-index: 1; transition: transform var(--dur-base) var(--ease-out); }
.ew-path-card:hover .ew-path-card__emoji { transform: scale(1.1) rotate(6deg); }
.ew-path-card__location { display: inline-flex; align-items: center; gap: 4px; font-family: var(--font-sub); font-size: .6875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 4px 12px; border-radius: var(--radius-full); background: rgba(255,255,255,.60); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); margin-bottom: 12px; position: relative; z-index: 1; }
.ew-path-card__title { font-family: var(--font-sub); font-size: clamp(1.375rem, 2.5vw, 1.875rem); font-weight: 700; margin-bottom: 12px; line-height: 1.2; position: relative; z-index: 1; }
.ew-path-card__text { font-size: 1rem; color: var(--color-stone-700); font-weight: 500; line-height: 1.6; position: relative; z-index: 1; max-width: none; }
.ew-path-card__accent { margin-top: 24px; display: flex; align-items: center; gap: 8px; position: relative; z-index: 1; }
.ew-path-card__accent-line { height: 4px; width: 48px; border-radius: var(--radius-full); transition: width var(--dur-base) var(--ease-out); }
.ew-path-card:hover .ew-path-card__accent-line { width: 80px; }
.ew-gallery { padding-block: 80px; background: #fff; }
.ew-gallery__intro { text-align: center; margin-bottom: 40px; }
.ew-gallery__slider { position: relative; border-radius: 24px; overflow: hidden; background: var(--color-stone-900); box-shadow: 0 24px 64px rgba(0,0,0,.22); max-width: 960px; margin-inline: auto; user-select: none; }
.ew-gallery__track { display: flex; will-change: transform; transition: transform 700ms ease-in-out; }
.ew-gallery__slide { flex-shrink: 0; width: 100%; aspect-ratio: 16 / 10; position: relative; background: var(--color-stone-800); }
.ew-gallery__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ew-gallery__btn { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.20); border-radius: var(--radius-full); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #fff; display: flex; align-items: center; justify-content: center; transition: background var(--dur-base), transform var(--dur-base); z-index: 10; }
.ew-gallery__btn:hover { background: var(--color-red); transform: translateY(-50%) scale(1.1); }
.ew-gallery__btn--prev { left: 16px; }
.ew-gallery__btn--next { right: 16px; }
.ew-gallery__dots { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; z-index: 10; }
.ew-gallery__dot { height: 8px; width: 8px; border-radius: var(--radius-full); background: rgba(255,255,255,.40); border: none; cursor: pointer; padding: 0; transition: background var(--dur-base), width var(--dur-base); }
.ew-gallery__dot.is-active { background: #fff; width: 28px; }
.ew-gallery__dot:hover:not(.is-active) { background: rgba(255,255,255,.70); }
.ew-gallery__counter { position: absolute; top: 20px; right: 20px; background: rgba(0,0,0,.40); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #fff; font-family: var(--font-sub); font-size: .75rem; font-weight: 600; padding: 4px 12px; border-radius: var(--radius-full); border: 1px solid rgba(255,255,255,.10); z-index: 10; }
.ew-cta { padding-block: 80px; background: var(--color-red-dark); color: #fff; text-align: center; position: relative; overflow: hidden; }
.ew-cta__noise { position: absolute; inset: 0; opacity: .04; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.ew-cta__inner { position: relative; z-index: 1; }
.ew-cta__title { font-family: var(--font-display); font-size: clamp(1.75rem, 4vw, 2.75rem); font-weight: 700; color: #fff; margin-bottom: 16px; }
.ew-cta__text { font-size: 1.0625rem; color: rgba(255,255,255,.80); max-width: 52ch; margin-inline: auto; margin-bottom: 32px; line-height: 1.65; }
.ew-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.ew-cta__actions:has(> .btn ~ .btn) { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); max-width: 700px; margin-inline: auto; align-items: stretch; }
@media (max-width: 900px) { .ew-paths__grid { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 768px) { .ew-hero__title { letter-spacing: -.015em; }
.ew-quote { padding-block: 56px; }
.ew-desc { padding-block: 0 48px; }
.ew-paths { padding-block: 56px; }
.ew-gallery { padding-block: 56px; }
.ew-cta { padding-block: 56px; }
.ew-gallery__btn { width: 40px; height: 40px; }
.ew-gallery__btn--prev { left: 10px; }
.ew-gallery__btn--next { right: 10px; }
.ew-cta__actions { flex-direction: column; align-items: center; }
.ew-breadcrumb__current { max-width: 180px; }
.ew-tagline { padding-block: 40px; }
}
.ew-tagline { padding-block: 64px; background: #fff; text-align: center; }
.ew-tagline__inner { max-width: 820px; margin-inline: auto; }
.ew-tagline__text { font-family: var(--font-display); font-size: clamp(1.5rem, 3.5vw, 2.375rem); font-weight: 700; color: var(--color-red-dark); line-height: 1.35; max-width: none; }
.ew-tagline__divider { width: 64px; height: 4px; background: var(--color-red); border-radius: var(--radius-full); margin: 32px auto 0; }
.ew-paths__grid--4col { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .ew-paths__grid--4col { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) { .ew-paths__grid--4col { grid-template-columns: 1fr; }
}
/* ===== Quelle: src/css/error-page.css ===== */ /* ============================================================= 404 / FEHLERSEITE – error-page.css Eigene "Seite nicht gefunden"-Seite (kein Pendant auf der statischen Referenzseite). Hero-Optik analog zu .termine-hero/ .kontakt-hero (gleiche Gradient/Blob/Wave-Bausteine), eigener Klassen-Namensraum. Hero = Layout 66 (Preset tb_404, content.id=16), die Quicklinks darunter = generisches Layout 82 "Link-Kacheln" (link-kacheln.css). ============================================================= */ .error-hero { position: relative; overflow: hidden; background: var(--color-red-dark); padding-top: calc(var(--header-h) + 32px); padding-bottom: 96px; color: #fff; text-align: center; }
/* ===== Quelle: src/css/ew.css ===== */ /* ============================================================= ERLEBNISWELTEN PAGE — ew.css Companion-Stylesheet zu styles.css Update: Hero-Titelakzent + Badge nicht mehr gold/kursiv (Stilmittel bleibt der Keynote-Sektion auf der Startseite vorbehalten), Gewicht 900→700, .btn--gold entfernt, Blobs auf Rot vereinheitlicht ============================================================= */ .ewu-hero { position: relative; padding-top: calc(var(--header-h) + 80px); padding-bottom: 80px; overflow: hidden; background: var(--color-red-dark); color: #fff; }
.badge--gold { color: rgba(255,255,255,.80); background: none; border: none; box-shadow: none; }
.ewu-hero__title-accent { color: #fff; }
.ewu-hero__text p:first-child:has(> strong:only-child) { font-size: clamp(1.125rem, 2.5vw, 1.375rem); color: rgba(255,255,255,.90); line-height: 1.55; margin-bottom: 12px; max-width: none; }
.ew-sort-bar { position: sticky; top: var(--header-h); z-index: 20; background: rgba(255,255,255,.95); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid var(--color-stone-100); padding-block: 14px; box-shadow: var(--shadow-sm); }
.ew-sort-bar__inner { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ew-sort-bar__label { display: flex; align-items: center; gap: 8px; font-size: .875rem; font-weight: 600; color: var(--color-stone-500); white-space: nowrap; }
.ew-sort-bar__label svg { color: var(--color-stone-400); }
.ew-sort-bar__btns { display: flex; flex-wrap: wrap; gap: 8px; flex: 1; }
.ew-sort-btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 16px; border-radius: var(--radius-full); font-size: .875rem; font-weight: 600; font-family: var(--font-sub); background: var(--color-stone-100); color: var(--color-stone-600); transition: background var(--dur-base), color var(--dur-base), transform var(--dur-fast); cursor: pointer; }
.ew-sort-btn:hover { background: var(--color-stone-200); }
.ew-sort-btn--active { background: var(--color-red-dark); color: #fff; box-shadow: var(--shadow-md); transform: scale(1.05); }
.ew-sort-bar__count { margin-left: auto; font-size: .875rem; color: var(--color-stone-400); white-space: nowrap; }
.ew-worlds { background: #fff; }
.ew-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.ew-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--color-stone-100); border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-sm); text-decoration: none; color: inherit; transition: transform var(--dur-slow) var(--ease-out), box-shadow var(--dur-slow) var(--ease-out), border-color var(--dur-slow); --ew-accent: var(--color-red); }
.ew-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-xl); border-color: transparent; }
.ew-card--red { --ew-accent: var(--color-red); }
.ew-card--blue { --ew-accent: #1e3a8a; }
.ew-card--sky { --ew-accent: #0369a1; }
.ew-card__image { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--color-stone-100); }
.ew-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease-out); }
.ew-card:hover .ew-card__image img { transform: scale(1.10); }
.ew-card__image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.70) 0%, rgba(0,0,0,.18) 55%, transparent 100%); pointer-events: none; }
.ew-card__year { position: absolute; top: 16px; right: 16px; z-index: 1; background: rgba(255,255,255,.90); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); border-radius: var(--radius-full); padding: 4px 12px; font-size: .75rem; font-weight: 700; color: var(--ew-accent); }
.ew-card__image-footer { position: absolute; bottom: 0; left: 0; right: 0; padding: 24px; z-index: 1; }
.ew-card__image-title { font-family: var(--font-display); font-size: clamp(1.25rem, 2.5vw, 1.625rem); font-weight: 700; color: #fff; line-height: 1.2; margin-bottom: 8px; text-shadow: 0 2px 8px rgba(0,0,0,.35); }
.ew-card__location { display: flex; align-items: center; gap: 6px; font-size: .875rem; font-weight: 600; color: rgba(255,255,255,.90); }
.ew-card__body { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.ew-card__category { font-size: .6875rem; font-weight: 700; letter-spacing: .10em; text-transform: uppercase; color: var(--ew-accent); margin-bottom: 12px; }
.ew-card__desc { font-size: .875rem; line-height: 1.65; color: var(--color-stone-600); flex: 1; margin-bottom: 24px; max-width: none; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ew-card__footer { display: flex; align-items: center; justify-content: space-between; padding-top: 16px; border-top: 1px solid var(--color-stone-100); }
.ew-card__more { display: inline-flex; align-items: center; gap: 8px; font-size: .875rem; font-weight: 700; color: var(--ew-accent); transition: gap var(--dur-base); }
.ew-card:hover .ew-card__more { gap: 12px; }
.ew-card__icon-btn { width: 36px; height: 36px; border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; background: rgba(184,2,1,.08); color: var(--ew-accent); transition: transform var(--dur-base), background var(--dur-base); flex-shrink: 0; }
.ew-card--blue .ew-card__icon-btn { background: rgba(30,58,138,.08); }
.ew-card--sky .ew-card__icon-btn { background: rgba(3,105,161,.08); }
.ew-card:hover .ew-card__icon-btn { transform: scale(1.1); }
.ew-card__top-bar { position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--ew-accent); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--ease-out); }
.ew-card:hover .ew-card__top-bar { transform: scaleX(1); }
.ew-konzept { background: var(--color-stone-50); position: relative; overflow: hidden; }
.ew-konzept::before { content: ''; position: absolute; top: 40px; right: 40px; width: 160px; height: 160px; border-radius: 50%; background: rgba(184,2,1,.10); filter: blur(60px); pointer-events: none; opacity: .5; }
.ew-konzept::after { content: ''; position: absolute; bottom: 40px; left: 40px; width: 192px; height: 192px; border-radius: 50%; background: rgba(184,2,1,.06); filter: blur(60px); pointer-events: none; opacity: .5; }
.ew-konzept__inner { text-align: center; max-width: 960px; margin-inline: auto; position: relative; z-index: 1; }
.ew-konzept__title { font-family: var(--font-display); font-size: clamp(1.875rem, 5vw, 3.5rem); font-weight: 700; color: var(--color-red-dark); margin-top: 8px; margin-bottom: 24px; line-height: 1.15; }
.ew-konzept__title em { font-style: italic; color: var(--color-red); }
.ew-konzept__intro-text p:first-child { font-size: clamp(1rem, 2vw, 1.375rem); font-weight: 500; color: var(--color-stone-700); margin-bottom: 12px; max-width: none; }
.ew-konzept__intro-text p:last-child { font-size: 1rem; line-height: 1.75; color: var(--color-stone-600); max-width: 68ch; margin-inline: auto; }
.ew-konzept-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 56px; text-align: left; }
.ew-konzept-card { border-radius: var(--radius-lg); padding: 24px; transition: transform var(--dur-base) var(--ease-out); background: #fff; border: 1px solid var(--color-stone-100); }
.ew-konzept-card:hover { transform: translateY(-4px); }
.ew-konzept-card__icon { font-size: 2.25rem; margin-bottom: 12px; line-height: 1; }
.ew-konzept-card__title { font-size: 1.0625rem; font-weight: 700; color: var(--color-red-dark); margin-bottom: 8px; }
.ew-konzept-card__text { font-size: .875rem; line-height: 1.65; color: var(--color-stone-600); max-width: none; }
.ew-cta__icon { width: 64px; height: 64px; border-radius: var(--radius-full); background: rgba(255,255,255,.10); display: flex; align-items: center; justify-content: center; margin-inline: auto; margin-bottom: 20px; color: #fff; }
@media (max-width: 1024px) { .ew-grid { grid-template-columns: repeat(2, 1fr); }
.ew-konzept-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) { .ew-grid { grid-template-columns: 1fr; }
.ew-konzept-cards { grid-template-columns: 1fr; }
.ew-sort-bar__count{ display: none; }
}
/* ===== Quelle: src/css/hero.css ===== */ /* ============================================================= HERO (generisch) – hero.css Layout 90 / Preset tb_hero, Ausgabe renderTbHero() in inc.functions_all.php. Ersetzt die 11 seitenspezifischen Heroes (Startseite, Kinder, Erwachsene, Bücher, Erlebniswelten, Über Thomas, TV & Film, Unternehmen, Kontakt, Termine, 404). Die Optik entsteht aus kombinierbaren Klassen, die aus dem Feld "Gestaltung" des Content-Bereichs kommen (classes/PresetGestaltung.php): tbh--farbe-{ hell|dunkelrot|verlauf}
Hintergrund tbh--bild-{ vollflaeche|gedimmt|seitlich}
Umgang mit dem Hauptbild tbh--hoehe-{ auto|hoch|voll}
tbh--ausrichtung-{ links|mitte}
tbh--abstand-{ normal|gross}
Innenabstand oben/unten tbh--titel-{ s|m|l|xl}
tbh--text-{ gross|mittel|klein}
tbh--badge-{ text|pill}
tbh--kennzahlen-{ karten|glas|glas-versal|linie}
tbh--buttons-{ umriss|weiss}
tbh--deko-{ welle|blobs|blobs-stark|rauschen|glow|bubbles|scroll}
Reihenfolge der Regeln ist wichtig (Höhe überschreibt Abstand). ============================================================= */ .tbh { position: relative; overflow: hidden; color: #fff; background: var(--color-red-dark); padding-top: calc(var(--header-h) + 32px); padding-bottom: 64px; }
.tbh--farbe-hell { background: var(--color-stone-50); color: var(--color-stone-900); }
.tbh--farbe-dunkelrot { background: var(--color-red-dark); }
.tbh--farbe-verlauf { background: linear-gradient(135deg, var(--color-red-dark) 0%, #5a1a1a 50%, var(--color-red) 100%); }
.tbh--abstand-gross { padding-top: calc(var(--header-h) + 72px); padding-bottom: 88px; }
.tbh--deko-welle { padding-bottom: 96px; }
.tbh--hoehe-hoch { min-height: 62vh; display: flex; align-items: flex-end; padding-top: calc(var(--header-h) + 64px); padding-bottom: 108px; }
.tbh--hoehe-voll { min-height: 100svh; display: flex; align-items: center; padding-top: calc(var(--header-h-xl) + 30px); padding-bottom: 80px; }
.tbh--hoehe-hoch > .container, .tbh--hoehe-voll > .container { width: 100%; }
.tbh__bild { position: absolute; inset: 0; z-index: 0; }
.tbh__bild img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.tbh__overlay { position: absolute; inset: 0; z-index: 1; }
.tbh--bild-vollflaeche .tbh__overlay { background: linear-gradient(to bottom, rgba(28,25,23,.70) 0%, rgba(28,25,23,.62) 50%, var(--color-stone-50) 100%); }
.tbh--bild-gedimmt .tbh__bild img { opacity: .25; }
.tbh--bild-gedimmt .tbh__overlay { background: linear-gradient(135deg, rgba(57,18,18,.95) 0%, rgba(90,26,26,.85) 55%, rgba(184,2,1,.70) 100%); }
.tbh--bild-seitlich .tbh__bild img { object-position: top center; }
.tbh--bild-seitlich .tbh__overlay { background: linear-gradient(to right, rgba(28,25,23,.82) 0%, rgba(57,18,18,.50) 55%, rgba(28,25,23,.15) 100%); }
.tbh__inner { position: relative; z-index: 2; max-width: 880px; }
.tbh--ausrichtung-mitte { text-align: center; }
.tbh--ausrichtung-mitte .tbh__inner { max-width: 760px; margin-inline: auto; }
.tbh--hoehe-hoch .tbh__inner { max-width: 660px; }
.tbh--hoehe-voll .tbh__inner, .tbh--text-klein .tbh__inner { max-width: none; }
.tbh__badge { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-sub); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; margin-bottom: 24px; }
.tbh__badge svg { flex-shrink: 0; }
.tbh--farbe-hell .tbh__badge { color: var(--color-red); }
.tbh--badge-pill .tbh__badge { background: rgba(184,2,1,.18); border: 1px solid rgba(184,2,1,.35); color: #fff; font-size: .75rem; padding: 6px 14px; border-radius: var(--radius-md); margin-bottom: 20px; }
.tbh__badge-punkt { width: 7px; height: 7px; border-radius: 50%; background: var(--color-red); flex-shrink: 0; }
.tbh__code { font-family: var(--font-display); font-size: clamp(4.5rem, 16vw, 9rem); font-weight: 700; color: var(--color-gold); line-height: 1; margin: 0 0 4px; }
.tbh__title { font-family: var(--font-display); font-weight: 700; color: #fff; margin: 0 0 20px; }
.tbh--farbe-hell .tbh__title { color: var(--color-red-dark); }
.tbh--titel-s .tbh__title { font-size: clamp(2rem, 5.5vw, 3.25rem); line-height: 1.15; margin-bottom: 18px; }
.tbh--titel-s .tbh__badge { margin-bottom: 20px; }
.tbh--titel-m .tbh__title { font-size: clamp(2.25rem, 6vw, 3.75rem); line-height: 1.1; letter-spacing: -.02em; }
.tbh--titel-m .tbh__badge { margin-bottom: 32px; }
.tbh--titel-l .tbh__title { font-size: clamp(2.4rem, 6vw, 4.2rem); line-height: 1.08; }
.tbh--titel-xl .tbh__title { font-size: clamp(2.8rem, 8vw, 5.5rem); line-height: 1.05; }
.tbh__text { line-height: 1.65; color: #fff; }
.tbh .btn--outline-white { background-color: rgba(28,25,23,.22); }
.tbh .btn--outline-white:hover, .tbh .btn--outline-white:focus-visible { background-color: #fff; color: var(--color-red-dark); border-color: #fff; }
.tbh__text p { margin: 0; }
.tbh__text p + p { margin-top: .75em; }
.tbh--farbe-hell .tbh__text { color: var(--color-stone-600); }
.tbh--text-gross .tbh__text { font-size: clamp(1.0625rem, 2.5vw, 1.375rem); max-width: 640px; }
.tbh--text-mittel .tbh__text { font-size: clamp(1rem, 2.5vw, 1.25rem); max-width: 580px; }
.tbh--text-klein .tbh__text { font-size: 1rem; line-height: 1.75; color: rgba(255,255,255,.92); }
.tbh--text-klein .tbh__text p { max-width: 60ch; }
.tbh--text-klein .tbh__text p + p { margin-top: 12px; }
.tbh--text-klein .tbh__text p:first-child:has(> strong:only-child) { font-size: clamp(1.125rem, 2.5vw, 1.375rem); color: rgba(255,255,255,.90); line-height: 1.55; margin-bottom: 12px; max-width: none; }
.tbh--text-klein .tbh__text p:first-child:has(> strong:only-child) > strong { font-weight: inherit; }
.tbh--ausrichtung-mitte .tbh__text, .tbh--ausrichtung-mitte .tbh__text p { margin-inline: auto; }
.tbh__stats { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; }
.tbh--ausrichtung-mitte .tbh__stats { justify-content: center; }
.tbh__stat-zahl { display: block; font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; line-height: 1; color: #fff; }
.tbh__stat-label { display: block; font-size: .75rem; margin-top: 6px; color: rgba(255,255,255,.65); }
.tbh--kennzahlen-karten .tbh__stats { gap: 16px; }
.tbh--kennzahlen-karten .tbh__stat { text-align: center; background: #fff; border: 1px solid var(--color-stone-200); border-radius: var(--radius-xl); padding: 12px 20px; box-shadow: var(--shadow-sm); }
.tbh--kennzahlen-karten .tbh__stat-zahl { display: inline; color: var(--color-red); }
.tbh--kennzahlen-karten .tbh__stat-label { display: inline; color: var(--color-stone-500); margin-top: 2px; }
.tbh--kennzahlen-glas .tbh__stat, .tbh--kennzahlen-glas-versal .tbh__stat { background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.10); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); border-radius: var(--radius-lg); padding: 12px 20px; }
.tbh--kennzahlen-glas .tbh__stat-label { letter-spacing: .05em; }
.tbh--kennzahlen-glas-versal .tbh__stat-label { font-family: var(--font-sub); font-size: .7rem; color: #d6d3d1; letter-spacing: .06em; text-transform: uppercase; margin-top: .35rem; }
.tbh--kennzahlen-linie .tbh__stats { gap: 32px 48px; padding-top: 40px; border-top: 1px solid rgba(255,255,255,.15); }
.tbh--kennzahlen-linie .tbh__stat { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.tbh--kennzahlen-linie .tbh__stat-zahl { font-size: 2rem; }
.tbh--kennzahlen-linie .tbh__stat-label { font-size: .8125rem; font-weight: 600; margin-top: 0; text-align: center; }
.tbh__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 40px; }
.tbh--ausrichtung-mitte .tbh__actions { justify-content: center; }
.tbh__actions:has(> .btn ~ .btn) { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); max-width: 720px; }
.tbh__actions:has(> .btn ~ .btn ~ .btn) { max-width: 1080px; }
.tbh--ausrichtung-mitte .tbh__actions:has(> .btn ~ .btn) { margin-inline: auto; }
.tbh__actions .btn-external-icon { margin-left: 2px; }
.tbh__glow { position: absolute; inset: 0; z-index: 0; pointer-events: none; background: radial-gradient(ellipse 70% 60% at 80% 40%, rgba(184,2,1,.22) 0%, transparent 70%); }
.tbh__rauschen { position: absolute; inset: 0; z-index: 1; opacity: .05; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"); }
.tbh__blobs { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.tbh__blobs span { position: absolute; border-radius: 50%; }
.tbh--deko-blobs .tbh__blobs { opacity: .2; }
.tbh--deko-blobs .tbh__blobs span:nth-child(1) { top: 48px; left: 48px; width: 320px; height: 320px; background: rgba(184,2,1,.20); filter: blur(64px); }
.tbh--deko-blobs .tbh__blobs span:nth-child(2) { bottom: 48px; right: 80px; width: 384px; height: 384px; background: rgba(184,2,1,.15); filter: blur(64px); }
.tbh--deko-blobs-stark .tbh__blobs { opacity: 1; }
.tbh--deko-blobs-stark .tbh__blobs span { opacity: .2; filter: blur(80px); }
.tbh--deko-blobs-stark .tbh__blobs span:nth-child(1) { top: 3rem; left: 3rem; bottom: auto; right: auto; width: 320px; height: 320px; background: rgba(184,2,1,.6); }
.tbh--deko-blobs-stark .tbh__blobs span:nth-child(2) { bottom: 3rem; right: 5rem; top: auto; left: auto; width: 380px; height: 380px; background: rgba(184,2,1,.4); }
.tbh__bubbles { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.tbh__bubbles span { position: absolute; border-radius: 50%; will-change: transform; }
.tbh__bubbles span:nth-child(1) { width: 128px; height: 128px; top: 8%; left: 3%; background: rgba(184,2,1,.06); animation: bubbleDrift1 17s ease-in-out infinite; }
.tbh__bubbles span:nth-child(2) { width: 80px; height: 80px; top: 20%; right: 6%; background: rgba(184,2,1,.08); animation: bubbleDrift2 13s ease-in-out infinite; animation-delay: -3s; }
.tbh__bubbles span:nth-child(3) { width: 64px; height: 64px; bottom: 10%; left: 12%; background: rgba(184,2,1,.06); animation: bubbleDrift3 19s ease-in-out infinite; animation-delay: -7s; }
.tbh__welle { position: absolute; bottom: -1px; left: 0; right: 0; width: 100%; line-height: 0; color: #fff; z-index: 2; }
.tbh__welle svg { display: block; width: 100%; }
.tbh__scroll { position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%); z-index: 2; animation: heroBounce 1s infinite; color: #fff; }
.tbh__scroll svg { transform: rotate(90deg); }
@media (prefers-reduced-motion: reduce) { .tbh__bubbles span, .tbh__scroll { animation: none; }
}
@media (max-width: 768px) { .tbh--abstand-gross { padding-top: calc(var(--header-h) + 48px); padding-bottom: 64px; }
.tbh--deko-welle { padding-bottom: 72px; }
.tbh--hoehe-hoch { min-height: 54vh; padding-top: calc(var(--header-h) + 40px); padding-bottom: 92px; }
.tbh--hoehe-voll { min-height: 50svh; padding-bottom: 48px; }
.tbh--bild-seitlich .tbh__overlay { background: linear-gradient(to bottom, rgba(28,25,23,.65) 0%, rgba(28,25,23,.5) 100%); }
.tbh__actions { flex-direction: column; align-items: flex-start; }
.tbh--ausrichtung-mitte .tbh__actions { align-items: center; }
}
@media (max-width: 640px) { .tbh__stats { gap: 8px; }
.tbh--kennzahlen-karten .tbh__stats { gap: 16px; }
.tbh--kennzahlen-glas .tbh__stat { padding: 10px 16px; }
.tbh--kennzahlen-linie .tbh__stat-zahl { font-size: 1.5rem; }
}
@media (max-width: 480px) { .tbh--titel-xl .tbh__title { font-size: clamp(2.25rem, 10vw, 3.5rem); }
}
/* ===== Quelle: src/css/kontakt.css ===== */ /* ============================================================= KONTAKT – kontakt.css Seitenspezifische Stile für kontakt.php Update: Gold-Badge/Titelakzent/Email-Button auf Rot/Weiß umgestellt (Gold bleibt allein der Keynote-Sektion vorbehalten) ============================================================= */ .kontakt-hero { position: relative; overflow: hidden; background: var(--color-red-dark); padding-top: calc(var(--header-h) + 32px); padding-bottom: 96px; color: #fff; }
.kontakt-hero__title-accent { color: #fff; display: block; }
.kontakt-form { display: flex; flex-direction: column; gap: 20px; }
.kontakt-faq { padding-block: 80px; background: var(--color-stone-50); }
.kontakt-faq-item { background: var(--color-stone-50); border: 1px solid var(--color-stone-100); border-radius: var(--radius-xl); overflow: hidden; transition: border-color var(--dur-base); }
.kontakt-faq-item:hover { border-color: var(--color-stone-200); }
.kontakt-faq-item--open { background: #fff; border-color: rgba(184,2,1,.2); box-shadow: var(--shadow-md); }
.kontakt-faq-item__btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px; text-align: left; cursor: pointer; background: none; border: none; font-family: var(--font-sub); }
.kontakt-final-cta__title em { font-style: normal; color: #fff; }
.kontakt-hero__actions { display: flex; flex-wrap: wrap; gap: 16px; }
/* ===== Quelle: src/css/link-kacheln.css ===== */ /* ============================================================= LINK-KACHELN – link-kacheln.css Generisches Layout 82 (Preset tb_link_kacheln): zentrierte Subline+Icon, Überschrift, optionaler Text + Raster aus Icon-Link-Kacheln (content_cards: Titel, Button-Link, SVG-Icon, optional Unterzeile). Optik 1:1 aus den bisherigen 404-Quicklinks (.error-links*). Claude 16.09.2026 ============================================================= */ .linkkacheln { padding-block: 72px; background: #fff; text-align: center; }
.linkkacheln__label { justify-content: center; font-family: var(--font-sub); font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--color-red); margin-bottom: 12px; }
.linkkacheln__title { font-family: var(--font-display); font-size: clamp(1.5rem, 3.5vw, 2rem); font-weight: 700; color: var(--color-stone-900); margin-bottom: 40px; }
.linkkacheln__title em { font-style: italic; color: var(--color-red); }
.linkkacheln__text { max-width: 640px; margin: -24px auto 40px; color: var(--color-stone-600); line-height: 1.65; }
.linkkacheln__text p { margin: 0; }
.linkkacheln__text p + p { margin-top: .75em; }
.linkkacheln__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; max-width: 920px; margin-inline: auto; }
.linkkacheln__item { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 28px 20px; border: 1px solid var(--color-stone-200); border-radius: var(--radius-lg); color: var(--color-stone-900); text-decoration: none; transition: transform var(--dur-base, .2s) ease, box-shadow var(--dur-base, .2s) ease, border-color var(--dur-base, .2s) ease; }
.linkkacheln__item:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--color-red); }
.linkkacheln__item svg { color: var(--color-red); }
.linkkacheln__item-label { font-family: var(--font-sub); font-weight: 700; font-size: .9375rem; }
.linkkacheln__item-sub { font-size: .8125rem; color: var(--color-stone-500); line-height: 1.4; }
.linkkacheln__item--ohne-link { cursor: default; }
.linkkacheln__item-text { display: block; margin-top: 6px; font-size: .875rem; line-height: 1.5; color: var(--color-stone-600); }
/* ===== Quelle: src/css/newsletter.css ===== */ .cms-form-host { margin-top: 28px; }
.cms-form-host .cms-form-wrap { max-width: 520px; margin-inline: auto; }
.cms-form-hinweis { text-align: center; color: var(--color-stone-500); padding: 1.5rem 0; }
.tbc__formular .cms-form__group { margin: 0; }
.tbc__formular .cms-form__field { margin-bottom: 12px; text-align: left; }
.tbc__formular .cms-form__label { color: #fff; font-size: .875rem; font-weight: 600; display: block; margin-bottom: 6px; }
.tbc__formular .cms-form__required { color: #fff; }
.tbc__formular .cms-form__input, .tbc__formular .cms-form__textarea, .tbc__formular .cms-form__select { width: 100%; padding: 14px 18px; border: 1px solid rgba(255,255,255,.45); border-radius: var(--radius-md); background: rgba(255,255,255,.12); color: #fff; font-family: inherit; font-size: 1rem; }
.tbc__formular .cms-form__input::placeholder { color: rgba(255,255,255,.75); }
.tbc__formular .cms-form__input:focus-visible, .tbc__formular .cms-form__textarea:focus-visible, .tbc__formular .cms-form__select:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.tbc__formular .cms-form__checkbox-label, .tbc__formular .cms-form__radio-label { color: rgba(255,255,255,.92); font-size: .9375rem; line-height: 1.5; padding-left: 32px; }
.tbc__formular .cms-form__checkbox-label a, .tbc__formular .cms-form__radio-label a { color: #fff; text-decoration: underline; }
.tbc__formular input[type="checkbox"], .tbc__formular input[type="radio"] { accent-color: #fff; top: 1px; margin: 0; }
.tbc__formular .cms-form__submit-row { margin-top: 16px; }
.tbc__formular .cms-form__submit { width: 100%; padding: 16px 28px; border: none; border-radius: var(--radius-md); background: #fff; color: var(--color-red); font-family: var(--font-sub); font-size: 1rem; font-weight: 700; cursor: pointer; transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.tbc__formular .cms-form__submit:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.18); }
.tbc__formular .cms-form__success, .tbc__formular .cms-form__error-box { color: #fff; font-size: 1rem; line-height: 1.6; }
.tbc__formular .cms-form__error-box { background: rgba(0,0,0,.22); border-radius: var(--radius-md); padding: 12px 16px; margin-bottom: 12px; }
.tbc__formular .cms-form__field-error { color: #ffe4e2; font-size: .8125rem; }
.tbc--farbe-hell .tbc__formular .cms-form__label, .tbc--farbe-hell .tbc__formular .cms-form__checkbox-label { color: var(--color-stone-700); }
.tbc--farbe-hell .tbc__formular .cms-form__input { background: #fff; color: var(--color-stone-900); border-color: var(--color-stone-300); }
.tbc--farbe-hell .tbc__formular .cms-form__input::placeholder { color: var(--color-stone-500); }
.tbc--farbe-hell .tbc__formular .cms-form__submit { background: var(--color-red); color: #fff; }
.tbc--farbe-hell .tbc__formular .cms-form__success { color: var(--color-stone-700); }
.nl-status { padding-block: 72px; }
.nl-status__box { max-width: 620px; margin-inline: auto; text-align: center; background: #fff; border: 1px solid var(--color-stone-200); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 48px 32px; }
.nl-status__icon { width: 64px; height: 64px; margin: 0 auto 20px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(184,2,1,.08); color: var(--color-red); }
.nl-status--ok .nl-status__icon { background: rgba(21,128,61,.10); color: #15803d; }
.nl-status__title { font-family: var(--font-display); font-size: clamp(1.5rem, 3vw, 2rem); color: var(--color-stone-900); margin: 0 0 12px; }
.nl-status__text { font-size: 1.0625rem; line-height: 1.7; color: var(--color-stone-600); margin: 0 auto; max-width: 46ch; }
.nl-status__mail { margin-top: 16px; font-size: .9375rem; color: var(--color-stone-500); }
.nl-status__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 28px; }
@media (max-width: 480px) { .nl-status { padding-block: 48px; }
.nl-status__box { padding: 32px 20px; }
.nl-status__actions .btn { width: 100%; }
}
/* ===== Quelle: src/css/termine.css ===== */ /* ============================================================= TERMINE / VERANSTALTUNGEN – termine.css Eigene Übersichtsseite (kein Pendant auf der statischen Referenz- seite - siehe CLAUDE.md §7 "Events"). Hero-Optik analog zu .kontakt-hero (gleiche Gradient/Blob/Wave-Bausteine, eigener Klassen-Namensraum für saubere Trennung). ============================================================= */ .termine-hero { position: relative; overflow: hidden; background: var(--color-red-dark); padding-top: calc(var(--header-h) + 32px); padding-bottom: 96px; color: #fff; }
.event-card--past { opacity: .6; }
.event-card--past:hover { transform: none; box-shadow: var(--shadow-sm); }
#termine-past-grid[hidden] { display: none; }
.termine-past-toggle { display: block; margin: 0 auto; background: none; border: 1px solid var(--color-stone-300); color: var(--color-stone-600); font-family: var(--font-body); font-size: .9375rem; font-weight: 600; padding: 12px 28px; border-radius: var(--radius-lg); cursor: pointer; transition: background var(--dur-base); }
.termine-past-toggle:hover { background: var(--color-stone-100); }
/* ===== Quelle: src/css/tv-film.css ===== */ /* ============================================================= TV-FILM – tv-film.css Seitenspezifische Stile für tv-film.php Update: Gold-Badge/-Titelakzent/-Button auf Rot/Weiß umgestellt, Orange-Blob auf Rot getönt (Orange-Token entfernt) ============================================================= */ .tvfilm-hero { position: relative; overflow: hidden; background: var(--color-red-dark); padding-top: calc(var(--header-h) + 4rem); padding-bottom: 5rem; }
.tvfilm-hero__title span { color: #fff; font-style: normal; }
.tvfilm-featured { padding: 5rem 0; background: var(--color-stone-50); position: relative; overflow: hidden; }
.tvfilm-featured__blob-1, .tvfilm-featured__blob-2 { position: absolute; border-radius: 50%; pointer-events: none; opacity: 0.4; filter: blur(80px); }
.tvfilm-featured__blob-1 { top: 2.5rem; left: 3rem; width: 160px; height: 160px; background: rgba(184,2,1,.1); }
.tvfilm-featured__blob-2 { bottom: 2.5rem; right: 4rem; width: 192px; height: 192px; background: rgba(184,2,1,.08); }
.tvfilm-featured__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; max-width: 960px; margin: 0 auto; }
@media (min-width: 900px) { .tvfilm-featured__grid { grid-template-columns: 5fr 7fr; }
}
.tvfilm-featured__visual { position: relative; aspect-ratio: 1 / 1; max-width: 380px; margin: 0 auto; border-radius: 2rem; background: var(--color-stone-100); display: flex; align-items: center; justify-content: center; overflow: hidden; box-shadow: var(--shadow-xl); }
.tvfilm-featured__visual-dots { position: absolute; inset: 0; opacity: 0.25; pointer-events: none; background-image: radial-gradient(circle, #b80201 1.5px, transparent 1.5px); background-size: 32px 32px; }
.tvfilm-featured__visual-blob-tl { position: absolute; top: -3rem; right: -3rem; width: 12rem; height: 12rem; border-radius: 50%; background: #b80201; opacity: .25; }
.tvfilm-featured__visual-blob-br { position: absolute; bottom: -2rem; left: -2rem; width: 8rem; height: 8rem; border-radius: 50%; background: #b80201; opacity: .15; }
.tvfilm-featured__visual:has(> .tvfilm-featured__visual-img) { width: min(300px, 100%); }
.tvfilm-featured__visual-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tvfilm-featured__visual-img--grafik { position: relative; object-fit: contain; transition: transform .5s var(--ease-out); }
.tvfilm-featured__visual-img--grafik:hover { transform: scale(1.1) rotate(6deg); }
.tvfilm-featured__visual-icon { position: relative; color: #b80201; transition: transform .5s var(--ease-out); }
.tvfilm-featured__visual-icon:hover { transform: scale(1.1) rotate(6deg); }
.tvfilm-featured__visual-pill { position: absolute; bottom: 1.5rem; left: 1.5rem; right: 1.5rem; background: rgba(255,255,255,.92); backdrop-filter: blur(6px); border-radius: 1rem; padding: .75rem 1rem; text-align: center; box-shadow: var(--shadow-md); }
.tvfilm-featured__visual-pill-label { font-family: var(--font-sub); font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; color: var(--color-stone-500); margin-bottom: .15rem; }
.tvfilm-featured__visual-pill-value { font-family: var(--font-display); font-size: 2rem; font-weight: 700; color: #b80201; line-height: 1; }
.tvfilm-featured__badge { display: inline-flex; align-items: center; gap: .5rem; background: var(--color-red); color: #fff; font-family: var(--font-sub); font-weight: 700; font-size: .8125rem; padding: .45rem 1rem; border-radius: var(--radius-full); margin-bottom: 1.25rem; }
.tvfilm-featured__title { font-size: clamp(2rem, 4vw, 3.5rem); color: var(--color-red-dark); margin-bottom: 1.25rem; line-height: 1.1; }
.tvfilm-featured__title span { font-style: italic; color: var(--color-red); }
.tvfilm-featured__text { font-size: clamp(.95rem, 1.5vw, 1.1rem); color: var(--color-stone-700); line-height: 1.7; margin-bottom: 1rem; }
.tvfilm-featured__text strong { color: var(--color-red-dark); }
.tvfilm-featured__text--secondary { font-size: .95rem; color: var(--color-stone-600); line-height: 1.7; margin-bottom: 2rem; }
.tvfilm-featured__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.tvfilm-featured__btn-primary { display: inline-flex; align-items: center; gap: .5rem; background: var(--color-red); color: #fff; font-family: var(--font-sub); font-weight: 700; font-size: .875rem; padding: .75rem 1.75rem; border-radius: var(--radius-full); transition: background var(--dur-base), transform var(--dur-base); box-shadow: var(--shadow-lg); }
.tvfilm-featured__btn-primary:hover { background: var(--color-red-hover); transform: scale(1.04); }
.tvfilm-featured__btn-outline { display: inline-flex; align-items: center; gap: .5rem; border: 2px solid var(--color-red); color: var(--color-red); font-family: var(--font-sub); font-weight: 700; font-size: .875rem; padding: .7rem 1.75rem; border-radius: var(--radius-full); transition: background var(--dur-base), color var(--dur-base); }
.tvfilm-featured__btn-outline:hover { background: var(--color-red); color: #fff; }
.tvfilm-about { padding: 4rem 0; background: var(--color-stone-50); }
.tvfilm-about__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.tvfilm-about__icon { display: block; margin: 0 auto 1.25rem; color: var(--color-red); }
.tvfilm-about__title { font-size: clamp(1.6rem, 3vw, 2.25rem); color: var(--color-red-dark); margin-bottom: 1.25rem; line-height: 1.2; }
.tvfilm-about__title span { font-style: italic; color: var(--color-red); }
.tvfilm-about__text { font-size: 1rem; color: var(--color-stone-600); line-height: 1.7; margin: 0 auto; }
.tvfilm-about__text strong { color: var(--color-red-dark); }
.tvfilm-about__note { font-size: .875rem; font-style: italic; color: #a8a29e; margin-top: 1.5rem; }
.tvfilm-about__actions { margin-top: 2rem; }
/* ===== Quelle: src/css/unternehmen.css ===== */ /* ============================================================= FÜR UNTERNEHMEN – unternehmen.css Seitenspezifische Stile für unternehmen.php Update: .btn--gold entfernt, Gold-Badge/-Titelakzent/-Sublabels auf Rot/Weiß umgestellt (Gold bleibt der Keynote-Sektion vorbehalten) ============================================================= */ .unternehmen-hero { position: relative; overflow: hidden; background: var(--color-red-dark); padding-top: calc(var(--header-h-xl) + 32px); padding-bottom: 96px; color: #fff; }
.unternehmen-hero__title-accent { color: #fff; display: block; }
.unternehmen-logos { padding-block: 48px; background: #fff; border-bottom: 1px solid var(--color-stone-100); }
.unternehmen-logos__label { text-align: center; font-size: .75rem; font-family: var(--font-sub); font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: var(--color-stone-500, #78716c); margin-bottom: 32px; }
p.unternehmen-logos__label { max-width: none !important}
.unternehmen-logos__grid { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 32px 48px; }
.unternehmen-logos__track { display: flex; flex-wrap: inherit; align-items: center; justify-content: inherit; gap: inherit; }
.unternehmen-logos__img { height: 48px; width: auto; max-width: 160px; object-fit: contain; opacity: .7; filter: grayscale(1); transition: opacity var(--dur-base), filter var(--dur-base); }
.unternehmen-logos__img:hover { opacity: 1; filter: grayscale(0); }
.unternehmen-logos__img--s { height: 36px; max-width: 120px; }
.unternehmen-logos__img--l { height: 60px; max-width: 200px; }
.unternehmen-logos__img--xl { height: 72px; max-width: 240px; }
.unternehmen-logos__track > a { display: inline-flex; }
.unternehmen-logos__grid--marquee { justify-content: flex-start; overflow: hidden; width: 100%; gap: 0; mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent); -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent); }
.unternehmen-logos__grid--marquee .unternehmen-logos__track { flex-wrap: nowrap; width: max-content; animation: unternehmen-logos-marquee 32s linear infinite; }
.unternehmen-logos__grid--marquee .unternehmen-logos__img { flex-shrink: 0; margin-inline: 24px; }
.unternehmen-logos__grid--marquee:hover .unternehmen-logos__track { animation-play-state: paused; }
@keyframes unternehmen-logos-marquee { from { transform: translateX(0); }
to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) { .unternehmen-logos__grid--marquee .unternehmen-logos__track { animation: none; }
.unternehmen-logos__grid--marquee { flex-wrap: wrap; overflow: visible; justify-content: center; }
}
.unternehmen-intro { padding-block: 80px; background: #fff; }
.unternehmen-intro__lead { font-size: clamp(1rem, 2.2vw, 1.25rem); line-height: 1.75; color: var(--color-stone-700); text-align: center; max-width: 860px; margin-inline: auto; margin-bottom: 56px; }
.unternehmen-intro__lead strong { color: var(--color-red); font-weight: 600; }
.unternehmen-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 1024px; margin-inline: auto; }
.unternehmen-pillar { text-align: center; padding: 36px 28px; border-radius: var(--radius-xl); background: var(--color-stone-50); transition: background var(--dur-base); }
.unternehmen-pillar:hover { background: var(--color-stone-100); }
.unternehmen-pillar__icon { width: 56px; height: 56px; border-radius: var(--radius-full); background: var(--color-red); display: flex; align-items: center; justify-content: center; margin-inline: auto; margin-bottom: 16px; color: #fff; box-shadow: var(--shadow-md); }
.unternehmen-pillar__heading { font-family: var(--font-sub); font-size: 1.125rem; font-weight: 700; color: var(--color-red-dark); margin-bottom: 8px; }
.unternehmen-pillar__text { font-size: .9375rem; color: var(--color-stone-600); line-height: 1.6; max-width: none; }
.unternehmen-blockquote-section { padding-block: 96px; background: #fff; text-align: center; }
.unternehmen-blockquote-section .container { position: relative; }
.unternehmen-blockquote-icon { color: rgba(184,2,1,.15); margin-inline: auto; margin-bottom: 0; }
.unternehmen-blockquote__text { font-family: var(--font-display); font-size: clamp(1.375rem, 3.5vw, 3rem); font-weight: 700; color: var(--color-red-dark); line-height: 1.35; font-style: italic; max-width: 900px; margin-inline: auto; padding-top: 32px; }
.unternehmen-blockquote__text .accent { color: var(--color-red); }
.unternehmen-blockquote__footer { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 40px; }
.unternehmen-blockquote__line { height: 1px; width: 48px; background: var(--color-red); }
.unternehmen-blockquote__cite { font-style: normal; font-size: .875rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--color-red); }
.unternehmen-why { padding-block: 80px; background: #fff; }
.unternehmen-why__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 48px; align-items: start; max-width: 1200px; margin-inline: auto; }
.unternehmen-why__photo-col { position: sticky; top: 96px; }
.unternehmen-why__photo-wrap { position: relative; border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-xl); aspect-ratio: 4/5; background: var(--color-stone-900); }
.unternehmen-why__photo-wrap img { width: 100%; height: 100%; object-fit: cover; }
.unternehmen-why__label { display: flex; align-items: center; gap: 8px; font-family: var(--font-sub); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--color-red); margin-bottom: 12px; }
.unternehmen-why__label-icon { flex-shrink: 0; }
.unternehmen-why__heading { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; color: var(--color-red-dark); line-height: 1.15; margin-bottom: 32px; }
.unternehmen-why__heading em { font-style: italic; color: var(--color-red); }
.unternehmen-why__subtitle { font-size: clamp(1.0625rem, 1.8vw, 1.25rem); font-weight: 600; color: var(--color-stone-800); line-height: 1.55; margin-bottom: 24px; max-width: none; }
.unternehmen-why__body { display: flex; flex-direction: column; gap: 20px; }
.unternehmen-why__body p { font-size: clamp(1rem, 1.5vw, 1.125rem); color: var(--color-stone-700); line-height: 1.75; max-width: none; }
.unternehmen-why__body a { font-weight: 600; color: var(--color-red); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 2px; transition: color var(--dur-base); }
.unternehmen-why__body a:hover { color: var(--color-red-hover); }
.unternehmen-gallery { padding-block: 80px; background: var(--color-stone-50); scroll-margin-top: 100px; }
.unternehmen-gallery__intro { text-align: center; margin-bottom: 48px; }
.unternehmen-gallery__label { font-family: var(--font-sub); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--color-red); margin-bottom: 12px; }
.unternehmen-gallery__title { font-family: var(--font-display); font-size: clamp(1.75rem, 4vw, 3rem); font-weight: 700; color: var(--color-red-dark); margin-bottom: 12px; }
.unternehmen-gallery__title em { font-style: italic; color: var(--color-red); }
.unternehmen-gallery__subtitle { font-size: 1.0625rem; color: var(--color-stone-600); max-width: 640px; margin-inline: auto; }
.unternehmen-slider { position: relative; border-radius: var(--radius-xl); overflow: hidden; background: var(--color-stone-900); box-shadow: var(--shadow-xl); max-width: 1024px; margin-inline: auto; }
.unternehmen-slider__viewport { overflow: hidden; aspect-ratio: 16/10; }
.unternehmen-slider__track { display: flex; transition: transform .7s cubic-bezier(.25,.46,.45,.94); }
.unternehmen-slider__slide { flex-shrink: 0; width: 100%; aspect-ratio: 16/10; position: relative; background: var(--color-stone-800); }
.unternehmen-slider__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.unternehmen-slider__slide-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(28,25,23,.3), transparent 50%); pointer-events: none; }
.unternehmen-slider__btn { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; background: rgba(255,255,255,.15); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; color: #fff; cursor: pointer; transition: background var(--dur-base), transform var(--dur-base); z-index: 2; }
.unternehmen-slider__btn:hover { background: var(--color-red); transform: translateY(-50%) scale(1.1); }
.unternehmen-slider__btn--prev { left: 16px; }
.unternehmen-slider__btn--next { right: 16px; }
.unternehmen-slider__dots { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 2; }
.unternehmen-slider__dot { width: 8px; height: 8px; border-radius: var(--radius-full); background: rgba(255,255,255,.4); border: none; cursor: pointer; transition: background var(--dur-base), width var(--dur-base); }
.unternehmen-slider__dot--active { background: #fff; width: 32px; }
.unternehmen-slider__counter { position: absolute; top: 20px; right: 20px; background: rgba(0,0,0,.4); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,.1); color: #fff; font-size: .75rem; font-weight: 600; border-radius: var(--radius-full); padding: 4px 12px; z-index: 2; }
.unternehmen-testimonial { padding-block: 96px; background: #fff; }
.unternehmen-testimonial__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 48px; align-items: center; max-width: 1200px; margin-inline: auto; }
.unternehmen-testimonial__photo-wrap { border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-xl); aspect-ratio: 4/3; }
.unternehmen-testimonial__photo-wrap img { width: 100%; height: 100%; object-fit: cover; }
.unternehmen-testimonial__quote-icon { color: rgba(184,2,1,.2); margin-bottom: 24px; }
.unternehmen-testimonial__quote { font-family: var(--font-display); font-size: clamp(1.0625rem, 2vw, 1.5rem); color: var(--color-red-dark); line-height: 1.6; font-style: italic; font-weight: 500; margin-bottom: 24px; max-width: none; }
.unternehmen-testimonial__footer { display: flex; align-items: center; gap: 12px; }
.unternehmen-testimonial__bar { width: 4px; height: 48px; background: var(--color-red); border-radius: 2px; flex-shrink: 0; }
.unternehmen-testimonial__name { font-size: 1rem; font-weight: 700; color: var(--color-red-dark); }
.unternehmen-testimonial__role { font-size: .875rem; color: var(--color-stone-500); max-width: none; }
.unternehmen-videos { padding-block: 80px; background: var(--color-stone-50); }
.unternehmen-videos__intro { text-align: center; margin-bottom: 48px; }
.unternehmen-videos__label { font-family: var(--font-sub); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--color-red); margin-bottom: 12px; }
.unternehmen-videos__subtitle { font-size: 1.0625rem; color: var(--color-stone-600); max-width: 640px; margin-inline: auto; margin-top: 12px; }
.unternehmen-videos__title { font-family: var(--font-display); font-size: clamp(1.75rem, 4vw, 3rem); font-weight: 700; color: var(--color-red-dark); }
.unternehmen-videos__title em { font-style: italic; color: var(--color-red); }
.unternehmen-videos__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; max-width: 1024px; margin-inline: auto; }
.unternehmen-video { position: relative; border-radius: var(--radius-xl); overflow: hidden; background: var(--color-stone-900); aspect-ratio: 16/9; box-shadow: var(--shadow-xl); display: block; text-decoration: none; cursor: pointer; }
.unternehmen-video img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-out); }
.unternehmen-video:hover img { transform: scale(1.05); }
.unternehmen-video__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.3) 50%, transparent 100%); }
.unternehmen-video__play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.unternehmen-video__play-circle { width: 80px; height: 80px; background: var(--color-red); border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-xl); transition: background var(--dur-base), transform var(--dur-base); }
.unternehmen-video:hover .unternehmen-video__play-circle { background: var(--color-red-hover); transform: scale(1.1); }
.unternehmen-video__caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 24px; }
.unternehmen-video__sublabel { font-family: var(--font-sub); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.75); margin-bottom: 6px; }
.unternehmen-video__title { font-family: var(--font-sub); font-size: clamp(1rem, 1.8vw, 1.25rem); font-weight: 700; color: #fff; line-height: 1.3; }
.unternehmen-cta__title { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.75rem); font-weight: 700; color: #fff; line-height: 1.1; margin-bottom: 24px; }
.unternehmen-cta__title em { font-style: normal; color: #fff; }
.unternehmen-cta__subtitle { font-size: clamp(1rem, 2vw, 1.25rem); color: rgba(255,255,255,.9); max-width: 640px; margin-inline: auto; margin-bottom: 40px; line-height: 1.65; }
@media (max-width: 1024px) { .unternehmen-pillars { grid-template-columns: 1fr 1fr; }
.unternehmen-why__grid { grid-template-columns: 1fr; }
.unternehmen-why__photo-col { position: static; }
.unternehmen-why__photo-wrap { aspect-ratio: 16/9; max-width: 640px; }
.unternehmen-testimonial__grid { grid-template-columns: 1fr; }
.unternehmen-testimonial__photo-wrap { max-width: 500px; }
}
@media (max-width: 768px) { .unternehmen-pillars { grid-template-columns: 1fr; }
.unternehmen-videos__grid { grid-template-columns: 1fr; }
.unternehmen-blockquote-section { padding-block: 72px; }
}
@media (max-width: 480px) { .unternehmen-logos__grid { gap: 24px 32px; }
}
/* ===== Quelle: src/css/ut-additions.css ===== */ /* ============================================================ ÜBER THOMAS – CSS-Erweiterungen (Abschnitte 28–30b) Einbinden in styles.css oder als separates Stylesheet Update: Gewicht 900→700, Pill-Icon von Gold auf Rot ============================================================ */ .ut-hero { position: relative; min-height: 62vh; display: flex; align-items: flex-end; overflow: hidden; padding-top: var(--header-h); }
.ut-facts { padding-block: 72px; background: var(--color-stone-50); }
.ut-facts__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; border: 1px solid var(--color-stone-200); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 64px; box-shadow: var(--shadow-sm); }
.ut-facts__item { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 36px 24px; background: #fff; border-right: 1px solid var(--color-stone-200); }
.ut-facts__item:last-child { border-right: none; }
.ut-facts__number { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; line-height: 1; color: var(--color-red); margin-bottom: 8px; }
.ut-facts__label { font-family: var(--font-sub); font-size: .8375rem; font-weight: 600; color: var(--color-stone-600); text-transform: uppercase; letter-spacing: .06em; }
.ut-bio { max-width: 820px; margin-inline: auto; }
.ut-bio__label { font-family: var(--font-sub); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--color-red); margin-bottom: 16px; }
.ut-bio__text { font-size: 1.0625rem; line-height: 1.75; color: var(--color-stone-700); }
.ut-books { padding-block: 72px 96px; background: #fff; }
.ut-tabs { display: flex; justify-content: center; margin-bottom: 40px; }
.ut-tabs__inner { display: inline-flex; background: var(--color-stone-100); border-radius: var(--radius-full); padding: 6px; gap: 4px; }
.ut-tab-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 22px; border-radius: var(--radius-full); border: none; cursor: pointer; font-family: var(--font-sub); font-size: .875rem; font-weight: 600; color: var(--color-stone-600); background: transparent; transition: background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.ut-tab-btn:hover { color: var(--color-red); }
.ut-tab-btn.is-active { background: var(--color-red); color: #fff; box-shadow: 0 3px 12px rgba(184,2,1,.30); transform: scale(1.03); }
.ut-tab-count { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; padding: 1px 6px; border-radius: var(--radius-full); font-size: .7rem; font-weight: 700; background: rgba(255,255,255,.22); color: inherit; }
.ut-tab-btn:not(.is-active) .ut-tab-count { background: var(--color-stone-200); color: var(--color-stone-600); }
.ut-panel { display: none; }
.ut-panel.is-active { display: block; }
.ut-intro-text { max-width: 780px; margin-inline: auto; margin-bottom: 48px; font-size: 1rem; line-height: 1.75; color: var(--color-stone-600); text-align: center; }
.ut-intro-text p { margin-bottom: 1em; max-width: none; }
.ut-intro-text p:last-child { margin-bottom: 0; }
.ut-intro-text strong { color: var(--color-stone-800); font-weight: 700; }
.ut-intro-text em { font-style: italic; }
.ut-tl-layout { display: flex; gap: 0; min-height: 640px; border: 1px solid var(--color-stone-200); border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-md); }
.ut-tl-list { width: 40%; flex-shrink: 0; overflow-y: auto; max-height: 72vh; border-right: 1px solid var(--color-stone-200); scrollbar-width: thin; scrollbar-color: var(--color-red) var(--color-stone-100); }
.ut-tl-list::-webkit-scrollbar { width: 5px; }
.ut-tl-list::-webkit-scrollbar-track { background: var(--color-stone-100); }
.ut-tl-list::-webkit-scrollbar-thumb { background: var(--color-red); border-radius: 4px; }
.ut-tl-list__inner { position: relative; padding: 24px 16px 24px 40px; }
.ut-tl-list__line { position: absolute; left: 20px; top: 0; bottom: 0; width: 1px; background: linear-gradient(to bottom, transparent, rgba(184,2,1,.25), transparent); }
.ut-tl-year { margin-bottom: 4px; margin-top: 18px; }
.ut-tl-year:first-child { margin-top: 0; }
.ut-tl-year__header { display: flex; align-items: center; gap: 9px; margin-bottom: 8px; }
.ut-tl-year__dot { width: 18px; height: 18px; border-radius: 50%; background: var(--color-red); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-left: -29px; position: relative; z-index: 1; box-shadow: 0 0 0 3px rgba(184,2,1,.15); }
.ut-tl-year__dot-inner { width: 7px; height: 7px; border-radius: 50%; background: #fff; }
.ut-tl-year__label { font-family: var(--font-sub); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--color-red); }
.ut-tl-item { position: relative; margin-left: 12px; margin-bottom: 6px; padding: 11px 16px; border-radius: var(--radius-lg); cursor: pointer; border: 1px solid #8f8883; background: var(--color-stone-50); display: block; width: calc(100% - 12px); text-align: left; font: inherit; color: inherit; transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.ut-tl-item:hover { background: var(--color-stone-100); border-color: var(--color-red); }
.ut-tl-item__reihe, .ut-tl-item__titel { display: block; }
.ut-tl-item.is-active { background: var(--color-red); border-color: var(--color-red); box-shadow: 0 4px 16px rgba(184,2,1,.28); }
.ut-tl-item__connector { position: absolute; left: -17px; top: 50%; transform: translateY(-50%); width: 9px; height: 9px; border-radius: 50%; border: 2px solid var(--color-stone-300); background: #fff; transition: border-color var(--dur-base), background var(--dur-base), transform var(--dur-base); }
.ut-tl-item:hover .ut-tl-item__connector { border-color: var(--color-red); }
.ut-tl-item.is-active .ut-tl-item__connector { background: var(--color-red); border-color: var(--color-red); transform: translateY(-50%) scale(1.25); }
.ut-tl-item__reihe { font-size: .6875rem; font-weight: 700; color: var(--color-red); margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color var(--dur-base); }
.ut-tl-item.is-active .ut-tl-item__reihe { color: rgba(255,255,255,.85); }
.ut-tl-item__titel { font-size: .8375rem; font-weight: 500; line-height: 1.35; color: var(--color-stone-800); transition: color var(--dur-base); }
.ut-tl-item.is-active .ut-tl-item__titel { color: #fff; }
.ut-tl-detail { flex: 1; overflow-y: auto; background: #fff; display: flex; align-items: flex-start; }
.ut-tl-detail__inner { padding: 44px 48px; width: 100%; opacity: 1; transform: translateY(0); transition: opacity .22s ease, transform .22s ease; }
.ut-tl-detail__inner.is-transitioning { opacity: 0; transform: translateY(8px); }
.ut-tl-detail__year-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(184,2,1,.09); color: var(--color-red); font-family: var(--font-sub); font-size: .8125rem; font-weight: 700; padding: 6px 14px; border-radius: var(--radius-full); margin-bottom: 20px; }
.ut-tl-detail__year-badge-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--color-red); }
.ut-tl-detail__reihe-badge { display: inline-flex; background: var(--color-stone-100); color: var(--color-stone-700); font-family: var(--font-sub); font-size: .75rem; font-weight: 600; padding: 4px 12px; border-radius: var(--radius-sm); margin-bottom: 16px; }
.ut-tl-detail__titel { font-family: var(--font-display); font-size: clamp(1.4rem, 2.5vw, 2rem); font-weight: 700; line-height: 1.2; color: var(--color-red-dark); margin-bottom: 20px; }
.ut-tl-detail__zusatz { margin: -12px 0 20px; font-family: var(--font-sub); font-size: .875rem; font-weight: 600; color: var(--color-stone-500); }
.ut-tl-detail__divider { width: 44px; height: 3px; background: var(--color-red); border-radius: 2px; margin-bottom: 24px; }
.ut-tl-detail__text { font-size: 1rem; line-height: 1.75; color: var(--color-stone-600); margin-bottom: 32px; }
.ut-tl-detail__footer { padding-top: 24px; border-top: 1px solid var(--color-stone-100); font-size: .8125rem; font-style: italic; color: var(--color-stone-400); }
.ut-mobile-tl { display: none; }
.ut-acc-year { margin-bottom: 6px; }
.ut-acc-year__header { display: flex; align-items: center; gap: 9px; margin-bottom: 8px; margin-top: 20px; }
.ut-acc-year__dot { width: 16px; height: 16px; border-radius: 50%; background: var(--color-red); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ut-acc-year__dot-inner { width: 6px; height: 6px; border-radius: 50%; background: #fff; }
.ut-acc-year__label { font-family: var(--font-sub); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--color-red); }
.ut-acc-items { position: relative; padding-left: 24px; }
.ut-acc-items::before { content: ''; position: absolute; left: 7px; top: 0; bottom: 0; width: 1px; background: linear-gradient(to bottom, rgba(184,2,1,.25), rgba(184,2,1,.08)); }
.ut-acc-item { margin-bottom: 6px; }
.ut-acc-btn { width: 100%; text-align: left; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 13px 16px; border-radius: var(--radius-lg); border: 1px solid #8f8883; background: var(--color-stone-50); cursor: pointer; transition: background var(--dur-base), border-color var(--dur-base); }
.ut-acc-btn:hover { background: var(--color-stone-100); border-color: var(--color-red); }
.ut-acc-btn.is-open { background: var(--color-red); border-color: var(--color-red); }
.ut-acc-btn__text { flex: 1; }
.ut-acc-btn__reihe { font-size: .6875rem; font-weight: 700; color: var(--color-red); margin-bottom: 2px; }
.ut-acc-btn.is-open .ut-acc-btn__reihe { color: rgba(255,255,255,.85); }
.ut-acc-btn__titel { font-size: .875rem; font-weight: 500; line-height: 1.35; color: var(--color-stone-800); }
.ut-acc-btn.is-open .ut-acc-btn__titel { color: #fff; }
.ut-acc-chevron { flex-shrink: 0; margin-top: 3px; color: var(--color-stone-400); transition: transform .3s var(--ease-out), color .2s; }
.ut-acc-btn.is-open .ut-acc-chevron { transform: rotate(180deg); color: rgba(255,255,255,.7); }
.ut-acc-body { overflow: hidden; max-height: 0; opacity: 0; transition: max-height .38s var(--ease-out), opacity .3s ease; }
.ut-acc-body.is-open { opacity: 1; }
.ut-acc-body__inner { background: var(--color-stone-50); border: 1px solid rgba(184,2,1,.1); border-radius: 0 0 var(--radius-lg) var(--radius-lg); padding: 20px; margin-top: 1px; font-size: .9rem; line-height: 1.7; color: var(--color-stone-600); }
@media (max-width: 900px) { .ut-tl-layout { display: none; }
.ut-mobile-tl { display: block; }
}
@media (max-width: 768px) { .ut-facts { padding-block: 48px; }
.ut-facts__grid { grid-template-columns: 1fr; }
.ut-facts__item { border-right: none; border-bottom: 1px solid var(--color-stone-200); }
.ut-facts__item:last-child { border-bottom: none; }
.ut-books { padding-block: 48px 72px; }
.ut-tabs__inner { flex-direction: column; border-radius: var(--radius-xl); }
.ut-tab-btn { justify-content: center; }
.ut-tl-detail__inner { padding: 28px 24px; }
}
.ut-acc-body__meta { font-family: var(--font-sub); font-size: .8125rem; font-weight: 600; color: var(--color-stone-500); margin-bottom: 8px; }
.ut-books--single .ut-intro-text { margin-bottom: 40px; }
/* ===== Quelle: src/css/youtube-player.css ===== */ /* ============================================================ YOUTUBE-PLAYER (Claude 16.09.2026) Markup: renderYoutubePlayer() in inc.functions_all.php (.ytp--home = Startseiten-Karte auf Basis .podcast-card, .ytp--page = grosser Player auf /videos), Logik: js/yt-player.js. Uebersicht /videos: anwendungen/YoutubeVideos.php (.ytv-*). Eigene Klassen mit ytp-/ytv-Praefix, keine Kollision mit anderen src/css-Dateien. ============================================================ */ .ytp [hidden], .ytv [hidden] { display: none !important; }
.ytp__stage { position: relative; }
.ytp .ytp__stage { cursor: pointer; }
.ytp__poster { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; background: transparent; border: 0; padding: 0; cursor: pointer; }
.ytp__frame { position: absolute; inset: 0; z-index: 3; background: #000; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.ytp__frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.ytp--home.is-active .podcast-card__header { height: auto; aspect-ratio: 16 / 9; background: #000; }
.ytp.is-active .ytp__stage { cursor: default; }
.ytp.is-active .podcast-card__header::after, .ytp.is-active .podcast-card__portrait, .ytp.is-active .podcast-card__header-text, .ytp.is-active .ytp__poster, .ytp.is-active .ytp__bigplay { display: none; }
.ytp.is-active .ytp__frame { opacity: 1; pointer-events: auto; }
.ytp.is-loading .ytp__frame::after { content: ''; position: absolute; top: 50%; left: 50%; width: 40px; height: 40px; margin: -20px 0 0 -20px; border: 3px solid rgba(255,255,255,.25); border-top-color: #fff; border-radius: 50%; animation: ytp-spin .8s linear infinite; pointer-events: none; }
@keyframes ytp-spin { to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) { .ytp.is-loading .ytp__frame::after { animation-duration: 2.4s; }
.ytp__frame { transition: none; }
}
.ytp--home.is-consent .podcast-card__header { min-height: 260px; }
.ytp__consent { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 20px 24px; background: rgba(46, 13, 13, .95); color: #fff; overflow-y: auto; cursor: default; }
.ytp__consent-title { margin: 0; font-size: 1.0625rem; font-weight: 700; color: #fff; }
.ytp__consent-text { margin: 0; max-width: none; font-size: .8125rem; line-height: 1.5; color: rgba(255,255,255,.88); }
.ytp__consent-text a { color: #fff; text-decoration: underline; }
.ytp__consent-remember { display: flex; align-items: flex-start; gap: 8px; font-size: .8125rem; line-height: 1.4; color: rgba(255,255,255,.88); cursor: pointer; }
.ytp__consent-remember input { margin-top: 2px; accent-color: #fff; flex-shrink: 0; }
.ytp__consent-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.ytp__error { position: absolute; inset: 0; z-index: 6; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px; background: #1c1917; color: #fff; text-align: center; }
.ytp__error p { margin: 0; max-width: none; font-size: .9375rem; color: #fff; }
.ytp__meta { margin: 0 0 16px; max-width: none; font-size: .8125rem; color: var(--color-stone-500); }
.ytp .ytp__play { transition: background var(--dur-base), box-shadow var(--dur-base), transform var(--dur-fast); }
.ytp.is-playing .ytp__play { background: var(--color-stone-900); box-shadow: 0 0 0 4px rgba(184, 0, 0, .25); }
.ytp.is-playing .ytp__play:hover { background: var(--color-stone-800); }
.ytp .ytp__play:active { transform: scale(.94); }
.ytp .podcast-player__bar { position: relative; overflow: visible; touch-action: none; }
.ytp .podcast-player__bar::before { content: ''; position: absolute; left: 0; right: 0; top: -8px; bottom: -8px; }
.ytp .podcast-player__fill { transition: none; }
.ytp .podcast-player__bar:focus-visible { outline: 2px solid var(--color-red); outline-offset: 4px; }
.ytp__knob { position: absolute; top: 50%; left: 0; width: 16px; height: 16px; border-radius: var(--radius-full); background: var(--color-red); box-shadow: 0 1px 4px rgba(0,0,0,.3); transform: translate(-50%, -50%) scale(0); transition: transform .15s ease; pointer-events: none; }
.ytp .podcast-player__bar:hover .ytp__knob, .ytp .podcast-player__bar:focus-visible .ytp__knob, .ytp.is-dragging .ytp__knob { transform: translate(-50%, -50%) scale(1); }
.ytp__tools { display: flex; align-items: center; gap: 2px; flex-shrink: 0; }
.ytp__tool { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: var(--radius-full); background: transparent; color: var(--color-stone-600); cursor: pointer; transition: background var(--dur-base), color var(--dur-base); }
.ytp__tool:hover { background: var(--color-stone-100); color: var(--color-red); }
.ytp__tool:focus-visible, .ytp__play:focus-visible { outline: 2px solid var(--color-red); outline-offset: 2px; }
.ytp__volume { --ytp-volume: 100%; -webkit-appearance: none; appearance: none; width: 72px; height: 20px; margin: 0 6px 0 0; background: transparent; cursor: pointer; }
.ytp__volume::-webkit-slider-runnable-track { height: 4px; border-radius: 2px; background: linear-gradient(to right, var(--color-red) var(--ytp-volume), var(--color-stone-200) var(--ytp-volume)); }
.ytp__volume::-moz-range-track { height: 4px; border-radius: 2px; background: linear-gradient(to right, var(--color-red) var(--ytp-volume), var(--color-stone-200) var(--ytp-volume)); }
.ytp__volume::-webkit-slider-thumb { -webkit-appearance: none; width: 12px; height: 12px; margin-top: -4px; border: 0; border-radius: 50%; background: var(--color-red); }
.ytp__volume::-moz-range-thumb { width: 12px; height: 12px; border: 0; border-radius: 50%; background: var(--color-red); }
.ytp__volume:focus-visible { outline: 2px solid var(--color-red); outline-offset: 2px; }
@media (max-width: 520px) { .ytp .podcast-player { flex-wrap: wrap; row-gap: 4px; }
.ytp__tools { width: 100%; justify-content: flex-end; }
}
.btn .btn-external-icon { display: inline-block; flex-shrink: 0; margin-left: 6px; opacity: .85; }
.ytp__playlist { margin: 0 0 20px; border-top: 1px solid var(--color-stone-200); padding-top: 14px; }
.ytp__playlist-label { margin: 0 0 8px; max-width: none; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--color-stone-500); }
.ytp__playlist-list { list-style: none; margin: 0; padding: 0; max-height: 196px; overflow-y: auto; display: grid; gap: 4px; }
.ytp__pl-item { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; padding: 6px 8px; border: 0; border-radius: var(--radius-md); background: transparent; text-align: left; cursor: pointer; color: var(--color-stone-700); transition: background var(--dur-base); }
.ytp__pl-item:hover { background: var(--color-stone-50); }
.ytp__pl-item:focus-visible { outline: 2px solid var(--color-red); outline-offset: 1px; }
.ytp__pl-thumb { position: relative; display: block; width: 64px; aspect-ratio: 16 / 9; border-radius: var(--radius-sm); overflow: hidden; background: var(--color-stone-200); }
.ytp__pl-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ytp__pl-title { font-size: .875rem; line-height: 1.35; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ytp__pl-dur { font-size: .75rem; color: var(--color-stone-500); font-variant-numeric: tabular-nums; }
.ytp__pl-item.is-current { background: rgba(184, 0, 0, .07); color: var(--color-red-dark); font-weight: 700; }
.ytp__pl-item.is-current .ytp__pl-thumb::after { content: ''; position: absolute; inset: 0; background: rgba(184, 0, 0, .55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='white'%3E%3Cpath d='M6.3 2.841A1.5 1.5 0 004 4.11V15.89a1.5 1.5 0 002.3 1.269l9.344-5.89a1.5 1.5 0 000-2.538L6.3 2.84z'/%3E%3C/svg%3E") center / 16px no-repeat; }
.ytp--page { background: #fff; border: 1px solid var(--color-stone-200); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); }
.ytp--page .ytp__stage { aspect-ratio: 16 / 9; background: #000; overflow: hidden; }
.ytp__poster-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ytp__bigplay { position: absolute; top: 50%; left: 50%; z-index: 1; display: flex; align-items: center; justify-content: center; width: 84px; height: 84px; margin: -42px 0 0 -42px; padding-left: 6px; border-radius: var(--radius-full); background: var(--color-red); color: #fff; box-shadow: var(--shadow-lg); transition: transform var(--dur-base), background var(--dur-base); pointer-events: none; }
.ytp--page .ytp__stage:hover .ytp__bigplay { transform: scale(1.08); background: var(--color-red-hover); }
.ytp--page .ytp__body { padding: 20px 24px 8px; }
.ytp--page .ytp__title { margin: 0 0 4px; font-size: clamp(1.125rem, 2.2vw, 1.5rem); line-height: 1.25; color: var(--color-stone-900); text-wrap: balance; }
.ytp--page.is-consent .ytp__stage { min-height: 280px; }
@media (max-width: 520px) { .ytp__bigplay { width: 64px; height: 64px; margin: -32px 0 0 -32px; }
.ytp--page .ytp__body { padding: 16px 16px 4px; }
}
.ytp:fullscreen { display: flex; flex-direction: column; width: 100%; height: 100%; border: 0; border-radius: 0; background: #000; box-shadow: none; }
.ytp:fullscreen .ytp__stage { flex: 1 1 auto; height: auto; min-height: 0; aspect-ratio: auto; }
.ytp:fullscreen .podcast-card__body, .ytp:fullscreen .ytp__body { padding: 12px 24px 16px; background: #0c0a09; }
.ytp:fullscreen .ytp__meta, .ytp:fullscreen .ytp__title, .ytp:fullscreen .ytp__playlist, .ytp:fullscreen .podcast-card__actions { display: none; }
.ytp:fullscreen .podcast-player { margin-bottom: 0; }
.ytp:fullscreen .podcast-player__bar { background: rgba(255,255,255,.25); }
.ytp:fullscreen .podcast-player__time { color: rgba(255,255,255,.7); }
.ytp:fullscreen .ytp__tool { color: rgba(255,255,255,.8); }
.ytp:fullscreen .ytp__tool:hover { background: rgba(255,255,255,.12); color: #fff; }
/* ============================================================ VIDEOS-UEBERSICHT /videos (Layout 81, anwendungen/YoutubeVideos.php) ============================================================ */ .ytv__intro { text-align: center; padding-top: 64px; }
.ytv { padding-block: 48px 96px; }
.ytv__player { max-width: 960px; margin: 0 auto 56px; scroll-margin-top: 110px; }
.ytv__toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-bottom: 24px; }
.ytv__search { position: relative; display: flex; align-items: center; flex: 1 1 280px; max-width: 420px; color: var(--color-stone-500); }
.ytv__search svg { position: absolute; left: 14px; pointer-events: none; }
.ytv__search input { width: 100%; height: 46px; padding: 0 16px 0 42px; border: 1px solid var(--color-stone-300); border-radius: var(--radius-full); background: #fff; font: inherit; font-size: .9375rem; color: var(--color-stone-900); }
.ytv__search input:focus { outline: 2px solid var(--color-red); outline-offset: 1px; border-color: transparent; }
.ytv__count { margin: 0; font-size: .875rem; color: var(--color-stone-500); font-variant-numeric: tabular-nums; }
.ytv__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 28px 24px; }
.ytv__tile { display: flex; flex-direction: column; gap: 8px; width: 100%; padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; color: var(--color-stone-900); }
.ytv__thumb { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: var(--radius-md); overflow: hidden; background: var(--color-stone-200); box-shadow: var(--shadow-sm); transition: box-shadow var(--dur-base), transform var(--dur-base); }
.ytv__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ytv__tile:hover .ytv__thumb { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.ytv__tile:focus-visible { outline: none; }
.ytv__tile:focus-visible .ytv__thumb { outline: 3px solid var(--color-red); outline-offset: 2px; }
.ytv__dur { position: absolute; right: 8px; bottom: 8px; padding: 2px 6px; border-radius: var(--radius-sm); background: rgba(0,0,0,.78); color: #fff; font-size: .75rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.ytv__now { display: none; position: absolute; left: 8px; top: 8px; padding: 3px 8px; border-radius: var(--radius-full); background: var(--color-red); color: #fff; font-size: .6875rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.ytv__tile.is-current .ytv__now { display: block; }
.ytv__tile.is-current .ytv__thumb { outline: 3px solid var(--color-red); outline-offset: 2px; }
.ytv__title { font-size: .9375rem; font-weight: 700; line-height: 1.35; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ytv__tile:hover .ytv__title { color: var(--color-red); }
.ytv__date { font-size: .8125rem; color: var(--color-stone-500); }
.ytv__more { margin-top: 40px; text-align: center; }
.ytv__empty, .ytv__noresult { text-align: center; color: var(--color-stone-500); padding: 32px 0; max-width: none; }
@media (prefers-reduced-motion: reduce) { .ytv__thumb, .ytp__bigplay { transition: none; }
.ytv__tile:hover .ytv__thumb { transform: none; }
}
/* ===== Quelle: src/css/zz-cms-compat.css ===== */ .header-content { display: none; }
