/* ab 2188 custom css */
@charset "UTF-8";

.topbar {display:none !important;}

:root {
scroll-behavior:smooth
}
:root {
--background-color:#fff;
--default-color:#000;
--heading-color:#2a6c48;
--accent-color:#2a6c48;
--surface-color:#fff;
--contrast-color:#000;
--heading-color-rgba:#376800;
--nav-color:#000;
--nav-color-active:#2a6c48;
--nav-hover-color:#aaafb9;
--nav-hover-active:#2a6c48;
--nav-mobile-background-color:#fff;
--nav-dropdown-background-color:#fff;
--nav-dropdown-color:#242d3d;
--nav-dropdown-hover-color:#1a84ee;
--lightgray-color:#f6f6f6;
--footer-color:#eae6da;
--footer-color-light:#000;
--header-bg-color:#fff;
}

@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:
    url("../fonts/CormorantGaramond-Regular.woff2") format("woff2"),
    url("../fonts/CormorantGaramond-Regular.woff") format("woff"),
    url("../fonts/CormorantGaramond-Regular.ttf") format("truetype");
}

@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src:
    url("../fonts/CormorantGaramond-Medium.woff2") format("woff2"),
    url("../fonts/CormorantGaramond-Medium.woff") format("woff"),
    url("../fonts/CormorantGaramond-Medium.ttf") format("truetype");
}

@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src:
    url("../fonts/CormorantGaramond-SemiBold.woff2") format("woff2"),
    url("../fonts/CormorantGaramond-SemiBold.woff") format("woff"),
    url("../fonts/CormorantGaramond-SemiBold.ttf") format("truetype");
}

@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src:
    url("../fonts/CormorantGaramond-Bold.woff2") format("woff2"),
    url("../fonts/CormorantGaramond-Bold.woff") format("woff"),
    url("../fonts/CormorantGaramond-Bold.ttf") format("truetype");
}

/* bellota-text-300 - latin */
@font-face {
  font-display: swap;
  font-family: 'Bellota Text';
  font-style: normal;
  font-weight: 300;
  src: url('../fonts/bellota-text-v20-latin-300.woff2') format('woff2'),
       url('../fonts/bellota-text-v20-latin-300.ttf') format('truetype');
}

/* bellota-text-regular - latin */
@font-face {
  font-display: swap;
  font-family: 'Bellota Text';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/bellota-text-v20-latin-regular.woff2') format('woff2'),
       url('../fonts/bellota-text-v20-latin-regular.ttf') format('truetype'); 
}

/* bellota-text-700 - latin */
@font-face {
  font-display: swap;
  font-family: 'Bellota Text';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/bellota-text-v20-latin-700.woff2') format('woff2'), 
       url('../fonts/bellota-text-v20-latin-700.ttf') format('truetype'); 
}


:root {
--default-font:"Bellota Text",Arial,Helvetica,sans-serif;
--heading-font:"Cormorant Garamond", Garamond, Times, serif;
--nav-font:"Cormorant Garamond",serif;
--default-font-size: 1.3rem !important;
--font-size-h1: 3.4rem;
--font-size-h2: 2.8rem;
--font-size-h3: 2.25rem;
--font-size-h4: 1.85rem;
--font-size-h5: 1.55rem;
--font-size-h6: 1.35rem;
}

.light-background {
--background-color:#f0edcc;
--surface-color:#fff
}

.dark-background {
--background-color:#060606;
--default-color:#fff;
--heading-color:#fff;
--surface-color:#252525;
--contrast-color:#fff
}




/* general -------------------------------- */
body {
  color: var(--default-color);
  background-color: var(--background-color);
  font-family: var(--default-font);
  font-weight: 300;
  font-size: var(--default-font-size);
  font-variant-ligatures: no-common-ligatures;
  }
  
@media (min-width: 1480px) {
.container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
  max-width: 1400px;
}
}

a {
color:var(--accent-color);
text-decoration:none;
transition:.3s
}

a:hover {
color:color-mix(in srgb,var(--accent-color),transparent 25%);
text-decoration:none
}

h1,h2,h3,h4,h5,h6 {
color:var(--heading-color);
font-family:var(--heading-font);
line-height: 1.15;
text-transform: uppercase;
}
h1 {
  font-size: var(--font-size-h1);
  font-weight: 500;
}

h2 {
  font-size: var(--font-size-h2);
  font-weight: 500;
}

h3 {
  font-size: var(--font-size-h3);
  font-weight: 500;
}

h4 {
  font-size: var(--font-size-h4);
  font-weight: 500;
}

h5 {
  font-size: var(--font-size-h5);
  font-weight: 500;
}

h6 {
  font-size: var(--font-size-h6);
  font-weight: 500;
}

@media (max-width: 767.98px) {
  :root {
    --default-font-size: 1.1rem !important;

    --font-size-h1: 2.5rem;
    --font-size-h2: 2.2rem;
    --font-size-h3: 1.9rem;
    --font-size-h4: 1.65rem;
    --font-size-h5: 1.45rem;
    --font-size-h6: 1.25rem;
  }
}

/* topbar -------------------------------- */

.header .topbar {
/*  background-color: var(--lightgray-color); */
  height: 45px;
  padding: 0;
  font-size: 1.1rem;
  transition: all 0.5s;
  display: flex;
  align-items: center;
  box-shadow: 0px 0 10px rgba(0, 0, 0, 0.1);
}
@media (max-width: 767.98px) {
.header .topbar {
  display: none;
}
.header .logo img {
margin-bottom:1rem;
}
}


.header .topbar .contact-info i {
  font-style: normal;
  color: var(--contrast-color);
}

.header .topbar .contact-info i a,
.header .topbar .contact-info i span {
  padding-left: 5px;
  color: var(--contrast-color);
}

@media (max-width: 575px) {
  .header .topbar .contact-info i a,
  .header .topbar .contact-info i span {
    font-size: 13px;
  }
}

.header .topbar .contact-info i a {
  line-height: 0;
  transition: 0.3s;
}

.header .topbar .contact-info i a:hover {
  color: var(--contrast-color);
  text-decoration: underline;
}

.header .topbar .social-links a {
  color: color-mix(in srgb, var(--contrast-color), transparent 40%);
  line-height: 0;
  transition: 0.3s;
  margin-left: 20px;
}

.header .topbar .social-links a:hover {
  color: var(--contrast-color);
}

.scrolled .header {
  box-shadow: 0px 0 18px rgba(0, 0, 0, 0.1);
}

.scrolled .header .topbar {
  height: 0;
  visibility: hidden;
  overflow: hidden;
}

/* Ende Header topbar -------------------------------------------------------- */


/* header -------------------------------- */
.header {
color:var(--default-color);
background-color:var(--header-bg-color);
padding:0;
padding-top: 0;
transition:all .5s;
z-index:997
}

.header .logo {
line-height:1
}

.header .logo img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: none;
  margin-top: 1rem;
}

@media (max-width: 1200px) {
.header .logo img {
  max-width: 225px;
}
}

.header .logo i {
font-size:24px;
margin-right:5px;
color:var(--accent-color)
}

.header .logo h1 {
font-size:28px;
margin:0;
letter-spacing:.5px;
color:var(--heading-color)
}

.header .btn-getstarted,.header .btn-getstarted:focus {
color:var(--contrast-color);
background:var(--accent-color);
padding:8px 26px;
margin:0;
border-radius:50px;
transition:.3s;
display:grid;
place-items:center;
font-size:15px
}

.header .btn-getstarted:hover,.header .btn-getstarted:focus:hover {
color:var(--contrast-color);
background:color-mix(in srgb,var(--accent-color),transparent 15%)
}

@media (max-width: 1200px) {
.header .logo {
order:1
}

.header .btn-getstarted {
order:2;
margin:0 15px 0 0;
padding:8px 20px
}

.header .navmenu {
order:3
}
}

.scrolled .header {
box-shadow:0 0 18px #0000001a
}

/* Header-Layouts: zentriert oder Logo links / Menü rechts ------------------------------- */

/*
PHP-Klassen am Branding-Container:
- branding-centered = Logo zentriert, Navigation darunter
- branding-split    = Logo links, Navigation rechts
*/

/* Gemeinsame Basis */
#header .branding {
  width: 100%;
}

#header .branding .logo {
  flex-shrink: 0;
}

#header .branding .navmenu ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

/* Mobil: beide Varianten identisch, Logo zentriert und Burger rechts */
@media (max-width: 767.98px) {
  #header .branding {
    position: relative;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  #header .branding .logo {
    justify-content: center;
  }

  #header .mobile-nav-toggle {
    position: absolute;
    top: 12px;
    right: 16px;
    cursor: pointer;
    z-index: 1001;
  }
}

/* Tablet und Desktop */
@media (min-width: 768px) {
  /* Logo oben, Navigation darunter zentriert */
  #header .branding-centered {
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  #header .branding-centered .logo {
    justify-content: center;
  }

  #header .branding-centered .logo img {
    margin-top: 2rem;
    margin-bottom: 1rem;
  }

  #header .branding-centered .navmenu {
    margin-left: 0;
  }

  #header .branding-centered .navmenu ul {
    gap: 1.5rem;
    justify-content: center;
  }

  /* Logo links, Navigation rechts */
  #header .branding-split {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
  }

  #header .branding-split .logo {
    justify-content: flex-start;
  }

  #header .branding-split .logo img {
    max-height: none;
    max-width: none;
    width: auto;
    margin: 1rem 0 1.25rem 0;
  }

  #header .branding-split .navmenu {
    margin-left: auto;
  }

  #header .branding-split .navmenu ul {
    gap: 1rem;
    justify-content: flex-end;
  }
}

/* Split-Variante auf schmaleren Tablets kompakter halten */

/* iPad hochkant / kleinere Tablets */
@media (min-width: 768px) and (max-width: 991.98px) {
  #header .branding-split {
    gap: 1rem;
  }

  #header .branding-split .logo img {
    width: 180px;
    max-width: 180px;
    height: auto;
  }

  #header .branding-split .navmenu ul {
    gap: .35rem;
  }

  #header .branding-split .navmenu a,
  #header .branding-split .navmenu a:focus {
    font-size: 0.95rem;
    padding-inline: 4px;
  }
}

/* iPad quer / kleine Desktops */
@media (min-width: 992px) and (max-width: 1199.98px) {
  #header .branding-split .logo img {
    width: 220px;
    max-width: 220px;
    height: auto;
  }

  #header .branding-split .navmenu a,
  #header .branding-split .navmenu a:focus {
    font-size: 1.1rem;
    padding: 0px 8px;
  }
}

@media (max-width: 480px) {
  .header .logo img {
    max-width: 200px;
  }
}

/* Ende Header-Layouts -------------------------------------------------------- */

