/****************************************************************************************************
*** fonts
****************************************************************************************************/

@font-face { font-family: 'Merriweather'; src: url('../fonts/merriweather-v33-latin-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: fallback; }
@font-face { font-family: 'Merriweather'; src: url('../fonts/merriweather-v33-latin-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: fallback; }
@font-face { font-family: 'Merriweather'; src: url('../fonts/merriweather-v33-latin-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: fallback; }
@font-face { font-family: 'Font Awesome 7 Free'; src: url('../fonts/fa-regular-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Font Awesome 7 Free'; src: url('../fonts/fa-solid-900.woff2') format('woff2'); font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Font Awesome 7 Free'; src: url('../fonts/fa-brands-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Font Awesome 7 Free'; src: url('../fonts/fa-v4compatibility.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }

/***************************************************************************************************
*** vendor override: tiny-slider.js
***************************************************************************************************/

/*** navigation dots ***/
.tns-nav { text-align: center; margin: 10px 0; }
.tns-nav > [aria-controls] { width: 1rem; height: 1rem; padding: 0; margin: 0 5px; border-radius: 50%; background: rgba(255, 255, 255, 1); border: 1px solid rgb(var(--bs-dark-rgb)); }
[class*="bg-primary"] .tns-nav > [aria-controls] { border-color: rgb(255, 255, 255); }
.tns-nav > .tns-nav-active { background: rgba(var(--bs-dark-rgb), 1); }

/****************************************************************************************************
*** system elements
****************************************************************************************************/

a[type=button] { appearance: none; -webkit-appearance: none; } /* prevents link with attribute "type=button" from being displayed as system element */
::selection { background: var(--bs-primary); color: rgb(255, 255, 255); text-shadow: none; }
:active, :focus { outline: none !important; }
:focus { outline: none !important; }
:root { --banner-fader-height: 200px; } /* 200px = mobile / 400px = desktop */

html, body { width: 100%; margin: 0; padding: 0;  scroll-behavior: smooth; overscroll-behavior-y: none; --video-border-radius: 0; --video-border: 0; /* removes border from video player */ }
html { scroll-behavior: smooth; overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; -webkit-tap-highlight-color: var(--bs-primary); scroll-padding-top: 5rem; }
body { position: relative; height: 100%; -ms-word-wrap: break-word; word-wrap: break-word; }
.container.boxed { padding: 0; background-color: rgb(255, 255, 255); box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15); }
main { background: linear-gradient(180deg, rgb(255, 255, 255), #faf5ee); }
.post-content { margin-top: 3rem; }
.alert ul { margin: 0; padding: 0; list-style-type: none; } 
.btn-white { background-color: rgb(255, 255, 255); color: rgb(var(--bs-primary-rgb)); border: 1px solid #cdbfae; }
.accent-gradient { background-image: linear-gradient(0deg, #6f2430 0%, #923441 45%, #b24a58 100%);}
.primary-gradient { background-image: linear-gradient(0deg, #3e2a1d 0%, #4d3322 45%, #6a4a33 100%);}
.light-gradient { background-image: linear-gradient(0deg, #ffffff 0%, #f5f0e6 45%, #e6dac8 100%); }
.light-gradient-invert { background-image: linear-gradient(0deg, #e6dac8 0%, #f5f0e6 45%, #ffffff 100%); }
ul, ol { padding-left: 1rem; }
ul { list-style-type: square; }
p:last-child { margin-bottom: 0; }

nav#footer-menu ul { list-style-type: none; padding: 0; margin: 0; }
nav#footer-menu ul li:not(:last-child) { margin-bottom: 0.75rem; }

.opening-hours { width: 300px; }
footer .opening-hours { margin-top: 0 !important; }
/****************************************************************************************************
/*** fragment: section.php
/***************************************************************************************************/

section { position: relative; overflow: hidden; z-index: 0; padding-left: 5%; padding-right: 5%; }
.pt { padding-top: 3rem !important; }
.ptzero { padding-top: 0 !important; }
.ptxs { padding-top: 1rem !important; }
.ptsm { padding-top: 2rem !important; }
.ptlg { padding-top: 4rem !important; }
.ptxl { padding-top: 5rem !important; }
.pb { padding-bottom: 3rem !important; }
.pbzero { padding-bottom: 0 !important; }
.pbxs { padding-bottom: 1rem !important; }
.pbsm { padding-bottom: 2rem !important; }
.pblg { padding-bottom: 4rem !important; }
.pbxl { padding-bottom: 5rem !important; }
.pext { padding: 0 5%; }
.mt { margin-top: 3rem !important; }
.mtzero { margin-top: 0 !important; }
.mtxs { margin-top: 1rem !important; }
.mtsm { margin-top: 2rem !important; }
.mtlg { margin-top: 4rem !important; }
.mtxl { margin-top: 5rem !important; }
.mb { margin-bottom: 3rem !important; }
.mbzero { margin-bottom: 0 !important; }
.mbxs { margin-bottom: 1rem !important; }
.mbsm { margin-bottom: 2rem !important; }
.mblg { margin-bottom: 4rem !important; }
.mbxl { margin-bottom: 5rem !important; }
@media(min-width: 992px){
    section { padding-left: 3rem; padding-right: 3rem; }
    .pt { padding-top: 6rem !important; }
    .ptzero { padding-top: 0 !important; }
    .ptxs { padding-top: 2rem !important; }
    .ptsm { padding-top: 4rem !important; }
    .ptlg { padding-top: 8rem !important; }
    .ptxl { padding-top: 10rem !important; }
    .ptxl.parallaxe { padding-top: 14rem !important; }
    .pb { padding-bottom: 6rem !important; }
    .pbzero { padding-bottom: 0 !important; }
    .pbxs { padding-bottom: 2rem !important; }
    .pbsm { padding-bottom: 4rem !important; }
    .pblg { padding-bottom: 8rem !important; }
    .pbxl { padding-bottom: 10rem !important; }
    .pbxl.parallaxe { padding-bottom: 14rem !important; }
    .mt { margin-top: 6rem !important; }
    .mtzero { margin-top: 0 !important; }
    .mtxs { margin-top: 2rem !important; }
    .mtsm { margin-top: 4rem !important; }
    .mtlg { margin-top: 8rem !important; }
    .mtxl { margin-top: 10rem !important; }
    .mb { margin-bottom: 6rem !important; }
    .mbzero { margin-bottom: 0 !important; }
    .mbxs { margin-bottom: 2rem !important; }
    .mbsm { margin-bottom: 4rem !important; }
    .mblg { margin-bottom: 8rem !important; }
    .mbxl { margin-bottom: 10rem !important; }
}
@media(min-width: 1200px){
    main section:first-child { margin-top: 0;}
}

/****************************************************************************************************
/*** fragment: headline.php
/***************************************************************************************************/

.headline { position: relative; text-align: center; }
.headline h2 { margin-bottom: 1.5rem; }
.headline.sub { text-transform: none; }
.headline p { margin: 0; }
.headline p.topline { position: relative; display: inline-block; margin: 0; color: rgb(var(--bs-primary-rgb)); font-weight: 400; line-height: 1.2 }
.headline p.subline { margin-top: 1.5rem; }
.separator { width: 100px; height: 0.5rem; background-color: rgb(var(--bs-primary-rgb)); margin: 0 auto; margin-top: 1.5rem; margin-bottom: 3rem; }
.headline:last-child { margin-bottom: 10rem; }
.headline.text-start .separator { margin-right: 100%; }
.headline.text-end .separator { margin-left: calc(100% - 100px); } /* 100% - Breite des separators */
.headline:not(:has(.separator)) { margin-top: 0.75rem; margin-bottom: calc(1.5rem + 0.75rem + 4px); } /* = Höhe des nicht vorhandenen Separators */
.underline { border-bottom: 2px solid var(--bs-border-color); }
.bg-light .underline, .light-gradient .underline { border-color: rgb(var(--bs-primary-rgb)); }
@media(min-width: 992px){
    .headline:not(:has(.separator)) { margin-top: 0; margin-bottom: calc(3rem + 1.5rem + 8px); } /* = Höhe des nicht vorhandenen Separators */
}

/****************************************************************************************************
*** custom elements styling
****************************************************************************************************/

/*** Forms ***/
.yform .form_field { margin-bottom: 1rem; }
.yform label, .yform-label { font-size: 0.875rem; }
.yform .formcheckbox label { font-size: 1rem; }
.yform input, .yform textarea, .yform select { font-size: 1rem; border: 1px solid rgba(0, 0, 0, 0.125); }
.yform select { font-size: 0.875rem;}
/*** password field ***/
.yform .input-group input[name="password"] { margin-right: 1px; }
.yform .input-group .input-group-btn .btn.btn-view { background-color: rgba(0, 0, 0, 0.125); }

/*** Checkbox Switch ***/
.formcheckbox { --switch-size: 10px; --switch-width: calc(var(--switch-size) * 3.5); --switch-height: calc(var(--switch-size) * 2); display: block; width: 100%; }
.formcheckbox input[type="checkbox"] { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.formcheckbox label { position: relative; display: grid; grid-template-columns: var(--switch-width) minmax(0, 1fr); column-gap: 0.75rem; align-items: start; width: 100%; max-width: 100%; height: auto; cursor: pointer; }
.formcheckbox .form-helper { position: relative; display: block; width: var(--switch-width); height: var(--switch-height); background-color: #fff; border: 1px solid #adb5bd; border-radius: 999px; transition: 0.4s; grid-column: 1; grid-row: 1; }
.formcheckbox .form-helper::before { position: absolute; content: ""; width: calc(var(--switch-size) * 1.4); height: calc(var(--switch-size) * 1.4); left: calc(var(--switch-size) * 0.27); bottom: calc(var(--switch-size) * 0.2); border-radius: 999px; background-color: #adb5bd; transition: 0.4s;}
.formcheckbox .checkbox-text { grid-column: 2; grid-row: 1; display: block; min-width: 0; max-width: none; line-height: 1.35; }
.formcheckbox input:checked + .form-helper { background-color: rgb(var(--bs-success-rgb)); border-color: rgb(var(--bs-success-rgb)); }
.formcheckbox input:focus-visible + .form-helper { box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); }
.formcheckbox input:checked + .form-helper::before { transform: translateX(calc(var(--switch-size) * 1.4)); background-color: #fff; }

/*** Background ***/
#background { position: fixed; background: rgb(var(--bs-light-rgb)); background-size: 100% 25%; z-index: -1; width: 100vw; height: 100vh; overflow: hidden; pointer-events: none; }
#background picture, #background img { display: block; width: 100%; height: 100%; object-position: center center; }

/*** Topbanner ***/
#banner-fader { position: relative; width: 100%; max-width: 100vw; overflow: hidden; line-height: 0; }
#banner-fader .banner-fader__image { position: absolute; top: 0; left: 50%; width: 100%; max-width: none; height: var(--banner-fader-height); object-fit: cover; transform: translateX(-50%); opacity: 0; transition: opacity 900ms ease; }
#banner-fader .banner-fader__image.is-active { opacity: 1; z-index: 1; }
#banner-fader .banner-fader__image:first-child { position: relative; }
#top-banner { position: absolute; top: 0; z-index: 1; left: 50%; transform: translateX(-50%); }
#top-banner::after { display: none; content: ""; position: absolute; top: 0; right: 0; width: var(--banner-fader-height); height: var(--banner-fader-height); background: conic-gradient(from 90deg, rgba(var(--bs-accent-rgb), 0.9) 0deg 90deg, rgba(var(--bs-secondary-rgb), 0.9) 90deg 180deg, rgba(255, 255, 255, 0) 180deg 270deg, rgba(var(--bs-primary-rgb), 0.9) 270deg 360deg ); z-index: -1; }
#top-banner #top-logo { position: absolute; top: 0; left: 0; width: 100px; height: 100px; }
#top-banner #top-logo::after { content: ""; position: absolute; top: 0; left: 0; width: var(--banner-fader-height); height: var(--banner-fader-height);  background: conic-gradient(from 90deg, rgba(255, 255, 255, 0) 0deg 90deg, rgba(var(--bs-accent-rgb), 0.9) 90deg 180deg, rgba(255, 255, 255, 0) 180deg 270deg, rgba(var(--bs-primary-rgb), 0.9) 270deg 360deg ); }
@media(min-width: 576px){
    #top-banner::after { display: block; }
}
@media(min-width: 1400px){
    #banner-fader .banner-fader__image { height: calc(2 * var(--banner-fader-height)); }
    #top-banner::after, #top-banner #top-logo::after  { width: calc(2 * var(--banner-fader-height)); height: calc(2 * var(--banner-fader-height)); }
    #top-banner #top-logo, #top-banner #top-logo img { width: var(--banner-fader-height); height: var(--banner-fader-height); }
}

/*** Navigation (Desktop) ***/
nav#main-menu { padding: 0; }
nav#main-menu .nav-item .nav-link { font-family: "Merriweather"; font-weight: bold; font-size: 1.2rem; color: rgb(var(--bs-primary-rgb)); letter-spacing: 1px; padding: 1rem 1.5rem; border-right: 1px solid rgba(var(--bs-dark-rgb), .15); }
nav#main-menu .nav-item .nav-link.highlight { background-color: rgb(var(--bs-secondary-rgb)); background-image: var(--bs-gradient); }
nav#main-menu .nav-item:first-child .nav-link { border-left: 1px solid rgba(var(--bs-dark-rgb), .15); }
nav#main-menu .nav-item.active .nav-link  { background-color: rgb(255, 255, 255); }
nav#main-menu .nav-item .nav-link:hover { background-color: rgb(var(--bs-accent-rgb)); color: rgb(255, 255, 255); }
nav#main-menu ul.dropdown-menu { background-color: var(--bs-info); background-image: var(--bs-gradient); margin-top: 0; padding: 0; min-width: 100%; }
nav#main-menu ul.dropdown-menu .nav-item .nav-link { font-size: 1rem; border: 0; padding: .75rem 1rem; }
nav#main-menu #main-menu-toggler { position: absolute; top: -200px; right: 0; width: 100px; height: 100px; background: rgba(var(--bs-primary-rgb), 0.9) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iRWJlbmVfMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MCA1MCI+CiAgPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDMwLjMuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDIuMS4zIEJ1aWxkIDE4MikgIC0tPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuc3QwIHsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICB9CgogICAgICAuc3QxIHsKICAgICAgICBmaWxsOiAjNGQzMzIyOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0iRWJlbmVfMS0yIj4KICAgIDxyZWN0IGNsYXNzPSJzdDAiIHk9IjAiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIvPgogICAgPHBhdGggY2xhc3M9InN0MSIgZD0iTTQyLjUsMTUuOEg3LjV2LTUuN2gzNXY1LjdaTTQyLjUsMjcuOEg3LjV2LTUuN2gzNXY1LjdaTTQyLjUsMzkuOEg3LjV2LTUuN2gzNXY1LjdaIi8+CiAgPC9nPgo8L3N2Zz4="); background-repeat: no-repeat; background-size: 50px; background-position: center; z-index: 1; }

/*** Teaser Box ***/

.teaser-container { position: relative; display: flex; flex-direction: column; align-items: start; height: 100%; background-color: rgb(255, 255, 255); }
.teaser-container.link-block .teaser-link { width: 100%; }
.teaser-container.link-block .teaser-link a { display: block; }
.teaser-container.border,
.teaser-container.open-list { border: 1px solid #cdbfae; }



section.teaser-box-image:has(.teaser-container.open-list) .teaser-container:not(.open-list)::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.7); pointer-events: none; }


.teaser-container .teaser-heading,
.teaser-container .icon-image { padding: 1rem; padding-bottom: 0; }
.teaser-container .teaser-text { width: 100%; flex-grow: 1;padding: 1rem; }
.teaser-container .teaser-text p { margin-bottom: 0; }
.teaser-container :is(h1, h2, h3, h4, h5, h6), /* extension for icon version */
.teaser-container .teaser-heading .icon-prefix { display: flex; align-items: center; gap: 1rem; font-size: 1.375rem; margin-bottom: 0.5rem; padding-bottom: 0.5rem; }
.teaser-container .teaser-heading .icon-prefix img { flex: 0 0 auto; }
.teaser-container .teaser-heading .icon-prefix span { min-width: 0; }
.teaser-container .teaser-links { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: 1rem; padding-top: 0; }
.teaser-container .teaser-links .teaser-link { padding: 0; }
.teaser-container .teaser-link { padding: 1rem; padding-top: 0; }
/* Teaser Box (Produkt-Seite) */
.teaser-product-list::after { content: ""; position: absolute; z-index: 1; top: 0; right: 0; width: 30px; height: 30px; cursor: pointer;  padding: 1rem; background: rgb(var(--bs-accent-rgb)) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iRWJlbmVfMiIgZGF0YS1uYW1lPSJFYmVuZSAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MCA1MCI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2ZmZjsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPGcgaWQ9IkViZW5lXzEtMiIgZGF0YS1uYW1lPSJFYmVuZSAxIj4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTcuMTIsMS4yM0M1LjQ5LS4zOSwyLjg1LS4zOSwxLjIyLDEuMjMtLjQxLDIuODYtLjQxLDUuNSwxLjIyLDcuMTNsMTcuODgsMTcuODdMMS4yMyw0Mi44OGMtMS42MywxLjYzLTEuNjMsNC4yNywwLDUuOSwxLjYzLDEuNjMsNC4yNywxLjYzLDUuOSwwbDE3Ljg3LTE3Ljg4LDE3Ljg4LDE3Ljg3YzEuNjMsMS42Myw0LjI3LDEuNjMsNS45LDAsMS42My0xLjYzLDEuNjMtNC4yNywwLTUuOWwtMTcuODgtMTcuODdMNDguNzcsNy4xMmMxLjYzLTEuNjMsMS42My00LjI3LDAtNS45LTEuNjMtMS42My00LjI3LTEuNjMtNS45LDBsLTE3Ljg3LDE3Ljg4TDcuMTIsMS4yM1oiLz4KICA8L2c+Cjwvc3ZnPg=="); background-size: 15px; background-repeat: no-repeat; background-position: center; }
.teaser-container + .teaser-product-list { display: none; position: absolute; z-index: 1; left:0; width: 100%; min-height: calc(200px + 1rem); padding: 2rem 4rem 3rem; background: rgb(var(--bs-light-rgb)) linear-gradient(0deg, rgba(var(--bs-secondary-rgb), 1), rgba(0, 0, 0, 0)); color: rgb(255, 255, 255); border-left: 1px solid #cdbfae; border-right: 1px solid #cdbfae; }
.teaser-container.open-list { background-color: rgb(var(--bs-light-rgb)); }
.teaser-product-list ul.teaser-product-list-items { list-style-type: none; padding: 0; margin: 0; }
.teaser-product-list ul.teaser-product-list-items li { height: 50px; line-height: 50px; }
.teaser-product-list ul.teaser-product-list-items li a { color: rgb(255, 255, 255); }

/*** Product Detail ***/
.product-detail-content { position: relative; }
.product-breadcrumb { margin-bottom: 1.5rem; }
.product-breadcrumb .breadcrumb { --bs-breadcrumb-divider-color: rgb(var(--bs-primary-rgb)); --bs-breadcrumb-item-active-color: rgb(var(--bs-dark-rgb)); display: inline-flex; flex-wrap: wrap; gap: 0.25rem 0; margin: 0; padding: 0.75rem 1rem; background: rgba(255, 255, 255, 0.75); border: 1px solid #cdbfae; }
.product-breadcrumb .breadcrumb-item { font-size: 0.9375rem; font-weight: 700; }
.product-breadcrumb .breadcrumb-item a { color: rgb(var(--bs-primary-rgb)); text-decoration-color: rgba(var(--bs-primary-rgb), 0.35); text-underline-offset: 0.2em; }
.product-breadcrumb .breadcrumb-item a:hover { color: rgb(var(--bs-accent-rgb)); }
.product-detail-main .headline { margin-bottom: 1.5rem; }
.product-detail-content h1 { color: rgb(var(--bs-primary-rgb)); margin-bottom: 1.5rem; }
.product-detail-description { max-width: 860px; font-size: 1.0625rem; }
.product-detail-description > :last-child { margin-bottom: 0; }
.product-detail-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }

.product-detail-aside { align-self: flex-start; }
.product-category-image { margin-bottom: 3rem; }
.product-category-image img { display: block; width: 100%; height: auto; border: 1px solid #cdbfae; }
.product-downloads-header { margin-bottom: 1.25rem; }
.product-downloads-kicker { display: inline-flex; align-items: center; margin-bottom: 1rem; padding: 0.25rem 0.75rem; color: rgb(255, 255, 255); background: rgb(var(--bs-primary-rgb)); font-size: 0.875rem; font-weight: 700; }
.product-downloads h2 { margin-bottom: 0; color: rgb(var(--bs-primary-rgb)); }
.product-download-card { position: relative; display: grid; grid-template-columns: 3rem minmax(0, 1fr); grid-template-rows: auto auto; gap: 0 1rem; height: 100%; min-height: 8.5rem; padding: 1.25rem; color: rgb(var(--bs-dark-rgb)); background: rgb(255, 255, 255); border: 1px solid #cdbfae; box-shadow: 0 0.5rem 1.25rem rgba(77, 51, 34, 0.12); }
.product-download-icon { display: inline-flex; grid-column: 1; grid-row: 1 / span 2; align-items: center; justify-content: center; width: 3rem; height: 3rem; color: rgb(255, 255, 255); background: rgb(var(--bs-accent-rgb)); font-size: 1.35rem; }
.product-download-body { display: flex; grid-column: 2; grid-row: 1; min-width: 0; flex-direction: column; gap: 0.35rem; }
.product-download-title { overflow-wrap: anywhere; color: rgb(var(--bs-primary-rgb)); font-weight: 700; line-height: 1.25; }
.product-download-meta { color: #6b5a4a; font-size: 0.875rem; font-weight: 700; }
.product-download-button { grid-column: 2; grid-row: 2; align-self: end; justify-self: end; width: auto; max-width: max-content; margin-top: 1rem; }
.product-download-empty { display: flex; gap: 1rem; align-items: flex-start; padding: 1.25rem; background: rgba(var(--bs-light-rgb), 0.85); border: 1px solid #cdbfae; color: rgb(var(--bs-primary-rgb)); font-weight: 700; }
.product-download-empty .fa-solid { margin-top: 0.2rem; color: rgb(var(--bs-accent-rgb)); font-size: 1.25rem; }
.product-download-empty p { margin: 0; }

.opening-hours li { border-bottom: 1px solid var(--bs-border-color); }
.opening-hours li:last-child { border-bottom: 0; }






/* =========================================================
   TIMELINE SECTION: Unternehmen / Historie
   Basis für:
   .section-company-timeline
   .timeline-list
   .timeline-item
   .timeline-year
   .timeline-card
   ========================================================= */

.section-company-timeline {
  position: relative;
  overflow: hidden;
}

.timeline-list {
  position: relative;
  z-index: 1;
}

.timeline-item {
  position: relative;
  margin-bottom: 1.75rem;
}

.timeline-year {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 110px;
  padding: 0.85rem 1.1rem;
  color: #fff;
  font-size: 0.95rem;
  line-height: 1;
  letter-spacing: 0.04em;
}

.timeline-card {
  position: relative;
  background: rgb(255, 255, 255);
}

.timeline-card h3,
.timeline-card .h4 {
  margin-bottom: 0.65rem;
  color: #3e2b1d;
}

.timeline-card p {
  margin-bottom: 0;
  color: #5f5144;
  line-height: 1.7;
}

/* Desktop-Timeline-Linie */
@media (min-width: 768px) {
  .timeline-list::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(16.66666667% - 1px);
    width: 2px;
    background: linear-gradient(
      180deg,
      rgba(122, 90, 58, 0.12) 0%,
      rgba(122, 90, 58, 0.28) 15%,
      rgba(122, 90, 58, 0.28) 85%,
      rgba(122, 90, 58, 0.12) 100%
    );
  }

  .timeline-item::before {
    content: "";
    position: absolute;
    left: calc(16.66666667% - 7px);
    top: 2.7rem;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #7a5a3a;
    border: 3px solid #f7f2ea;
    box-shadow: 0 0 0 4px rgba(122, 90, 58, 0.14);
    z-index: 2;
  }

  .timeline-year {
    margin-top: 0.35rem;
  }

  .timeline-card {
    margin-left: 0.5rem;
  }
}

/* Tablet / Mobil */
@media (max-width: 767.98px) {
  .timeline-item {
    margin-bottom: 1.25rem;
  }

  .timeline-year {
    margin-bottom: 0.85rem;
    min-width: 0;
  }

  .timeline-card {
    border-radius: 0;
  }
}

