/* ==========================================================================
   Piranha Werbung – Theme (Bootstrap 5.3 Farbanpassung über CSS-Variablen)
   Farben werden im Backend gesetzt und im Layout als --pw-* injiziert.
   ========================================================================== */
:root {
    --bs-primary: var(--pw-primary);
    --bs-primary-rgb: var(--pw-primary-rgb);
    --bs-secondary: var(--pw-secondary);
    --bs-secondary-rgb: var(--pw-secondary-rgb);
    --bs-link-color: var(--pw-primary);
    --bs-link-color-rgb: var(--pw-primary-rgb);
    --bs-link-hover-color: color-mix(in srgb, var(--pw-primary) 80%, black);
    --bs-link-hover-color-rgb: var(--pw-primary-rgb);
    --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --bs-body-color: #222;
    --bs-border-radius: .5rem;
    --pw-navbar-h: 84px;
    --pw-navbar-h-small: 60px;
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--pw-navbar-h-small) + 16px);
}
html, body { height: 100%; }
body { display: flex; flex-direction: column; min-height: 100vh; }
main { flex: 1 0 auto; }

/* Buttons & Komponenten auf Primärfarbe umbiegen */
.btn-primary { --bs-btn-bg: var(--pw-primary); --bs-btn-border-color: var(--pw-primary); --bs-btn-hover-bg: color-mix(in srgb, var(--pw-primary) 85%, black); --bs-btn-hover-border-color: color-mix(in srgb, var(--pw-primary) 85%, black); --bs-btn-active-bg: color-mix(in srgb, var(--pw-primary) 75%, black); --bs-btn-active-border-color: color-mix(in srgb, var(--pw-primary) 75%, black); --bs-btn-disabled-bg: var(--pw-primary); --bs-btn-disabled-border-color: var(--pw-primary); --bs-btn-focus-shadow-rgb: var(--pw-primary-rgb); }
.btn-outline-primary { --bs-btn-color: var(--pw-primary); --bs-btn-border-color: var(--pw-primary); --bs-btn-hover-bg: var(--pw-primary); --bs-btn-hover-border-color: var(--pw-primary); --bs-btn-active-bg: var(--pw-primary); --bs-btn-active-border-color: var(--pw-primary); --bs-btn-focus-shadow-rgb: var(--pw-primary-rgb); }
.btn-secondary { --bs-btn-bg: var(--pw-secondary); --bs-btn-border-color: var(--pw-secondary); --bs-btn-hover-bg: color-mix(in srgb, var(--pw-secondary) 80%, white); --bs-btn-hover-border-color: color-mix(in srgb, var(--pw-secondary) 80%, white); }
.btn { font-weight: 600; letter-spacing: .01em; }
.text-primary { color: var(--pw-primary) !important; }
.bg-primary, .text-bg-primary, .bg-primary-pw { background-color: var(--pw-primary) !important; }
.text-bg-primary { color: #fff !important; }
.bg-secondary, .bg-secondary-pw { background-color: var(--pw-secondary) !important; }
.border-primary { border-color: var(--pw-primary) !important; }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--pw-primary); box-shadow: 0 0 0 .25rem rgba(var(--pw-primary-rgb), .25); }
.form-check-input:checked { background-color: var(--pw-primary); border-color: var(--pw-primary); }
.accordion { --bs-accordion-active-bg: rgba(var(--pw-primary-rgb), .08); --bs-accordion-active-color: var(--pw-primary); --bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--pw-primary-rgb), .25); }
.dropdown-item.active, .dropdown-item:active { background-color: var(--pw-primary); }
.py-6 { padding-top: 5rem !important; padding-bottom: 5rem !important; }
.py-7 { padding-top: 7rem !important; padding-bottom: 7rem !important; }
@media (min-width: 992px) { .py-6 { padding-top: 6rem !important; padding-bottom: 6rem !important; } .py-7 { padding-top: 9rem !important; padding-bottom: 9rem !important; } }