/* nav -------------------------------- */
/* @media (min-width: 1200px) { */
@media (min-width: 768px) {
.navmenu {
padding:0
}

.navmenu ul {
margin:0;
padding:0;
display:flex;
list-style:none;
align-items:center
}

.navmenu li {
position:relative
}

.navmenu a,.navmenu a:focus {
color:var(--nav-color);
padding:17px 15px;
font-family:var(--nav-font);
font-weight:600;
display:flex;
align-items:center;
justify-content:space-between;
white-space:nowrap;
transition:.3s;
text-transform:uppercase;
}

.navmenu a i,.navmenu a:focus i {
font-size:12px;
line-height:0;
margin-left:5px;
transition:.3s;
margin-top: -8px;
}

.navmenu li:last-child a {
padding-right:0
}

.navmenu li:hover>a {
color:var(--nav-hover-color)
}
.navmenu .active,.navmenu .active:focus {
color:var(--nav-color-active)
}

.navmenu .dropdown ul {
margin:0;
padding:10px 0;
background:var(--nav-dropdown-background-color);
display:block;
position:absolute;
visibility:hidden;
left:14px;
top:130%;
opacity:0;
transition:.3s;
border-radius:4px;
z-index:99;
box-shadow:0 0 30px #0000001a
}

.navmenu .dropdown ul li {
min-width:200px
}

.navmenu .dropdown ul a {
padding:10px 20px;
font-size:15px;
text-transform:none;
color:var(--nav-dropdown-color)
}

.navmenu .dropdown ul a i {
font-size:12px
}

.navmenu .dropdown ul a:hover,.navmenu .dropdown ul .active:hover,.navmenu .dropdown ul li:hover>a {
color:var(--nav-dropdown-hover-color)
}

.navmenu .dropdown:hover>ul {
opacity:1;
top:100%;
visibility:visible
}

.navmenu .dropdown .dropdown ul {
top:0;
left:-90%;
visibility:hidden
}

.navmenu .dropdown .dropdown:hover>ul {
opacity:1;
top:0;
left:-100%;
visibility:visible
}
}

/* @media (max-width: 1199px) { */
@media (max-width: 767.98px) {
/*
.mobile-nav-toggle {
color:var(--nav-color);
font-size:28px;
line-height:0;
margin-right:10px;
cursor:pointer;
transition:color .3s
}
*/

/* neu */

  .mobile-nav-toggle {
    position: absolute;
    top: 14px;
    right: 16px;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 44px;
    height: 44px;

    margin: 0;
    padding: 0;

    font-size: 25px;
    line-height: 1;

    color: var(--nav-color);
    background: rgba(255, 255, 255, 0.9);

    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 50%;

    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);

    cursor: pointer;
    z-index: 1001;

    transition:
      background-color 0.25s ease,
      color 0.25s ease,
      border-color 0.25s ease,
      transform 0.25s ease,
      box-shadow 0.25s ease;
  }

  .mobile-nav-toggle:hover,
  .mobile-nav-toggle:focus {
    color: var(--accent-color);
    background: #fff;
    border-color: color-mix(
      in srgb,
      var(--accent-color),
      transparent 55%
    );
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
    transform: translateY(-1px);
  }
/* end neu */

.navmenu {
padding:0;
z-index:9997
}

.navmenu ul {
display:none;
list-style:none;
position:absolute;
inset:60px 20px 20px 20px;
padding:10px 0;
margin:0;
border-radius:6px;
background-color:var(--nav-mobile-background-color);
overflow-y:auto;
transition:.3s;
z-index:9998;
box-shadow:0 0 30px #0000001a
}

.navmenu > ul > li {
display:block;
width:100%
}

.navmenu > ul > li > a {
width:100%
}

.navmenu a,.navmenu a:focus {
color:var(--nav-dropdown-color);
padding:10px 20px;
font-family:var(--nav-font);
font-size:17px;
font-weight:500;
display:flex;
align-items:center;
justify-content:space-between;
white-space:nowrap;
transition:.3s;
text-transform:uppercase;
}

.navmenu a i,.navmenu a:focus i {
font-size:12px;
line-height:0;
margin-left:5px;
width:30px;
height:30px;
display:flex;
align-items:center;
justify-content:center;
border-radius:50%;
transition:.3s;
background-color:color-mix(in srgb,var(--accent-color),transparent 90%)
}

.navmenu a i:hover,.navmenu a:focus i:hover {
background-color:var(--accent-color);
color:var(--contrast-color)
}

.navmenu a:hover,.navmenu .active,.navmenu .active:focus {
color:var(--accent-color)
}

.navmenu .active i,.navmenu .active:focus i {
background-color:var(--accent-color);
color:var(--contrast-color);
transform:rotate(180deg)
}

.navmenu .active,.navmenu .active:focus {
color:var(--accent-color)
}

.navmenu .dropdown ul {
position:static;
display:none;
z-index:99;
padding:10px 0;
margin:10px 20px;
background-color:var(--nav-dropdown-background-color);
border:1px solid color-mix(in srgb,var(--default-color),transparent 90%);
box-shadow:none;
transition:all .5s ease-in-out
}

.navmenu .dropdown ul ul {
background-color:#2125291a
}

.navmenu .dropdown>.dropdown-active {
display:block;
background-color:#21252908
}

.mobile-nav-active {
overflow:hidden
}
/*
.mobile-nav-active .mobile-nav-toggle {
color:#fff;
position:absolute;
font-size:32px;
top:15px;
right:15px;
margin-right:0;
z-index:9999
}
*/
/* neu */

 .mobile-nav-active .mobile-nav-toggle {
    position: absolute;
    top: 14px;
    right: 16px;

    width: 44px;
    height: 44px;

    margin: 0;

    color: #fff;
    background: var(--accent-color);
    border-color: var(--accent-color);

    font-size: 26px;

    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
    z-index: 9999;
  }

/* end neu */

.mobile-nav-active .navmenu {
position:fixed;
overflow:hidden;
inset:0;
background:#212529cc;
transition:.3s
}

.mobile-nav-active .navmenu>ul {
display:block
}
}
/* footer -------------------------------- */
.footer {
color:var(--default-color);
background:var(--footer-color);
font-size:1.2rem;
padding:80px 0 0;
position:relative;
border-top:1px solid color-mix(in srgb,var(--default-color),transparent 85%)
}

.footer .footer-content .logo {
line-height:1
}

.footer .footer-content .logo span {
color:var(--heading-color);
font-size:28px;
font-weight:700;
letter-spacing:.5px;
font-family:var(--heading-font)
}

.footer .footer-content p {
font-size:var(--default-font-size);
color:var(--default-color);
min-width: 240px;
}

.footer .newsletter-form {
margin-top:30px
}

.footer .newsletter-form h5 {
color:var(--heading-color);
font-size:16px;
margin-bottom:15px;
font-family:var(--heading-font)
}

.footer .newsletter-form .input-group {
position:relative;
display:flex;
border-radius:50px;
overflow:hidden;
box-shadow:0 2px 10px color-mix(in srgb,var(--default-color),transparent 90%)
}

.footer .newsletter-form input[type=email] {
flex:1;
padding:12px 20px;
border:none;
background-color:var(--surface-color);
color:var(--default-color);
font-size:14px
}

.footer .newsletter-form input[type=email]:focus {
outline:none;
box-shadow:none
}

.footer .newsletter-form input[type=email]::placeholder {
color:color-mix(in srgb,var(--default-color),transparent 60%)
}

.footer .newsletter-form .btn-subscribe {
background-color:var(--accent-color);
color:var(--contrast-color);
border:none;
padding:12px 20px;
cursor:pointer;
transition:.3s
}

.footer .newsletter-form .btn-subscribe:hover {
background-color:color-mix(in srgb,var(--accent-color),black 10%)
}

.footer .newsletter-form .btn-subscribe i {
font-size:16px
}

.footer .newsletter-form .loading,.footer .newsletter-form .error-message,.footer .newsletter-form .sent-message {
font-size:13px;
margin-top:8px
}

.footer h4 {
color:var(--heading-color);
font-size:18px;
margin-bottom:25px;
position:relative;
font-family:var(--heading-font)
}

.footer h4:after {
content:"";
position:absolute;
left:0;
bottom:-8px;
width:30px;
height:2px;
background-color:var(--accent-color)
}

.footer .footer-links ul {
list-style:none;
padding:0;
margin:0
}

.footer .footer-links ul li {
padding:8px 0;
display:flex;
align-items:center;
transition:.3s
}

.footer .footer-links ul li:hover {
transform:translateX(5px)
}

.footer .footer-links ul a {
color:color-mix(in srgb,var(--default-color),transparent 25%);
text-decoration:none;
display:flex;
align-items:center;
font-size:14px;
transition:.3s
}

.footer .footer-links ul a:hover {
color:var(--accent-color)
}

.footer .footer-links ul a i {
margin-right:8px;
font-size:12px;
color:var(--accent-color)
}

.footer .footer-contact .contact-item {
display:flex;
align-items:flex-start;
margin-bottom:20px
}

.footer .footer-contact .contact-item .contact-icon {
width:40px;
height:40px;
background-color:color-mix(in srgb,var(--accent-color),transparent 90%);
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
margin-right:15px;
flex-shrink:0
}

.footer .footer-contact .contact-item .contact-icon i {
color:var(--accent-color);
font-size:16px
}

.footer .footer-contact .contact-item .contact-info p {
margin:0;
color:color-mix(in srgb,var(--default-color),transparent 20%);
font-size:14px;
line-height:1.5
}

.footer .social-links {
display:flex;
gap:12px;
margin-top:25px
}

.footer .social-links a {
width:42px;
height:42px;
background-color:color-mix(in srgb,var(--default-color),transparent 92%);
color:color-mix(in srgb,var(--default-color),transparent 30%);
display:flex;
align-items:center;
justify-content:center;
border-radius:50%;
transition:.3s;
text-decoration:none
}

.footer .social-links a:hover {
background-color:var(--accent-color);
color:var(--contrast-color);
transform:translateY(-3px)
}

.footer .social-links a i {
font-size:1rem;
}

.footer .footer-bottom {
margin-top:50px;
padding:25px 0;
background-color:color-mix(in srgb,var(--default-color),transparent 95%);
border-top:1px solid color-mix(in srgb,var(--default-color),transparent 85%)
}

.footer .footer-bottom .copyright p {
margin:0;
font-size:1rem;
color:color-mix(in srgb,var(--default-color),transparent 20%)
}

@media (max-width: 991px) {
.footer .footer-bottom .copyright p {
text-align:center;
margin-bottom:15px
}
}

.footer .footer-bottom .footer-bottom-links {
text-align:right;
margin-bottom:8px
}

@media (max-width: 991px) {
.footer .footer-bottom .footer-bottom-links {
text-align:center;
margin-bottom:10px
}
}

.footer .footer-bottom .footer-bottom-links a {
color:color-mix(in srgb,var(--default-color),transparent 30%);
font-size:1rem;
margin-left:20px;
text-decoration:none
}

.footer .footer-bottom .footer-bottom-links a:first-child {
margin-left:0
}

.footer .footer-bottom .footer-bottom-links a:hover {
color:var(--accent-color)
}

@media (max-width: 991px) {
.footer .footer-bottom .footer-bottom-links a {
margin:0 10px
}
}

.footer .footer-bottom .credits {
text-align:right;
font-size:13px;
color:color-mix(in srgb,var(--default-color),transparent 40%)
}

