.elementor-kit-12{--e-global-color-primary:#B59E90;--e-global-color-secondary:#7F543A;--e-global-color-text:#E0E0E0;--e-global-color-accent:#FFFFFF;--e-global-color-5747ef1:#252525;--e-global-color-ms0bg02:#1E1D1C;--e-global-color-ms0fl03:#2E2C2B;--e-global-color-ms0tx04:#A39A93;--e-global-color-ms0li05:#B59E9033;--e-global-color-ms0gh06:#FFFFFF08;--e-global-typography-primary-font-family:"Cormorant Garamond";--e-global-typography-primary-font-size:40px;--e-global-typography-primary-font-weight:600;--e-global-typography-primary-line-height:1.1em;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-size:12px;--e-global-typography-secondary-font-weight:500;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-secondary-line-height:1.6em;--e-global-typography-secondary-letter-spacing:0.18em;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:300;--e-global-typography-text-line-height:1.7em;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:13px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.4em;--e-global-typography-accent-letter-spacing:0.14em;--e-global-typography-ms0h1-font-family:"Cormorant Garamond";--e-global-typography-ms0h1-font-size:72px;--e-global-typography-ms0h1-font-weight:700;--e-global-typography-ms0h1-line-height:1.08em;--e-global-typography-ms0h2-font-family:"Cormorant Garamond";--e-global-typography-ms0h2-font-size:64px;--e-global-typography-ms0h2-font-weight:600;--e-global-typography-ms0h2-line-height:1.05em;--e-global-typography-ms0h3-font-family:"Cormorant Garamond";--e-global-typography-ms0h3-font-size:40px;--e-global-typography-ms0h3-font-weight:600;--e-global-typography-ms0h3-line-height:1.1em;--e-global-typography-ms0qx-font-family:"Cormorant Garamond";--e-global-typography-ms0qx-font-size:70px;--e-global-typography-ms0qx-font-weight:500;--e-global-typography-ms0qx-font-style:italic;--e-global-typography-ms0qx-line-height:1.04em;--e-global-typography-ms0q1-font-family:"Cormorant Garamond";--e-global-typography-ms0q1-font-size:48px;--e-global-typography-ms0q1-font-weight:500;--e-global-typography-ms0q1-font-style:italic;--e-global-typography-ms0q1-line-height:1.12em;--e-global-typography-ms0q2-font-family:"Cormorant Garamond";--e-global-typography-ms0q2-font-size:26px;--e-global-typography-ms0q2-font-weight:400;--e-global-typography-ms0q2-font-style:italic;--e-global-typography-ms0q2-line-height:1.3em;--e-global-typography-ms0ld-font-family:"Inter";--e-global-typography-ms0ld-font-size:20px;--e-global-typography-ms0ld-font-weight:300;--e-global-typography-ms0ld-line-height:1.6em;--e-global-typography-ms0gh-font-family:"Cormorant Garamond";--e-global-typography-ms0gh-font-size:300px;--e-global-typography-ms0gh-font-weight:700;--e-global-typography-ms0gh-text-transform:uppercase;--e-global-typography-ms0gh-line-height:0.8em;--e-global-typography-ms0gh-letter-spacing:0.02em;--e-global-typography-ms0zl-font-family:"Cormorant Garamond";--e-global-typography-ms0zl-font-size:32px;--e-global-typography-ms0zl-font-weight:600;--e-global-typography-ms0zl-line-height:1em;background-color:var( --e-global-color-5747ef1 );color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-12 button,.elementor-kit-12 input[type="button"],.elementor-kit-12 input[type="submit"],.elementor-kit-12 .elementor-button{background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );color:var( --e-global-color-5747ef1 );border-radius:0px 0px 0px 0px;padding:18px 30px 18px 30px;}.elementor-kit-12 button:hover,.elementor-kit-12 button:focus,.elementor-kit-12 input[type="button"]:hover,.elementor-kit-12 input[type="button"]:focus,.elementor-kit-12 input[type="submit"]:hover,.elementor-kit-12 input[type="submit"]:focus,.elementor-kit-12 .elementor-button:hover,.elementor-kit-12 .elementor-button:focus{background-color:var( --e-global-color-accent );color:var( --e-global-color-5747ef1 );}.elementor-kit-12 e-page-transition{background-color:#FFBC7D;}.elementor-kit-12 a{color:var( --e-global-color-primary );}.elementor-kit-12 a:hover{color:var( --e-global-color-accent );}.elementor-kit-12 h1{color:var( --e-global-color-accent );font-family:var( --e-global-typography-ms0h1-font-family ), Sans-serif;font-size:var( --e-global-typography-ms0h1-font-size );font-weight:var( --e-global-typography-ms0h1-font-weight );line-height:var( --e-global-typography-ms0h1-line-height );}.elementor-kit-12 h2{color:var( --e-global-color-accent );font-family:var( --e-global-typography-ms0h2-font-family ), Sans-serif;font-size:var( --e-global-typography-ms0h2-font-size );font-weight:var( --e-global-typography-ms0h2-font-weight );line-height:var( --e-global-typography-ms0h2-line-height );}.elementor-kit-12 h3{color:var( --e-global-color-accent );font-family:var( --e-global-typography-ms0h3-font-family ), Sans-serif;font-size:var( --e-global-typography-ms0h3-font-size );font-weight:var( --e-global-typography-ms0h3-font-weight );line-height:var( --e-global-typography-ms0h3-line-height );}.elementor-kit-12 h4{color:var( --e-global-color-accent );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){margin-block-end:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-12{--e-global-typography-primary-font-size:32px;--e-global-typography-secondary-font-size:12px;--e-global-typography-text-font-size:17px;--e-global-typography-accent-font-size:13px;--e-global-typography-ms0h1-font-size:56px;--e-global-typography-ms0h2-font-size:44px;--e-global-typography-ms0h3-font-size:32px;--e-global-typography-ms0qx-font-size:44px;--e-global-typography-ms0q1-font-size:34px;--e-global-typography-ms0q2-font-size:24px;--e-global-typography-ms0ld-font-size:19px;--e-global-typography-ms0gh-font-size:160px;--e-global-typography-ms0zl-font-size:30px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-12 h1{font-size:var( --e-global-typography-ms0h1-font-size );line-height:var( --e-global-typography-ms0h1-line-height );}.elementor-kit-12 h2{font-size:var( --e-global-typography-ms0h2-font-size );line-height:var( --e-global-typography-ms0h2-line-height );}.elementor-kit-12 h3{font-size:var( --e-global-typography-ms0h3-font-size );line-height:var( --e-global-typography-ms0h3-line-height );}.elementor-kit-12 h4{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-kit-12 button,.elementor-kit-12 input[type="button"],.elementor-kit-12 input[type="submit"],.elementor-kit-12 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-12{--e-global-typography-primary-font-size:28px;--e-global-typography-secondary-font-size:12px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:13px;--e-global-typography-ms0h1-font-size:44px;--e-global-typography-ms0h2-font-size:36px;--e-global-typography-ms0h3-font-size:28px;--e-global-typography-ms0qx-font-size:34px;--e-global-typography-ms0q1-font-size:30px;--e-global-typography-ms0q2-font-size:22px;--e-global-typography-ms0ld-font-size:18px;--e-global-typography-ms0gh-font-size:110px;--e-global-typography-ms0zl-font-size:28px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-12 h1{font-size:var( --e-global-typography-ms0h1-font-size );line-height:var( --e-global-typography-ms0h1-line-height );}.elementor-kit-12 h2{font-size:var( --e-global-typography-ms0h2-font-size );line-height:var( --e-global-typography-ms0h2-line-height );}.elementor-kit-12 h3{font-size:var( --e-global-typography-ms0h3-font-size );line-height:var( --e-global-typography-ms0h3-line-height );}.elementor-kit-12 h4{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-kit-12 button,.elementor-kit-12 input[type="button"],.elementor-kit-12 input[type="submit"],.elementor-kit-12 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* Markus Schnitzler – Kit-CSS (Site Settings > Custom CSS)
   Quelle: brand/visual-guidelines.md. Farben nur über Global-Variablen. */

/* Theme lädt kein Reset-CSS: Browser-Standardabstand am Body entfernen */
body { margin: 0; }

/* Akzentwort in Headlines: <span class="ms-akzent">…</span> */
.ms-akzent { color: var(--e-global-color-primary); }

/* Ghost-Text im Hintergrund */
.ms-ghost { pointer-events: none; user-select: none; z-index: 0; }
.ms-ghost .elementor-heading-title { white-space: nowrap; }

/* Bildformate für Bild-Widgets */
.ms-bild-45 img, .ms-bild-34 img, .ms-bild-43 img, .ms-bild-rund img { display: block; width: 100%; height: auto; object-fit: cover; }
.ms-bild-45 img { aspect-ratio: 4 / 5; }
.ms-bild-34 img { aspect-ratio: 3 / 4; }
.ms-bild-43 img { aspect-ratio: 4 / 3; }
.ms-bild-rund img { aspect-ratio: 1; border-radius: 50%; }

/* Bildplatzhalter (bis echte Fotos da sind) */
.ms-platzhalter {
  --ms-mark: rgba(181, 158, 144, .55);
  aspect-ratio: 4 / 5;
  background:
    radial-gradient(ellipse 70% 55% at 32% 28%, rgba(181, 158, 144, .16), transparent 70%),
    linear-gradient(160deg, var(--e-global-color-ms0fl03) 0%, var(--e-global-color-ms0bg02) 100%);
}
.ms-platzhalter.ms-43 { aspect-ratio: 4 / 3; }
.ms-platzhalter::after {
  content: ""; position: absolute; inset: 16px; pointer-events: none;
  background:
    linear-gradient(var(--ms-mark), var(--ms-mark)) top left / 20px 1px no-repeat,
    linear-gradient(var(--ms-mark), var(--ms-mark)) top left / 1px 20px no-repeat,
    linear-gradient(var(--ms-mark), var(--ms-mark)) top right / 20px 1px no-repeat,
    linear-gradient(var(--ms-mark), var(--ms-mark)) top right / 1px 20px no-repeat,
    linear-gradient(var(--ms-mark), var(--ms-mark)) bottom left / 20px 1px no-repeat,
    linear-gradient(var(--ms-mark), var(--ms-mark)) bottom left / 1px 20px no-repeat,
    linear-gradient(var(--ms-mark), var(--ms-mark)) bottom right / 20px 1px no-repeat,
    linear-gradient(var(--ms-mark), var(--ms-mark)) bottom right / 1px 20px no-repeat;
}

/* Text-Link-Button ("Mehr erfahren →") */
.ms-mehr .elementor-button { transition: color .25s ease, border-color .25s ease; }

/* Sanftere Einblendung als Elementors fadeInUp */
@keyframes msFadeUp { from { opacity: 0; transform: translate3d(0, 28px, 0); } to { opacity: 1; transform: none; } }
.elementor-element.animated.fadeInUp { animation-name: msFadeUp; }

@media (prefers-reduced-motion: reduce) {
  .elementor-element.animated { animation: none !important; }
  .elementor-invisible { visibility: visible !important; opacity: 1 !important; }
  .elementor-motion-effects-layer, .elementor-motion-effects-element { transform: none !important; }
}

/* Kaffeetasse mit Dampf (Abschluss-CTA, HTML-Widget mit Klasse ms-tasse) */
.ms-tasse svg { display: block; width: 100%; max-width: 320px; margin-inline: auto; overflow: visible; }
.ms-tasse .linie { fill: none; stroke: var(--e-global-color-primary); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ms-tasse .deko { stroke: var(--e-global-color-secondary); }
.ms-tasse .zart { stroke-opacity: .35; }
.ms-tasse .dampf { fill: none; stroke: var(--e-global-color-primary); stroke-width: 2; stroke-linecap: round; opacity: 0; transform-box: fill-box; transform-origin: center bottom; animation: msDampf 4.2s ease-in-out infinite; }
.ms-tasse .d2 { animation-delay: 1.4s; }
.ms-tasse .d3 { animation-delay: 2.8s; }
@keyframes msDampf {
  0% { opacity: 0; transform: translateY(14px) scaleY(.85); }
  25% { opacity: .85; }
  70% { opacity: .35; }
  100% { opacity: 0; transform: translateY(-22px) scaleY(1.1); }
}
@media (max-width: 767px) { .ms-tasse svg { max-width: 180px; margin-inline: 0; } }
@media (prefers-reduced-motion: reduce) { .ms-tasse .dampf { animation: none; opacity: .6; } }

/* Zeitleiste: SVG-Linie zeichnet sich von links nach rechts, sobald sie ins Bild kommt
   (HTML-Widget mit Klasse ms-zeitlinie + Elementor-Einblendung, die die Klasse "animated" setzt) */
.ms-zeitlinie .elementor-widget-container { position: relative; padding-inline: 4px; }
.ms-zeitlinie svg { display: block; width: 100%; height: 2px; overflow: visible; }
.ms-zeitlinie .strich { fill: none; stroke: url(#msZeitVerlauf); stroke-width: 1.5; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; }
.ms-zeitlinie .v1 { stop-color: var(--e-global-color-secondary); }
.ms-zeitlinie .v2 { stop-color: var(--e-global-color-primary); }
.ms-zeitlinie .elementor-widget-container::before,
.ms-zeitlinie .elementor-widget-container::after { content: ""; position: absolute; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; border-radius: 50%; }
.ms-zeitlinie .elementor-widget-container::before { left: 0; background: var(--e-global-color-secondary); }
.ms-zeitlinie .elementor-widget-container::after { right: 0; background: var(--e-global-color-primary); opacity: 0; transform: scale(.4); }
.ms-zeitlinie.animated .strich { animation: msLinie 1.6s cubic-bezier(.65, 0, .35, 1) .15s forwards; }
.ms-zeitlinie.animated .elementor-widget-container::after { animation: msPunkt .4s ease-out 1.65s forwards; }
@keyframes msLinie { to { stroke-dashoffset: 0; } }
@keyframes msPunkt { to { opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) {
  .ms-zeitlinie .strich { stroke-dashoffset: 0; }
  .ms-zeitlinie .elementor-widget-container::after { opacity: 1; transform: none; }
}

/* Header + Mega-Menü (Header-Template 21, Container .ms-header, Widget .ms-megamenu)
   Variablen aus widget-mega-menu.css von Elementor Pro */
.ms-header { transition: background-color .3s ease, box-shadow .3s ease; }
.ms-header.elementor-sticky--effects {
  background-color: rgba(30, 29, 28, .9);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 var(--e-global-color-ms0li05);
}
.ms-megamenu {
  --n-menu-title-color-normal: var(--e-global-color-text);
  --n-menu-title-color-hover: var(--e-global-color-primary);
  --n-menu-title-color-active: var(--e-global-color-primary);
  --n-menu-title-space-between: 30px;
  --n-menu-title-padding: 10px 0;
  --n-menu-title-font-size: 12px;
  --n-menu-title-line-height: 1.4;
  --n-menu-title-transition: .25s;
  --n-menu-dropdown-indicator-size: 9px;
  --n-menu-dropdown-indicator-space: 8px;
  --n-menu-dropdown-indicator-color-normal: var(--e-global-color-ms0tx04);
  --n-menu-dropdown-indicator-color-hover: var(--e-global-color-primary);
  --n-menu-dropdown-indicator-color-active: var(--e-global-color-primary);
  --n-menu-toggle-icon-color: var(--e-global-color-accent);
  --n-menu-toggle-icon-color-hover: var(--e-global-color-primary);
  --n-menu-toggle-icon-color-active: var(--e-global-color-primary);
  --n-menu-toggle-icon-size: 26px;
  --n-menu-open-animation-duration: 250ms;
}
.ms-megamenu .e-n-menu-title-text {
  font-family: var(--e-global-typography-accent-font-family), sans-serif;
  font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
}
/* Aufklapp-Panel */
.ms-menu-panel { border-top: 1px solid var(--e-global-color-ms0li05); box-shadow: 0 24px 48px rgba(0, 0, 0, .35); }
.ms-menu-link { transition: background-color .2s ease; }
.ms-menu-link:hover, .ms-menu-link:focus-visible { background-color: var(--e-global-color-ms0fl03); }
.ms-menu-link:hover .elementor-heading-title { color: var(--e-global-color-primary); }
.ms-menu-kachel .elementor-widget-image, .ms-menu-kachel .ms-platzhalter { overflow: hidden; }
.ms-menu-kachel img { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.ms-menu-kachel:hover img { transform: scale(1.04); }
.ms-menu-kachel .ms-platzhalter .elementor-widget-text-editor { display: none; }

/* Desktop: Kontakt als Rahmen-Button */
@media (min-width: 1025px) {
  .ms-megamenu .e-n-menu-heading { justify-content: flex-end; column-gap: 30px; align-items: center; }
  .ms-megamenu .e-n-menu-item:last-child .e-n-menu-title { padding: 11px 20px; border: 1px solid var(--e-global-color-primary); transition: background-color .25s ease, color .25s ease; }
  .ms-megamenu .e-n-menu-item:last-child .e-n-menu-title:hover { background-color: var(--e-global-color-primary); --n-menu-title-color-hover: var(--e-global-color-5747ef1); }
}
/* Tablet + Mobil: aufgeklapptes Menü dunkel, Einträge mit Linien */
@media (max-width: 1024px) {
  .ms-megamenu { flex-grow: 1; --n-menu-toggle-align: flex-end; }
  /* Elementor setzt im Dropdown-Layout transparent bzw. weiß mit [data-layout=dropdown], daher gleich spezifisch */
  .ms-megamenu .e-n-menu[data-layout=dropdown] .e-n-menu-title { background-color: transparent; }
  .ms-megamenu .e-n-menu[data-layout=dropdown] .e-n-menu-wrapper { background-color: var(--e-global-color-ms0bg02); padding: 8px 0 24px; margin-block-start: 37px !important; /* direkt unter dem Header: Header 93px, Burger endet bei 56px */ border-top: 1px solid var(--e-global-color-ms0li05); max-height: calc(100vh - 94px); overflow-y: auto; }
  .ms-megamenu .e-n-menu-title { border-bottom: 1px solid var(--e-global-color-ms0li05); --n-menu-title-padding: 16px 20px; }
  .ms-megamenu .e-n-menu-title-text { font-size: 13px; }
  .ms-menu-panel { border-top: 0; box-shadow: none; }
  .ms-menu-link { padding: 12px 0 12px 14px !important; }
}

/* Unterseiten: Brotkrumen, Keyword-Zeile in der H1, FAQ, Formate */
.ms-crumbs a { color: inherit; text-decoration: none; }
.ms-crumbs a:hover { color: var(--e-global-color-primary); }
.ms-h1-label {
  display: block; margin-bottom: 24px;
  font-family: var(--e-global-typography-secondary-font-family), sans-serif;
  font-size: 12px; font-weight: 500; line-height: 1.6; letter-spacing: .18em; text-transform: uppercase;
  color: var(--e-global-color-primary);
}
.ms-bild-11 img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.ms-faq details { border-top: 1px solid var(--e-global-color-ms0li05); }
.ms-faq details:last-child { border-bottom: 1px solid var(--e-global-color-ms0li05); }
.ms-faq summary {
  list-style: none; cursor: pointer; position: relative; padding: 26px 48px 26px 0;
  font-family: var(--e-global-typography-ms0q2-font-family), serif; font-size: 26px; line-height: 1.25; font-weight: 600;
  color: var(--e-global-color-accent); transition: color .2s ease;
}
.ms-faq summary::-webkit-details-marker { display: none; }
.ms-faq summary::after {
  content: ""; position: absolute; right: 6px; top: 50%; width: 12px; height: 12px; margin-top: -9px;
  border-right: 1.5px solid var(--e-global-color-primary); border-bottom: 1.5px solid var(--e-global-color-primary);
  transform: rotate(45deg); transition: transform .3s ease;
}
.ms-faq details[open] summary::after { transform: rotate(-135deg); margin-top: -3px; }
.ms-faq summary:hover, .ms-faq summary:focus-visible { color: var(--e-global-color-primary); }
.ms-faq details p { margin: 0 0 28px; max-width: 46rem; color: var(--e-global-color-text); }
@media (max-width: 767px) { .ms-faq summary { font-size: 22px; padding: 22px 40px 22px 0; } }
.ms-format { border: 1px solid var(--e-global-color-ms0li05); background: var(--e-global-color-ms0fl03); }
.ms-format.ms-r45 { aspect-ratio: 4 / 5; } .ms-format.ms-r916 { aspect-ratio: 9 / 16; }
.ms-format.ms-r11 { aspect-ratio: 1; } .ms-format.ms-r169 { aspect-ratio: 16 / 9; }

/* Footer (Template 24, Container .ms-footer) */
.ms-footer-links ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.ms-footer-links a, .ms-footer-meta a { color: var(--e-global-color-text); text-decoration: none; transition: color .2s ease; }
.ms-footer-links a:hover, .ms-footer-meta a:hover, .ms-footer-links a:focus-visible { color: var(--e-global-color-primary); }
.ms-footer-meta p { margin: 0; }
.ms-footer-meta .trenner { color: var(--e-global-color-ms0li05); padding-inline: 10px; }

/* Formulare (Elementor-Pro-Formular mit Klasse ms-form) */
.ms-form .elementor-field-group { margin-bottom: 18px; }
.ms-form .elementor-field-label {
  margin-bottom: 8px; color: var(--e-global-color-ms0tx04);
  font-family: var(--e-global-typography-secondary-font-family), sans-serif;
  font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
}
.ms-form .elementor-field-group:not(.elementor-field-type-upload) .elementor-field:not(.elementor-select-wrapper), /* gleich spezifisch wie Elementors weißer Standard */
.ms-form .elementor-field-textual, .ms-form .elementor-field-group .elementor-select-wrapper select {
  background-color: var(--e-global-color-ms0fl03); color: var(--e-global-color-accent);
  border: 1px solid var(--e-global-color-ms0li05); border-radius: 0;
  font-family: var(--e-global-typography-text-font-family), sans-serif; font-size: 16px; font-weight: 300;
  padding: 14px 16px; min-height: 52px; transition: border-color .2s ease;
}
.ms-form .elementor-field-textual::placeholder { color: var(--e-global-color-ms0tx04); }
.ms-form .elementor-field-group .elementor-field:focus, .ms-form .elementor-field-group .elementor-select-wrapper select:focus { border-color: var(--e-global-color-primary); outline: none; }
.ms-form .elementor-select-wrapper::before { color: var(--e-global-color-primary); }
.ms-form .elementor-field-type-acceptance label { color: var(--e-global-color-ms0tx04); font-size: 14px; line-height: 1.5; }
.ms-form .elementor-field-type-acceptance a { color: var(--e-global-color-primary); }
.ms-form .elementor-button {
  background-color: var(--e-global-color-primary); color: var(--e-global-color-5747ef1); border-radius: 0;
  font-family: var(--e-global-typography-accent-font-family), sans-serif; font-size: 13px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
  padding: 18px 30px; transition: background-color .25s ease;
}
.ms-form .elementor-button:hover { background-color: var(--e-global-color-accent); }
.ms-form .elementor-message { color: var(--e-global-color-text); }
/* Preis-Zahl in Paket-Karten */
.ms-preis .elementor-heading-title small { font-size: .5em; margin-right: 6px; color: var(--e-global-color-ms0tx04); }
.ms-tasse.ms-tasse-klein svg { max-width: 200px; margin-inline: 0; }
.ms-form .elementor-field-type-acceptance .elementor-field-option { display: flex; gap: 12px; align-items: flex-start; }
.ms-form .elementor-field-type-acceptance input { margin-top: 4px; flex: none; accent-color: var(--e-global-color-primary); }

/* Mega-Menü: Galerie-Bereiche per Shortcode [ms_galerie_links] im Panel (Container .ms-menu-gruppe, kein Link-Container) */
.ms-menu-gruppe { padding: 18px 20px; }
.ms-menu-panel .ms-galerie-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 0; padding: 0; list-style: none; }
.ms-menu-panel .ms-galerie-links__item { margin: 0; }
.ms-menu-panel .ms-galerie-links__link {
  display: inline-block; padding: 9px 14px; border: 1px solid var(--e-global-color-ms0li05);
  font-family: var(--e-global-typography-accent-font-family), sans-serif; font-size: 12px; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase; line-height: 1.2; text-decoration: none;
  color: var(--e-global-color-text); transition: color .2s ease, border-color .2s ease;
}
.ms-menu-panel .ms-galerie-links__link:hover, .ms-menu-panel .ms-galerie-links__link:focus-visible { color: var(--e-global-color-primary); border-color: var(--e-global-color-primary); }
@media (max-width: 1024px) { .ms-menu-gruppe { padding: 12px 0 12px 14px; } }

/* ── Cookie-Banner (Plugin „Custom Cookie Banner“, AF) ─────────────────────
   Override im Stil der Seite. Quelle: brand/visual-guidelines.md
   Flächen #2e2c2b / #252525 / #1e1d1c · Akzent #b59e90 · Linie Beige 20 %
   Headlines Cormorant Garamond · Text Inter 300 · Buttons eckig, Versalien.
   Plugin-Dateien bleiben unverändert (Updates überschreiben sie). */

:is(#ccb-banner, #ccb-overlay) {
  --ccb-font: "Inter", system-ui, sans-serif;
  --ccb-serif: "Cormorant Garamond", Georgia, serif;
  --ccb-line: rgba(181, 158, 144, .2);
  --ccb-line-strong: rgba(181, 158, 144, .45);
  --ccb-muted: #a39a93;
  -webkit-font-smoothing: antialiased;
}

/* Banner */
#ccb-banner {
  max-width: 760px;
  bottom: 24px;
  padding: 30px 34px 32px;
  background: #2e2c2b;
  border: 1px solid var(--ccb-line);
  border-radius: 0;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .55);
  animation: ccbMsUp .7s cubic-bezier(.16, 1, .3, 1) both;
}
@keyframes ccbMsUp { from { opacity: 0; transform: translate3d(0, 24px, 0); } to { opacity: 1; transform: none; } }
#ccb-banner .ccb-banner-inner { gap: 24px; }
#ccb-banner .ccb-banner-text strong {
  font-family: var(--ccb-serif);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.1;
  color: #fff;
  margin-bottom: 10px;
}
#ccb-banner .ccb-banner-text p {
  font-family: var(--ccb-font);
  font-size: 14px;
  font-weight: 300;
  line-height: 1.7;
  color: var(--ccb-muted);
}

/* Buttons wie auf der Seite: eckig, Inter 500 Versalien, Sperrung */
:is(#ccb-banner, #ccb-overlay) .ccb-btn {
  font-family: var(--ccb-font);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.3;
  padding: 16px 20px;
  border-radius: 0;
  border: 1px solid var(--ccb-line-strong);
  background: transparent !important;
  color: #fff !important;
  box-shadow: none;
  transition: color .25s ease, border-color .25s ease, background-color .25s ease;
}
:is(#ccb-banner, #ccb-overlay) .ccb-btn:is(:hover, :focus-visible) {
  background: transparent !important;
  border-color: #b59e90;
  color: #b59e90 !important;
}
:is(#ccb-banner, #ccb-overlay) .ccb-btn-primary {
  background: #b59e90 !important;
  border-color: #b59e90;
  color: #252525 !important;
}
:is(#ccb-banner, #ccb-overlay) .ccb-btn-primary:is(:hover, :focus-visible) {
  background: #c9b6aa !important;
  border-color: #c9b6aa;
  color: #252525 !important;
}
:is(#ccb-banner, #ccb-overlay) :is(button, .ccb-switch):focus-visible {
  outline: 2px solid #b59e90;
  outline-offset: 3px;
}

/* Overlay + Modal */
#ccb-overlay {
  background: rgba(20, 19, 18, .72);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
#ccb-overlay .ccb-modal {
  background: #252525;
  border: 1px solid var(--ccb-line);
  border-radius: 0;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .6);
  color: #e0e0e0;
}
#ccb-overlay .ccb-modal-header { padding: 26px 32px 18px; border-bottom: 0; }
#ccb-overlay .ccb-modal-title {
  font-family: var(--ccb-serif);
  font-size: 32px !important;
  font-weight: 600;
  line-height: 1.1;
  color: #fff;
}
#ccb-overlay .ccb-close-btn {
  background: transparent !important;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 8px;
  color: var(--ccb-muted);
  transition: color .25s ease, border-color .25s ease;
}
#ccb-overlay .ccb-close-btn:hover { background: transparent !important; color: #b59e90; border-color: var(--ccb-line-strong); }