/* --------------------------------------------------------------------------
   Header / Sticky Navbar (schrumpft beim Scrollen)
   -------------------------------------------------------------------------- */
.pw-header { z-index: 1030; transition: box-shadow .3s ease; }
.pw-header .navbar { transition: padding .3s ease; padding-top: .9rem; padding-bottom: .9rem; }
.pw-logo { height: 44px; width: auto; transition: height .3s ease; }
.pw-header.is-shrunk .navbar { padding-top: .35rem; padding-bottom: .35rem; }
.pw-header.is-shrunk .pw-logo { height: 32px; }
.pw-header.is-shrunk { box-shadow: 0 4px 24px rgba(0,0,0,.18); }
.navbar-dark .nav-link { color: rgba(255,255,255,.85); font-weight: 600; }
.navbar-dark .nav-link:hover, .navbar-dark .nav-link.active { color: #fff; }
.navbar-dark .nav-link.active { position: relative; }
@media (min-width: 992px) {
    .navbar .nav-link { padding-left: .9rem; padding-right: .9rem; }
    .navbar .nav-link.active::after { content: ""; position: absolute; left: .9rem; right: .9rem; bottom: .15rem; height: 3px; background: var(--pw-primary); border-radius: 2px; }
    /* Dropdown per Hover auf Desktop */
    .navbar .dropdown:hover > .dropdown-menu { display: block; margin-top: 0; }
    .navbar .dropdown-menu { border-radius: 0 0 .75rem .75rem; }
    .pw-mega-menu { left: 0; right: 0; border-top: 3px solid var(--pw-primary) !important; }
    /* Menüpunkte, die nur als Icon erscheinen (z.B. Instagram/Facebook) */
    .navbar .pw-icon-only .nav-link { padding-left: .6rem; padding-right: .6rem; }
    .navbar .pw-icon-only .nav-link .bi, .navbar .pw-icon-only .btn .bi { font-size: 1.25rem; line-height: 1; vertical-align: -.2em; }
    .navbar .pw-icon-only .nav-link.active::after { left: .6rem; right: .6rem; }
}
.pw-mega-heading { font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: 1.05rem; color: var(--pw-primary); padding: .5rem 1rem .35rem; text-decoration: none; }
.pw-mega-item { white-space: normal; border-radius: .5rem; padding: .4rem 1rem; font-size: .875rem; }
.pw-mega-item small { font-size: .78rem; }
.pw-mega-item:hover { background: rgba(var(--pw-primary-rgb), .08); }
.pw-mega-item.active { background: var(--pw-primary); color: #fff; }
.pw-mega-item.active small { color: rgba(255,255,255,.8) !important; }
@media (max-width: 991.98px) {
    /* Ausrichtungs-Klassen (ms-auto/me-auto) gelten nur für die Desktop-Leiste, nicht in der vertikalen Offcanvas-Liste */
    .offcanvas .navbar-nav > .ms-auto, .offcanvas .navbar-nav > .mx-auto { margin-left: 0 !important; }
    .offcanvas .navbar-nav > .me-auto, .offcanvas .navbar-nav > .mx-auto { margin-right: 0 !important; }
    .offcanvas .nav-link { font-size: 1.1rem; padding: .6rem 0; border-bottom: 1px solid rgba(255,255,255,.08); }
    .offcanvas .dropdown-menu { background: transparent; border: 0; padding-left: 1rem; }
    .offcanvas.text-bg-dark .dropdown-item, .offcanvas.text-bg-dark .pw-mega-item small { color: rgba(255,255,255,.8) !important; }
    .offcanvas.text-bg-dark .dropdown-item:hover { background: rgba(255,255,255,.08); color: #fff; }
}

/* --------------------------------------------------------------------------
   Rows / Sections
   -------------------------------------------------------------------------- */
.pw-row { position: relative; }
.pw-row-bg { background-image: var(--pw-bg); background-size: cover; background-position: center; }
.pw-row-bg::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,var(--pw-overlay, 0)); pointer-events: none; }
.pw-row-bg > * { position: relative; }
.pw-parallax { background-attachment: fixed; }
@media (max-width: 991.98px), (hover: none) { .pw-parallax { background-attachment: scroll; } }
.pw-hr-top { border-top: 1px solid rgba(0,0,0,.1); }
.pw-hr-bottom { border-bottom: 1px solid rgba(0,0,0,.1); }
.pw-full { width: 100%; }
.pw-full > .row { --bs-gutter-x: 0; }
.pw-col-bg { background-image: var(--pw-bg); background-size: cover; background-position: center; }

/* Hintergrundvideo (Zeile/Spalte): liegt absolut hinter dem Inhalt, Overlay (::before) und Inhalt darüber */
.pw-has-video { position: relative; overflow: hidden; }
.pw-row-bg::before { z-index: 1; }
.pw-row-bg > *:not(.pw-bg-video), .pw-has-video > *:not(.pw-bg-video) { position: relative; z-index: 2; }
.pw-has-video > .pw-bg-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; pointer-events: none; }
@media (max-width: 991.98px) { .pw-bg-video-desktop { display: none; } }
@media (prefers-reduced-motion: reduce) { .pw-bg-video { display: none; } }