@media (max-width: 991px) {
.footer .footer-bottom .credits {
text-align:center
}
}

.footer .footer-bottom .credits a {
color:var(--accent-color);
text-decoration:none
}

.footer .footer-bottom .credits a:hover {
text-decoration:underline
}

@media (max-width: 768px) {
.footer {
padding:60px 0 0
}

.footer .footer-content {
text-align:center;
margin-bottom:40px
}

.footer .footer-links,.footer .footer-contact {
margin-bottom:40px
}
}

input[type=text],input[type=email],textarea {
color:var(--default-color);
background-color:var(--surface-color);
font-size:14px;
border-color:color-mix(in srgb,var(--default-color),transparent 80%)
}

input[type=text]:focus,input[type=email]:focus,textarea:focus {
border-color:var(--accent-color)
}

input[type=text]::placeholder,input[type=email]::placeholder,textarea::placeholder {
color:color-mix(in srgb,var(--default-color),transparent 70%)
}
/* preloader -------------------------------- */
#preloader {
position:fixed;
inset:0;
z-index:999999;
overflow:hidden;
background:var(--background-color);
transition:all .6s ease-out
}

#preloader:before {
content:"";
position:fixed;
top:calc(50% - 30px);
left:calc(50% - 30px);
border:6px solid #fff;
border-color:var(--accent-color) transparent;
border-radius:50%;
width:60px;
height:60px;
animation:animate-preloader 1.5s linear infinite
}

@keyframes animate-preloader {
0% {
transform:rotate(0deg)
}

100% {
transform:rotate(360deg)
}
}
/* scroll-top -------------------------------- */
.scroll-top {
position:fixed;
visibility:hidden;
opacity:0;
right:15px;
bottom:-15px;
z-index:99999;
background-color:var(--accent-color);
width:44px;
height:44px;
border-radius:50px;
transition:all .4s
}

.scroll-top i {
font-size:24px;
color:var(--surface-color);
line-height:0
}

.scroll-top:hover {
background-color:color-mix(in srgb,var(--accent-color),transparent 20%);
color:var(--surface-color)
}

.scroll-top.active {
visibility:visible;
opacity:1;
bottom:15px
}
/* Disable aos animation delay on mobile devices -------------------------------- */
@media screen and (max-width: 768px) {
[data-aos-delay] {
transition-delay:0!important
}
}
/* page title -------------------------------- */
.page-title {
color:var(--default-color);
background-color:var(--background-color);
padding:25px 0;
position:relative
}

.page-title h1 {
font-size:24px;
}

.page-title .breadcrumbs ol {
display:flex;
flex-wrap:wrap;
list-style:none;
padding:0;
margin:0;
font-size:14px;
font-weight:400
}

.page-title .breadcrumbs ol li+li {
padding-left:10px
}

.page-title .breadcrumbs ol li+li::before {
content:"/";
display:inline-block;
padding-right:10px;
color:color-mix(in srgb,var(--default-color),transparent 70%)
}
/* section -------------------------------------------------------------------------- */
section,.section {
color:var(--default-color);
background-color:var(--background-color);
padding:50px 0;
/* scroll-margin-top:130px !important; */ /* Hinweis der Scroll Abstand wird in der main-tm.js eingestellt */
overflow:clip;
position:relative
}

.section-title {
text-align:center;
padding-bottom:50px;
position:relative
}

@media (max-width: 767.98px) {
  section,
  .section {
    padding: 40px 0;
  }

  .section-title {
    padding-bottom: 35px;
  }
}

@media (max-width: 420px) {
  section,
  .section {
    padding: 32px 0;
  }

  .section-title {
    padding-bottom: 28px;
  }
}

/* Basis-Reset für alle h2 in section-titles (wichtig!) */
.section-title h2 {
  position: relative;
  text-align: center;
}

/* Alle Linien-Styles zurücksetzen, falls Klassen vorhanden sind */
.section-title[class*="v"] h2::before,
.section-title[class*="v"] h2::after {
  content: none; /* Verhindert, dass Default-Styles durchschlagen */
}

/* v0 / Default: Lange dünne und kurze dicke Linie ------------------------- */
.section-title.v0 h2::before,
.section-title.v-default h2::before {
  content: "";
  position: absolute;
  width: 160px;
  height: 1px;
  background: color-mix(in srgb, var(--default-color), transparent 60%);
  left: 0; right: 0; bottom: 1px; margin: auto;
}

.section-title.v0 h2::after,
.section-title.v-default h2::after {
  content: "";
  position: absolute;
  width: 60px;
  height: 3px;
  background: var(--accent-color);
  left: 0; right: 0; bottom: 0; margin: auto;
}

/* v1: Linie mit dickem, zentriertem Punkt --------------------------------- */
.section-title.v1 h2 {
  padding-bottom: 20px;
}

.section-title.v1 h2::before {
  content: "";
  position: absolute;
  bottom: 0; left: 50%; transform: translateX(-50%);
  width: 100px; height: 1px;
  background: color-mix(in srgb, var(--default-color), transparent 80%);
}

.section-title.v1 h2::after {
  content: "";
  position: absolute;
  bottom: -3px; left: 50%; transform: translateX(-50%);
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--accent-color);
}

/* v2: Eckige Klammern --------------------------------------------------- */
.section-title.v2 h2 {
  display: inline-block;
  padding: 0 25px;
}

.section-title.v2 h2::before,
.section-title.v2 h2::after {
  content: "";
  position: absolute;
  width: 15px; height: 100%;
  border-top: 2px solid var(--accent-color);
  border-bottom: 2px solid var(--accent-color);
  top: 0;
}

.section-title.v2 h2::before { left: 0; border-left: 2px solid var(--accent-color); }
.section-title.v2 h2::after { right: 0; border-right: 2px solid var(--accent-color); }

/* ... v3 und v4 wie gehabt (mit .section-title.v3 Schreibweise) ... */

/* v3 linie mit dickem, zentriertem Punkt mit padding --------------------------------- */

.section-title.v3 h2 {
  padding-bottom: 20px;
}

/* Die linke und rechte Linie via Gradient (eine einzige Fläche) */
.section-title.v3 h2::before {
  content: "";
  position: absolute;
  bottom: 4px;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 1px;
  /* Erzeugt eine Lücke in der Mitte für den Punkt */
  background: linear-gradient(to right, 
    var(--accent-color) 0%, 
    var(--accent-color) 40%, 
    transparent 40%, 
    transparent 60%, 
    var(--accent-color) 60%, 
    var(--accent-color) 100%);
}

.section-title.v3 h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 10px;
  background: var(--accent-color);
  border-radius: 50%;
}

/* v4 verlaufende linie mit zentrierter Raute --------------------------------- */

.section-title.v4 h2, .section-title.v4 h3 {
/*  padding-bottom: 20px; */
  text-transform:uppercase;
}

/* Durchgehende sehr feine Linie */
/*
.section-title.v4 h2::before, .section-title.v4 h3::before {
  content: "";
  position: absolute;
  bottom: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 500px;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--default-color), transparent);
  opacity: 0.3;
}

/* Der Diamant */
/* 
.section-title.v4 h2::after, .section-title.v4 h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  background: var(--accent-color);
  border: 2px solid #fff; /* Optional: Erzeugt einen "Cut" in der Linie */
}

/* hr v4 verlaufende linie mit zentrierter Raute full --------------------------------- */
/*
.section-title.hr.v4::before {

  content: "";
  position: absolute;
  bottom: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--default-color), transparent);
  opacity: 0.3;
}


.section-title.hr.v4::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  background: var(--accent-color);
  border: 2px solid #fff; 
}	
*/
.section-title.hr.v4.short-h3 {padding-bottom:10px;}

.section-title.hr.v4.short-h3::before {

  content: "";
  position: absolute;
  bottom: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 500px;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--default-color), transparent);
  opacity: 0.3;
}


.section-title.hr.v4.short-h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  background: var(--accent-color);
  border: 2px solid #fff; /* Optional: Erzeugt einen "Cut" in der Linie */
}


.section-title p {
margin-bottom:0
}

/* about section -------------------------------- */
.about {
background-color:var(--surface-color);
position:relative
}

.about .about-image {
position:relative
}

.about .about-image img {
border-radius:12px;
box-shadow:0 10px 30px color-mix(in srgb,var(--default-color),transparent 85%)
}

.about .about-image .experience-badge {
position:absolute;
top:20px;
right:20px;
background:linear-gradient(135deg,var(--accent-color),color-mix(in srgb,var(--accent-color),var(--heading-color) 20%));
color:var(--contrast-color);
padding:20px;
border-radius:12px;
text-align:center;
box-shadow:0 8px 25px color-mix(in srgb,var(--accent-color),transparent 60%)
}

.about .about-image .experience-badge .years {
display:block;
font-size:24px;
font-weight:700;
margin-bottom:5px
}

.about .about-image .experience-badge .text {
font-size:12px;
font-weight:500;
text-transform:uppercase;
letter-spacing:.5px
}

.about .about-content {
padding-left:40px
}

@media (max-width: 992px) {
.about .about-content {
padding-left:0;
margin-top:40px
}
}

.about .about-content .section-header {
margin-bottom:30px
}

.about .about-content .section-header h2 {
margin-bottom:15px;
color:var(--heading-color)
}



.about .about-content .section-header .subtitle {
color:var(--accent-color);
font-weight:500;
margin-bottom:0
}

.about .about-content .story-text {
margin-bottom:30px
}

.about .about-content .story-text p {
line-height:1.7;
margin-bottom:20px;
color:var(--default-color)
}

.about .about-content .story-text p:last-child {
margin-bottom:0
}

.about .about-content .chef-highlights {
margin-bottom:30px
}

.about .about-content .chef-highlights .highlight-item {
display:flex;
align-items:center;
gap:10px;
padding:15px 0
}

.about .about-content .chef-highlights .highlight-item i {
font-size:20px;
color:var(--accent-color);
width:24px
}

.about .about-content .chef-highlights .highlight-item span {
font-weight:500;
color:var(--heading-color)
}

.about .about-content .chef-quote {
background:color-mix(in srgb,var(--accent-color),transparent 95%);
padding:25px;
border-radius:12px;
border-left:4px solid var(--accent-color);
margin-bottom:40px
}

.about .about-content .chef-quote blockquote {
font-style:italic;
font-size:16px;
line-height:1.6;
margin-bottom:10px;
color:var(--default-color)
}

.about .about-content .chef-quote cite {
font-weight:500;
color:var(--heading-color);
font-style:normal
}

.about .about-content .cta-buttons {
display:flex;
gap:15px;
flex-wrap:wrap
}

.about .about-content .cta-buttons .btn {
padding:12px 30px;
font-weight:500;
text-decoration:none;
border-radius:8px;
transition:all .3s ease;
border:2px solid transparent
}

.about .about-content .cta-buttons .btn.btn-primary {
background-color:var(--accent-color);
color:var(--contrast-color);
border-color:var(--accent-color)
}