/* Tabs */
#ccb-overlay .ccb-tabs { padding: 0 32px; border-bottom: 1px solid var(--ccb-line); gap: 8px; }
#ccb-overlay .ccb-tab {
  font-family: var(--ccb-font);
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 14px 0;
  margin-right: 24px;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  color: var(--ccb-muted) !important;
}
#ccb-overlay .ccb-tab:hover { color: #fff !important; }
#ccb-overlay .ccb-tab.active { color: #b59e90 !important; border-color: #b59e90 !important; }
#ccb-overlay .ccb-tab-pane { padding: 8px 32px 20px; }

/* Kategorien */
#ccb-overlay .ccb-cat { border-bottom: 1px solid var(--ccb-line); }
#ccb-overlay .ccb-cat:last-child { border-bottom: 0; }
#ccb-overlay .ccb-cat-header { padding: 18px 0; }
#ccb-overlay .ccb-cat-toggle {
  font-family: var(--ccb-font);
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #fff !important;
  border: 0;
  border-radius: 0;
  gap: 10px;
  padding: 0;
}
#ccb-overlay .ccb-cat-toggle:hover { color: #b59e90 !important; }
#ccb-overlay .ccb-cat-count { color: var(--ccb-muted); letter-spacing: 0; font-weight: 300; }
#ccb-overlay .ccb-chevron { color: #b59e90; transition: transform .3s ease; }
#ccb-overlay .ccb-cat-desc {
  font-family: var(--ccb-font);
  font-size: 14px;
  font-weight: 300;
  line-height: 1.7;
  color: var(--ccb-muted);
}
#ccb-overlay .ccb-cookie-item { background: #1e1d1c; border: 1px solid var(--ccb-line); border-radius: 0; padding: 14px 16px; }
#ccb-overlay .ccb-cookie-item strong { font-family: var(--ccb-font); font-weight: 500; color: #fff; }
#ccb-overlay .ccb-cookie-item p { font-family: var(--ccb-font); font-weight: 300; color: var(--ccb-muted); }