/* Video-Block */
.pw-block-video { margin-bottom: 1rem; }
.pw-video-natural video { display: block; width: 100%; height: auto; }
.pw-video .ratio video { object-fit: cover; }

 /* Block-Wrapper: Standardabstände liegen hier, damit Bootstrap-Spacing-Klassen aus dem Builder sie überschreiben können */
.pw-block { min-width: 0; }
.pw-block-text, .pw-block-image { margin-bottom: 1rem; }
.pw-block-heading { margin-bottom: 1.5rem; }
.pw-block-button { margin: .5rem 0; }
.pw-col > .pw-block:has(> .h-100) { flex: 1 1 auto; display: flex; flex-direction: column; }
.pw-text > :last-child { margin-bottom: 0; }
.pw-heading { margin-bottom: 0; }
.pw-heading-accent h1::after, .pw-heading-accent h2::after, .pw-heading-accent h3::after, .pw-heading-accent h4::after { content: ""; display: block; width: 56px; height: 4px; background: var(--pw-primary); border-radius: 2px; margin: .75rem 0 0; }
.pw-heading-accent.text-center h1::after, .pw-heading-accent.text-center h2::after, .pw-heading-accent.text-center h3::after, .pw-heading-accent.text-center h4::after { margin-left: auto; margin-right: auto; }
.pw-heading-accent.text-end h2::after { margin-left: auto; }
.bg-dark .pw-heading-accent h1::after, .bg-primary .pw-heading .lead, .bg-dark .pw-heading .lead, .text-white .pw-heading .lead { color: rgba(255,255,255,.75) !important; }

.pw-text ul { padding-left: 1.2rem; }
.pw-text li { margin-bottom: .35rem; }

.pw-iconbox-icon { font-size: 2.6rem; line-height: 1; color: var(--pw-primary); }
.pw-iconbox.text-bg-primary .pw-iconbox-icon { color: #fff; }
.pw-iconbox.card { transition: transform .25s ease, box-shadow .25s ease; }
.pw-iconbox.card:hover { transform: translateY(-4px); box-shadow: 0 1rem 2rem rgba(0,0,0,.12) !important; }

/* Trennlinien */
.pw-hr { border: 0; opacity: 1; height: 0; border-top: 2px solid var(--hr-color, rgba(0,0,0,.15)); }
.pw-hr-dashed { border-top-style: dashed; }
.pw-hr-dotted { border-top-style: dotted; }
.pw-hr-accent { border: 0; height: 4px; background: var(--hr-color, var(--pw-primary)); border-radius: 2px; max-width: 80px; }
.pw-hr-fade { border: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--hr-color, rgba(0,0,0,.3)), transparent); }

/* Zähler */
.pw-block-counter { margin-bottom: 1rem; }
.pw-counter { font-weight: 800; line-height: 1.1; color: var(--pw-primary); font-variant-numeric: tabular-nums; }
.pw-counter-prefix, .pw-counter-suffix { font-size: .6em; font-weight: 700; vertical-align: .18em; margin: 0 .1em; }