.about .about-content .cta-buttons .btn.btn-primary:hover {
background-color:color-mix(in srgb,var(--accent-color),var(--default-color) 15%);
transform:translateY(-2px)
}

.about .about-content .cta-buttons .btn.btn-outline {
background-color:transparent;
color:var(--accent-color);
border-color:var(--accent-color)
}

.about .about-content .cta-buttons .btn.btn-outline:hover {
background-color:var(--accent-color);
color:var(--contrast-color);
transform:translateY(-2px)
}

.about .restaurant-gallery {
margin-top:80px
}

.about .restaurant-gallery .gallery-item {
position:relative;
overflow:hidden;
border-radius:12px;
box-shadow:0 8px 25px color-mix(in srgb,var(--default-color),transparent 90%);
transition:transform .3s ease
}

.about .restaurant-gallery .gallery-item:hover {
transform:translateY(-5px)
}

.about .restaurant-gallery .gallery-item:hover .gallery-caption {
transform:translateY(0);
opacity:1
}

.about .restaurant-gallery .gallery-item img {
width:100%;
height:280px;
object-fit:cover;
transition:transform .3s ease
}

.about .restaurant-gallery .gallery-item .gallery-caption {
position:absolute;
bottom:0;
left:0;
right:0;
background:linear-gradient(transparent,color-mix(in srgb,var(--default-color),transparent 20%));
color:var(--contrast-color);
padding:30px 20px 20px;
transform:translateY(20px);
opacity:0;
transition:all .3s ease
}

.about .restaurant-gallery .gallery-item .gallery-caption h4 {
font-size:18px;
margin-bottom:5px;
color:var(--contrast-color)
}

.about .restaurant-gallery .gallery-item .gallery-caption p {
font-size:14px;
margin-bottom:0;
color:color-mix(in srgb,var(--contrast-color),transparent 20%)
}

@media (max-width: 768px) {
.about .about-content .section-header h2 {
font-size:28px
}

.about .about-content .section-header .subtitle {
font-size:16px
}

.about .about-content .cta-buttons .btn {
flex:1;
text-align:center;
min-width:140px
}

.about .restaurant-gallery {
margin-top:60px
}

.about .restaurant-gallery .gallery-item {
margin-bottom:20px
}

.about .restaurant-gallery .gallery-item img {
height:220px
}
}
/* menu section -------------------------------- */
.menu .menu-filters {
margin-bottom:50px
}

.menu .menu-filters .nav-pills {
gap:20px
}

.menu .menu-filters .nav-pills .nav-link {
background-color:transparent;
color:var(--default-color);
border:2px solid color-mix(in srgb,var(--default-color),transparent 85%);
border-radius:50px;
padding:12px 30px;
font-weight:500;
font-size:15px;
transition:all .3s ease;
display:flex;
align-items:center
}

.menu .menu-filters .nav-pills .nav-link i {
font-size:18px
}

.menu .menu-filters .nav-pills .nav-link:hover {
background-color:var(--accent-color);
color:var(--contrast-color);
border-color:var(--accent-color);
transform:translateY(-3px);
box-shadow:0 8px 30px color-mix(in srgb,var(--accent-color),transparent 70%)
}

.menu .menu-filters .nav-pills .nav-link.active {
background-color:var(--accent-color);
color:var(--contrast-color);
border-color:var(--accent-color);
box-shadow:0 5px 20px color-mix(in srgb,var(--accent-color),transparent 60%)
}

@media (max-width: 768px) {
.menu .menu-filters .nav-pills {
flex-direction:column;
align-items:center;
gap:15px
}

.menu .menu-filters .nav-pills .nav-link {
width:200px;
justify-content:center
}
}

.menu .menu-item {
background-color:var(--surface-color);
border-radius:20px;
overflow:hidden;
box-shadow:0 5px 30px color-mix(in srgb,var(--default-color),transparent 85%);
transition:all .3s ease;
height:100%;
display:flex;
flex-direction:column
}

.menu .menu-item:hover {
transform:translateY(-10px);
box-shadow:0 15px 50px color-mix(in srgb,var(--default-color),transparent 70%)
}

.menu .menu-item .menu-item-image {
position:relative;
overflow:hidden;
height:250px
}

.menu .menu-item .menu-item-image img {
width:100%;
height:100%;
object-fit:cover;
transition:transform .3s ease
}

.menu .menu-item .menu-item-image:hover img {
transform:scale(1.1)
}

.menu .menu-item .menu-item-image .special-badge {
position:absolute;
top:15px;
left:15px;
background:linear-gradient(135deg,var(--accent-color),color-mix(in srgb,var(--accent-color),#ff6b6b 30%));
color:var(--contrast-color);
padding:8px 16px;
border-radius:25px;
font-size:12px;
font-weight:700;
text-transform:uppercase;
letter-spacing:.5px;
box-shadow:0 4px 15px color-mix(in srgb,var(--accent-color),transparent 50%)
}

.menu .menu-item .menu-item-content {
padding:25px;
flex-grow:1;
display:flex;
flex-direction:column
}

.menu .menu-item .menu-item-content .menu-item-header {
display:flex;
justify-content:space-between;
align-items:flex-start;
margin-bottom:15px
}

.menu .menu-item .menu-item-content .menu-item-header h4 {
color:var(--heading-color);
font-size:20px;
margin:0;
flex-grow:1;
margin-right:15px;
line-height:1.3
}

.menu .menu-item .menu-item-content .menu-item-header .dietary-tags {
display:flex;
gap:8px;
flex-shrink:0
}

.menu .menu-item .menu-item-content .menu-item-header .dietary-tags .tag {
width:35px;
height:35px;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
font-size:14px
}

.menu .menu-item .menu-item-content .menu-item-header .dietary-tags .tag.spicy {
background-color:#ff6b6b;
color:#fff
}

.menu .menu-item .menu-item-content .menu-item-header .dietary-tags .tag.vegetarian {
background-color:#51cf66;
color:#fff
}

.menu .menu-item .menu-item-content .menu-item-header .dietary-tags .tag.vegan {
background-color:#69db7c;
color:#fff
}

.menu .menu-item .menu-item-content .menu-item-header .dietary-tags .tag.gluten-free {
background-color:#74c0fc;
color:#fff
}

.menu .menu-item .menu-item-content .menu-item-header .dietary-tags .tag.premium {
background-color:#ffd43b;
color:var(--heading-color)
}

.menu .menu-item .menu-item-content p {
color:color-mix(in srgb,var(--default-color),transparent 30%);
font-size:14px;
line-height:1.6;
margin-bottom:20px;
flex-grow:1
}

.menu .menu-item .menu-item-content .menu-item-footer {
margin-top:auto
}

.menu .menu-item .menu-item-content .menu-item-footer .price {
font-size:24px;
font-weight:700;
color:var(--accent-color);
display:block;
text-align:right
}

.menu .btn-download {
background:linear-gradient(135deg,var(--accent-color),color-mix(in srgb,var(--accent-color),transparent 30%));
color:var(--contrast-color);
border:none;
padding:15px 40px;
border-radius:50px;
font-weight:500;
font-size:16px;
text-decoration:none;
display:inline-flex;
align-items:center;
box-shadow:0 8px 30px color-mix(in srgb,var(--accent-color),transparent 70%);
transition:all .3s ease
}

.menu .btn-download i {
font-size:18px
}

.menu .btn-download:hover {
transform:translateY(-3px);
box-shadow:0 15px 50px color-mix(in srgb,var(--accent-color),transparent 50%);
color:var(--contrast-color)
}

@media (max-width: 768px) {
.menu .menu-item .menu-item-content .menu-item-header {
flex-direction:column;
align-items:flex-start;
gap:10px
}

.menu .menu-item .menu-item-content .menu-item-header h4 {
margin-right:0
}

.menu .menu-item .menu-item-content .menu-item-header .dietary-tags {
align-self:flex-end
}
}

/*--------------------------------------------------------------
# Testimonials Section
--------------------------------------------------------------*/
.testimonials .testimonial-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3.5rem;
  position: relative;
}

.testimonials .testimonial-grid::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 200px;
  height: 200px;
  background-color: color-mix(in srgb, var(--accent-color), transparent 90%);
  border-radius: 50%;
  filter: blur(80px);
  z-index: -1;
}

.testimonials .testimonial-item.fullwidth {
  grid-column: 1 / -1;
}

.testimonials .testimonial-item {
  position: relative;
}

.testimonials .testimonial-item.featured .testimonial-card {
  background-color: var(--accent-color);
  transform: scale(1.05);
}

.testimonials .testimonial-item.featured .testimonial-card .testimonial-meta h3,
.testimonials .testimonial-item.featured .testimonial-card .testimonial-meta h4 {
  color: var(--contrast-color);
}

.testimonials .testimonial-item.featured .testimonial-card .company-logo i {
  color: var(--contrast-color);
}

.testimonials .testimonial-item.featured .testimonial-card .testimonial-body p,
.testimonials .testimonial-item.featured .testimonial-card .testimonial-body .quote-icon {
  color: var(--contrast-color);
}

.testimonials .testimonial-card {
  background-color: var(--surface-color);
  border-radius: 16px;
  padding: 2rem;
  box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.4);
  transition: all 0.3s ease-in-out;
/*  border: 1px solid var(--accent-color); */
  border-left: 8px solid var(--accent-color);
}

@media (min-width: 991.98px) {
.testimonials .testimonial-card {
	min-height: 227px;
}
}

