:root{--fs-primary:#9b8746;--fs-dark:#20221d;--fs-text:#2d2d2a;--fs-cream:#fbfaf6;--fs-gap:50px;--fs-serif:Georgia,"Times New Roman",serif;--fs-h1-size:clamp(2.75rem,5vw,4.6rem);--fs-h2-size:clamp(2.15rem,3.7vw,3.25rem);--fs-h3-size:clamp(1.75rem,2.8vw,2.4rem);--fs-h4-size:clamp(1.45rem,2.2vw,1.9rem);--fs-h5-size:clamp(1.05rem,1.5vw,1.5rem)}
body{color:var(--fs-text);background:#fff}.container{max-width:1320px}.fs-page main > .frame {
  padding-top: var(--fs-gap);
  padding-bottom: var(--fs-gap);
}
.frame-layout-151{padding-top:50px!important;padding-bottom:50px!important}.frame-layout-152{padding-top:0!important}
.fs-header{background:#fff;position:sticky;top:0;z-index:1000;border-bottom:1px solid rgba(0,0,0,.06)}.fs-header__inner{height:86px;display:flex;align-items:center;gap:36px}.fs-brand{display:flex;align-items:center;gap:10px;color:#111;text-decoration:none;margin-right:auto}.fs-brand__mark{font-size:36px;transform:rotate(-20deg)}.fs-brand strong{font:italic 30px/1 var(--fs-serif);display:block}.fs-brand small,.fs-footer__brand small{display:block;font-size:9px;letter-spacing:.32em}.fs-nav{display:flex;gap:32px}.fs-nav a{color:#222;text-decoration:none;font-family:var(--fs-serif);font-size:16px;position:relative}.fs-nav a.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:2px;background:var(--fs-primary)}.btn-primary{background:var(--fs-primary)!important;border-color:var(--fs-primary)!important}.fs-nav-toggle{display:none;background:none;border:0;font-size:28px}
.fs-hero{position:relative;min-height:560px;overflow:hidden}.fs-hero__slides,.fs-hero__slide{position:absolute;inset:0}.fs-hero__slide{opacity:0;transition:opacity .55s ease}.fs-hero__slide.is-active{opacity:1;z-index:1}.fs-hero__image{width:100%;height:100%;object-fit:cover}.fs-hero__overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.12) 65%,rgba(0,0,0,.05))}.fs-hero__content{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;color:#fff}.fs-hero__content--center{align-items:center;text-align:center}.fs-hero__content--right{align-items:flex-end;text-align:right}.fs-hero h1{font:64px/1.02 var(--fs-serif);max-width:760px;margin:15px 0}.fs-hero p{font:26px/1.35 var(--fs-serif);max-width:740px}.fs-eyebrow{font-size:14px;text-transform:uppercase;letter-spacing:.2em;font-weight:700;color:var(--fs-primary)}.fs-eyebrow--light{color:#fff}.fs-hero__buttons{display:flex;gap:16px;margin-top:18px}.fs-hero__buttons .btn{padding:14px 22px}.fs-hero__prev,.fs-hero__next{position:absolute;z-index:3;top:50%;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.9);font-size:34px}.fs-hero__prev{left:22px}.fs-hero__next{right:22px}
.fs-footer{background:var(--fs-dark);color:#fff;margin-top:70px}.fs-footer__grid{display:grid;grid-template-columns:1.35fr 1fr 1.1fr 1fr .8fr;gap:42px;padding:55px 15px}.fs-footer a{color:#fff;text-decoration:none}.fs-footer h3{font-size:13px;text-transform:uppercase;letter-spacing:.14em}.fs-footer__brand strong{font:italic 28px/1 var(--fs-serif)}.fs-copyright{background:var(--fs-primary);text-align:center;padding:12px 20px;font-size:13px}
/* Styles that reproduce the uploaded layout with Bootstrap Package content elements */
.fs-section-title{text-align:center;margin-bottom:34px}.fs-section-title h2{font:44px/1.1 var(--fs-serif)}.fs-intro h2,.fs-split h2{font:46px/1.08 var(--fs-serif)}.fs-feature-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;text-align:center}.fs-feature{padding:22px 30px;border-right:1px solid #ddd}.fs-feature:last-child{border-right:0}.fs-feature__icon{font-size:44px;color:var(--fs-primary);margin-bottom:14px}.fs-menu-teaser{background:var(--fs-cream);padding:70px 0}.fs-split{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:0}.fs-split__image img{width:100%;height:100%;object-fit:cover}.fs-split__content{padding:70px 8vw;position:relative}.fs-split__content:before{content:"";position:absolute;left:-48px;top:0;bottom:0;width:80px;background:linear-gradient(100deg,transparent 0 45%,#fff 46% 100%);filter:blur(1px)}
@media(max-width:991px){.fs-header__inner{height:72px}.fs-nav-toggle{display:block}.fs-nav{display:none;position:absolute;left:0;right:0;top:72px;background:#fff;padding:20px;flex-direction:column}.fs-nav.is-open{display:flex}.fs-header__cta{display:none}.fs-brand strong{font-size:24px}.fs-hero{min-height:500px}.fs-hero h1{font-size:48px}.fs-feature-row{grid-template-columns:repeat(2,1fr)}.fs-feature:nth-child(2){border-right:0}.fs-split{grid-template-columns:1fr}.fs-split__content:before{display:none}.fs-footer__grid{grid-template-columns:1fr 1fr}}
@media(max-width:575px){:root{--fs-gap:36px}.fs-hero{min-height:470px}.fs-hero h1{font-size:40px}.fs-hero p{font-size:20px}.fs-feature-row{grid-template-columns:1fr}.fs-feature{border-right:0;border-bottom:1px solid #ddd}.fs-footer__grid{grid-template-columns:1fr}.fs-hero__prev,.fs-hero__next{display:none}}

/* Information popup ------------------------------------------------------- */
.fs-info-popup .modal-dialog{max-width:880px;padding:18px}.fs-info-popup .modal-content{border:0;border-radius:0;box-shadow:0 24px 70px rgba(0,0,0,.24);overflow:hidden;position:relative}.fs-info-popup__close{position:absolute;right:20px;top:20px;z-index:3;background-color:#fff;border-radius:50%;padding:10px;opacity:.85;box-shadow:0 3px 16px rgba(0,0,0,.12)}.fs-info-popup__grid{display:block;min-height:360px;background:var(--fs-cream)}.fs-info-popup__grid--image{display:grid;grid-template-columns:minmax(280px,.92fr) 1.08fr}.fs-info-popup__media{min-height:460px}.fs-info-popup__image{width:100%;height:100%;object-fit:cover;display:block}.fs-info-popup__content{display:flex;flex-direction:column;justify-content:center;padding:64px 58px}.fs-info-popup__content h2{font:48px/1.06 var(--fs-serif);margin:10px 0 22px}.fs-info-popup__text{font-size:17px;line-height:1.7}.fs-info-popup__text p:last-child{margin-bottom:0}.fs-info-popup__button{align-self:flex-start;margin-top:26px;padding:13px 22px}.modal-backdrop.show{opacity:.58}
@media(max-width:767px){.fs-info-popup .modal-dialog{padding:8px;margin:0 auto}.fs-info-popup__grid--image{grid-template-columns:1fr}.fs-info-popup__media{min-height:220px;max-height:260px}.fs-info-popup__content{padding:42px 30px 34px}.fs-info-popup__content h2{font-size:37px}.fs-info-popup__close{right:14px;top:14px}}

/* Fischerstueble background variants for Bootstrap Package frames ---------- */
.frame-background-fs-white {
    background-color: #fff;
}
.frame-background-fs-cream,
.frame-background-fs-cream-leaves {
    background-color: var(--fs-cream);
}
.frame-background-fs-cream-leaves {
    background-image: url('../Images/background-leaves.svg');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
}
.frame-background-fs-white > .frame-group-container,
.frame-background-fs-cream > .frame-group-container,
.frame-background-fs-cream-leaves > .frame-group-container {
    position: relative;
    z-index: 1;
}
@media (max-width: 767px) {
    .frame-background-fs-cream-leaves {
        background-size: auto 100%;
        background-position: center top;
    }
}


/* Caverta-inspired gallery ------------------------------------------------- */
.fs-gallery{padding:72px 0}.fs-gallery--fullwidth{padding-left:0;padding-right:0}.fs-gallery__intro{text-align:center;max-width:900px;margin:0 auto 42px}.fs-gallery__intro h2{font:48px/1.08 var(--fs-serif);margin:10px 0 16px}.fs-gallery__text{font-size:17px;line-height:1.7;color:#666}.fs-gallery__grid{display:grid;gap:18px}.fs-gallery__grid--cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.fs-gallery__grid--cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.fs-gallery--fullwidth .fs-gallery__grid{gap:0}.fs-gallery__item{margin:0;overflow:hidden;position:relative;background:#eee}.fs-gallery__link{display:block;width:100%;padding:0;border:0;background:none;position:relative;overflow:hidden;cursor:pointer}.fs-gallery__image{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .65s cubic-bezier(.2,.65,.3,1),filter .35s ease}.fs-gallery__overlay{position:absolute;inset:0;background:rgba(24,24,20,.52);display:grid;place-items:center;opacity:0;transition:opacity .3s ease}.fs-gallery__overlay span{display:grid;place-items:center;width:54px;height:54px;border:1px solid rgba(255,255,255,.82);border-radius:50%;color:#fff;font-size:30px;font-weight:200;transform:scale(.8);transition:transform .3s ease}.fs-gallery__link:hover .fs-gallery__image{transform:scale(1.055);filter:saturate(.92)}.fs-gallery__link:hover .fs-gallery__overlay{opacity:1}.fs-gallery__link:hover .fs-gallery__overlay span{transform:scale(1)}
.fs-gallery-modal .modal-dialog{max-width:min(1320px,94vw)}.fs-gallery-modal .modal-content{background:#151611;border:0;border-radius:0;box-shadow:0 30px 80px rgba(0,0,0,.48)}.fs-gallery-modal__close{position:absolute;right:18px;top:18px;z-index:4;filter:invert(1);opacity:.9}.fs-gallery-modal__stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:68vh;padding:44px 70px 20px}.fs-gallery-modal__image{display:block;max-width:100%;max-height:74vh;object-fit:contain}.fs-gallery-modal__nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(0,0,0,.18);color:#fff;font-size:34px;line-height:1}.fs-gallery-modal__prev{left:14px}.fs-gallery-modal__next{right:14px}.fs-gallery-modal__caption{min-height:44px;padding:0 70px 28px;color:#ddd;text-align:center;font-size:14px}
@media(max-width:991px){.fs-gallery__grid--cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.fs-gallery__grid--cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.fs-gallery{padding:58px 0}.fs-gallery__intro h2{font-size:42px}}
@media(max-width:575px){.fs-gallery__grid--cols-3,.fs-gallery__grid--cols-4{grid-template-columns:1fr}.fs-gallery__grid{gap:10px}.fs-gallery--fullwidth .fs-gallery__grid{gap:0}.fs-gallery__intro{margin-bottom:28px}.fs-gallery__intro h2{font-size:36px}.fs-gallery-modal__stage{padding:56px 42px 10px;min-height:54vh}.fs-gallery-modal__nav{width:38px;height:38px;font-size:28px}.fs-gallery-modal__prev{left:4px}.fs-gallery-modal__next{right:4px}.fs-gallery-modal__caption{padding:0 26px 20px}}


/* Optional irregular / "ausgefressene" image edge ----------------------- */
.fs-torn-image-effect img {
    -webkit-mask-image: url('../Images/torn-edge-mask.svg');
    mask-image: url('../Images/torn-edge-mask.svg');
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}
/* Keep decorative icons, logos and very small images untouched. */
.fs-torn-image-effect img.icon,
.fs-torn-image-effect .icon img,
.fs-torn-image-effect .navbar-brand img,
.fs-torn-image-effect .fs-brand img {
    -webkit-mask-image: none;
    mask-image: none;
}

/* -------------------------------------------------------------------------
   Subpage hero: page Resources/Media + breadcrumb + optional header text
   ------------------------------------------------------------------------- */
.fs-subpage-hero {
  position: relative;
  min-height: 360px;
  display: flex;
  align-items: center;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  overflow: hidden;
}
.fs-subpage-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(33, 43, 33, .70), rgba(33, 43, 33, .28));
}
.fs-subpage-hero__content {
  position: relative;
  z-index: 1;
  padding-top: 72px;
  padding-bottom: 72px;
}
.fs-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
  margin-bottom: 1rem;
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.fs-breadcrumb a,
.fs-breadcrumb span {
  color: rgba(255,255,255,.88);
  text-decoration: none;
}
.fs-breadcrumb a:hover { color: #fff; }
.fs-breadcrumb__separator { opacity: .55; }

.fs-subpage-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .85rem;
  margin-bottom: 1rem;
  color: #fff;
  font-size: .78rem;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.fs-subpage-hero__eyebrow::after {
  content: "";
  width: 36px;
  height: 1px;
  background: currentColor;
  opacity: .85;
}
@media (max-width: 767.98px) {
  .fs-subpage-hero__eyebrow {
    gap: .6rem;
    font-size: .7rem;
    letter-spacing: .16em;
  }

  .fs-subpage-hero__eyebrow::after {
    width: 24px;
  }
}

.fs-subpage-hero__title {
  color: #fff;
  margin: 0;
  max-width: 900px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.25rem, 5vw, 4.5rem);
  line-height: 1.05;
  font-weight: 400;
}
.fs-subpage-hero__text {
  max-width: 760px;
  margin-top: 1.25rem;
  font-size: 1.08rem;
  line-height: 1.7;
  color: rgba(255,255,255,.94);
}
.fs-subpage-hero__text > :last-child { margin-bottom: 0; }

/* Fallback rendering for Bootstrap Package Text & Icon inside containers. */
.fs-texticon { padding: 1rem .75rem; }
.fs-texticon__icon { margin-bottom: 1rem; font-size: 3rem; line-height: 1; }
.fs-texticon__title { margin-bottom: .75rem; }
.fs-texticon__text > :last-child { margin-bottom: 0; }

/* TYPO3 14 container_elements background support ------------------------- */
.fs-container-section {
    width: 100%;
    padding-top: 50px;
    padding-bottom: 50px;
}
.fs-container-section.fs-white,
.fs-white {
    background-color: #fff;
}
.fs-container-section.fs-cream,
.fs-cream {
    background-color: var(--fs-cream);
}
.fs-container-section.fs-cream-leaves,
.fs-cream-leaves {
    background-color: var(--fs-cream);
    background-image: url('../Images/background-leaves.svg');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
}
@media (max-width: 767px) {
    .fs-container-section.fs-cream-leaves,
    .fs-cream-leaves {
        background-size: auto 100%;
        background-position: center top;
    }
}

/* 1.4.1: universal background classes + embedded containers ---------------- */
.frame-background-fs-white,
.fs-columns--background-fs-white { background-color:#fff!important; }
.frame-background-fs-cream,
.fs-columns--background-fs-cream { background-color:var(--fs-cream)!important; }
.frame-background-fs-cream-leaves,
.fs-columns--background-fs-cream-leaves {
  background-color:var(--fs-cream)!important;
  background-image:url('../Images/background-leaves.svg')!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-size:100% 100%!important;
}
.frame-background-fs-white,
.frame-background-fs-cream,
.frame-background-fs-cream-leaves { padding-top:50px; padding-bottom:50px; }
.fs-columns { width:100%; }

/* Robust breadcrumb output from HMENU */
.fs-breadcrumb .breadcrumb, .fs-breadcrumb-list {
	margin: 3rem 0px 0;
	padding: 0;
	background: transparent;
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	list-style: none;
}
.fs-breadcrumb .breadcrumb-item,
.fs-breadcrumb-list .breadcrumb-item { color:rgba(255,255,255,.88); }
.fs-breadcrumb .breadcrumb-item + .breadcrumb-item::before,
.fs-breadcrumb-list .breadcrumb-item + .breadcrumb-item::before { color:rgba(255,255,255,.55); content:"/"; padding-right:.45rem; }
.fs-breadcrumb a { color:rgba(255,255,255,.88); text-decoration:none; }
.fs-breadcrumb a:hover { color:#fff; }

/* Text & Icon, aligned with the original working sitepackage */
.fs-texticon { text-align:center; padding:22px 24px; }
.fs-texticon__icon { color:var(--fs-primary); margin-bottom:14px; line-height:1; }
.fs-texticon__icon svg { display:inline-block; width:auto; max-width:64px; height:auto; max-height:64px; fill:currentColor; }
.fs-texticon__title { margin:0 0 8px; font-size:15px; line-height:1.3; text-transform:uppercase; letter-spacing:.08em; font-family:inherit; font-weight:700; }
.fs-texticon__text { color:#666; line-height:1.55; }
.fs-texticon__text p:last-child { margin-bottom:0; }

/* 1.4.2: Caverta/Fischerstueble headline system --------------------------- */
.frame-header.fs-content-header {
    margin: 0 0 30px;
}
.fs-content-subheader {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 10px;
    color: var(--fs-primary);
    font-size: 12px;
    line-height: 1.25;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.fs-content-subheader::before,
.fs-content-subheader::after {
    content: "";
    width: 34px;
    height: 1px;
    flex: 0 0 34px;
    background: currentColor;
    opacity: .65;
}
.fs-content-subheader span { display: inline-block; }

/* Keep the decorative subheader aligned with the selected header position. */
.fs-content-header.text-start .fs-content-subheader { justify-content: flex-start; }
.fs-content-header.text-center .fs-content-subheader { justify-content: center; }
.fs-content-header.text-end .fs-content-subheader { justify-content: flex-end; }

.fs-content-headline {
    margin: 0;
    color: #24251f;
    font-family: var(--fs-serif);
    font-weight: 400;
    letter-spacing: -.015em;
}
h1.fs-content-headline { font-size: clamp(2.75rem, 5vw, 4.25rem); line-height: 1.02; }
h2.fs-content-headline { font-size: clamp(2.15rem, 4vw, 3rem); line-height: 1.08; }
h3.fs-content-headline { font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.12; }
h4.fs-content-headline { font-size: clamp(1.4rem, 2.4vw, 1.8rem); line-height: 1.15; }
h5.fs-content-headline { font-size: 1.35rem; line-height: 1.2; }
h6.fs-content-headline { font-size: 1.1rem; line-height: 1.25; }
.fs-content-header a { color: inherit; text-decoration: none; }
.fs-content-header a:hover { color: var(--fs-primary); }
.fs-content-header__date { margin-top: 10px; color: #777; font-size: .875rem; }

/* Centered headings as used in the design reference. */
.text-center .fs-content-subheader,
.fs-section-title .fs-content-subheader { justify-content:center; }

/* Bring custom elements into the same typography system. */
.fs-gallery__intro .fs-eyebrow,
.fs-eyebrow:not(.fs-eyebrow--light) {
    color: var(--fs-primary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .18em;
}
.fs-gallery__intro h2,
.fs-section-title h2,
.fs-intro h2,
.fs-split h2 {
    color:#24251f;
    font-family:var(--fs-serif);
    font-weight:400;
    letter-spacing:-.015em;
}
.fs-gallery__intro h2 { font-size:clamp(2.15rem,4vw,3rem); line-height:1.08; }

@media (max-width: 575px) {
    .fs-content-subheader { gap: 9px; letter-spacing: .13em; }
    .fs-content-subheader::before,
    .fs-content-subheader::after { width: 22px; flex-basis:22px; }
    .frame-header.fs-content-header { margin-bottom: 22px; }
}
.fs-texticon__subheader {
    margin-bottom: 7px;
    color: var(--fs-primary);
    font-size: 11px;
    line-height: 1.25;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
}

/* 1.4.3: editable footer --------------------------------------------------- */
.fs-footer__editable { color:#fff; }
.fs-footer__editable > .frame,
.fs-footer__editable .frame { margin-top:0; margin-bottom:0; }
.fs-footer__editable .frame-background-none,
.fs-footer__editable .frame-background-transparent { background:transparent; }
.fs-footer__editable a { color:#fff; }
.fs-footer__editable .fs-content-headline { color:#fff; }
.fs-footer__editable .fs-content-subheader { color:var(--fs-primary); }

/* 1.4.3: enforce Caverta-like heading order and typography for all frames. */
.frame-header.fs-content-header { margin-bottom:32px; }
.frame-header.fs-content-header .fs-content-subheader {
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 12px;
  color:var(--fs-primary);
  font-family:var(--fs-sans, Arial, sans-serif);
  font-size:.78rem;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.frame-header.fs-content-header .fs-content-subheader::before,
.frame-header.fs-content-header .fs-content-subheader::after {
  content:"";
  width:30px;
  height:1px;
  background:currentColor;
  opacity:.75;
  flex:0 0 30px;
}
.frame-header.fs-content-header .fs-content-headline {
  margin:0;
  color:var(--fs-heading,#20201d);
  font-family:var(--fs-serif, Georgia, serif);
  font-weight:400;
  letter-spacing:-.02em;
}
.frame-header.fs-content-header h1.fs-content-headline { font-size:clamp(2.7rem,5vw,4.5rem); line-height:1.02; }
.frame-header.fs-content-header h2.fs-content-headline { font-size:clamp(2.15rem,3.7vw,3.15rem); line-height:1.08; }
.frame-header.fs-content-header h3.fs-content-headline { font-size:clamp(1.7rem,2.8vw,2.3rem); line-height:1.12; }

/* Editable header logo page */
.fs-brand { display:flex; align-items:center; min-width:180px; }
.fs-brand > .frame, .fs-brand > .content-element { margin:0 !important; padding:0 !important; background:transparent !important; }
.fs-brand img { display:block; max-height:72px; width:auto; }
.fs-brand__fallback { display:flex; align-items:center; gap:.65rem; color:inherit; text-decoration:none; }
.fs-brand__fallback:hover { color:inherit; text-decoration:none; }

/* ==========================================================================
   Fischerstueble 1.5.0 - Bootstrap Package native header styling
   No Fluid header/layout override is used. Bootstrap Package stays responsible
   for rendering; only the native .element-header / .element-subheader markup
   is styled and reordered here.
   ========================================================================== */
.frame-header {
    display: flex;
    flex-direction: column;
    margin-bottom: 2rem;
}

.frame-header .element-subheader {
    order: -1;
    display: flex;
    align-items: center;
    gap: .8rem;
    margin: 0 0 .65rem;
    color: var(--fs-primary);
    font-family: inherit;
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.frame-header .element-subheader::before,
.frame-header .element-subheader::after {
    content: "";
    display: block;
    width: 2.25rem;
    height: 1px;
    flex: 0 0 2.25rem;
    background: currentColor;
    opacity: .8;
}

.frame-header .element-header {
    order: 0;
    margin: 0;
    color: var(--fs-dark);
    font-family: var(--fs-serif);
    font-weight: 400;
    letter-spacing: -.02em;
}

.frame-header h1.element-header { font-size: var(--fs-h1-size); line-height: 1.02; }
.frame-header h2.element-header { font-size: var(--fs-h2-size); line-height: 1.08; }
.frame-header h3.element-header { font-size: var(--fs-h3-size); line-height: 1.12; }
.frame-header h4.element-header { font-size: var(--fs-h4-size); line-height: 1.16; }
.frame-header h5.element-header { font-size: var(--fs-h5-size); line-height: 1.0; }
.frame-header h6.element-header { font-size: 1.1rem; line-height: 1.25; }

.frame-header.text-center .element-subheader,
.text-center > .frame-header .element-subheader,
.text-center .frame-header .element-subheader {
    justify-content: center;
}
.frame-header.text-end .element-subheader,
.text-end > .frame-header .element-subheader,
.text-end .frame-header .element-subheader {
    justify-content: flex-end;
}
.frame-header.text-start .element-subheader,
.text-start > .frame-header .element-subheader,
.text-start .frame-header .element-subheader {
    justify-content: flex-start;
}

@media (max-width: 767.98px) {
    .frame-header .element-subheader {
        gap: .55rem;
        font-size: .72rem;
        letter-spacing: .12em;
    }
    .frame-header .element-subheader::before,
    .frame-header .element-subheader::after {
        width: 1.4rem;
        flex-basis: 1.4rem;
    }
}


/* ==========================================================================
   Fischerstueble 1.5.2 fixes
   ========================================================================== */

/* Background variants: exactly one full-bleed layer, never a second inner box. */
.fs-columns--background-fs-white,
.fs-columns--background-fs-cream,
.fs-columns--background-fs-cream-leaves,
.fs-columns--background-fs-cream-olive-bottom-right,
.fs-container-section.fs-white,
.fs-container-section.fs-cream,
.fs-container-section.fs-cream-leaves,
.fs-container-section.fs-cream-olive-bottom-right {
    background: transparent !important;
    background-image: none !important;
}

.frame-background-fs-white,
.frame-background-fs-cream,
.frame-background-fs-cream-leaves,
.frame-background-fs-cream-olive-bottom-right {
    position: relative;
    isolation: isolate;
    background: transparent !important;
    background-image: none !important;
}
.frame-background-fs-white::before,
.frame-background-fs-cream::before,
.frame-background-fs-cream-leaves::before,
.frame-background-fs-cream-olive-bottom-right::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    pointer-events: none;
}
.frame-background-fs-white::before { background-color: #fff; }
.frame-background-fs-cream::before { background-color: var(--fs-cream); }
.frame-background-fs-cream-leaves::before {
    background-color: var(--fs-cream);
    background-image: url('../Images/background-leaves.svg');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
}
.frame-background-fs-cream-olive-bottom-right::before {
    background-color: var(--fs-cream);
    background-image: url('../Images/background-olive-bottom-right.svg');
    background-position: right bottom;
    background-repeat: no-repeat;
    background-size: min(36vw, 520px) auto;
}

/* Preserve the desired top/bottom section rhythm. */
.fs-page main > .frame {
    padding-top: var(--fs-gap);
    padding-bottom: var(--fs-gap);
}

/* Header alignment: Bootstrap Package may put text-center on the headline itself. */
.frame-header:has(.element-header.text-center) .element-subheader,
.frame-header:has(.element-subheader.text-center) .element-subheader,
.frame-header .element-subheader.text-center {
    justify-content: center;
    text-align: center;
}
.frame-header:has(.element-header.text-end) .element-subheader,
.frame-header:has(.element-subheader.text-end) .element-subheader,
.frame-header .element-subheader.text-end {
    justify-content: flex-end;
    text-align: right;
}

/* Editable logo page: make raster and SVG logos deterministic. */
.fs-brand .frame-group-container,
.fs-brand .frame-container,
.fs-brand .frame-inner,
.fs-brand figure,
.fs-brand picture,
.fs-brand .image,
.fs-brand .image-embed-item {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    max-width: none !important;
}
.fs-brand img,
.fs-brand svg,
.fs-brand object[type="image/svg+xml"] {
    display: block !important;
    width: auto !important;
    height: 64px !important;
    max-width: 260px !important;
    max-height: 64px !important;
}

/* Optional full-browser-width mode for the integrated 2-column container. */
.fs-columns--fluid {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}
.fs-columns--fluid > .row {
    --bs-gutter-x: 0;
    margin-left: 0;
    margin-right: 0;
}

/* Dedicated full-width image/text split for the Mittagstisch layout. */
.fs-image-text-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    width: 100%;
    min-height: 470px;
    background: #fff;
}
.fs-image-text-split__media {
    position: relative;
    align-self: stretch;
    min-width: 0;
    min-height: 470px;
    height: 100%;
    overflow: hidden;
}
.fs-image-text-split__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center center;
}
.fs-image-text-split__media--torn .fs-image-text-split__image {
    -webkit-mask-image: url('../Images/torn-edge-right-mask.svg');
    mask-image: url('../Images/torn-edge-right-mask.svg');
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}
.fs-image-text-split__content {
    display: flex;
    align-items: center;
    padding: clamp(42px, 6vw, 100px);
}
.fs-image-text-split__inner { max-width: 540px; }
.fs-image-text-split__subheader {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin-bottom: .75rem;
    color: var(--fs-primary);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.fs-image-text-split__subheader::before,
.fs-image-text-split__subheader::after {
    content: "";
    width: 2.25rem;
    height: 1px;
    background: currentColor;
    opacity: .8;
}
.fs-image-text-split__title {
    margin: 0 0 1.3rem;
    color: var(--fs-dark);
    font-family: var(--fs-serif);
    font-weight: 400;
    letter-spacing: -.02em;
}
.fs-image-text-split h1.fs-image-text-split__title { font-size: var(--fs-h1-size); line-height: 1.02; }
.fs-image-text-split h2.fs-image-text-split__title { font-size: var(--fs-h2-size); line-height: 1.08; }
.fs-image-text-split h3.fs-image-text-split__title { font-size: var(--fs-h3-size); line-height: 1.12; }
.fs-image-text-split h4.fs-image-text-split__title { font-size: var(--fs-h4-size); line-height: 1.16; }
.fs-image-text-split h5.fs-image-text-split__title { font-size: var(--fs-h5-size); line-height: 1.0; }
.fs-image-text-split__text { font-size: 1rem; line-height: 1.65; }
.fs-image-text-split__text > :last-child { margin-bottom: 0; }
.fs-image-text-split--right .fs-image-text-split__media { order: 2; }
.fs-image-text-split--right .fs-image-text-split__content { order: 1; justify-content: flex-end; }
.fs-image-text-split--right .fs-image-text-split__media--torn .fs-image-text-split__image {
    transform: scaleX(-1);
}


/* Background selector for the custom full-width image/text element. */
.fs-image-text-split.fs-white { background-color:#fff; }
.fs-image-text-split.fs-cream,
.fs-image-text-split.fs-cream-leaves,
.fs-image-text-split.fs-cream-olive-bottom-right { background-color:var(--fs-cream); }
.fs-image-text-split.fs-cream-leaves {
    background-image:url('../Images/background-leaves.svg');
    background-position:center center;
    background-repeat:no-repeat;
    background-size:100% 100%;
}
.fs-image-text-split.fs-cream-olive-bottom-right {
    background-image:url('../Images/background-olive-bottom-right.svg');
    background-position:right bottom;
    background-repeat:no-repeat;
    background-size:min(36vw, 520px) auto;
}

/* New background option for integrated container elements. */
.fs-columns--background-fs-cream-olive-bottom-right,
.fs-container-section.fs-cream-olive-bottom-right {
    background-color:var(--fs-cream) !important;
    background-image:url('../Images/background-olive-bottom-right.svg') !important;
    background-position:right bottom !important;
    background-repeat:no-repeat !important;
    background-size:min(36vw, 520px) auto !important;
}

@media (max-width: 767.98px) {
    .fs-image-text-split { grid-template-columns: 1fr; min-height: 0; }
    .fs-image-text-split__media,
    .fs-image-text-split__image { min-height: 300px; }
    .fs-image-text-split--right .fs-image-text-split__media,
    .fs-image-text-split--right .fs-image-text-split__content { order: initial; }
    .frame-background-fs-cream-leaves::before { background-size: auto 100%; background-position: center top; }
    .frame-background-fs-cream-olive-bottom-right::before,
    .fs-image-text-split.fs-cream-olive-bottom-right,
    .fs-columns--background-fs-cream-olive-bottom-right,
    .fs-container-section.fs-cream-olive-bottom-right { background-size: min(70vw, 360px) auto !important; }
}

/* ==========================================================================
   Fischerstueble 1.5.5 - links, buttons and footer refinements
   ========================================================================== */

/* Global text links use the Fischerstueble primary/gold colour. Navigation,
   breadcrumb and other deliberately inverted areas keep their own rules. */
a, .frame a[class=""], .frame a:not([class]) {
    color: var(--fs-primary);
    text-decoration-color: color-mix(in srgb, var(--fs-primary) 55%, transparent);
    text-underline-offset: .18em;
    transition: color .2s ease, text-decoration-color .2s ease, background-color .2s ease, border-color .2s ease;
}
a:hover,
a:focus, .frame a[class=""]:hover,
.frame a:not([class]):hover  {
    color: color-mix(in srgb, var(--fs-primary) 78%, #000);
    text-decoration-color: currentColor;
}


/* Bootstrap buttons adapted to the Fischerstueble/Caverta visual language. */
.btn {
    --bs-btn-border-radius: 0;
    border-radius: 0;
    padding: .78rem 1.35rem;
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .11em;
    text-transform: uppercase;
    box-shadow: none !important;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--fs-primary);
    --bs-btn-border-color: var(--fs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--fs-dark);
    --bs-btn-hover-border-color: var(--fs-dark);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--fs-dark);
    --bs-btn-active-border-color: var(--fs-dark);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--fs-primary);
    --bs-btn-disabled-border-color: var(--fs-primary);
    background-color: var(--fs-primary) !important;
    border-color: var(--fs-primary) !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: var(--fs-dark) !important;
    border-color: var(--fs-dark) !important;
}

.btn-outline-primary {
    --bs-btn-color: var(--fs-primary);
    --bs-btn-border-color: var(--fs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--fs-primary);
    --bs-btn-hover-border-color: var(--fs-primary);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--fs-primary);
    --bs-btn-active-border-color: var(--fs-primary);
    color: var(--fs-primary);
    border-color: var(--fs-primary);
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
    color: #fff;
    background-color: var(--fs-primary);
    border-color: var(--fs-primary);
}

.btn-secondary,
.btn-outline-secondary {
    --bs-btn-color: var(--fs-dark);
    --bs-btn-border-color: var(--fs-dark);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--fs-dark);
    --bs-btn-hover-border-color: var(--fs-dark);
}
.btn-secondary {
    background: transparent;
    color: var(--fs-dark);
    border-color: var(--fs-dark);
}
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active,
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:active {
    color: #fff;
    background-color: var(--fs-dark);
    border-color: var(--fs-dark);
}

/* Footer starts immediately after main content; no artificial gap. */
.fs-footer {
    margin-top: 0;
}

/* Footer links intentionally use the primary/gold colour. */
.fs-footer a,
.fs-footer__editable a {
    color: var(--fs-primary);
}
.fs-footer a:hover,
.fs-footer a:focus,
.fs-footer__editable a:hover,
.fs-footer__editable a:focus {
    color: #fff;
}

/* Bootstrap Package header styles are intentionally strong. Override them
   explicitly in the footer so H3 stays small, white and compact. */
.fs-footer .frame-header {
    margin-bottom: .9rem;
}
.fs-footer .frame-header h3.element-header, .fs-footer h3, .fs-footer .fs-content-headline:is(h3) {
	color: #fff !important;
	font-family: inherit;
	font-size: 1.0rem !important;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: .12em;
	text-transform: uppercase !important;
}
.fs-footer .frame-header .element-subheader,
.fs-footer .fs-content-subheader {
    color: var(--fs-primary);
    font-size: .68rem;
}

/* Prevent the global link colour from altering intentionally white navigation. */
.fs-nav a,
.fs-brand a,
.fs-brand__fallback,
.fs-breadcrumb a,
.fs-subpage-hero a,
.fs-hero a:not(.btn) {
    text-decoration: none;
}

/* ==========================================================================
   Fischerstueble 1.5.7 - typography and split edge alignment
   ========================================================================== */
.frame-header .element-header.h5 {
  font-size: var(--fs-h5-size);
  font-family: var(--fs-serif);
  line-height: 1.0;
  margin: 0;
}
.texticon-top .frame-header {
  margin-bottom: 10px;
}

/* TYPO3/Bootstrap Package text content keeps the same comfortable reading rhythm. */
.frame-type-text .text,
.frame-type-text .text p,
.frame .ce-bodytext,
.frame .ce-bodytext p,
.frame .text {
  line-height: 1.65;
}

/* The dedicated split element must touch the viewport edges even when it is
   rendered inside a Bootstrap/container wrapper with horizontal padding. */
.fs-image-text-split {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* ==========================================================================
   Fischerstueble 1.5.8 - footer typography and link colours
   ========================================================================== */
/* Footer must follow the final content block without an extra gap. */
.fs-footer,
.fs-footer__editable,
.fs-footer__editable > .frame:first-child {
  margin-top: 0 !important;
}

/* Override Bootstrap Package link colours inside all editable footer content. */
.fs-footer .frame a:not(.btn),
.fs-footer__editable .frame a:not(.btn),
.fs-footer .ce-bodytext a:not(.btn),
.fs-footer .text a:not(.btn),
.fs-footer a:not(.btn):link,
.fs-footer a:not(.btn):visited {
  color: #fff !important;
  text-decoration: none;
}
.fs-footer .frame a:not(.btn):hover,
.fs-footer .frame a:not(.btn):focus,
.fs-footer__editable .frame a:not(.btn):hover,
.fs-footer__editable .frame a:not(.btn):focus,
.fs-footer a:not(.btn):hover,
.fs-footer a:not(.btn):focus {
  color: var(--fs-primary) !important;
  text-decoration: none;
}

/* Footer headings: compact white serif heading like the reference layout.
   Keep the editor's spelling/case instead of forcing uppercase. */
.fs-footer .frame-header {
  margin-bottom: .7rem;
}
.fs-footer h3,
.fs-footer h3.element-header,
.fs-footer .element-header.h3,
.fs-footer .frame-header .element-header.h3,
.fs-footer .fs-content-headline:is(h3) {
  color: #fff !important;
  font-family: var(--fs-serif) !important;
  font-size: clamp(1.05rem, 1.35vw, 1.25rem) !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
  margin: 0 0 .65rem !important;
}

/* Footer subheaders are simple and do not use the decorative content-heading lines. */
.fs-footer .element-subheader,
.fs-footer .fs-content-subheader {
  color: var(--fs-primary) !important;
  font-size: .72rem !important;
  line-height: 1.25;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.fs-footer .element-subheader::before,
.fs-footer .element-subheader::after,
.fs-footer .fs-content-subheader::before,
.fs-footer .fs-content-subheader::after {
  display: none !important;
}


/* ==========================================================================
   Fischerstueble 1.6.1 - unified headline scale
   ========================================================================== */
.fs-content-headline:is(h1), h1.fs-content-headline { font-size: var(--fs-h1-size); line-height: 1.02; }
.fs-content-headline:is(h2), h2.fs-content-headline { font-size: var(--fs-h2-size); line-height: 1.08; }
.fs-content-headline:is(h3), h3.fs-content-headline { font-size: var(--fs-h3-size); line-height: 1.12; }
.fs-content-headline:is(h4), h4.fs-content-headline { font-size: var(--fs-h4-size); line-height: 1.16; }
.fs-content-headline:is(h5), h5.fs-content-headline { font-size: var(--fs-h5-size); line-height: 1.0; }

/* Unified global heading scale: semantic headings and Bootstrap .h1-.h5 utilities */
h1, .h1 {
  font-size: var(--fs-h1-size);
  line-height: 1.02;
}
h2, .h2 {
  font-size: var(--fs-h2-size);
  line-height: 1.08;
}
h3, .h3 {
  font-size: var(--fs-h3-size);
  line-height: 1.12;
}
h4, .h4 {
  font-size: var(--fs-h4-size);
  line-height: 1.16;
}
h5, .h5 {
  font-size: var(--fs-h5-size);
  line-height: 1.0;
}

/* ==========================================================================
   Fischerstueble 1.6.5 - split full bleed + wider torn edge + outer leaves
   ========================================================================== */

/* The split content element must escape the Bootstrap frame container itself,
   not only its own internal width. This keeps media flush with the viewport. */
.frame-type-fischerstueble_image_text_split > .frame-group-container,
.frame-type-fischerstueble_image_text_split > .frame-group-container > .frame-group-inner {
  width: 100% !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.frame-type-fischerstueble_image_text_split {
  overflow: visible !important;
}

.fs-image-text-split {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* Make the torn transition visibly broader, closer to the reference layout.
   Aligning the oversized mask to the outer edge pulls the brush transition
   further into the image without changing the uploaded SVG. */
.fs-image-text-split__media--torn .fs-image-text-split__image {
  -webkit-mask-size: 118% 100%;
  mask-size: 118% 100%;
  -webkit-mask-position: right center;
  mask-position: right center;
}
.fs-image-text-split--right .fs-image-text-split__media--torn .fs-image-text-split__image {
  -webkit-mask-position: left center;
  mask-position: left center;
}

/* The two decorative branches from background-leaves.svg should remain near
   the far viewport edges on every monitor width. The SVG itself is unchanged. */
.frame-background-fs-cream-leaves::before {
  background-size: 118vw auto !important;
  background-position: center center !important;
}
.fs-image-text-split.fs-cream-leaves {
  background-size: 118vw auto !important;
  background-position: center center !important;
}

@media (max-width: 767.98px) {
  .frame-background-fs-cream-leaves::before,
  .fs-image-text-split.fs-cream-leaves {
    background-size: 165vw auto !important;
    background-position: center center !important;
  }
}

/* ==========================================================================
   Fischerstueble 1.6.6 - nested frames + text-white helpers
   ========================================================================== */

.frame-container .frame-container {
  padding: 0;
  margin: 0;
}

.text-white,
.text-white p,
.text-white h2,
.text-white h1,
.text-white span.text-secondary {
  color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;
}

/* ========================================================================== 
   Fischerstueble 1.6.8 - split mask height 180% + separate edge leaves
   ========================================================================== */

/* Use the supplied torn masks with the taller mask scale required by the layout. */
.fs-image-text-split__media--torn .fs-image-text-split__image {
  -webkit-mask-image: url('../Images/torn-edge-right-mask.svg');
  mask-image: url('../Images/torn-edge-right-mask.svg');
  -webkit-mask-size: 100% 180%;
  mask-size: 100% 180%;
  -webkit-mask-position: center center;
  mask-position: center center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  transform: none !important;
}

/* When the image is on the right, use the dedicated opposite-edge mask.
   Do not mirror the image itself. */
.fs-image-text-split--right .fs-image-text-split__media--torn .fs-image-text-split__image {
  -webkit-mask-image: url('../Images/torn-edge-mask.svg');
  mask-image: url('../Images/torn-edge-mask.svg');
  -webkit-mask-size: 100% 180%;
  mask-size: 100% 180%;
  -webkit-mask-position: center center;
  mask-position: center center;
  transform: none !important;
}

/* The leaves are two independent SVGs, anchored to the viewport edges.
   Disable every previous combined background-leaves.svg declaration. */
.frame-background-fs-cream-leaves,
.fs-image-text-split.fs-cream-leaves,
.fs-columns--background-fs-cream-leaves,
.fs-container-section.fs-cream-leaves {
  background-image: none !important;
  background-color: var(--fs-cream) !important;
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.frame-background-fs-cream-leaves::before,
.frame-background-fs-cream-leaves::after,
.fs-image-text-split.fs-cream-leaves::before,
.fs-image-text-split.fs-cream-leaves::after,
.fs-columns--background-fs-cream-leaves::before,
.fs-columns--background-fs-cream-leaves::after,
.fs-container-section.fs-cream-leaves::before,
.fs-container-section.fs-cream-leaves::after {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 1;
}

/* left leaf: always fixed to the far left edge */
.frame-background-fs-cream-leaves::before,
.fs-image-text-split.fs-cream-leaves::before,
.fs-columns--background-fs-cream-leaves::before,
.fs-container-section.fs-cream-leaves::before {
  left: 0;
  top: 50%;
  width: clamp(180px, 16vw, 330px);
  height: clamp(240px, 25vw, 430px);
  transform: translateY(-50%);
  background-image: url('../Images/background-leave-left.svg');
  background-position: left center;
}

/* right leaf: always fixed to the far right / lower edge */
.frame-background-fs-cream-leaves::after,
.fs-image-text-split.fs-cream-leaves::after,
.fs-columns--background-fs-cream-leaves::after,
.fs-container-section.fs-cream-leaves::after {
  right: 0;
  bottom: 0;
  width: clamp(150px, 13vw, 280px);
  height: clamp(210px, 22vw, 390px);
  background-image: url('../Images/background-leave-right.svg');
  background-position: right bottom;
}

/* Keep actual content above the decorative leaves. */
.frame-background-fs-cream-leaves > *,
.fs-image-text-split.fs-cream-leaves > *,
.fs-columns--background-fs-cream-leaves > *,
.fs-container-section.fs-cream-leaves > * {
  position: relative;
  z-index: 1;
}

@media (max-width: 767.98px) {
  .frame-background-fs-cream-leaves::before,
  .fs-image-text-split.fs-cream-leaves::before,
  .fs-columns--background-fs-cream-leaves::before,
  .fs-container-section.fs-cream-leaves::before {
    width: 150px;
    height: 200px;
  }
  .frame-background-fs-cream-leaves::after,
  .fs-image-text-split.fs-cream-leaves::after,
  .fs-columns--background-fs-cream-leaves::after,
  .fs-container-section.fs-cream-leaves::after {
    width: 125px;
    height: 180px;
  }
}


/* ==========================================================================\n   Fischerstueble 1.6.9 - final full-bleed frame backgrounds + mask tuning\n   ========================================================================== */

/* Requested torn-edge scale. Keep the uploaded SVG masks unchanged. */
.fs-image-text-split--left .fs-image-text-split__media--torn .fs-image-text-split__image,
.fs-image-text-split--right .fs-image-text-split__media--torn .fs-image-text-split__image {
  -webkit-mask-size: 100% 200% !important;
  mask-size: 100% 200% !important;
}

/* Normal Bootstrap content elements: one single background layer, full viewport width.\n   Bootstrap's inner wrappers stay transparent so the background can never appear twice. */
.frame-background-fs-white,
.frame-background-fs-cream,
.frame-background-fs-cream-leaves,
.frame-background-fs-cream-olive-bottom-right {
  --fs-frame-bg: transparent;
  position: relative;
  isolation: isolate;
  background: transparent !important;
  background-image: none !important;
  box-shadow: 0 0 0 100vmax var(--fs-frame-bg);
  clip-path: inset(0 -100vmax);
}
.frame-background-fs-white { --fs-frame-bg: #fff; }
.frame-background-fs-cream,
.frame-background-fs-cream-leaves,
.frame-background-fs-cream-olive-bottom-right { --fs-frame-bg: var(--fs-cream); }

.frame-background-fs-white > .frame-group-container,
.frame-background-fs-cream > .frame-group-container,
.frame-background-fs-cream-leaves > .frame-group-container,
.frame-background-fs-cream-olive-bottom-right > .frame-group-container,
.frame-background-fs-white .frame-group-inner,
.frame-background-fs-cream .frame-group-inner,
.frame-background-fs-cream-leaves .frame-group-inner,
.frame-background-fs-cream-olive-bottom-right .frame-group-inner,
.frame-background-fs-white .frame-container,
.frame-background-fs-cream .frame-container,
.frame-background-fs-cream-leaves .frame-container,
.frame-background-fs-cream-olive-bottom-right .frame-container {
  background: transparent !important;
  background-image: none !important;
}

/* The uploaded leaf SVGs are used directly and independently.\n   No combined background-leaves.svg is used for this variant. */
.frame-background-fs-cream-leaves::before,
.fs-image-text-split.fs-cream-leaves::before,
.fs-columns--background-fs-cream-leaves::before,
.fs-container-section.fs-cream-leaves::before {
  left: calc(50% - 50vw) !important;
  right: auto !important;
  top: 50% !important;
  bottom: auto !important;
  width: clamp(180px, 16vw, 330px) !important;
  height: clamp(240px, 25vw, 430px) !important;
  transform: translateY(-50%) !important;
  background-color: transparent !important;
  background-image: url('../Images/background-leave-left.svg') !important;
  background-repeat: no-repeat !important;
  background-position: left center !important;
  background-size: contain !important;
}
.frame-background-fs-cream-leaves::after,
.fs-image-text-split.fs-cream-leaves::after,
.fs-columns--background-fs-cream-leaves::after,
.fs-container-section.fs-cream-leaves::after {
  right: calc(50% - 50vw) !important;
  left: auto !important;
  bottom: 0 !important;
  top: auto !important;
  width: clamp(150px, 13vw, 280px) !important;
  height: clamp(210px, 22vw, 390px) !important;
  transform: none !important;
  background-color: transparent !important;
  background-image: url('../Images/background-leave-right.svg') !important;
  background-repeat: no-repeat !important;
  background-position: right bottom !important;
  background-size: contain !important;
}

/* Ensure the old full-bleed pseudo layer cannot interfere with the two leaf SVGs. */
.frame-background-fs-cream-leaves::before,
.frame-background-fs-cream-leaves::after {
  z-index: 0 !important;
}
.frame-background-fs-cream-leaves > .frame-group-container {
  position: relative;
  z-index: 1;
}

@media (max-width: 767.98px) {
  .frame-background-fs-cream-leaves::before,
  .fs-image-text-split.fs-cream-leaves::before,
  .fs-columns--background-fs-cream-leaves::before,
  .fs-container-section.fs-cream-leaves::before {
    width: 150px !important;
    height: 200px !important;
  }
  .frame-background-fs-cream-leaves::after,
  .fs-image-text-split.fs-cream-leaves::after,
  .fs-columns--background-fs-cream-leaves::after,
  .fs-container-section.fs-cream-leaves::after {
    width: 125px !important;
    height: 180px !important;
  }
}


/* ==========================================================================\n   Fischerstueble 1.7.0 - cream full bleed + Go Maps preview integration\n   ========================================================================== */

/* Full-bleed background: keep the actual frame cream/white as well as the\n   viewport bleed. This avoids the cream variant looking white/transparent. */
.frame-background-fs-white,
.frame-background-fs-cream,
.frame-background-fs-cream-leaves,
.frame-background-fs-cream-olive-bottom-right {
  background-color: var(--fs-frame-bg) !important;
  background-image: none !important;
  box-shadow: 0 0 0 100vmax var(--fs-frame-bg) !important;
  clip-path: inset(0 -100vmax);
}
.frame-background-fs-white { --fs-frame-bg: #fff; }
.frame-background-fs-cream,
.frame-background-fs-cream-leaves,
.frame-background-fs-cream-olive-bottom-right { --fs-frame-bg: var(--fs-cream); }

/* Keep all nested Bootstrap wrappers transparent so the background is only\n   rendered once. */
.frame-background-fs-white > .frame-group-container,
.frame-background-fs-cream > .frame-group-container,
.frame-background-fs-cream-leaves > .frame-group-container,
.frame-background-fs-cream-olive-bottom-right > .frame-group-container,
.frame-background-fs-white .frame-group-inner,
.frame-background-fs-cream .frame-group-inner,
.frame-background-fs-cream-leaves .frame-group-inner,
.frame-background-fs-cream-olive-bottom-right .frame-group-inner,
.frame-background-fs-white .frame-container,
.frame-background-fs-cream .frame-container,
.frame-background-fs-cream-leaves .frame-container,
.frame-background-fs-cream-olive-bottom-right .frame-container {
  background: transparent !important;
  background-image: none !important;
}

/* Exact uploaded Fischerstueble leaf SVGs. */
.frame-background-fs-cream-leaves::before,
.fs-image-text-split.fs-cream-leaves::before,
.fs-columns--background-fs-cream-leaves::before,
.fs-container-section.fs-cream-leaves::before {
  background-image: url('../Images/background-leave-left.svg') !important;
}
.frame-background-fs-cream-leaves::after,
.fs-image-text-split.fs-cream-leaves::after,
.fs-columns--background-fs-cream-leaves::after,
.fs-container-section.fs-cream-leaves::after {
  right: calc(50% - 50vw) !important;
  left: auto !important;
  bottom: 0 !important;
  top: auto !important;
  width: clamp(150px, 13vw, 280px) !important;
  height: clamp(210px, 22vw, 390px) !important;
  transform: none !important;
  background-image: url('../Images/background-leave-right.svg') !important;
  background-repeat: no-repeat !important;
  background-position: right bottom !important;
  background-size: contain !important;
}

/* Go Maps Ext preview from the proven old sitepackage. */
.tx-go-maps-ext,
.google-map,
.google-map .container-fluid {
  width: 100%;
}
.google-map .container-fluid { padding: 0; }
.google-map-iframe,
.google-map-iframe iframe,
.tx-go-maps-ext .js-gme-preview,
.tx-go-maps-ext .js-gme-container,
.tx-go-maps-ext .js-map {
  width: 100%;
}
.google-map-iframe,
.google-map-iframe iframe,
.tx-go-maps-ext .js-gme-preview,
.tx-go-maps-ext .js-map {
  min-height: 600px;
}
@media (max-width: 991.98px) {
  .google-map-iframe,
  .google-map-iframe iframe,
  .tx-go-maps-ext .js-gme-preview,
  .tx-go-maps-ext .js-map { min-height: 450px; }
}
@media (max-width: 767.98px) {
  .google-map-iframe,
  .google-map-iframe iframe,
  .tx-go-maps-ext .js-gme-preview,
  .tx-go-maps-ext .js-map { min-height: 350px; }
}

/* ==========================================================================\n   Fischerstueble 1.7.1 - normalize frame background layers\n   ========================================================================== */
/* Bootstrap/legacy background pseudo layers are disabled first. The frame
   itself owns the full-bleed background; pseudo elements are decoration only. */
.frame-background-fs-white::before,
.frame-background-fs-white::after,
.frame-background-fs-cream::before,
.frame-background-fs-cream::after,
.frame-background-fs-cream-leaves::before,
.frame-background-fs-cream-leaves::after,
.frame-background-fs-cream-olive-bottom-right::before,
.frame-background-fs-cream-olive-bottom-right::after {
  content: none !important;
  background: none !important;
  box-shadow: none !important;
}

.frame-background-fs-white,
.frame-background-fs-cream,
.frame-background-fs-cream-leaves,
.frame-background-fs-cream-olive-bottom-right {
  position: relative !important;
  isolation: isolate;
  background-image: none !important;
  background-color: var(--fs-frame-bg) !important;
  box-shadow: 0 0 0 100vmax var(--fs-frame-bg) !important;
  clip-path: inset(0 -100vmax);
}
.frame-background-fs-white { --fs-frame-bg: #fff; }
.frame-background-fs-cream,
.frame-background-fs-cream-leaves,
.frame-background-fs-cream-olive-bottom-right { --fs-frame-bg: var(--fs-cream); }

/* Nested Bootstrap wrappers must never paint an additional background. */
.frame-background-fs-white > .frame-group-container,
.frame-background-fs-cream > .frame-group-container,
.frame-background-fs-cream-leaves > .frame-group-container,
.frame-background-fs-cream-olive-bottom-right > .frame-group-container,
.frame-background-fs-white .frame-group-inner,
.frame-background-fs-cream .frame-group-inner,
.frame-background-fs-cream-leaves .frame-group-inner,
.frame-background-fs-cream-olive-bottom-right .frame-group-inner,
.frame-background-fs-white .frame-container,
.frame-background-fs-cream .frame-container,
.frame-background-fs-cream-leaves .frame-container,
.frame-background-fs-cream-olive-bottom-right .frame-container,
.frame-background-fs-white .frame-backgroundimage,
.frame-background-fs-cream .frame-backgroundimage,
.frame-background-fs-cream-leaves .frame-backgroundimage,
.frame-background-fs-cream-olive-bottom-right .frame-backgroundimage {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* Cream + leaves: ONLY the two supplied SVG files are used as decorations. */
.frame-background-fs-cream-leaves::before,
.fs-image-text-split.fs-cream-leaves::before,
.fs-columns--background-fs-cream-leaves::before,
.fs-container-section.fs-cream-leaves::before {
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;
  pointer-events: none !important;
  left: calc(50% - 50vw) !important;
  right: auto !important;
  top: 50% !important;
  bottom: auto !important;
  width: clamp(180px, 16vw, 330px) !important;
  height: clamp(240px, 25vw, 430px) !important;
  transform: translateY(-50%) !important;
  background: transparent url('../Images/background-leave-left.svg') left center / contain no-repeat !important;
}
.frame-background-fs-cream-leaves::after,
.fs-image-text-split.fs-cream-leaves::after,
.fs-columns--background-fs-cream-leaves::after,
.fs-container-section.fs-cream-leaves::after {
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;
  pointer-events: none !important;
  right: calc(50% - 50vw) !important;
  left: auto !important;
  bottom: 0 !important;
  top: auto !important;
  width: clamp(150px, 13vw, 280px) !important;
  height: clamp(210px, 22vw, 390px) !important;
  transform: none !important;
  background: transparent url('../Images/background-leave-right.svg') right bottom / contain no-repeat !important;
}
.frame-background-fs-cream-leaves > .frame-group-container,
.frame-background-fs-cream-leaves > .frame-group-container > .frame-group-inner {
  position: relative;
  z-index: 1;
}

/* Single olive branch variant keeps only the supplied lower-right SVG. */
.frame-background-fs-cream-olive-bottom-right::after,
.fs-image-text-split.fs-cream-olive-bottom-right::after,
.fs-columns--background-fs-cream-olive-bottom-right::after,
.fs-container-section.fs-cream-olive-bottom-right::after {
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;
  pointer-events: none !important;
  right: calc(50% - 50vw) !important;
  left: auto !important;
  bottom: 0 !important;
  top: auto !important;
  width: min(36vw, 520px) !important;
  height: min(34vw, 480px) !important;
  background: transparent url('../Images/background-olive-bottom-right.svg') right bottom / contain no-repeat !important;
}


/* ==========================================================================\n   Fischerstueble 1.7.2 - leaf de-duplication + optional column dividers\n   ========================================================================== */

/* A container with the cream/leaves background receives the Bootstrap frame
   background class AND its own internal Fischerstueble background class.
   Only the outer frame may draw the decorative SVGs, otherwise the right
   branch is rendered twice. Standalone internal sections still keep their
   decoration when there is no outer frame background. */
.frame-background-fs-cream-leaves .fs-columns--background-fs-cream-leaves::before,
.frame-background-fs-cream-leaves .fs-columns--background-fs-cream-leaves::after,
.frame-background-fs-cream-leaves .fs-container-section.fs-cream-leaves::before,
.frame-background-fs-cream-leaves .fs-container-section.fs-cream-leaves::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* Optional vertical separators for 4-column / footer layouts.
   Select the frame class "Fischerstueble - Spaltentrenner" in Appearance.
   The separator sits on the right of each column except the last one. */
.frame-fs-column-dividers .fs-columns > .row > [class*="col-"] {
  position: relative;
}

@media (min-width: 768px) {
  .frame-fs-column-dividers .fs-columns > .row > [class*="col-"]:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 8%;
    right: 0;
    width: 1px;
    height: 84%;
    background: rgba(166, 139, 72, .42);
    pointer-events: none;
  }
}

/* As soon as the columns stack on phones, the separators disappear. */
@media (max-width: 767.98px) {
  .frame-fs-column-dividers .fs-columns > .row > [class*="col-"]::after {
    content: none !important;
    display: none !important;
  }
}

/* ==========================================================================\n   Fischerstueble 1.7.3 - 5-column footer layout\n   ========================================================================== */

/* Five equal footer columns from tablet/desktop upward. On phones they stack. */
.fs-columns--5 > .row {
  --bs-gutter-x: 0;
}

.fs-columns--5 > .row > .ce-col {
  min-width: 0;
}

@media (min-width: 768px) {
  .fs-columns--5 > .row > .ce-col {
    flex: 1 1 20%;
    width: 20%;
    max-width: 20%;
  }

  /* For the 5-column footer the first column stays open (logo/intro).
     Separator lines start only with column 2 and continue after columns 2-4. */
  .frame-fs-column-dividers .fs-columns--5 > .row > .ce-col::after {
    content: none !important;
    display: none !important;
  }

  .frame-fs-column-dividers .fs-columns--5 > .row > .ce-col:nth-child(n+2):not(:last-child)::after {
    content: "" !important;
    display: block !important;
    position: absolute;
    top: 5%;
    right: 0;
    width: 1px;
    height: 78%;
    background: rgba(255, 255, 255, .32);
    pointer-events: none;
  }
}

@media (max-width: 767.98px) {
  .fs-columns--5 > .row > .ce-col {
    width: 100%;
    max-width: 100%;
  }

  .frame-fs-column-dividers .fs-columns--5 > .row > .ce-col::after {
    content: none !important;
    display: none !important;
  }
}

/* ==========================================================================\n   Fischerstueble 1.7.4 - authoritative cream/leaves background rendering\n   ========================================================================== */
/*
 * The Bootstrap frame is the only background/decorative layer for standard
 * and container content elements. Internal container wrappers must never draw
 * their own branches. The custom split element is the only exception because
 * it owns its dedicated background field.
 */
.frame-background-fs-white,
.frame-background-fs-cream,
.frame-background-fs-cream-leaves,
.frame-background-fs-cream-olive-bottom-right {
  position: relative !important;
  isolation: isolate;
  background-image: none !important;
  background-color: var(--fs-frame-bg) !important;
  box-shadow: 0 0 0 100vmax var(--fs-frame-bg) !important;
  clip-path: inset(0 -100vmax);
}
.frame-background-fs-white { --fs-frame-bg: #fff; }
.frame-background-fs-cream,
.frame-background-fs-cream-leaves,
.frame-background-fs-cream-olive-bottom-right { --fs-frame-bg: var(--fs-cream); }

/* Bootstrap's inner frame wrappers stay transparent. */
.frame-background-fs-white > .frame-group-container,
.frame-background-fs-cream > .frame-group-container,
.frame-background-fs-cream-leaves > .frame-group-container,
.frame-background-fs-cream-olive-bottom-right > .frame-group-container,
.frame-background-fs-white .frame-group-inner,
.frame-background-fs-cream .frame-group-inner,
.frame-background-fs-cream-leaves .frame-group-inner,
.frame-background-fs-cream-olive-bottom-right .frame-group-inner,
.frame-background-fs-white .frame-container,
.frame-background-fs-cream .frame-container,
.frame-background-fs-cream-leaves .frame-container,
.frame-background-fs-cream-olive-bottom-right .frame-container,
.frame-background-fs-white .frame-backgroundimage,
.frame-background-fs-cream .frame-backgroundimage,
.frame-background-fs-cream-leaves .frame-backgroundimage,
.frame-background-fs-cream-olive-bottom-right .frame-backgroundimage {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* Never let an inner container duplicate the two decorative leaves. */
.fs-columns--background-fs-cream-leaves::before,
.fs-columns--background-fs-cream-leaves::after,
.fs-container-section.fs-cream-leaves::before,
.fs-container-section.fs-cream-leaves::after {
  content: none !important;
  display: none !important;
  background: none !important;
}
.fs-columns--background-fs-cream-leaves,
.fs-container-section.fs-cream-leaves {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* Standard TYPO3 frame: exactly one supplied SVG per viewport edge. */
.frame-background-fs-cream-leaves::before,
.frame-background-fs-cream-leaves::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: 0 !important;
  pointer-events: none !important;
  background-color: transparent !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
}
.frame-background-fs-cream-leaves::before {
  left: calc(50% - 50vw) !important;
  right: auto !important;
  top: 50% !important;
  bottom: auto !important;
  width: clamp(180px, 16vw, 330px) !important;
  height: clamp(240px, 25vw, 430px) !important;
  transform: translateY(-50%) !important;
  background-image: url('../Images/background-leave-left.svg') !important;
  background-position: left center !important;
}
.frame-background-fs-cream-leaves::after {
  right: calc(50% - 50vw) !important;
  left: auto !important;
  bottom: 0 !important;
  top: auto !important;
  width: clamp(150px, 13vw, 280px) !important;
  height: clamp(210px, 22vw, 390px) !important;
  transform: none !important;
  background-image: url('../Images/background-leave-right.svg') !important;
  background-position: right bottom !important;
}
.frame-background-fs-cream-leaves > .frame-group-container {
  position: relative;
  z-index: 1;
}

/* Custom image/text split has no Bootstrap background frame, therefore it
   keeps its own single pair of supplied leaf SVGs. */
.fs-image-text-split.fs-cream-leaves {
  position: relative;
  isolation: isolate;
  background-color: var(--fs-cream) !important;
  background-image: none !important;
}
.fs-image-text-split.fs-cream-leaves::before,
.fs-image-text-split.fs-cream-leaves::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: 0 !important;
  pointer-events: none !important;
  background-color: transparent !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
}
.fs-image-text-split.fs-cream-leaves::before {
  left: 0 !important;
  top: 50% !important;
  width: clamp(180px, 16vw, 330px) !important;
  height: clamp(240px, 25vw, 430px) !important;
  transform: translateY(-50%) !important;
  background-image: url('../Images/background-leave-left.svg') !important;
  background-position: left center !important;
}
.fs-image-text-split.fs-cream-leaves::after {
  right: 0 !important;
  bottom: 0 !important;
  width: clamp(150px, 13vw, 280px) !important;
  height: clamp(210px, 22vw, 390px) !important;
  transform: none !important;
  background-image: url('../Images/background-leave-right.svg') !important;
  background-position: right bottom !important;
}
.fs-image-text-split.fs-cream-leaves > * {
  position: relative;
  z-index: 1;
}

@media (max-width: 767.98px) {
  .frame-background-fs-cream-leaves::before,
  .fs-image-text-split.fs-cream-leaves::before {
    width: 150px !important;
    height: 200px !important;
  }
  .frame-background-fs-cream-leaves::after,
  .fs-image-text-split.fs-cream-leaves::after {
    width: 125px !important;
    height: 180px !important;
  }
}

/* Mobile navigation toggle – animated cross (menu-1 inspired) */
.fs-nav-toggle--menu1 {
  width: 48px;
  height: 48px;
  padding: 0;
  display: none;
  align-items: center;
  justify-content: center;
  color: #222;
  background: transparent;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.fs-nav-toggle--menu1 .fs-nav-toggle__icon {
  display: block;
  width: 48px;
  height: 48px;
  overflow: visible;
}
.fs-nav-toggle--menu1 .fs-nav-toggle__circle {
  fill: rgba(166, 139, 72, .10);
  opacity: 0;
  transition: opacity .25s ease;
}
.fs-nav-toggle--menu1:hover .fs-nav-toggle__circle,
.fs-nav-toggle--menu1:focus-visible .fs-nav-toggle__circle {
  opacity: 1;
}
.fs-nav-toggle--menu1 .fs-nav-toggle__line {
  fill: none;
  stroke: currentColor;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  --fs-menu-length: 24;
  --fs-menu-offset: -38;
  stroke-dasharray: var(--fs-menu-length) var(--fs-menu-total);
  stroke-dashoffset: var(--fs-menu-offset);
  transition: stroke-dasharray .8s cubic-bezier(.645,.045,.355,1), stroke-dashoffset .8s cubic-bezier(.645,.045,.355,1);
}
.fs-nav-toggle--menu1 .fs-nav-toggle__line--1,
.fs-nav-toggle--menu1 .fs-nav-toggle__line--3 {
  --fs-menu-total: 126.6418304443;
}
.fs-nav-toggle--menu1 .fs-nav-toggle__line--2 {
  --fs-menu-total: 70;
}
.fs-nav-toggle--menu1.is-active .fs-nav-toggle__line--1,
.fs-nav-toggle--menu1.is-active .fs-nav-toggle__line--3 {
  --fs-menu-length: 22.627416998;
  --fs-menu-offset: -94.1149185097;
}
.fs-nav-toggle--menu1.is-active .fs-nav-toggle__line--2 {
  --fs-menu-length: 0;
  --fs-menu-offset: -50;
}
@media (max-width: 991px) {
  .fs-nav-toggle--menu1 { display: inline-flex; }
}
@media (prefers-reduced-motion: reduce) {
  .fs-nav-toggle--menu1 .fs-nav-toggle__line { transition-duration: .01ms; }
}


/* Mobile fullscreen overlay navigation */
.fs-mobile-overlay {
  position: fixed;
  inset: 0;
  z-index: 1040;
  display: none;
  width: 100%;
  height: 100dvh;
  overflow-y: auto;
  color: #fff;
  background: #24291f;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-10px);
  transition: opacity .35s ease, visibility .35s ease, transform .45s cubic-bezier(.22,1,.36,1);
}
.fs-mobile-overlay::before {
  content: \"\";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 85% 18%, rgba(166,139,72,.18), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.025), transparent 45%);
}
.fs-mobile-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.fs-mobile-overlay__inner {
  position: relative;
  z-index: 1;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  padding: 24px clamp(24px, 7vw, 48px) 30px;
}
.fs-mobile-overlay__top {
  min-height: 74px;
  display: flex;
  align-items: flex-start;
  padding-right: 64px;
}
.fs-mobile-overlay__brand {
  max-width: min(220px, 62vw);
}
.fs-mobile-overlay__brand img,
.fs-mobile-overlay__brand svg {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 72px;
}
.fs-mobile-overlay__brand .fs-brand__fallback {
  color: #fff;
}
.fs-mobile-overlay__nav {
  display: flex;
  flex-direction: column;
  margin: auto 0;
  padding: 38px 0 42px;
}
.fs-mobile-overlay__nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 14px 0 15px;
  color: #fff !important;
  border-bottom: 1px solid rgba(255,255,255,.15);
  font-family: var(--fs-serif);
  font-size: clamp(2rem, 8.5vw, 3.25rem);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.025em;
  text-decoration: none;
  transition: color .2s ease, padding-left .25s ease;
}
.fs-mobile-overlay__nav a:first-child {
  border-top: 1px solid rgba(255,255,255,.15);
}
.fs-mobile-overlay__nav a:hover,
.fs-mobile-overlay__nav a:focus-visible,
.fs-mobile-overlay__nav a.is-active {
  color: var(--fs-primary) !important;
  padding-left: 8px;
}
.fs-mobile-overlay__arrow {
  flex: 0 0 auto;
  font-family: sans-serif;
  font-size: .55em;
  font-weight: 300;
  color: var(--fs-primary);
  opacity: .9;
  transform: translateY(-1px);
}
.fs-mobile-overlay__footer {
  padding-top: 6px;
}
.fs-mobile-overlay__cta {
  width: 100%;
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body.fs-mobile-menu-open {
  overflow: hidden;
  touch-action: none;
}
body.fs-mobile-menu-open .fs-nav-toggle--menu1 {
  position: fixed;
  top: 18px;
  right: clamp(18px, 5vw, 34px);
  z-index: 1050;
  color: #fff;
}
@media (max-width: 991px) {
  .fs-mobile-overlay { display: block; }
  .fs-header .fs-nav,
  .fs-header .fs-header__cta { display: none !important; }
}
@media (min-width: 992px) {
  .fs-mobile-overlay { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  .fs-mobile-overlay,
  .fs-mobile-overlay__nav a { transition-duration: .01ms; }
}


/* ==========================================================================
   Fischerstueble 1.8.3 - nested cream/leaves background de-duplication
   ========================================================================== */
/*
 * Real frontend markup can contain the same background class on the outer
 * ce_container frame and on a content element inside it. In that case the
 * parent is the only visual background/decorative layer. The nested frame
 * remains transparent and does not create its own full-bleed shadow or leaves.
 */
.frame-type-ce_container.frame-background-fs-cream-leaves
  .ce-container > .frame.frame-background-fs-cream-leaves {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  clip-path: none !important;
  isolation: auto !important;
}
.frame-type-ce_container.frame-background-fs-cream-leaves
  .ce-container > .frame.frame-background-fs-cream-leaves::before,
.frame-type-ce_container.frame-background-fs-cream-leaves
  .ce-container > .frame.frame-background-fs-cream-leaves::after {
  content: none !important;
  display: none !important;
  background: none !important;
}


/* ==========================================================================\n   Fischerstueble 1.8.4 - mobile overlay + footer navigation refinements\n   ========================================================================== */

/* Mobile overlay uses the requested warm gold background. */
.fs-mobile-overlay {
  background: #c5b27a !important;
}
.fs-mobile-overlay::before {
  content: none !important;
  display: none !important;
}
.fs-mobile-overlay__brand {
  width: 100% !important;
  max-width: none !important;
}

/* Keep the animated hamburger/close control above the overlay.
   The header itself must form the higher stacking context, otherwise the
   button cannot escape the header's z-index even with a larger local z-index. */
body.fs-mobile-menu-open .fs-header {
  z-index: 1100 !important;
  background: transparent !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
  pointer-events: none;
}
body.fs-mobile-menu-open .fs-header__inner {
  pointer-events: none;
}
body.fs-mobile-menu-open .fs-header .fs-brand,
body.fs-mobile-menu-open .fs-header .fs-nav,
body.fs-mobile-menu-open .fs-header .fs-header__cta {
  visibility: hidden !important;
  pointer-events: none !important;
}
body.fs-mobile-menu-open .fs-nav-toggle--menu1 {
  position: fixed !important;
  top: 18px !important;
  right: clamp(18px, 5vw, 34px) !important;
  z-index: 1110 !important;
  color: #fff !important;
  pointer-events: auto !important;
}
body.fs-mobile-menu-open .fs-nav-toggle--menu1 .fs-nav-toggle__line,
body.fs-mobile-menu-open .fs-nav-toggle--menu1 .fs-nav-toggle__circle {
  stroke: #fff !important;
}

/* Menu items: replace the arrow with one clean horizontal line.
   Because it uses currentColor, the line changes color together with the link. */
.fs-mobile-overlay__nav a {
  color: #fff !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.28) !important;
}
.fs-mobile-overlay__nav a:first-child {
  border-top: 1px solid rgba(255,255,255,.28) !important;
}
.fs-mobile-overlay__arrow {
  display: block !important;
  flex: 0 0 clamp(42px, 12vw, 72px) !important;
  width: clamp(42px, 12vw, 72px) !important;
  height: 1px !important;
  margin-left: auto;
  background: currentColor !important;
  color: inherit !important;
  font-size: 0 !important;
  line-height: 0 !important;
  opacity: 1 !important;
  transform: none !important;
  transition: width .25s ease, color .2s ease, background-color .2s ease;
}
.fs-mobile-overlay__nav a:hover,
.fs-mobile-overlay__nav a:focus-visible,
.fs-mobile-overlay__nav a.is-active {
  color: var(--fs-dark) !important;
}
.fs-mobile-overlay__nav a:hover .fs-mobile-overlay__arrow,
.fs-mobile-overlay__nav a:focus-visible .fs-mobile-overlay__arrow,
.fs-mobile-overlay__nav a.is-active .fs-mobile-overlay__arrow {
  width: clamp(54px, 16vw, 92px) !important;
}

/* White CTA works better on the gold overlay. */
.fs-mobile-overlay__cta,
.fs-mobile-overlay__cta.btn-primary {
  background: #fff !important;
  border-color: #fff !important;
  color: var(--fs-dark) !important;
}
.fs-mobile-overlay__cta:hover,
.fs-mobile-overlay__cta:focus-visible,
.fs-mobile-overlay__cta.btn-primary:hover,
.fs-mobile-overlay__cta.btn-primary:focus-visible {
  background: var(--fs-dark) !important;
  border-color: var(--fs-dark) !important;
  color: #fff !important;
}

/* Footer link lists: small horizontal line before every linked list item.
   currentColor keeps line and link perfectly synchronized on hover. */
.fs-footer ul,
.fs-footer__editable ul {
  list-style: none;
  padding-left: 0;
}
.fs-footer ul li,
.fs-footer__editable ul li {
  margin: 0 0 8px;
  padding: 0;
}
.fs-footer ul li > a:not(.btn),
.fs-footer__editable ul li > a:not(.btn) {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.fs-footer ul li > a:not(.btn)::before,
.fs-footer__editable ul li > a:not(.btn)::before {
  content: "";
  display: inline-block;
  flex: 0 0 16px;
  width: 16px;
  height: 1px;
  background: currentColor;
  transition: width .2s ease, background-color .2s ease;
}
.fs-footer ul li > a:not(.btn):hover::before,
.fs-footer ul li > a:not(.btn):focus-visible::before,
.fs-footer__editable ul li > a:not(.btn):hover::before,
.fs-footer__editable ul li > a:not(.btn):focus-visible::before {
  width: 22px;
}

/* More breathing room between columns whenever separator lines are enabled. */
@media (min-width: 768px) {
  .frame-fs-column-dividers .fs-columns > .row > [class*="col-"],
  .frame-fs-column-dividers .fs-columns > .row > .ce-col {
    padding-left: clamp(18px, 2.2vw, 34px) !important;
    padding-right: clamp(18px, 2.2vw, 34px) !important;
  }
  .frame-fs-column-dividers .fs-columns > .row > [class*="col-"]:first-child,
  .frame-fs-column-dividers .fs-columns > .row > .ce-col:first-child {
    padding-left: 0 !important;
  }
  .frame-fs-column-dividers .fs-columns > .row > [class*="col-"]:last-child,
  .frame-fs-column-dividers .fs-columns > .row > .ce-col:last-child {
    padding-right: 0 !important;
  }
}
@media (max-width: 767.98px) {
  .frame-fs-column-dividers .fs-columns > .row > [class*="col-"],
  .frame-fs-column-dividers .fs-columns > .row > .ce-col {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* LinkedCheckbox sauber darstellen */
.form-element-check .form-check {
    padding-left: 0;
    margin: 0;
}

.form-element-check label.form-check-input.form-check-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;

    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;

    margin: 0;
    padding: 0;

    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;

    float: none !important;
    cursor: pointer;
}

/* echte Checkbox */
.form-element-check label.form-check-label > input.form-check-input {
    flex: 0 0 18px;
    width: 18px !important;
    height: 18px !important;

    margin: 3px 0 0 0 !important;
    padding: 0;

    float: none !important;
}

/* Text */
.form-element-check label.form-check-label > span {
    display: block;
    flex: 1 1 auto;

    width: auto !important;
    min-width: 0;

    margin: 0;
    padding: 0;

    line-height: 1.5;
    background: transparent !important;
}

/* Datenschutz-Link */
.form-element-check label.form-check-label > span a {
    color: var(--fs-primary) !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.form-element-check label.form-check-label > span a:hover {
    color: var(--fs-dark) !important;
}
.text-primary {
	--bs-text-opacity: 1;
	color: var(--fs-primary) !important;
	font-weight: normal;
}