/* Störer */
.pw-stoerer { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; font-weight: 900; line-height: 1.05; text-decoration: none; background: var(--st-bg); color: var(--st-color) !important; transform: rotate(var(--st-rotate)); box-shadow: 0 .75rem 2rem rgba(0,0,0,.25); text-transform: uppercase; letter-spacing: .02em; }
.pw-stoerer-circle { border-radius: 50%; aspect-ratio: 1; padding: 1rem; }
.pw-stoerer-badge { border-radius: 1rem; padding: 1rem 1.75rem; }
.pw-stoerer-ribbon { padding: .75rem 2.5rem; clip-path: polygon(0 0, 100% 0, calc(100% - 1rem) 50%, 100% 100%, 0 100%, 1rem 50%); }
.pw-stoerer-burst { clip-path: polygon(50% 0%, 61% 12%, 75% 6%, 78% 21%, 93% 25%, 88% 39%, 100% 50%, 88% 61%, 93% 75%, 78% 79%, 75% 94%, 61% 88%, 50% 100%, 39% 88%, 25% 94%, 22% 79%, 7% 75%, 12% 61%, 0% 50%, 12% 39%, 7% 25%, 22% 21%, 25% 6%, 39% 12%); aspect-ratio: 1; padding: 2rem; box-shadow: none; }
.pw-stoerer-sm { font-size: .9rem; min-width: 90px; }
.pw-stoerer-md { font-size: 1.3rem; min-width: 140px; }
.pw-stoerer-lg { font-size: 1.9rem; min-width: 200px; }
.pw-stoerer-sub { display: block; font-size: .55em; font-weight: 700; opacity: .9; margin-top: .25em; }
.pw-pulse { animation: pw-pulse 2.2s ease-in-out infinite; }
@keyframes pw-pulse { 0%, 100% { transform: rotate(var(--st-rotate)) scale(1); } 50% { transform: rotate(var(--st-rotate)) scale(1.06); } }