@media (max-width: 767.98px) {
.testimonials .testimonial-grid {
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
}

.testimonials .testimonial-card:hover:not(.featured .testimonial-card) {
  transform: translateY(-5px);
  box-shadow: 0 15px 35px -5px rgba(0, 0, 0, 0.12);
}

.testimonials .testimonial-header {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.testimonials .testimonial-image {
  width: 80px;
  height: 80px;
  border-radius: 12px;
  overflow: hidden;
  flex-shrink: 0;
}

.testimonials .testimonial-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.testimonials .testimonial-meta {
  flex: 1;
}

.testimonials .testimonial-meta h3 {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
}

.testimonials .testimonial-meta h4 {
  font-size: 0.875rem;
  color: color-mix(in srgb, var(--heading-color), transparent 40%);
  margin-bottom: 0.75rem;
}

.testimonials .company-logo i {
  font-size: 1.5rem;
  color: var(--contrast-color);
}

.testimonials .testimonial-body {
  position: relative;
}

.testimonials .testimonial-body .quote-icon {
  color: var(--accent-color);
  font-size: 1.25rem;
  margin-bottom: 1rem;
  display: block;
}

.testimonials .testimonial-body p {
  font-size: 1.2rem;
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 991.98px) {
  .testimonials .testimonial-grid {
    gap: 1.5rem;
  }

  .testimonials .testimonial-grid::before {
    width: 150px;
    height: 150px;
  }

  .testimonials .testimonial-card {
    padding: 1.5rem;
  }

  .testimonials .testimonial-image {
    width: 70px;
    height: 70px;
  }

  .testimonials .testimonial-meta h3 {
    font-size: 1.125rem;
  }
}

@media (max-width: 767.98px) {
  .testimonials .testimonial-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .testimonials .testimonial-item.featured .testimonial-card {
    transform: scale(1);
  }

  .testimonials .testimonial-header {
    gap: 1rem;
  }

  .testimonials .testimonial-image {
    width: 60px;
    height: 60px;
  }

  .testimonials .company-logo i {
    font-size: 1.25rem;
  }
}

.bi-star-fill::before {
 content:"\f586";
 color: #ffcb00;
}

.testimonials .testimonial-badge {
  position: absolute;
  top: 1rem;
  right: 1.5rem;
  font-size: 1.5rem;
  font-weight: bold;
  color: rgba(0,0,0,0.2);
  z-index: 10; /* Damit es über der Card liegt */
  pointer-events: none; /* Verhindert, dass es Klicks auf die Card blockiert */
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

/* Optional: Anpassung für Mobilgeräte, falls 2rem dort zu groß ist */
@media (max-width: 767.98px) {
  .testimonials .testimonial-badge {
    font-size: 1.5rem;
    top: 0.5rem;
    right: 1rem;
  }
}


/* Entfernt --------------------------------
s# Chefs Section
# Book A Table Section
# Location Section
# Events Section
*/

/* gallery -------------------------------- */
.gallery .gallery-filters {
display:flex;
justify-content:center;
flex-wrap:wrap;
gap:10px;
margin-bottom:30px;
padding:0;
list-style:none
}

.gallery .gallery-filters li {
cursor:pointer;
padding:8px 16px;
font-size:14px;
font-weight:500;
line-height:1;
color:var(--heading-color);
border:1px solid color-mix(in srgb,var(--heading-color),transparent 70%);
border-radius:50px;
transition:all .3s ease
}

.gallery .gallery-filters li:hover {
background-color:color-mix(in srgb,var(--accent-color),transparent 80%);
color:var(--accent-color)
}

.gallery .gallery-filters li.filter-active {
background-color:var(--accent-color);
color:var(--contrast-color);
border-color:var(--accent-color)
}

@media (max-width: 768px) {
.gallery .gallery-filters {
justify-content:center;
margin-bottom:25px
}

.gallery .gallery-filters li {
margin:2px;
padding:6px 12px;
font-size:13px
}
}

.gallery .gallery-item .gallery-wrap {
position:relative;
overflow:hidden;
/* border-radius:8px; */
height:100%;
box-shadow:0 5px 20px #0000001a;
transition:transform .3s ease
}

.gallery .gallery-item .gallery-wrap:hover {
transform:translateY(-5px)
}

.gallery .gallery-item .gallery-wrap:hover img {
transform:scale(1.05);
filter:brightness(0.8)
}

.gallery .gallery-item .gallery-wrap:hover .gallery-info {
opacity:1;
bottom:0
}

.gallery .gallery-item .gallery-wrap img {
transition:all .4s;
width:100%;
height:100%;
object-fit:cover;
/* border-radius:8px */
}

.gallery .gallery-item .gallery-wrap .gallery-info {
position:absolute;
bottom:-50px;
left:0;
right:0;
text-align:center;
opacity:0;
padding:20px 20px 10px;
transition:all .3s ease;
background:linear-gradient(0deg,#000000e6 0%,#0000 75%);
border-radius:0 0 8px 8px;
font-family: var(--default-font);
}

.gallery .gallery-item .gallery-wrap .gallery-info h4 {
color:var(--contrast-color);
font-size:18px;
margin-bottom:5px
}

.gallery .gallery-item .gallery-wrap .gallery-info p {
color:#fff;
font-size:16px;
margin:0 0 10px;
font-weight:700;
}

.gallery .gallery-item .gallery-wrap .gallery-info .gallery-links a {
display:inline-flex;
justify-content:center;
align-items:center;
width:40px;
height:40px;
background:var(--accent-color);
border-radius:50%;
color:var(--surface-color);
font-size:18px;
transition:.3s;
margin-bottom: 1rem;
}

.gallery .gallery-item .gallery-wrap .gallery-info .gallery-links a:hover {
background:color-mix(in srgb,var(--accent-color),var(--contrast-color) 20%)
}

.gallery .isotope-container {
margin-top:15px
}

@media (max-width: 768px) {
.gallery .isotope-container {
margin-top:10px
}
}

.gallery .swiper-wrapper {
height:auto!important
}
/* Contact -------------------------------- */
.contact {
padding:80px 0;
overflow:hidden
}

.contact .contact-info {
display:flex;
flex-direction:column;
gap:30px;
margin-bottom:30px
}

@media (max-width: 992px) {
.contact .contact-info {
margin-bottom:40px
}
}

.contact .contact-card {
background-color:var(--surface-color);
border-radius:10px;
box-shadow:0 10px 25px #0000000d;
padding:30px;
position:relative;
overflow:hidden
}

.contact .contact-card:before {
content:"";
position:absolute;
top:0;
left:0;
width:100%;
height:3px;
background-color:var(--accent-color)
}

.contact .contact-card h3 {
color:var(--heading-color);
margin-bottom:15px;
position:relative;
padding-bottom:15px
}

.contact .contact-card h3:after {
content:"";
position:absolute;
bottom:0;
left:0;
width:50px;
height:2px;
background-color:var(--accent-color)
}

.contact .contact-card p {
color:var(--default-color);
font-size:15px;
line-height:1.6;
margin-bottom:25px
}

.contact .contact-card .contact-details {
margin-bottom:25px
}

.contact .contact-card .contact-details .contact-item {
display:flex;
align-items:flex-start;
margin-bottom:20px
}

.contact .contact-card .contact-details .contact-item i {
color:var(--accent-color);
font-size:18px;
margin-right:15px;
margin-top:5px;
flex-shrink:0
}

.contact .contact-card .contact-details .contact-item div h4 {
font-size:16px;
color:var(--heading-color);
margin:0 0 5px
}

.contact .contact-card .contact-details .contact-item div p {
font-size:14px;
color:var(--default-color);
margin:0 0 5px;
line-height:1.5
}

.contact .contact-card .contact-details .contact-item div p:last-child {
margin-bottom:0
}

.contact .contact-card .contact-details .contact-item:last-child {
margin-bottom:0
}

.contact .contact-card .social-links {
display:flex;
gap:12px
}

.contact .contact-card .social-links a {
display:flex;
align-items:center;
justify-content:center;
width:36px;
height:36px;
border-radius:50%;
background-color:color-mix(in srgb,var(--accent-color),transparent 90%);
color:var(--accent-color);
font-size:16px;
transition:all .3s ease
}

.contact .contact-card .social-links a:hover {
background-color:var(--accent-color);
color:var(--contrast-color);
transform:translateY(-3px)
}

.contact .contact-form-wrapper {
background-color:var(--surface-color);
border-radius:10px;
box-shadow:0 10px 25px #0000000d;
padding:20px 35px;
position:relative;
overflow:hidden
}

.contact .contact-form-wrapper:before {
content:"";
position:absolute;
top:0;
left:0;
width:100%;
height:3px;
background-color:var(--accent-color)
}

.contact .contact-form-wrapper .php-email-form .form-group {
margin-bottom:15px
}

.contact .contact-form-wrapper .php-email-form .form-group label {
font-weight:500;
color:var(--heading-color);
margin-bottom:8px;
font-size:14px;
display:block
}

.contact .contact-form-wrapper .php-email-form .form-group .form-control {
height:auto;
border-radius:8px;
padding:12px 20px;
border:1px solid color-mix(in srgb,var(--default-color),transparent 80%);
color:var(--default-color);
background-color:var(--surface-color);
font-size:14px
}

.contact .contact-form-wrapper .php-email-form .form-group .form-control:focus {
border-color:var(--accent-color);
outline:none;
box-shadow:none
}

.contact .contact-form-wrapper .php-email-form .form-group .form-control::placeholder {
color:color-mix(in srgb,var(--default-color),transparent 70%)
}

.contact .contact-form-wrapper .php-email-form .form-group textarea.form-control {
min-height:120px;
resize:vertical
}

.contact .contact-form-wrapper .php-email-form .form-check {
margin-bottom:20px
}

.contact .contact-form-wrapper .php-email-form .form-check .form-check-input {
margin-top:.3em
}

.contact .contact-form-wrapper .php-email-form .form-check .form-check-input:checked {
background-color:var(--accent-color);
border-color:var(--accent-color)
}

.contact .contact-form-wrapper .php-email-form .form-check .form-check-input:focus {
box-shadow:none;
border-color:color-mix(in srgb,var(--accent-color),transparent 50%)
}

.contact .contact-form-wrapper .php-email-form .form-check .form-check-label {
color:var(--default-color);
font-size:14px;
padding-left:5px
}

.contact .contact-form-wrapper .php-email-form button {
background-color:var(--accent-color);
color:var(--contrast-color);
border:none;
padding:12px 30px;
border-radius:50px;
font-weight:500;
font-size:16px;
transition:all .3s ease;
cursor:pointer
}

.contact .contact-form-wrapper .php-email-form button:hover {
background-color:color-mix(in srgb,var(--accent-color),transparent 20%);
transform:translateY(-3px)
}

@media (max-width: 992px) {
.contact .contact-card,.contact .newsletter-card,.contact .contact-form-wrapper {
padding:25px
}
}

@media (max-width: 768px) {
.contact {
padding:60px 0
}

.contact .contact-card h3 {
font-size:20px
}

.contact .newsletter-card h3 {
font-size:18px
}
}

/* Entfernt --------------------------------
# Terms Of Service Section
# Privacy Section
*/

/* Error -------------------------------- */
.error-404 {
padding:120px 0;
min-height:100vh;
display:flex;
align-items:center;
background:linear-gradient(135deg,var(--surface-color) 0%,color-mix(in srgb,var(--accent-color),transparent 97%) 100%)
}

.error-404 .error-number {
font-size:clamp(120px,20vw,280px);
font-weight:300;
color:color-mix(in srgb,var(--heading-color),transparent 15%);
line-height:.8;
margin-bottom:40px;
font-family:var(--heading-font);
letter-spacing:-.02em
}

.error-404 .error-title {
font-size:clamp(32px,5vw,48px);
font-weight:300;
color:var(--heading-color);
margin-bottom:32px;
letter-spacing:-.01em
}

.error-404 .error-description {
font-size:18px;
line-height:1.7;
color:color-mix(in srgb,var(--default-color),transparent 20%);
margin-bottom:48px;
max-width:600px;
margin-left:auto;
margin-right:auto
}

.error-404 .error-actions {
display:flex;
flex-direction:column;
gap:16px;
align-items:center;
margin-bottom:80px
}

@media (min-width: 576px) {
.error-404 .error-actions {
flex-direction:row;
justify-content:center;
gap:24px
}
}

.error-404 .error-actions .btn-primary {
display:inline-flex;
align-items:center;
gap:12px;
padding:16px 32px;
background-color:var(--accent-color);
color:var(--contrast-color);
border-radius:8px;
text-decoration:none;
font-weight:400;
font-size:16px;
transition:all .3s ease;
border:2px solid var(--accent-color)
}

.error-404 .error-actions .btn-primary:hover {
background-color:transparent;
color:var(--accent-color);
transform:translateY(-2px)
}

.error-404 .error-actions .btn-primary i {
font-size:18px
}

.error-404 .error-actions .btn-secondary {
display:inline-flex;
align-items:center;
gap:12px;
padding:16px 32px;
background-color:transparent;
color:var(--heading-color);
border-radius:8px;
text-decoration:none;
font-weight:400;
font-size:16px;
transition:all .3s ease;
border:2px solid color-mix(in srgb,var(--default-color),transparent 80%)
}

.error-404 .error-actions .btn-secondary:hover {
border-color:var(--accent-color);
color:var(--accent-color);
transform:translateY(-2px)
}

.error-404 .error-actions .btn-secondary i {
font-size:18px
}

.error-404 .helpful-links {
text-align:center
}

.error-404 .helpful-links h3 {
font-size:24px;
color:var(--heading-color);
margin-bottom:40px
}

.error-404 .helpful-links .links-grid {
display:grid;
grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
gap:20px;
max-width:800px;
margin:0 auto
}

@media (min-width: 768px) {
.error-404 .helpful-links .links-grid {
grid-template-columns:repeat(3,1fr)
}
}

.error-404 .helpful-links .link-item {
display:flex;
flex-direction:column;
align-items:center;
gap:12px;
padding:32px 20px;
background-color:var(--surface-color);
border-radius:8px;
text-decoration:none;
color:var(--default-color);
transition:all .3s ease;
border:1px solid color-mix(in srgb,var(--default-color),transparent 90%)
}

.error-404 .helpful-links .link-item:hover {
transform:translateY(-4px);
box-shadow:0 8px 30px color-mix(in srgb,var(--default-color),transparent 90%);
color:var(--accent-color);
border-color:color-mix(in srgb,var(--accent-color),transparent 70%)
}

.error-404 .helpful-links .link-item i {
font-size:24px;
color:var(--accent-color);
transition:all .3s ease
}

.error-404 .helpful-links .link-item span {
font-size:16px;
font-weight:400
}

.error-404 .helpful-links .link-item:hover i {
transform:scale(1.1)
}

@media (max-width: 768px) {
.error-404 {
padding:80px 0
}

.error-404 .error-actions {
margin-bottom:60px
}

.error-404 .helpful-links .links-grid {
grid-template-columns:repeat(2,1fr)
}
}

@media (max-width: 576px) {
  .error-404 .helpful-links .links-grid {
    grid-template-columns: 1fr;
  }
}

/*--------------------------------------------------------------
# Custom css min
--------------------------------------------------------------*/

.text-primary, .color-accent {
color:var(--accent-color)!important
}
/*
.header {
box-shadow:0 0 18px #0000001a
}
*/

/* hero Start ----------------------------------------------------- */

.hero {
  padding: 0;
  display: flex;
  align-items: center;
  overflow: hidden;
  position: relative;
}

.hero .carousel {
  width: 100%;
/*  max-width: 1400px; */
  padding: 0;
  margin: 0;
  background-color: var(--background-color);
  position: relative;
  overflow: hidden;
  margin:auto;
/*  border-radius: 30px; */
/*  margin-top: 1rem; */
}
/*
@media (max-width: 1399.98px) {
  #hero-carousel {
    max-width: 95%;
  }
}
*/
.hero .carousel-item {
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.hero .carousel-item::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
}

.hero .carousel-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
/*  transform: scale(1.02); */
/*  transition: transform 7s ease 2s; */
  z-index: 1;
}
/*
.hero .carousel-item.active img {
  transform: scale(1.10);
}
*/

.hero .carousel-container {
  position: absolute;
  inset: 90px 64px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  z-index: 3;
}

.hero h2 {
  margin-bottom: 30px;
  padding: 18px 25px;
  border-radius: 20px;
  background: rgba(250, 250, 250, 0.9);
  color: var(--heading-color-rgba);
  text-align: center;
  line-height: 1.25;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  position: relative;
}

.hero .carousel-item.active h2 {
  animation: heroHeadlineIn 2.2s ease 2s both;
}

.hero h2::after {
  content: "";
  display: block;
  width: 0;
  height: 2px;
  margin: 7px auto 5px;
  background: var(--accent-color);
}

.hero .carousel-item.active h2::after {
  animation: heroLineIn 0.8s ease 3s both;
}

@media (min-width: 1400px) {
  .hero .carousel-item {
    aspect-ratio: 16 / 7.5;
  }
}

@media (min-width: 1024px) {
  .hero h2 {
    max-width: 60%;
  }
}

@media (max-width: 1239px) {
  .hero h2 {
    font-size: 32px;
  }
}

@media (max-width: 991px) {
  .hero h2 {
    font-size: 24px;
  }
}

@media (max-width: 768px) {
  .hero .carousel-item {
    aspect-ratio: 4 / 2.5;
  }

  .hero .carousel-container {
    inset: 24px;
  }

  .hero h2 {
    padding: 10px 15px;
    font-size: 20px;
    line-height: 1.3;
    max-width: 100%;
  }
}

@media (max-width: 380px) {
  .hero h2 {
    font-size: 17px;
  }
}

.hero .carousel-control-prev,
.hero .carousel-control-next {
  width: 10%;
  opacity: 0.5;
  transition: 0.3s;
}

.hero .carousel-control-prev:focus,
.hero .carousel-control-next:focus {
  opacity: 0.5;
}

.hero .carousel-control-prev:hover,
.hero .carousel-control-next:hover {
  opacity: 0.9;
}

@media (min-width: 1024px) {
  .hero .carousel-control-prev,
  .hero .carousel-control-next {
    width: 5%;
  }
}

.hero .carousel-control-prev-icon,
.hero .carousel-control-next-icon {
  background: none;
  font-size: 32px;
  line-height: 1;
}

.hero .carousel-indicators {
  list-style: none;
}

.hero .carousel-indicators li {
  cursor: pointer;
}

@keyframes heroHeadlineIn {
  from {
    opacity: 0;
    transform: translate3d(0, 24px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes heroLineIn {
  from {
    width: 0;
  }
  to {
    width: 72px;
  }
}


/* end hero --------------------------------------------------------- */

.footer-content {
text-align:center;
margin-bottom:5em
}

.footer-logo img {
max-width:250px
}

.footer-logo {
padding-bottom:0;
border-bottom:1px solid var(--accent-color);
max-width: 300px;
margin: auto;
margin-bottom: 35px;
}

.footer h4::after {
content:inherit
}

.footer h4 {
margin-right:.9em
}

.footer .footer-bottom {
background-color:var(--accent-color);
margin-top:0
}

.footer .footer-bottom .copyright p,.footer .footer-bottom .footer-bottom-links a {
color:#fff
}

.footer .footer-bottom .footer-bottom-links a:hover {
color:#cfe7ff
}

.footer {
border-top:none
}

#mapid {
height:60vh;
width:100%
}

.map-consent .leaflet-map {
height:60vh;
min-height:320px
}

.map-consent .leaflet-map,.map-box {
height:clamp(320px,60vh,700px)
}

.object-fit-cover {
object-fit:cover
}

a.btn-rounded-primary,button.btn-rounded-primary
.button .btn-rounded-primary,.btn-rounded-primary {
display:inline-flex;
align-items:center;
justify-content:center;
width:auto;
text-decoration:none;
white-space:nowrap;
background-color:var(--accent-color);
color:var(--surface-color);
border:none;
padding:12px 30px;
border-radius:999px;
font-weight:500;
font-size:1.35rem;
line-height:1.6;
transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;
cursor:pointer;
margin:.25em 0
}

a.btn-rounded-primary.white, button.btn-rounded-primary.button .btn-rounded-primary .white, .btn-rounded-primary .white {
background-color:var(--surface-color);
color:var(--accent-color);
border:1px solid var(--accent-color);
}

a.btn-rounded-primary.white:hover, button.btn-rounded-primary.button .btn-rounded-primary .white:hover, .btn-rounded-primary .white:hover {
background-color:var(--surface-color);
color:var(--accent-color);
border:1px solid var(--accent-color);
}

a.btn-rounded-primary:hover,a.btn-rounded-primary:focus,button.btn-rounded-primary:hover,button.btn-rounded-primary:focus {
background-color:color-mix(in srgb,var(--accent-color),black 15%);
transform:translateY(-2px);
box-shadow:0 5px 15px color-mix(in srgb,var(--accent-color),transparent 75%)
}

a.btn-rounded-primary:focus-visible,button.btn-rounded-primary:focus-visible {
outline:2px solid color-mix(in srgb,var(--accent-color),white 40%);
outline-offset:2px
}

.action-buttons a.btn-rounded-primary {
display:inline-flex;
width:auto
}

.rounded-frame-primary {
display:inline-block;
align-items:center;
justify-content:center;
width:auto;
white-space:nowrap;
text-decoration:none;
background:var(--surface-color);
color:var(--default-color);
border:1px solid var(--accent-color);
padding:12px 30px;
border-radius:999px;
font-weight:500;
font-size:inherit;
line-height:1.2;
margin-bottom:1.25em;
background: #fff;
color: var(--accent-color);
}

@media (max-width: 420px) {
  .rounded-frame-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    white-space: normal;
    text-align: center;
    padding: 10px 16px;
    font-size: 1.1rem;
    line-height: 1.25;
    gap: 0.25rem;
  }
}
.rounded-frame-primary.big {
font-size:1.5em;
}

.frame-primary {
display:inline-block;
text-align:center;
background:var(--surface-color);
color:var(--default-color);
border:1px solid var(--accent-color);
padding:12px 30px;
border-radius:999px;
font-weight:500;
font-size:16px;
line-height:1.4;
margin-bottom:1.25em
}

.action-buttons .rounded-frame-primary {
width:auto!important;
display:inline-block!important
}

.footer-content .rounded-frame-primary {
width:auto!important;
display:inline-block!important;
min-width: 200px;
}
.footer a.btn-rounded-primary.white, .footer button.btn-rounded-primary.button .btn-rounded-primary .white, .footer .btn-rounded-primary .white {min-width: 240px!important;}

@media (min-width:768px) {
.only-t-dt {
display:block!important
}

.only-m {
display:none!important
}

.only-t-dt.rounded-frame-primary {
cursor:default
}
}

@media (max-width:767.98px) {
.only-t-dt {
display:none!important
}

.only-m {
display:block!important
}
}

.bi.bi-box-arrow-up-right {
padding-left:7px
}

.menu-list {
list-style:none;
margin:0;
padding:0
}

.menu-list li {
display:grid;
grid-template-columns:1fr auto;
column-gap:1rem;
align-items:baseline;
padding:.4rem 0;
border-bottom:1px dashed var(--bs-border-color,#00000014)
}

.menu-list span.i {
font-weight:500;
letter-spacing:.2px;
color: var(--color-accent,#c31924);
}

.menu-list span.p {
white-space:nowrap;
font-variant-numeric:tabular-nums;
justify-self:end;
color: var(--background-color,#000);
}

.menu-list small {
grid-column:1 / -1;
display:block;
margin-top:.15rem;
color:var(--background-color,#000);
line-height:1.35
}

@media (max-width: 575.98px) {
.menu-list li {
column-gap:.6rem
}
}

.menu-item-ohne-bild {
color: var(--background-color,#000);
border-radius:20px;
overflow:hidden;
box-shadow:0 5px 30px color-mix(in srgb,var(--default-color),transparent 85%);
transition:all .3s ease;
height:auto;
display:flex;
flex-direction:column;
padding:25px;
margin:25px 0;
background: var(--default-color,#fff);
}

.menu-item-description {
max-width:80%;
float:left
}

.menu-item-footer-ohne-bild {
float:right
}
/*
.menu-item-image img {
border-radius:20px
} */

.rounded-xl {
border-radius:20px!important
}

.gallery .gallery-item .gallery-wrap {
position:relative;
overflow:hidden
}

.gallery .gallery-item .gallery-wrap img {
display:block;
width:100%;
height:auto;
position:relative;
z-index:0
}

.gallery .overlay-link {
position:absolute;
inset:0;
display:flex;
align-items:center;
justify-content:center;
background:#0000;
text-decoration:none;
cursor:pointer;
z-index:2;
opacity:0;
transition:background .25s ease,opacity .25s ease
}

.gallery .gallery-wrap:hover .overlay-link {
background:#00000059;
opacity:1
}

.gallery .overlay-link i {
display:inline-flex;
align-items:center;
justify-content:center;
width:48px;
height:48px;
font-size:22px;
background:var(--accent-color);
color:var(--contrast-color);
border-radius:50%;
box-shadow:0 2px 12px #00000059;
pointer-events:none;
transition:transform .2s ease,background .2s ease
}

.gallery .gallery-wrap:hover .overlay-link i {
background:var(--accent-color);
color:#fff;
transform:scale(1.06)
}

.gallery .overlay-link:focus-visible {
outline:none;
box-shadow:inset 0 0 0 3px #ffffff80
}
/* neu */
@media (min-width: 768px) and (max-width: 868px) {
.navmenu a, .navmenu a:focus {padding: 18px 3px;}
#header .branding-centered .logo img {max-width: 250px;}
}
@media (max-width: 767.98px) {
.navmenu .active i, .navmenu .active:focus i {
transform: none;
}
}

/* Guard liegt über der Karte und fängt Touch ab, solange aktiv */
.map-touch-guard{
  position:absolute; inset:0;
  z-index: 9999;
  pointer-events: auto; /* aktiv: blockt die Map */
  background: transparent; /* unsichtbar */
  display: flex; align-items: flex-end; justify-content: center;
  padding-bottom: .75rem;
}
/* Wenn inaktiv (Map freigegeben), lässt der Guard alle Events durch */
.map-touch-guard.inactive{ pointer-events: none; }

/* Button zum Freigeben/Sperren */
.map-unlock-btn{
  background: rgba(0,0,0,.75);
  color:#fff; border:0; border-radius:.5rem;
  font-size:.9rem; padding:.45rem .75rem;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
  cursor:pointer;
}
.map-unlock-btn:focus{ outline:2px solid #fff3; outline-offset:2px; }

/* Sicherheit: Seite darf scrollen, Pinch erlaubt */
.leaflet-container{ touch-action: pan-y pinch-zoom !important; }

/* Leaflet darf Bilder nicht responsiv skalieren */
.leaflet-container img,
.leaflet-container .leaflet-tile {
  max-width: none !important;
}
@media (max-width: 1240px) {
.map-consent {
  max-width: 85%;
  margin: auto;
padding-bottom: 35px;}
}
sup {
  top: -.75em;
  margin-left: 0.25em;
  font-size: 0.5em;
}
.error-404 {
  padding: 120px 0;
  min-height: 100vh;
  display: flex;
  align-items: inherit;
  background: var(--surface-color);
}

.text-muted {
  color: var(--default-color) !important;
}

hr {border: 1px solid var(--accent-color);opacity: 1;}

/* Öffnungszeiten Tabelle im Footer */
.footer-content .zeiten-table {
  width: fit-content;                 /* nur so breit wie nötig */
  max-width: 100%;
  margin: 0 auto;                     /* zentriert im Footer */
  border-collapse: collapse;
  background: transparent !important;
  color: #fff !important;
}

/* Zellen-Design */
.footer-content .zeiten-table td {
  padding: 2px 4px;                   /* kompakte Abstände */
  border: none !important;
  background: transparent !important;
  color: #000 !important;
  white-space: nowrap;                /* verhindert Zeilenumbruch */
  vertical-align: top;                 /* mehrzeilige Zeiten oben am Wochentag ausrichten */
}

/* Abstand zwischen Tag & Uhrzeit */
.footer-content .zeiten-table td:first-child {
  padding-right: 10px;                /* dezenter Abstand */
}
.color-white {color: #fff}

.g-6, .gx-6 {
  --bs-gutter-x: 6rem;
}

/* Start Phonelinks nur mobil als Link -------------------------------------------------------- */

/* Standard: Link ist deaktiviert und sieht nicht wie ein Link aus */
@media (min-width: 768px) {
  .phone-link {
    pointer-events: none; /* Macht den Link unklickbar */
    cursor: default;      /* Verhindert den Zeigefinger-Cursor */
  }
}

/* Mobil (kleiner als 768px): Link ist ganz normal aktiv */
@media (max-width: 767.98px) {
  .phone-link {
    pointer-events: auto;
  }
}
/* Ende Phonelinks nur mobil als Link -------------------------------------------------------- */

.cookie-bar {
  background-color: rgba(0,0,0,1);
  color: #fff;
  padding: 20px;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 14px;
  z-index: 99999999;
  transition: bottom 1s;
  /* font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; */
}
.cookie-bar .accept-cookies {
  background-color: var(--accent-color);
  color: #fff;
  border: 0;
  padding: 3px 15px;
  cursor: pointer;
  border-radius: 3px;
  transition: none;
  margin-left: 10px;
}


.form-check {color:#fff}

/* Neu feature item --------------------------------- */

.feature-item {
  background: var(--surface-color);
  padding: 1.5rem;
  border-radius: 10px;
  text-align: center;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.12);
  transition: transform 0.3s ease;
  margin-bottom:0.5rem;
}

.feature-item:hover {
  transform: translateY(-5px);
}

.feature-item .feature-icon {
  width: 60px;
  height: 60px;
  background: color-mix(in srgb, var(--accent-color), transparent 90%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1rem;
}

.feature-item .feature-icon i {
  font-size: 1.5rem;
  color: var(--accent-color);
}

.feature-item h5 {
  margin-bottom: 0.5rem;
  color: var(--heading-color);
}

.feature-item p {
  font-size: 0.9rem;
  color: color-mix(in srgb, var(--default-color), transparent 30%);
  margin: 0;
}

/* Ende feature item --------------------------------- */

/* =====================================================
   TIMELINE (tl)
   - Linie optional: .tl--no-line auf .tl setzen
   - Badge: bg accent, text #555
   ===================================================== */

/* The actual timeline (the vertical ruler) */
.main-timeline {
  position: relative;
}

/* The actual timeline (the vertical ruler) */
.main-timeline::after {
  content: "";
  position: absolute;
  width: 4px;
  background-color: var(--accent-color);
  top: 0;
  bottom: 0;
  left: 50%;
  margin-left: -2px;
}

/* Container around content */
.timeline {
  position: relative;
  background-color: inherit;
  width: 50%;
}

/* The circles on the timeline */
.timeline::after {
  content: "";
  position: absolute;
  width: 25px;
  height: 25px;
  right: -13px;
  background-color: var(--accent-color);
  border: 5px solid var(--accent-color);
  top: 15px;
  border-radius: 50%;
  z-index: 1;
}

/* Place the container to the left */
.left {
  padding: 0px 40px 20px 0px;
  left: 0;
}

/* Place the container to the right */
.right {
  padding: 0px 0px 20px 40px;
  left: 50%;
}

/* Add arrows to the left container (pointing right) */
.left::before {
  content: " ";
  position: absolute;
  top: 18px;
  z-index: 1;
  right: 30px;
  border: medium solid white;
  border-width: 10px 0 10px 10px;
  border-color: transparent transparent transparent var(--accent-color);
}

/* Add arrows to the right container (pointing left) */
.right::before {
  content: " ";
  position: absolute;
  top: 18px;
  z-index: 1;
  left: 30px;
  border: medium solid white;
  border-width: 10px 10px 10px 0;
  border-color: transparent var(--accent-color) transparent transparent;
}

/* Fix the circle for containers on the right side */
.right::after {
  left: -12px;
}

.card-body h3 {
background: var(--accent-color);
font-size: 1.3em;
line-height: 1;
color: rgb(255,255,255);
display: inline-block;
padding: 5px 10px;
border-radius: 3px;
margin-top: -3px;
margin-bottom: 10px;
}
.card {
border: var(--bs-card-border-width) solid var(--accent-color);
border-radius: var(--bs-card-border-radius);
border-radius: 20px;
box-shadow: 5px 5px 18px rgba(0,0,0,0.3);
}
@media screen and (min-width: 601px) {
.timeline.left {
  text-align: right;
}

.timeline.right {
  text-align: left;
}
}

/* Media queries - Responsive timeline on screens less than 600px wide */
@media screen and (max-width: 600px) {
  /* Place the timelime to the left */
  .main-timeline::after {
    left: 31px;
  }

  /* Full-width containers */
  .timeline {
    width: 100%;
    padding-left: 70px;
    padding-right: 25px;
  }

  /* Make sure that all arrows are pointing leftwards */
  .timeline::before {
    left: 60px;
    border: medium solid white;
    border-width: 10px 10px 10px 0;
    border-color: transparent white transparent transparent;
  }

  /* Make sure all circles are at the same spot */
  .left::after,
  .right::after {
    left: 18px;
  }

  .left::before {
    right: auto;
  }

  /* Make all right containers behave like the left ones */
  .right {
    left: 0%;
  }
}

/* Ende timeline --------------------------------- */

/* start aufzählungsliste feiern & hochzeiten */

.event-list-box {
  height: 100%;
  padding: 2rem 1.5rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
}

.event-list-title {
  margin-bottom: 1.2rem;
  text-align: left;
  font-size: 1.5rem;
  font-weight: 500;
}

.event-list li {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.6rem 0;
  font-size: 1.2rem;
  line-height: 1.4;
}

.event-list li i {
  flex-shrink: 0;
  font-size: 1.2rem;
  color: var(--accent-color);
}

.event-list li span {
  display: inline-block;
}

/* end aufzählungsliste feiern & hochzeiten */

/* Kontakt-CTA im Bereich Feiern & Hochzeiten --------------------- */

.contact-cta-wrap {
  text-align: center;
}

.contact-cta-title {
  margin-top: 2.5rem;
  margin-bottom: 2rem;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--heading-color);
}

.contact-cta-row {
  align-items: stretch;
}

.contact-cta-box {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  min-height: 150px;
  padding: 1.4rem 1rem;
  text-align: center;
  text-decoration: none;
  color: var(--default-color);
  background:color-mix(in srgb, var(--accent-color), white 96%);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.contact-cta-box:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.08);
  border-color: color-mix(in srgb, var(--accent-color), transparent 55%);
  color: var(--default-color);
}

.contact-cta-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin-bottom: 0.9rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent-color), white 88%);
  color: var(--accent-color);
  font-size: 1.2rem;
}

.contact-cta-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--default-color), transparent 35%);
}

.contact-cta-text {
  display: block;
  font-size: 1.08rem;
  font-weight: 500;
  color: var(--heading-color);
  line-height: 1.35;
}

@media (max-width: 767.98px) {
  .contact-cta-title {
    font-size: 1rem;
  }

  .contact-cta-box {
    min-height: 128px;
    padding: 1.15rem 0.9rem;
  }

  .contact-cta-text {
    font-size: 1rem;
  }
}

.footer-label {
  margin-bottom: 1rem;
  font-size: 1.35rem !important;
  font-weight: 700;
  color: var(--accent-color) !important;
}

.glightbox-clean .gslide-title {font-family: var(--default-font);}
/* Sonderhinweis Öffnungszeiten */
.opening-hours-notice{margin-top:18px;padding:14px 16px;border:1px solid rgba(255,255,255,.28);font-size:.92em;line-height:1.5}.opening-hours-notice p{margin:0}.opening-hours-notice-title{margin-bottom:4px!important;font-weight:500;color:inherit}


/* Logo historisch Größenanpassungen ------------------- */

.historical-logo {
  width: 250px;
  height: auto;
}

@media (max-width: 767.98px) {
  .historical-logo {
    width: 170px;
  }
}

@media (max-width: 420px) {
  .historical-logo {
    width: 145px;
  }
}

/* sticky header start ------------------------------------------- *
/* Sticky Header */
#header {
  position: sticky;
  top: 0;
  z-index: 997;
  transition: box-shadow 0.3s ease;
}

/* Logo weich verkleinern */
#header .logo img {
  transition:
    width 0.35s ease,
    max-width 0.35s ease,
    margin 0.35s ease;
}

/* Kompakter Header nach dem Scrollen */
@media (min-width: 768px) {
  .scrolled #header .branding-split .logo img {
    width: 120px;
    max-width: 120px;
    margin-top: 0.4rem;
    margin-bottom: 0.4rem;
  }

  .scrolled #header .branding-split {
    gap: 1rem;
  }

  .scrolled #header {
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
  }
}

