/*
 * module-baeckerei.css – Ergänzungen für die Bäckerei-Optik, die durch die
 * gemeinsame Technik hinzukommen (von Hand gepflegt):
 *  - Hauptnavigation aus Website → Navigation: aktive Seite (aria-current),
 *    Aufklappmenüs, hervorgehobene Schaltfläche
 *  - optionale Kontaktleiste über dem Kopf, Kurzbeschreibung im Fuß
 * Farben über die Bäckerei-Variablen (--kb-*), damit Website → Design wirkt.
 */

/* Wählbare Schriften aus Website → Design (lokal, SIL OFL) */
@font-face {
  font-family: 'SN Pro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/assets/fonts/sn-pro-v1-latin-300.woff2') format('woff2');
}
@font-face {
  font-family: 'SN Pro';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/sn-pro-v1-latin-500.woff2') format('woff2');
}
@font-face {
  font-family: 'SN Pro';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/sn-pro-v1-latin-700.woff2') format('woff2');
}
@font-face {
  font-family: 'SN Pro';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/assets/fonts/sn-pro-v1-latin-800.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  src: url('/assets/fonts/inter-v20-latin-regular.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Lora';
  font-style: normal;
  font-weight: 400;
  src: url('/assets/fonts/lora-v37-latin-regular.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Lora';
  font-style: normal;
  font-weight: 600 800;
  src: url('/assets/fonts/lora-v37-latin-600.woff2') format('woff2');
}

/* Aktive Seite: wie bisher .active */
.kb-header nav a[aria-current="page"] {
    color: var(--kb-yellow);
}

/* Aufklappmenü (ry_nav_render_top(): .nav__dropdown) */
.kb-header nav .nav__dropdown {
    position: relative;
    display: flex;
    align-items: center;
}
.kb-header nav .nav__dropdown-arrow {
    display: inline-block;
    margin-left: .15rem;
    font-size: .75em;
    transition: transform .15s ease;
}
.kb-header nav .nav__dropdown-menu {
    position: absolute;
    top: 100%;
    left: -1rem;
    z-index: 50;
    display: none;
    min-width: 220px;
    margin: .6rem 0 0;
    padding: .5rem 0;
    list-style: none;
    background: var(--kb-red-dark);
    border-top: 3px solid var(--kb-yellow);
    border-radius: 0 0 6px 6px;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .18);
}
.kb-header nav .nav__dropdown-menu::before {      /* Brücke, damit das Menü beim Zeigen nicht zuklappt */
    content: "";
    position: absolute;
    top: -.9rem;
    left: 0;
    right: 0;
    height: .9rem;
}
.kb-header nav .nav__dropdown-menu a {
    display: block;
    padding: .45rem 1rem;
    white-space: nowrap;
}
.kb-header nav .nav__dropdown:hover .nav__dropdown-menu,
.kb-header nav .nav__dropdown:focus-within .nav__dropdown-menu {
    display: block;
}
.kb-header nav .nav__dropdown:hover .nav__dropdown-arrow,
.kb-header nav .nav__dropdown:focus-within .nav__dropdown-arrow {
    transform: rotate(180deg);
}

/* Hervorgehobene Schaltfläche (Website → Navigation) */
.kb-header nav .nav__cta a {
    padding: .45rem 1rem;
    border-radius: 999px;
    background: var(--kb-yellow);
    color: var(--kb-red-dark);
}
.kb-header nav .nav__cta a:hover,
.kb-header nav .nav__cta a:focus-visible {
    background: #fff;
    color: var(--kb-red);
}

/* Sichtbare Fokusmarkierung in der roten Kopfleiste */
.kb-header nav a:focus-visible,
.kb-menu:focus-visible,
.kb-brand:focus-visible {
    outline: 3px solid var(--kb-yellow);
    outline-offset: 3px;
}

@media (max-width: 800px) {
    .kb-header nav .nav__dropdown {
        display: block;
    }
    .kb-header nav .nav__dropdown-menu {
        position: static;
        display: block;
        min-width: 0;
        margin: 0 0 .4rem;
        padding: 0 0 0 1rem;
        background: transparent;
        border: 0;
        box-shadow: none;
    }
    .kb-header nav .nav__dropdown-menu::before,
    .kb-header nav .nav__dropdown-arrow {
        display: none;
    }
    .kb-header nav .nav__dropdown-menu a {
        padding: .35rem 0;
    }
    .kb-header nav .nav__cta {
        margin-top: .5rem;
    }
}

/* Kontaktleiste über dem Kopf (Website → Design → „Kontaktleiste“) */
.kb-topbar {
    background: var(--kb-red-dark);
    color: #fff;
    font-size: .875rem;
}
.kb-topbar__inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .25rem 1.5rem;
    padding-block: .35rem;
}
.kb-topbar a {
    color: #fff;
    text-decoration: none;
}
.kb-topbar a:hover,
.kb-topbar a:focus-visible {
    color: var(--kb-yellow);
}