/* Schalter */
#ccb-overlay .ccb-track { background: #3a3735; border: 1px solid var(--ccb-line-strong); box-sizing: border-box; }
#ccb-overlay .ccb-thumb { top: 2px; left: 2px; background: #e0e0e0; box-shadow: none; }
#ccb-overlay .ccb-switch input:checked ~ .ccb-track { background: #b59e90; border-color: #b59e90; }
#ccb-overlay .ccb-switch input:checked ~ .ccb-track .ccb-thumb { background: #252525; }
#ccb-overlay .ccb-switch-locked .ccb-track { background: rgba(181, 158, 144, .45) !important; border-color: transparent; }

/* Über Cookies */
#ccb-overlay .ccb-about h3 {
  font-family: var(--ccb-serif);
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1.15;
  color: #fff !important;
  margin: 24px 0 8px;
}
#ccb-overlay .ccb-about h3:first-child { margin-top: 12px; }
#ccb-overlay .ccb-about p {
  font-family: var(--ccb-font);
  font-size: 14px !important;
  font-weight: 300;
  line-height: 1.7;
  color: var(--ccb-muted) !important;
}

/* Footer */
#ccb-overlay .ccb-modal-footer { padding: 20px 32px 26px; border-top: 1px solid var(--ccb-line); gap: 12px; }