@media (min-width: 768px) {
  .scrolled #header .branding-centered .logo img {
    width: 130px;
    max-width: 130px;
    margin-top: 0.4rem;
    margin-bottom: 0.3rem;
  }

  .scrolled #header .branding-centered .navmenu ul {
    gap: 1rem;
  }
}

@media (max-width: 767.98px) {
  .scrolled #header .logo img {
    max-width: 140px;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
  }

  .scrolled #header .mobile-nav-toggle {
    top: 8px;
  }
}
/* end sticky header start ------------------------------------------- */

/* Reservierung css -------------------------------------------------- */
.reservation-section {
  padding-top: 80px;
  padding-bottom: 80px;
  background: #f8f7f3;
}

.reservation-intro,
.reservation-form,
.reservation-message,
.reservation-note {
  max-width: 1100px;
}

.reservation-form {
  margin: 0 auto;
  padding: clamp(24px, 4vw, 48px);
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .09);
  box-shadow: 0 14px 40px rgba(0, 0, 0, .06);
}

.reservation-form .form-label {
  font-weight: 500;
}

.reservation-form .form-control {
  min-height: 52px;
  border-radius: 0;
}

.reservation-form textarea.form-control {
  min-height: 130px;
}

.reservation-form .form-control:focus,
.reservation-form .form-check-input:focus {
  box-shadow: 0 0 0 .2rem rgba(0, 0, 0, .12);
}