/* Kurzbeschreibung im Fußbereich (Website → Design → „Kurzbeschreibung“) */
.kb-footer__claim {
    max-width: 22rem;
    margin: 1rem 0 0;
    opacity: .9;
}

/* Kopfbereiche der Modulseiten (Team, Bewerbung, Leistungen, Inhalte) auf dunklem
   Rot: Text, Brotkrumen und Überzeile hell, damit der Kontrast reicht (WCAG AA). */
:is(.career-hero, .team-hero, .career-team-hero, .service-hero, .application-hero, .content-hero) {
    color: #fff;
}
:is(.career-hero, .team-hero, .career-team-hero, .service-hero, .application-hero, .content-hero) :is(p, li, .breadcrumb, .breadcrumb a, .breadcrumb span, .hero__lead, .service-hero__lead) {
    color: #fff;
}
:is(.career-hero, .team-hero, .career-team-hero, .service-hero, .application-hero, .content-hero) .kicker {
    background: rgba(255, 255, 255, .14);
    color: var(--kb-yellow);
}
:is(.career-hero, .team-hero, .career-team-hero, .service-hero, .application-hero, .content-hero) a:not(.button):focus-visible {
    outline: 3px solid var(--kb-yellow);
    outline-offset: 3px;
}

/* Überschriften der Modulseiten in der Überschriftenschrift der Bäckerei (Website → Design) */
:is(.career-hero, .team-hero, .career-team-hero, .service-hero, .application-hero, .content-hero, .team-heading, .jobs-heading, .section-heading) :is(h1, h2) {
    font-family: var(--font-heading, KBLora, serif);
}

/* Hero-Slider der Startseite: ältere .hero-Regeln der Bäckerei-Stylesheets (Abstand,
   zentrierter Text, schmale Spalte) für den Slider zurücksetzen. Die Slider-Regeln
   selbst stehen in module.css unter .kb-heroslider. */
.kb-heroslider.hero {
    padding: 0;
}
.kb-heroslider.hero .hero__inner {
    justify-items: start;
    text-align: left;
    max-width: var(--max, 1180px);
    margin-inline: auto;
    padding-inline: clamp(16px, 4vw, 24px);
}
.kb-heroslider.hero .hero__title {
    max-width: 18ch;
    font-family: var(--font-heading, KBLora, serif);
}
.kb-heroslider.hero .hero__actions {
    justify-content: flex-start;
}
@media (max-width: 640px) {
    .kb-heroslider.hero .hero__actions .button {
        flex: 1 1 100%;
        text-align: center;
    }
}

/* Code-Schnipsel (z. B. technische Namen in Rechtstexten oder Beiträgen): Bootstrap färbt <code> pink-rot –
   hier in der Bäckerei-Textfarbe. */
code { color: var(--kb-ink); background: var(--kb-cream); padding: .1em .35em; border-radius: 4px; font-size: .9em; overflow-wrap: anywhere; }
pre code { padding: 0; background: none; border-radius: 0; }

/* Cookie-Hinweis (Datenschutzeinstellungen): über dem roten Kopf, der mit z-index 9999 klebt – vorher
   verdeckte er auf dem Handy die Überschrift des Dialogs. */
.ry-consent { z-index: 10050; }
/* Handy: Die drei Schaltflächen bleiben unten im Dialog sichtbar, nur Text und Kategorien scrollen;
   Beschreibungen etwas kompakter. */
@media (max-width: 600px) {
  .ry-consent__dialog { max-height: 92vh; max-height: 92dvh; padding: 1.1rem 1rem 0; }
  .ry-consent__text { font-size: .875rem; }
  .ry-consent__hint { font-size: .75rem; line-height: 1.45; }
  .ry-consent__label { padding: .55rem .7rem; }
  .ry-consent__actions {
    position: sticky; bottom: 0; z-index: 1;
    margin: .8rem -1rem 0; padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom, 0px));
    background: #fff; border-top: 1px solid var(--color-border); gap: .45rem;
  }
  .ry-consent__actions .btn { flex: 1 1 100%; padding-top: .55rem; padding-bottom: .55rem; }
  .ry-consent__links { margin: 0; padding: 0 0 .8rem; background: #fff; }
}

/* Cookie-Hinweis: Schaltflächen wie die übrigen der Bäckerei (kb-btn-primary / kb-btn-light) – vorher
   CMS-Blau bzw. ohne Hintergrund. */