/* Slider (Fullpage, endlos) */
.pw-slider { position: relative; height: var(--slider-h, 80vh); min-height: 320px; overflow: hidden; background: var(--pw-secondary); }
.pw-slider .carousel-inner, .pw-slider .carousel-item { height: 100%; }
.pw-slide-bg { position: absolute; inset: 0; }
.pw-slide-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,calc(var(--slider-overlay) * .6)), rgba(0,0,0,var(--slider-overlay))); }
.pw-slide-bg picture, .pw-slide-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pw-slide-placeholder { width: 100%; height: 100%; background: radial-gradient(circle at 30% 30%, rgba(var(--pw-primary-rgb), .55), transparent 55%), linear-gradient(135deg, var(--pw-secondary), #000); }
.pw-slider-kenburns .carousel-item.active .pw-slide-img, .pw-slider-kenburns .carousel-item.active .pw-slide-placeholder { animation: pw-kenburns 9s ease-out forwards; }
@keyframes pw-kenburns { from { transform: scale(1); } to { transform: scale(1.12); } }
.pw-slide-caption { position: absolute; inset: 0; display: flex; align-items: center; padding: 0; text-shadow: 0 2px 12px rgba(0,0,0,.5); }
.pw-slide-caption .container { max-width: 900px; }
.pw-slide-title { font-size: clamp(1.9rem, 5vw, 3.6rem); }
.pw-slide-text { font-size: clamp(1rem, 2vw, 1.35rem); }
.pw-slider .carousel-indicators [data-bs-target] { width: 12px; height: 12px; border-radius: 50%; border: 0; }
.pw-slider .carousel-indicators .active { background: var(--pw-primary); }

/* Galerie / Lightbox */
.pw-gallery-item img { transition: transform .4s ease; }
.pw-gallery-item:hover img { transform: scale(1.05); }
.pw-lightbox { position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,.92); display: flex; align-items: center; justify-content: center; padding: 2rem; }
.pw-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; box-shadow: 0 0 40px rgba(0,0,0,.5); }
.pw-lightbox-close { position: absolute; top: 1rem; right: 1.25rem; background: none; border: 0; color: #fff; font-size: 2.5rem; line-height: 1; }

/* Kontaktformular */
.pw-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.pw-contact-form .form-control, .pw-contact-form .form-select { padding: .65rem .9rem; }

/* Footer */
.pw-footer a { color: inherit; text-decoration: none; opacity: .85; }
.pw-footer a:hover { opacity: 1; text-decoration: underline; }
.pw-footer-title { letter-spacing: .08em; color: var(--pw-primary); }
.pw-footer-links li { margin-bottom: .4rem; }
.pw-footer-logo { height: 44px; }
.pw-footer-bottom { font-size: .85rem; }

/* Cookie-Banner */
.pw-cookie { position: fixed; z-index: 1900; inset: auto 0 0 0; padding: 1rem; display: flex; justify-content: center; }
.pw-cookie-center { inset: 0; background: rgba(0,0,0,.5); align-items: center; }
.pw-cookie-box { background: #fff; color: #222; border-radius: 1rem; padding: 1.5rem; max-width: 640px; width: 100%; border-top: 4px solid var(--pw-primary); }
.pw-cookie-options .form-check { margin-bottom: .35rem; }

/* Admin-Leiste (nur bei Admin-Session) */
.pw-admin-bar { position: fixed; right: 1rem; bottom: 1rem; z-index: 1950; display: flex; gap: .5rem; }
.pw-admin-bar .btn { border-radius: 2rem; font-weight: 600; white-space: nowrap; }
.pw-admin-bar-icon { width: 2.5rem; padding-left: 0; padding-right: 0; display: inline-flex; align-items: center; justify-content: center; }
@media print { .pw-admin-bar { display: none; } }

/* Sonstiges */
.pw-image figcaption { font-size: .85rem; }
.object-fit-cover { object-fit: cover; }
@media (prefers-reduced-motion: reduce) { .pw-pulse, .pw-slider-kenburns .carousel-item .pw-slide-img { animation: none !important; } .pw-header .navbar, .pw-logo { transition: none; } }

/* --------------------------------------------------------------------------
   Theme: Seitenhintergrund (Farbe + zentrales, fixes Hintergrundbild) & Dark-Mode
   -------------------------------------------------------------------------- */
body { background-color: var(--pw-body-bg); color: var(--pw-body-text); }
body::before { content: ""; position: fixed; inset: 0; z-index: -1; background: var(--pw-body-bg) var(--pw-body-image) center top / cover no-repeat; pointer-events: none; }
body.bg-scroll::before { position: absolute; height: 100%; }
body::after { content: ""; position: fixed; inset: 0; z-index: -1; background: rgba(0,0,0,var(--pw-body-overlay, 0)); pointer-events: none; }
@media (max-width: 991.98px) { body::before { background-attachment: scroll; background-size: cover; } }
.theme-dark { --bs-body-color: var(--pw-body-text); --bs-body-color-rgb: 233, 233, 233; --bs-body-bg: transparent; --bs-secondary-color: rgba(233,233,233,.7); --bs-tertiary-color: rgba(233,233,233,.5); --bs-border-color: rgba(255,255,255,.12); --bs-heading-color: #fff; }
.theme-dark .text-body-secondary { color: rgba(255,255,255,.65) !important; }
/* Glas-Effekt liegt auf einem Pseudo-Element: backdrop-filter direkt auf der Navbar würde sie zum Containing Block
   für das position:fixed-Offcanvas machen und das mobile Menü in die Navbar einklemmen */
.theme-dark .pw-header .navbar-dark { background: transparent !important; }
.theme-dark .pw-header .navbar-dark::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0,0,0,.55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transition: background .3s ease; pointer-events: none; }
.theme-dark .pw-header.is-shrunk .navbar-dark::before { background: rgba(0,0,0,.85); }
.theme-dark .navbar-dark .nav-link { text-transform: uppercase; letter-spacing: .04em; color: var(--pw-primary); }
.theme-dark .navbar-dark .nav-link:hover, .theme-dark .navbar-dark .nav-link.active { color: #fff; }
.theme-dark .dropdown-menu { --bs-dropdown-bg: #161616; --bs-dropdown-color: #e9e9e9; --bs-dropdown-link-color: #e9e9e9; --bs-dropdown-link-hover-bg: rgba(255,255,255,.08); --bs-dropdown-link-hover-color: #fff; --bs-dropdown-header-color: rgba(255,255,255,.5); }
.theme-dark .pw-mega-item small { color: rgba(255,255,255,.55) !important; }
.theme-dark .pw-footer { background: rgba(0,0,0,.6) !important; backdrop-filter: blur(6px); }
.theme-dark .pw-hr-top { border-top-color: rgba(255,255,255,.12); }
.theme-dark .pw-hr-bottom { border-bottom-color: rgba(255,255,255,.12); }
.theme-dark .pw-hr { --hr-color: rgba(255,255,255,.2); }
.theme-dark .card, .theme-dark .pw-iconbox.card { --bs-card-bg: rgba(255,255,255,.06); --bs-card-color: var(--pw-body-text); --bs-card-border-color: rgba(255,255,255,.1); backdrop-filter: blur(4px); }
.theme-dark .pw-iconbox.card:hover { background: rgba(255,255,255,.1); }
.theme-dark .accordion { --bs-accordion-bg: rgba(255,255,255,.05); --bs-accordion-color: var(--pw-body-text); --bs-accordion-btn-color: #fff; --bs-accordion-btn-bg: rgba(255,255,255,.05); --bs-accordion-border-color: rgba(255,255,255,.12); --bs-accordion-active-bg: rgba(var(--pw-primary-rgb), .18); --bs-accordion-active-color: #fff; --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); --bs-accordion-btn-active-icon: var(--bs-accordion-btn-icon); }
.theme-dark .form-control, .theme-dark .form-select { background-color: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.2); }
.theme-dark .form-control::placeholder { color: rgba(255,255,255,.45); }
.theme-dark .form-select { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }
.theme-dark .form-select option { background: #1a1a1a; color: #fff; }
.theme-dark .modal-content { background: #161616; color: var(--pw-body-text); border-color: rgba(255,255,255,.12); }
.theme-dark .modal-header, .theme-dark .modal-footer { border-color: rgba(255,255,255,.12); }
.theme-dark .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
.theme-dark .pw-cookie-box { background: #161616; color: var(--pw-body-text); }
.theme-dark .pw-cookie-box .text-body-secondary { color: rgba(255,255,255,.6) !important; }
.theme-dark .btn-outline-secondary { --bs-btn-color: #ddd; --bs-btn-border-color: rgba(255,255,255,.35); --bs-btn-hover-bg: rgba(255,255,255,.12); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: rgba(255,255,255,.5); }
.theme-dark .btn-light { --bs-btn-bg: #fff; --bs-btn-color: #111; }
.theme-dark .alert-success { --bs-alert-bg: rgba(25,135,84,.2); --bs-alert-color: #9be6bd; --bs-alert-border-color: rgba(25,135,84,.4); }
.theme-dark .alert-danger { --bs-alert-bg: rgba(220,53,69,.2); --bs-alert-color: #f5b5bc; --bs-alert-border-color: rgba(220,53,69,.4); }
.theme-dark .pw-slider { background: transparent; }
.theme-dark .figure-caption { color: rgba(255,255,255,.6); }
/* Glas-Hintergründe für Zeilen (funktionieren in beiden Themes) */
.pw-bg-glass-dark { background: rgba(0,0,0,.55); color: #fff; backdrop-filter: blur(3px); }
.pw-bg-glass-light { background: rgba(255,255,255,.08); backdrop-filter: blur(3px); }
.theme-light .pw-bg-glass-light { background: rgba(0,0,0,.04); }
.bg-light.text-dark .pw-heading .lead, .bg-white.text-dark .text-body-secondary { color: rgba(0,0,0,.6) !important; }
.bg-light .form-control, .bg-white .form-control { background: #fff; color: #222; border-color: #ced4da; }

/* Kacheln (Bild-Teaser mit Hover) */
.pw-tile { position: relative; display: block; overflow: hidden; width: 100%; min-height: 160px; color: var(--tile-color, #fff); text-decoration: none; background: var(--pw-secondary, #222); isolation: isolate; }
.pw-tile, .pw-tile:hover, .pw-tile:focus-visible { color: var(--tile-color, #fff); }
.pw-tile-bg { position: absolute; inset: 0; z-index: 0; }
.pw-tile-bg picture, .pw-tile-img, .pw-tile-placeholder { display: block; width: 100%; height: 100%; }
.pw-tile-img { object-fit: cover; object-position: center; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.pw-tile-placeholder { background: radial-gradient(circle at 30% 30%, rgba(var(--pw-primary-rgb, 255,82,0), .55), transparent 55%), linear-gradient(135deg, var(--pw-secondary, #333), #000); }
.pw-tile-zoom:hover .pw-tile-img, .pw-tile-zoom:focus-visible .pw-tile-img { transform: scale(1.07); }
/* Verlauf: Farbe + Stärke einstellbar, Form über Maske */
.pw-tile::after { content: ""; position: absolute; inset: 0; z-index: 1; background: var(--tile-overlay-color, #000); opacity: var(--tile-overlay, .55); transition: opacity .4s ease; pointer-events: none; }
.pw-tile-overlay-bottom::after { -webkit-mask-image: linear-gradient(to top, #000 0%, rgba(0,0,0,.75) 45%, rgba(0,0,0,.25) 100%); mask-image: linear-gradient(to top, #000 0%, rgba(0,0,0,.75) 45%, rgba(0,0,0,.25) 100%); }
.pw-tile-overlay-top::after { -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.75) 45%, rgba(0,0,0,.25) 100%); mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.75) 45%, rgba(0,0,0,.25) 100%); }
.pw-tile:hover::after, .pw-tile:focus-visible::after { -webkit-mask-image: none; mask-image: none; opacity: min(1, calc(var(--tile-overlay, .55) + .2)); }
/* Teaser: unten, fährt beim Hover in die Mitte */
.pw-tile-caption { position: absolute; left: 0; right: 0; top: 100%; z-index: 2; padding: 1.25rem 1.5rem; transform: translateY(-100%); transition: top .45s cubic-bezier(.2,.7,.2,1), transform .45s cubic-bezier(.2,.7,.2,1); text-shadow: 0 2px 10px rgba(0,0,0,.45); }
.pw-tile-title { font-weight: 700; font-size: 1.15rem; line-height: 1.25; }
.pw-tile-text { opacity: 0; max-height: 0; overflow: hidden; margin-top: 0; transform: translateY(8px); transition: opacity .4s ease .1s, max-height .45s ease, margin-top .45s ease, transform .4s ease .1s; }
.pw-tile:hover .pw-tile-caption, .pw-tile:focus-visible .pw-tile-caption { top: 50%; transform: translateY(-50%); }
.pw-tile:hover .pw-tile-text, .pw-tile:focus-visible .pw-tile-text { opacity: 1; max-height: 12rem; margin-top: .6rem; transform: none; }
.pw-tile:focus-visible { outline: 3px solid var(--pw-primary); outline-offset: 2px; }
/* Ohne Hover (Touch): Text dauerhaft unten sichtbar */
@media (hover: none) {
    .pw-tile-text { opacity: 1; max-height: 12rem; margin-top: .6rem; transform: none; }
    .pw-tile::after { -webkit-mask-image: none; mask-image: none; }
}
@media (prefers-reduced-motion: reduce) {
    .pw-tile-img, .pw-tile-caption, .pw-tile-text, .pw-tile::after { transition: none; }
}