.reservation-privacy {
  padding-left: 2rem;
}

.reservation-privacy .form-check-input {
  width: 1.25rem;
  height: 1.25rem;
  margin-left: -2rem;
}

.reservation-submit {
  border: 0;
  cursor: pointer;
}

.reservation-message,
.reservation-note {
  margin-right: auto;
  margin-left: auto;
}

.reservation-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 767.98px) {
  .reservation-section {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.reservation-form .form-check-label {
  color: #212529;
  font-weight: 400;
  line-height: 1.55;
}

.reservation-form .form-check-label a,
.reservation-note a {
  color: inherit;
  text-decoration: underline;
}

.reservation-note {
  font-size: calc(1rem - 2px);
  line-height: 1.5;
}

.reservation-note p {
  margin-bottom: .35rem;
}


/* end Reservierung css -------------------------------------------------- */

/* Events css ------------------------------------------------------------ */
/* Eventbereich – alle Regeln sind bewusst auf #events begrenzt. */
#events.events-section {
  background: var(--surface-color, #fff);
}

#events .events-list {
  max-width: 940px;
  border-top: 1px solid color-mix(in srgb, var(--default-color, #333), transparent 78%);
}

#events .event-entry {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 34px;
  padding: 32px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--default-color, #333), transparent 78%);
}

#events .event-date {
  align-self: start;
  text-align: center;
  padding: 12px 8px 10px;
  border: 1px solid color-mix(in srgb, var(--accent-color, #8d6a45), transparent 28%);
}

#events .event-day,
#events .event-month,
#events .event-year {
  display: block;
}

#events .event-day {
  font-family: var(--heading-font, inherit);
  font-size: 2.15rem;
  line-height: 1;
  color: var(--heading-color, #222);
}

#events .event-month {
  margin-top: 5px;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--accent-color, #8d6a45);
}

#events .event-year {
  margin-top: 2px;
  font-size: .76rem;
  color: color-mix(in srgb, var(--default-color, #333), transparent 28%);
}

#events .event-content {
  min-width: 0;
}

#events .event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  margin: 0 0 9px;
  font-size: .9rem;
  color: color-mix(in srgb, var(--default-color, #333), transparent 22%);
}

#events .event-meta span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

#events .event-meta i {
  color: var(--accent-color, #8d6a45);
}

#events .event-content h3 {
  margin: 0 0 7px;
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  line-height: 1.2;
}

#events .event-subtitle {
  margin: 0 0 12px;
  font-weight: 500;
  color: var(--accent-color, #8d6a45);
}

#events .event-description,
#events .events-empty {
  margin-bottom: 0;
}