.ry-consent .ry-consent__actions .btn {
  border-radius: 999px; font-family: inherit; font-weight: 700; border: 2px solid var(--kb-red);
}
.ry-consent .ry-consent__actions .btn--primary { background: var(--kb-red); border-color: var(--kb-red); color: #fff; }
.ry-consent .ry-consent__actions .btn--primary:hover { background: var(--kb-red-dark); border-color: var(--kb-red-dark); color: #fff; }
.ry-consent .ry-consent__actions .btn--ghost { background: #fff; color: var(--kb-red); }
.ry-consent .ry-consent__actions .btn--ghost:hover { background: var(--kb-cream); color: var(--kb-red-dark); }
.ry-consent .ry-consent__links a { color: var(--kb-red); }

/* ---------- Fuß: Hintergrundmuster (seit 20.10.2026; wählbar unter Website → Design, includes/kb-fussmuster.php) ----------
   Eigene Ebene ::after über dem braunen Verlauf und hinter dem Inhalt (.kb-footer__grid hat z-index 1); ::before bleibt die große Ähre
   rechts unten (koebler-base.css) und lässt sich mit kb-ohne-aehre ausblenden. Werte als CSS-Variablen am <footer>. Bis 640 px 80 % Größe. */
.kb-footer.kb-muster::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-color: var(--pattern-color, #f6d70e);
  opacity: var(--pattern-opacity, 0.08);
  -webkit-mask-image: var(--muster);
  mask-image: var(--muster);
  -webkit-mask-size: var(--pattern-size, 60px) auto;
  mask-size: var(--pattern-size, 60px) auto;
  -webkit-mask-repeat: repeat;
  mask-repeat: repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.kb-footer.kb-ohne-aehre::before { display: none; }
@media (max-width: 640px) {
  .kb-footer.kb-muster::after {
    -webkit-mask-size: calc(var(--pattern-size, 60px) * 0.8) auto;
    mask-size: calc(var(--pattern-size, 60px) * 0.8) auto;
  }
}

/* ---------- Duft-Effekt: aufsteigender Dampf (seit 20.10.2026, Idee des Nutzers) ----------
   Startseite: dauerhaft über der Bildunterschrift „Früh aufstehen …“ im Titelbild, bei den Sortimentskarten nur bei Hover/Fokus.
   Reines CSS (drei <span class="kb-aroma__dampf">, ausgegeben von kb_duft_markup() in includes/kb-duft.php, aria-hidden).
   Optional: Website → Design → „Duft-Effekt“ (Titelbild und Karten einzeln, Standard aus). Bei „Bewegung reduzieren“ ausgeblendet. */
/* DUFT-FAEDEN-ANFANG – erzeugt von scripts/duft-erzeugen.py, nicht von Hand ändern */
.kb-aroma {
  /* Dampffarbe: Braun im Titelbild (heller Schein für dunkle Bildstellen); Weiß und Karten siehe unten */
  --aroma-color: rgb(103 72 53 / 90%); /* #674835 (Wunsch des Nutzers) */
  --aroma-schein: rgb(255 250 240 / 70%);
  position: absolute;
  width: 100px;
  height: 0;
  pointer-events: none;
}
/* Jeder Faden: gezeichnete, spitz zulaufende Form (SVG als Maske). Ein Sichtfenster wandert von unten nach oben über den Faden
   (kb-aroma-fluss) – der Dampf löst sich unten und zieht nach oben weg –, dazu leichtes Aufsteigen, Breiterwerden, Pendeln. */
.kb-aroma__dampf {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100px;
  height: 210px;
  background-color: var(--aroma-color);
  -webkit-mask-image: linear-gradient(to top, transparent 0%, transparent 30%, #000 40%, #000 58%, transparent 72%, transparent 100%), var(--faden);
  mask-image: linear-gradient(to top, transparent 0%, transparent 30%, #000 40%, #000 58%, transparent 72%, transparent 100%), var(--faden);
  -webkit-mask-size: 100% 300%, 100% 100%;
  mask-size: 100% 300%, 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  filter: blur(.4px) drop-shadow(0 0 2px var(--aroma-schein));
  opacity: 0;
  transform-origin: 50% 100%;
  animation: kb-aroma-steigen-1 6s ease-in-out infinite, kb-aroma-fluss 6s linear infinite, kb-aroma-pendeln 3.4s ease-in-out infinite alternate;
}
.kb-aroma__dampf:nth-child(1) { --faden: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='210' viewBox='0 0 100 210'%3E%3Cdefs%3E%3ClinearGradient id='v' x1='0' y1='210' x2='0' y2='0' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='.05' stop-color='black'/%3E%3Cstop offset='.35' stop-color='black' stop-opacity='.85'/%3E%3Cstop offset='.72' stop-color='black' stop-opacity='0.25'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M50.8 205.9L50.7 205.1L50.6 204.2L50.4 203.1L50.3 201.9L50.1 200.6L49.9 199.2L49.7 197.7L49.5 196.1L49.3 194.6L49.1 192.9L48.9 191.3L48.7 189.7L48.5 188.2L48.3 186.7L48.1 185.1L47.8 183.6L47.5 182L47.2 180.4L46.9 178.8L46.5 177.2L46.2 175.6L46 174L45.8 172.4L45.6 170.8L45.5 169.2L45.5 167.7L45.7 166.1L45.9 164.6L46.2 163.1L46.7 161.5L47.2 160L47.8 158.4L48.4 156.8L49.2 155.2L50 153.7L50.8 152.1L51.7 150.5L52.7 149L53.6 147.4L54.7 145.9L55.7 144.4L56.7 143L57.8 141.6L59 140.2L60.4 138.9L61.8 137.6L63.2 136.2L64.7 134.9L66.3 133.6L67.8 132.3L69.3 130.9L70.8 129.6L72.2 128.2L73.6 126.9L74.8 125.4L76 124L77 122.6L78 121.2L78.9 119.7L79.8 118.3L80.6 116.9L81.4 115.4L82.1 113.9L82.8 112.5L83.3 111L83.9 109.5L84.3 108L84.6 106.6L84.8 105.1L84.9 103.6L84.8 102.1L84.6 100.6L84.3 99.2L83.9 97.8L83.3 96.4L82.7 95.1L82 93.8L81.3 92.6L80.5 91.4L79.8 90.2L79 89.1L78.2 88L77.4 86.9L76.6 85.8L75.7 84.6L74.7 83.5L73.7 82.4L72.6 81.4L71.5 80.4L70.4 79.4L69.3 78.5L68.2 77.5L67.2 76.6L66.3 75.8L65.4 75L64.7 74.2L64 73.5L63.5 72.8L63.1 72L62.6 71.3L62.2 70.5L61.9 69.8L61.6 69.1L61.4 68.4L61.1 67.7L61 67.1L60.8 66.4L60.7 65.8L60.7 65.2L60.6 64.6L60.6 64.1L60.7 63.6L60.7 63.2L60.8 62.9L60.9 62.5L61 62.2L61.2 61.9L61.4 61.5L61.6 61.2L61.8 60.9L62.1 60.5L62.4 60.2L62.7 59.8L63.1 59.5L63.4 59.1L63.7 58.7L64.1 58.4L64.4 58.1L64.9 57.7L65.4 57.3L65.9 57L66.4 56.6L67 56.3L67.6 55.9L68.2 55.6L68.8 55.3L69.4 55L70 54.8L70.5 54.5L71 54.4L71.4 54.2L71.8 54.1L72.4 54L73 54L73.7 54L74.4 54L75.1 54L75.8 54L76.5 54L77.2 54.1L77.8 54.1L78.4 54.1L79 54.1L79.4 54.1L80 49.1L79.7 49L79.3 48.8L78.8 48.7L78.2 48.5L77.5 48.2L76.8 48L76 47.8L75.2 47.6L74.3 47.4L73.4 47.3L72.5 47.2L71.5 47.1L70.5 47.1L69.5 47.2L68.6 47.4L67.8 47.6L66.9 47.8L66 48.1L65.1 48.4L64.2 48.7L63.4 49L62.5 49.4L61.7 49.9L60.9 50.3L60.1 50.8L59.3 51.3L58.6 51.9L57.9 52.5L57.3 53L56.7 53.6L56.1 54.3L55.6 55L55.1 55.7L54.7 56.4L54.3 57.2L53.9 58L53.6 58.9L53.3 59.8L53.1 60.7L52.9 61.6L52.8 62.6L52.8 63.6L52.9 64.5L53 65.4L53.2 66.3L53.3 67.2L53.6 68.2L53.9 69.1L54.2 70.1L54.6 71L55 72L55.5 73L56.1 73.9L56.7 74.9L57.3 75.9L58.1 76.8L58.9 77.9L59.9 78.9L60.9 79.8L62 80.7L63.1 81.6L64.2 82.5L65.3 83.3L66.4 84.2L67.5 85.1L68.5 85.9L69.5 86.8L70.4 87.7L71.2 88.5L72 89.4L72.8 90.4L73.6 91.4L74.4 92.4L75.2 93.5L76 94.5L76.7 95.5L77.4 96.6L78 97.6L78.5 98.6L79 99.6L79.4 100.6L79.6 101.6L79.8 102.6L79.9 103.6L79.9 104.7L79.8 105.8L79.6 107L79.3 108.2L78.9 109.5L78.5 110.8L78 112.1L77.4 113.4L76.7 114.8L76 116.1L75.2 117.5L74.4 118.9L73.5 120.3L72.6 121.6L71.7 122.9L70.6 124.2L69.4 125.5L68.1 126.8L66.7 128.1L65.3 129.5L63.8 130.8L62.3 132.2L60.8 133.6L59.3 135L57.9 136.4L56.5 137.9L55.2 139.5L54.1 141L53 142.6L52 144.1L51 145.7L50 147.4L49.1 149L48.2 150.7L47.3 152.3L46.5 154L45.8 155.7L45.1 157.4L44.6 159.1L44.1 160.8L43.6 162.5L43.3 164.2L43.1 165.9L43 167.6L43 169.3L43.2 171L43.4 172.7L43.7 174.4L44 176L44.3 177.7L44.7 179.3L45.1 180.9L45.4 182.4L45.8 184L46.1 185.5L46.3 186.9L46.5 188.4L46.7 190L47 191.6L47.2 193.2L47.5 194.8L47.7 196.4L47.9 197.9L48.2 199.4L48.4 200.8L48.6 202.1L48.8 203.3L48.9 204.4L49.1 205.3L49.2 206.1Z' fill='url%28%23v%29'/%3E%3C/svg%3E");
  --breit-mitte: 1.5; --breit-ende: 2.4; --unschaerfe-mitte: 2px; --unschaerfe-ende: 7px; --steigen-ende: -35px;
  animation-name: kb-aroma-steigen-1, kb-aroma-fluss, kb-aroma-pendeln-1;
  animation-delay: 0s, 0s, -0.7s; animation-duration: 6s, 6s, 3.4s; }
.kb-aroma__dampf:nth-child(2) { --faden: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='210' viewBox='0 0 100 210'%3E%3Cdefs%3E%3ClinearGradient id='v' x1='0' y1='210' x2='0' y2='0' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='.05' stop-color='black'/%3E%3Cstop offset='.35' stop-color='black' stop-opacity='.85'/%3E%3Cstop offset='.72' stop-color='black' stop-opacity='0.1'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M50.8 206.1L50.9 205.3L50.9 204.5L51 203.5L51.1 202.4L51.2 201.1L51.3 199.8L51.4 198.5L51.5 197L51.7 195.6L51.8 194.1L52 192.7L52.1 191.2L52.3 189.9L52.4 188.5L52.6 187.2L52.8 185.8L52.9 184.5L53 183.1L53.2 181.8L53.3 180.4L53.5 179L53.7 177.7L53.9 176.3L54.1 175L54.4 173.6L54.7 172.3L55.1 171L55.5 169.7L56 168.4L56.5 167L57.1 165.7L57.7 164.4L58.4 163L59.1 161.7L59.8 160.3L60.6 159L61.4 157.6L62.2 156.3L62.9 154.9L63.7 153.6L64.5 152.3L65.3 151L66 149.8L66.8 148.6L67.7 147.3L68.6 146.1L69.5 144.9L70.4 143.7L71.4 142.4L72.3 141.2L73.2 139.9L74 138.6L74.8 137.3L75.6 136L76.2 134.6L76.8 133.2L77.2 131.8L77.6 130.4L77.9 129L78.1 127.6L78.3 126.2L78.5 124.8L78.5 123.4L78.6 122L78.5 120.6L78.4 119.2L78.2 117.8L78 116.4L77.7 115.1L77.3 113.8L76.9 112.4L76.3 111.1L75.6 109.8L74.9 108.5L74.1 107.3L73.3 106.1L72.5 105L71.6 103.9L70.7 102.8L69.8 101.7L68.9 100.7L68 99.7L67.1 98.7L66.3 97.7L65.3 96.7L64.3 95.7L63.3 94.8L62.3 93.9L61.3 93L60.3 92.1L59.3 91.3L58.3 90.5L57.3 89.7L56.4 88.9L55.5 88.1L54.6 87.4L53.8 86.6L53 85.9L52.3 85.1L51.5 84.2L50.7 83.4L49.9 82.6L49.2 81.8L48.4 80.9L47.7 80.1L47 79.3L46.3 78.5L45.6 77.7L45 76.9L44.4 76.1L43.8 75.4L43.2 74.6L42.6 73.9L42.1 73.1L41.5 72.4L41 71.7L40.6 71.1L40.1 70.4L39.7 69.8L39.4 69.2L39 68.6L38.7 68.1L38.5 67.5L38.2 67L38 66.6L37.8 66.1L37.5 65.6L37.3 65.1L37.1 64.6L36.9 64.1L36.7 63.6L36.6 63.1L36.4 62.7L36.3 62.2L36.2 61.8L36.1 61.4L36 61L36 60.6L35.9 60.2L35.9 60L35.9 59.8L35.9 59.5L36 59.1L36.2 58.6L36.4 58L36.7 57.4L37.1 56.8L37.4 56.2L37.8 55.6L38.1 55L38.5 54.4L38.8 53.8L39 53.3L39.2 52.8L33.8 48.8L33.5 49L33.1 49.2L32.7 49.5L32.2 49.9L31.6 50.4L31 51L30.4 51.6L29.7 52.2L29.1 53L28.5 53.7L27.8 54.6L27.3 55.5L26.7 56.5L26.3 57.6L26 58.6L25.8 59.6L25.7 60.5L25.6 61.5L25.5 62.4L25.6 63.4L25.6 64.3L25.7 65.3L25.9 66.2L26.1 67.1L26.3 68L26.5 68.9L26.8 69.8L27.1 70.7L27.5 71.6L28 72.5L28.4 73.3L29 74.1L29.5 74.9L30.1 75.7L30.7 76.4L31.3 77.1L32 77.9L32.6 78.6L33.2 79.3L33.9 80L34.5 80.7L35.2 81.4L35.9 82.1L36.7 82.9L37.4 83.7L38.2 84.5L39 85.3L39.8 86.1L40.7 86.9L41.5 87.7L42.4 88.5L43.3 89.3L44.2 90.1L45.1 90.9L46 91.7L47 92.5L48 93.4L49 94.2L50 95L51.1 95.7L52.1 96.5L53.2 97.2L54.2 97.9L55.2 98.6L56.2 99.4L57.2 100.1L58.1 100.8L59 101.5L59.9 102.3L60.7 103.1L61.6 103.9L62.6 104.9L63.5 105.8L64.4 106.7L65.3 107.6L66.2 108.5L67 109.4L67.8 110.4L68.6 111.3L69.2 112.2L69.9 113.1L70.4 114L70.9 114.9L71.3 115.8L71.6 116.8L71.9 117.8L72.2 118.9L72.4 120L72.6 121.1L72.7 122.2L72.8 123.4L72.8 124.6L72.7 125.7L72.7 126.9L72.5 128.1L72.3 129.3L72.1 130.5L71.8 131.6L71.5 132.7L71 133.8L70.5 135L69.9 136.1L69.2 137.3L68.4 138.5L67.6 139.8L66.8 141L65.9 142.3L65 143.6L64.1 144.9L63.3 146.3L62.5 147.6L61.7 149L61 150.3L60.3 151.7L59.6 153.1L58.9 154.5L58.1 155.9L57.4 157.3L56.7 158.7L56 160.1L55.3 161.5L54.7 163L54.1 164.4L53.5 165.9L53 167.3L52.6 168.7L52.2 170.2L51.9 171.6L51.6 173.1L51.4 174.5L51.2 175.9L51 177.4L50.9 178.8L50.8 180.2L50.7 181.6L50.6 182.9L50.5 184.3L50.5 185.6L50.4 187L50.3 188.3L50.1 189.6L50 191.1L49.9 192.5L49.8 194L49.7 195.5L49.7 196.9L49.6 198.3L49.5 199.7L49.5 201L49.4 202.2L49.3 203.4L49.3 204.4L49.2 205.2L49.2 205.9Z' fill='url%28%23v%29'/%3E%3C/svg%3E");
  --breit-mitte: 1.8; --breit-ende: 3.2; --unschaerfe-mitte: 3px; --unschaerfe-ende: 11px; --steigen-ende: -45px;
  animation-name: kb-aroma-steigen-2, kb-aroma-fluss, kb-aroma-pendeln-2;
  animation-delay: -.3s, -.3s, -1.4s; animation-duration: 6s, 6s, 4.6s; }
.kb-aroma__dampf:nth-child(3) { --faden: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='210' viewBox='0 0 100 210'%3E%3Cdefs%3E%3ClinearGradient id='v' x1='0' y1='210' x2='0' y2='0' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='.05' stop-color='black'/%3E%3Cstop offset='.35' stop-color='black' stop-opacity='.85'/%3E%3Cstop offset='.72' stop-color='black' stop-opacity='0.35'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M50.7 205.7L50.5 205.1L50.1 204.4L49.8 203.5L49.4 202.6L48.9 201.6L48.4 200.6L47.9 199.4L47.4 198.3L46.9 197.1L46.3 195.9L45.8 194.7L45.2 193.5L44.7 192.3L44.1 191.2L43.6 190L43 188.9L42.4 187.8L41.8 186.6L41.2 185.5L40.5 184.3L39.9 183.2L39.3 182L38.7 180.9L38.2 179.7L37.6 178.6L37.1 177.4L36.7 176.3L36.3 175.2L36 174.1L35.6 172.9L35.3 171.8L35 170.6L34.8 169.5L34.5 168.4L34.3 167.2L34.2 166.1L34 165L33.9 163.9L33.9 162.8L33.9 161.8L33.9 160.8L34 159.7L34.2 158.7L34.3 157.7L34.6 156.7L34.9 155.7L35.2 154.7L35.6 153.7L36 152.8L36.4 151.8L36.9 150.8L37.4 149.8L37.9 148.9L38.4 148L39 147.1L39.5 146.2L40 145.4L40.6 144.6L41.2 143.8L41.9 143.1L42.6 142.3L43.3 141.6L44.1 140.9L44.8 140.1L45.6 139.4L46.4 138.6L47.1 137.8L47.9 137L48.6 136.1L49.2 135.3L49.8 134.5L50.3 133.6L50.9 132.8L51.4 132L51.9 131.1L52.4 130.3L52.9 129.4L53.3 128.6L53.8 127.7L54.2 126.8L54.5 126L54.8 125.1L55.1 124.2L55.3 123.3L55.5 122.4L55.6 121.5L55.7 120.7L55.7 119.8L55.7 119L55.6 118.1L55.6 117.3L55.4 116.5L55.3 115.7L55.1 115L54.9 114.2L54.7 113.5L54.5 112.8L54.2 112.1L54 111.3L53.6 110.5L53.2 109.8L52.8 109.1L52.4 108.4L51.9 107.8L51.4 107.2L50.9 106.6L50.4 106L50 105.5L49.5 104.9L49 104.4L48.6 104L48.2 103.5L47.7 103L47.2 102.5L46.7 101.9L46.2 101.4L45.7 100.9L45.2 100.4L44.7 99.9L44.2 99.5L43.7 99.1L43.3 98.7L42.9 98.4L42.5 98.1L42.2 97.8L41.9 97.6L39.2 100L39.3 100.3L39.6 100.7L39.8 101.1L40.1 101.5L40.4 102L40.8 102.5L41.1 103.1L41.5 103.6L41.9 104.2L42.3 104.7L42.7 105.3L43 105.8L43.4 106.4L43.7 106.9L44.1 107.5L44.5 108L44.9 108.6L45.3 109.2L45.6 109.7L46 110.3L46.4 110.8L46.8 111.4L47.1 111.9L47.4 112.4L47.7 112.9L48 113.4L48.2 113.9L48.5 114.3L48.7 114.9L48.9 115.5L49.2 116L49.4 116.6L49.5 117.2L49.7 117.7L49.8 118.3L50 118.9L50.1 119.4L50.1 120L50.2 120.6L50.2 121.1L50.1 121.7L50.1 122.3L50 122.9L49.8 123.6L49.6 124.2L49.4 124.9L49.1 125.7L48.8 126.4L48.5 127.2L48.1 128L47.7 128.7L47.3 129.5L46.8 130.3L46.4 131.1L45.9 131.9L45.4 132.7L44.9 133.4L44.4 134.2L43.8 134.9L43.2 135.6L42.5 136.4L41.8 137.2L41.1 137.9L40.3 138.7L39.6 139.6L38.8 140.4L38.1 141.3L37.4 142.3L36.8 143.2L36.2 144.2L35.7 145.2L35.2 146.2L34.6 147.2L34.2 148.2L33.7 149.3L33.2 150.4L32.8 151.4L32.4 152.6L32 153.7L31.7 154.8L31.4 156L31.2 157.1L31 158.3L30.9 159.5L30.8 160.6L30.8 161.8L30.9 163L31 164.2L31.2 165.4L31.3 166.6L31.6 167.8L31.8 168.9L32.1 170.1L32.5 171.3L32.8 172.5L33.2 173.7L33.6 174.8L34 176L34.4 177.2L34.9 178.4L35.5 179.6L36.1 180.7L36.7 181.9L37.3 183.1L38 184.2L38.6 185.4L39.3 186.5L40 187.7L40.6 188.8L41.2 189.9L41.8 191L42.4 192L42.9 193.1L43.5 194.3L44.1 195.5L44.6 196.6L45.2 197.8L45.8 199L46.3 200.2L46.9 201.3L47.4 202.3L47.8 203.3L48.3 204.2L48.7 205.1L49 205.8L49.3 206.3Z' fill='url%28%23v%29'/%3E%3C/svg%3E");
  --breit-mitte: 1.3; --breit-ende: 1.8; --unschaerfe-mitte: 1.3px; --unschaerfe-ende: 4.5px; --steigen-ende: -25px;
  animation-name: kb-aroma-steigen-3, kb-aroma-fluss, kb-aroma-pendeln-3;
  animation-delay: .9s, .9s, -2.1s; animation-duration: 6s, 6s, 2.8s; }
@keyframes kb-aroma-pendeln-1 {
  from { rotate: -1deg; }
  to { rotate: 4deg; }
}
@keyframes kb-aroma-pendeln-2 {
  from { rotate: -5deg; }
  to { rotate: 1.5deg; }
}
@keyframes kb-aroma-pendeln-3 {
  from { rotate: -2deg; }
  to { rotate: 2.5deg; }
}
@keyframes kb-aroma-steigen-1 {
  0% { translate: 0 12px; scale: .9 .95; opacity: 0; filter: blur(.4px) drop-shadow(0 0 2px var(--aroma-schein)); }
  15% { opacity: .95; }
  55% { opacity: .75; scale: var(--breit-mitte) 1.06; filter: blur(var(--unschaerfe-mitte)) drop-shadow(0 0 3px var(--aroma-schein)); }
  100% { translate: 5px var(--steigen-ende); scale: var(--breit-ende) 1.2; opacity: 0; filter: blur(var(--unschaerfe-ende)) drop-shadow(0 0 5px var(--aroma-schein)); }
}
@keyframes kb-aroma-steigen-2 {
  0% { translate: 0 12px; scale: .9 .95; opacity: 0; filter: blur(.4px) drop-shadow(0 0 2px var(--aroma-schein)); }
  15% { opacity: .95; }
  62% { opacity: .75; scale: var(--breit-mitte) 1.06; filter: blur(var(--unschaerfe-mitte)) drop-shadow(0 0 3px var(--aroma-schein)); }
  100% { translate: 5px var(--steigen-ende); scale: var(--breit-ende) 1.2; opacity: 0; filter: blur(var(--unschaerfe-ende)) drop-shadow(0 0 5px var(--aroma-schein)); }
}
@keyframes kb-aroma-steigen-3 {
  0% { translate: 0 12px; scale: .9 .95; opacity: 0; filter: blur(.4px) drop-shadow(0 0 2px var(--aroma-schein)); }
  15% { opacity: .95; }
  45% { opacity: .75; scale: var(--breit-mitte) 1.06; filter: blur(var(--unschaerfe-mitte)) drop-shadow(0 0 3px var(--aroma-schein)); }
  100% { translate: 5px var(--steigen-ende); scale: var(--breit-ende) 1.2; opacity: 0; filter: blur(var(--unschaerfe-ende)) drop-shadow(0 0 5px var(--aroma-schein)); }
}
/* Sichtfenster von unten nach oben: Maske 300 % hoch – Position 0 % zeigt ihr oberes Drittel (Fenster liegt darunter, unsichtbar),
   100 % ihr unteres Drittel (Fenster darüber). 0 % → 100 % lässt das Fenster also nach OBEN wandern (20.10.2026 korrigiert, lief vorher abwärts). */
@keyframes kb-aroma-fluss {
  from { -webkit-mask-position: 0 0%, 0 0; mask-position: 0 0%, 0 0; }
  to { -webkit-mask-position: 0 100%, 0 0; mask-position: 0 100%, 0 0; }
}
@keyframes kb-aroma-pendeln {
  from { rotate: -3deg; }
  to { rotate: 3deg; }
}
/* DUFT-FAEDEN-ENDE */
/* Titelbild: Dampf steigt rechts oben aus dem hellen Kasten der Bildunterschrift auf (auf der hellen Hauswand allein wäre er nicht zu sehen) */
.kb-hero__image figcaption .kb-aroma { bottom: calc(100% - 2.4rem); right: .8rem; }
/* Titelbild, Ort „Fenster“: Dampf steigt aus dem gekippten Fenster links neben der Tür auf. Das Foto (1092 × 598 px) wird mit
   object-fit: cover beschnitten; aus Breite (100cqw, <figure> ist Container) und Höhe (--hero-h, wie in koebler-base.css) ergibt sich
   der Maßstab --s je Bildpixel. Startpunkt im Foto bei x 626 / y 380 px (Oberkante des gekippten Fensters). Gilt nur für dieses Foto. */
.kb-hero__image { container-type: inline-size; --hero-h: min(560px, 65vw); }
@media (max-width: 800px) { .kb-hero__image { --hero-h: 420px; } }
.kb-hero__image .kb-aroma--fenster {
  --s: max(100cqw / 1092, var(--hero-h) / 598);
  left: calc((100cqw - 1092 * var(--s)) / 2 + 626 * var(--s));
  top: calc((var(--hero-h) - 598 * var(--s)) / 2 + 380 * var(--s));
  transform: translate(-50%, -100%);
}
/* Weißer Dampf im Titelbild (Website → Design): feiner dunkler Schatten statt heller Schein, damit er auf der hellen Wand sichtbar bleibt */
.kb-hero__image .kb-aroma--weiss { --aroma-color: rgb(255 255 255 / 95%); --aroma-schein: rgb(60 40 28 / 55%); }
/* Sortimentskarten: Dampf über dem Namen, hell auf dem dunklen Verlauf; ruht, bis die Karte berührt bzw. fokussiert wird */
.kb-sortiment-card__image-overlay { flex-direction: column; justify-content: flex-end; align-items: flex-start; }
.kb-sortiment-card .kb-aroma {
  --aroma-color: rgb(246 240 230 / 95%);
  --aroma-schein: rgb(0 0 0 / 0%);
  position: relative;
  height: 0;
  margin: 0 0 .4rem;
  scale: .7;
  transform-origin: 0 100%;
  opacity: 0;
  transition: opacity .4s ease;
}
.kb-sortiment-card .kb-aroma__dampf { animation-play-state: paused; }
.kb-sortiment-card:hover .kb-aroma,
.kb-sortiment-card:focus-visible .kb-aroma { opacity: 1; }
.kb-sortiment-card:hover .kb-aroma__dampf,
.kb-sortiment-card:focus-visible .kb-aroma__dampf { animation-play-state: running; }
@media (prefers-reduced-motion: reduce) {
  .kb-aroma { display: none; }
}