/* Wegweiser ausblenden, solange der Banner offen ist (sonst Überlappung) */
body:has(#ccb-banner:not([style*="none"])) :is(.ww-btn, .ww-box) { opacity: 0; visibility: hidden; pointer-events: none; }

@media (max-width: 600px) {
  #ccb-banner { bottom: 0; padding: 24px 20px 20px; border-width: 1px 0 0; border-radius: 0; }
  #ccb-banner .ccb-banner-text strong { font-size: 24px; }
  #ccb-banner .ccb-banner-text p { font-size: 13px; }
  #ccb-banner .ccb-banner-buttons { gap: 8px; }
  #ccb-banner .ccb-btn-primary { order: -1; }
  #ccb-overlay { padding: 0; align-items: flex-end; }
  #ccb-overlay .ccb-modal { max-height: 92vh; border-width: 1px 0 0; }
  #ccb-overlay .ccb-modal-header { padding: 22px 20px 14px; }
  #ccb-overlay .ccb-modal-title { font-size: 26px !important; }
  #ccb-overlay .ccb-tabs { padding: 0 20px; }
  #ccb-overlay .ccb-tab-pane { padding: 4px 20px 16px; }
  #ccb-overlay .ccb-modal-footer { padding: 16px 20px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  #ccb-banner, #ccb-overlay, #ccb-overlay .ccb-modal { animation: none !important; }
}/* End custom CSS */