@media (max-width: 767.98px) {
  #events .event-entry {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 20px;
    padding: 26px 0;
  }

  #events .event-day {
    font-size: 1.75rem;
  }
}

@media (max-width: 479.98px) {
  #events .event-entry {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  #events .event-date {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 7px;
    width: fit-content;
    min-width: 138px;
  }

  #events .event-day,
  #events .event-month,
  #events .event-year {
    display: inline;
    margin-top: 0;
  }
}


/* end Events css ------------------------------------------------------------ */

/* Layout-Umbau: statischer Hero + Bild/Text-Sektionen ------------------- */
.hero-static {
  display: block;
  padding: 0;
  overflow: hidden;
  background: var(--background-color);
}

.hero-static picture,
.hero-static img {
  display: block;
  width: 100%;
}

.hero-static img {
  height: auto;
  object-fit: cover;
}

.feature-section {
  background-color: var(--surface-color);
  padding-bottom: 8rem;
}

.feature-section + .feature-section {
  padding-top: 0;
}

.feature-image {
  overflow: hidden;
  border-radius: 0;
}

.feature-image img {
  display: block;
  width: 100%;
  height: auto;
}

.feature-content {
  max-width: 560px;
}

.feature-content h2,
.events-section h2#events-title {
  margin-bottom: 1rem;
  line-height: 1.15;
}

.feature-content p:last-child {
  margin-bottom: 0;
}

.feature-button {
  padding-top: 1.4rem;
}

@media (max-width: 991.98px) {
  .feature-content {
    max-width: none;
  }

  .feature-content h2 {
    padding-top: 0.35rem;
  }
}

@media (max-width: 767.98px) {
  .feature-section {
    padding-bottom: 4.5rem;
  }

  .feature-section .row {
    row-gap: 1.65rem;
  }

  .feature-image {
    border-radius: 0;
  }

  .feature-button {
    padding-top: 1rem;
  }
}


/* Popup Hinweisfenster -------------------------------------------------- */
.site-popup[hidden] {
  display: none !important;
}

.site-popup {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 48px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.site-popup.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.site-popup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.58);
}

.site-popup-dialog {
  position: relative;
  z-index: 1;
  width: min(720px, 100%);
  max-height: min(86vh, 780px);
  overflow: auto;
  background: var(--surface-color, #fff);
  color: var(--default-color, #000);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.3);
  transform: translateY(18px) scale(0.98);
  transition: transform 0.25s ease;
  outline: none;
  -webkit-overflow-scrolling: touch;
}

.site-popup.is-visible .site-popup-dialog {
  transform: translateY(0) scale(1);
}

.site-popup-inner {
  padding: clamp(28px, 5vw, 54px);
}

.site-popup-close {
  position: sticky;
  top: 14px;
  float: right;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 14px 14px 0 0;
  border: 1px solid color-mix(in srgb, var(--accent-color), transparent 55%);
  border-radius: 50%;
  background: #fff;
  color: var(--accent-color);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12);
  cursor: pointer;
}

.site-popup-kicker {
  margin: 0 0 0.65rem;
  color: var(--accent-color);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.site-popup h2 {
  margin-bottom: 0.9rem;
  padding-right: 2.5rem;
}

.site-popup-subtitle {
  margin-bottom: 1.15rem;
  color: var(--accent-color);
  font-weight: 500;
}

.site-popup-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1.15rem;
  margin-bottom: 1.2rem;
  font-size: 1rem;
  color: color-mix(in srgb, var(--default-color), transparent 20%);
}

.site-popup-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.site-popup-description {
  line-height: 1.65;
}

.site-popup-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
  margin-top: 1.7rem;
}

.site-popup-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 11px 24px;
  border: 1px solid var(--accent-color);
  border-radius: 999px;
  background: #fff;
  color: var(--accent-color);
  font-weight: 500;
  cursor: pointer;
}

.site-popup-note {
  margin: 1rem 0 0;
  font-size: 0.9rem;
  color: color-mix(in srgb, var(--default-color), transparent 35%);
}

.site-popup-open {
  overflow: hidden;
}

@media (max-width: 767.98px) {
  .site-popup {
    align-items: flex-start;
    padding: 14px;
    padding-top: max(14px, env(safe-area-inset-top));
    padding-bottom: max(14px, env(safe-area-inset-bottom));
  }

  .site-popup-dialog {
    width: 100%;
    max-height: calc(100vh - 28px);
  }

  .site-popup-inner {
    padding: 28px 22px 26px;
  }

  .site-popup h2 {
    padding-right: 0;
  }

  .site-popup-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .site-popup-actions .btn-rounded-primary,
  .site-popup-secondary {
    width: 100%;
  }
}
/* Ende Popup Hinweisfenster --------------------------------------------- */
