@charset "UTF-8";

:root {
scroll-behavior:smooth
}
/* general -------------------------------- */
body {
color:var(--default-color);
background-color:var(--background-color)
}

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)
}
/* header -------------------------------- */
.header {
color:var(--default-color);
background-color:var(--background-color);
padding:15px 0;
transition:all .5s;
z-index:997
}

.header .logo {
line-height:1
}

.header .logo img {
max-height:36px;
margin-right:8px
}

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

.header .logo h1 {
font-size:28px;
margin:0;
font-weight:500;
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
}
/* 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:18px 15px;
font-size:16px;
font-family:var(--nav-font);
font-weight:400;
display:flex;
align-items:center;
justify-content:space-between;
white-space:nowrap;
transition:.3s
}

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

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

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

.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: 767px) {
.mobile-nav-toggle {
color:var(--nav-color);
font-size:28px;
line-height:0;
margin-right:10px;
cursor:pointer;
transition:color .3s
}

.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 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
}

.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(--nav-dropdown-hover-color)
}

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

.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
}

.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(--background-color);
font-size:14px;
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:15px;
line-height:1.6;
color:color-mix(in srgb,var(--default-color),transparent 15%)
}

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

.footer .newsletter-form h5 {
color:var(--heading-color);
font-size:16px;
font-weight:600;
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;
font-weight:600;
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:16px
}

.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:14px;
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:13px;
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(--contrast-color);
line-height:0
}

.scroll-top:hover {
background-color:color-mix(in srgb,var(--accent-color),transparent 20%);
color:var(--contrast-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;
font-weight:700
}

.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:60px 0;
scroll-margin-top:90px;
overflow:clip;
position:relative
}

@media (max-width: 1199px) {
section,.section {
scroll-margin-top:66px
}
}

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

.section-title h2 {
font-size:32px;
font-weight:700;
margin-bottom:20px;
padding-bottom:20px;
position:relative
}

.section-title h2:before {
content:"";
position:absolute;
display:block;
width:160px;
height:1px;
background:color-mix(in srgb,var(--default-color),transparent 60%);
left:0;
right:0;
bottom:1px;
margin:auto
}

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

.section-title p {
margin-bottom:0
}
/* hero -------------------------------- */
.hero {
display:flex;
align-items:center;
overflow:hidden;
position:relative;
padding:100px 0
}

.hero .hero-content {
width:100%
}

.hero .hero-content .content {
padding-right:2rem
}

@media (max-width: 991px) {
.hero .hero-content .content {
padding-right:0;
text-align:center;
margin-bottom:3rem
}
}

.hero .hero-content .hero-title {
font-size:3.5rem;
font-weight:700;
line-height:1.2;
margin-bottom:1.5rem;
color:var(--heading-color)
}

@media (max-width: 768px) {
.hero .hero-content .hero-title {
font-size:2.5rem
}
}

.hero .hero-content .hero-subtitle {
font-size:1.1rem;
line-height:1.6;
color:color-mix(in srgb,var(--default-color),transparent 20%)
}

.hero .hero-content .hero-actions .btn {
padding:12px 30px;
font-weight:600;
font-size:1rem;
border-radius:50px;
text-transform:uppercase;
letter-spacing:1px;
transition:all .3s ease;
border:2px solid var(--accent-color)
}

.hero .hero-content .hero-actions .btn.btn-primary {
background-color:var(--accent-color);
color:var(--contrast-color)
}

.hero .hero-content .hero-actions .btn.btn-primary:hover {
background-color:color-mix(in srgb,var(--accent-color),black 10%);
border-color:color-mix(in srgb,var(--accent-color),black 10%);
transform:translateY(-2px)
}

.hero .hero-content .hero-actions .btn.btn-outline {
background-color:transparent;
color:var(--accent-color)
}

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

.hero .hero-content .hero-info .info-item i {
font-size:1.5rem;
color:var(--accent-color)
}

.hero .hero-content .hero-info .info-item small {
font-size:.85rem;
text-transform:uppercase;
letter-spacing:.5px
}

.hero .hero-content .hero-info .info-item .fw-medium {
font-weight:600;
color:var(--heading-color)
}

.hero .hero-images {
position:relative;
height:600px
}

@media (max-width: 991px) {
.hero .hero-images {
height:500px
}
}

.hero .hero-images .main-image {
position:relative;
width:100%;
height:70%;
border-radius:20px;
overflow:hidden;
box-shadow:0 20px 40px #0000001a
}

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

.hero .hero-images .main-image:hover img {
transform:scale(1.05)
}

.hero .hero-images .floating-images .floating-image {
position:absolute;
width:140px;
height:140px;
border-radius:15px;
overflow:hidden;
box-shadow:0 15px 30px #00000026;
border:4px solid var(--surface-color)
}

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

.hero .hero-images .floating-images .floating-image:hover img {
transform:scale(1.1)
}

.hero .hero-images .floating-images .floating-image.floating-image-1 {
top:15%;
right:-20px;
animation:float 3s ease-in-out infinite
}

.hero .hero-images .floating-images .floating-image.floating-image-2 {
bottom:20%;
left:-30px;
animation:float 3s ease-in-out infinite 1.5s
}

@media (max-width: 991px) {
.hero .hero-images .floating-images .floating-image {
width:100px;
height:100px
}

.hero .hero-images .floating-images .floating-image.floating-image-1 {
right:10px
}

.hero .hero-images .floating-images .floating-image.floating-image-2 {
left:10px
}
}

@keyframes float {
0%,100% {
transform:translateY(0px)
}

50% {
transform:translateY(-10px)
}
}
/* 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 {
font-size:36px;
font-weight:700;
margin-bottom:15px;
color:var(--heading-color)
}

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

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

.about .about-content .story-text p {
font-size:16px;
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:600;
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:600;
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:600;
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;
font-weight:600;
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:600;
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;
font-weight:700;
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:800;
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:600;
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
}
}
/* Entfernt --------------------------------
# Testimonials Section
# 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 25px;
transition:all .3s ease;
background:linear-gradient(0deg,#000000e6 0%,#0000 100%);
border-radius:0 0 8px 8px
}

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

.gallery .gallery-item .gallery-wrap .gallery-info p {
color:color-mix(in srgb,var(--contrast-color),transparent 20%);
font-size:14px;
margin:0 0 10px
}

.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(--contrast-color);
font-size:18px;
transition:.3s
}

.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 {
font-size:22px;
font-weight:600;
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;
font-weight:600;
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;
font-weight:300;
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
--------------------------------------------------------------*/

:root {
--background-color:#fff;
--default-color:#242d3d;
--heading-color:#0D5EAF;
--accent-color:#0D5EAF;
--surface-color:#fff;
--contrast-color:#fff;
--heading-color-rgba:#0d5eafb3;
--nav-color:#242d3d;
--nav-hover-color:#1a84ee;
--nav-mobile-background-color:#fff;
--nav-dropdown-background-color:#fff;
--nav-dropdown-color:#242d3d;
--nav-dropdown-hover-color:#1a84ee
}

.text-primary {
color:var(--accent-color)!important
}

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

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

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

:root {
--default-font:Ubuntu,Arial,Helvetica,sans-serif;
--heading-font:Ubuntu,sans-serif;
--nav-font:Ubuntu,sans-serif
}

@font-face {
font-family:'Ubuntu';
font-style:normal;
font-weight:400;
font-display:swap;
src:url(../fonts/ubuntu-v20-latin-regular.eot);
src:local(),url(../fonts/ubuntu-v20-latin-regular.eot?#iefix) format("embedded-opentype"),url(../fonts/ubuntu-v20-latin-regular.woff2) format("woff2"),url(../fonts/ubuntu-v20-latin-regular.woff) format("woff"),url(../fonts/ubuntu-v20-latin-regular.ttf) format("truetype"),url(../fonts/ubuntu-v20-latin-regular.svg#Ubuntu) format("svg")
}

@font-face {
font-family:'Ubuntu';
font-style:normal;
font-weight:700;
font-display:swap;
src:url(../fonts/ubuntu-v20-latin-700.eot);
src:local(),url(../fonts/ubuntu-v20-latin-700.eot?#iefix) format("embedded-opentype"),url(../fonts/ubuntu-v20-latin-700.woff2) format("woff2"),url(../fonts/ubuntu-v20-latin-700.woff) format("woff"),url(../fonts/ubuntu-v20-latin-700.ttf) format("truetype"),url(../fonts/ubuntu-v20-latin-700.svg#Ubuntu) format("svg")
}

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

.hero {
padding:0
}

.hero .carousel {
width:100%;
padding:0;
margin:0;
background-color:var(--background-color);
position:relative;
overflow:hidden
}

.hero img {
position:static;
inset:0;
display:block;
width:100%;
height:auto;
z-index:1
}

.hero .carousel-item {
position:relative;
inset:0;
background-size:cover;
background-position:center;
background-repeat:no-repeat;
overflow:hidden
}

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

.hero .carousel-item img {
width:100%;
height:100%;
object-fit:cover
}

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

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

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

.hero h2 {
margin-bottom:30px;
font-size:48px;
font-weight:700;
animation:fadeInDown 3s both;
background:var(--heading-color-rgba);
color:#fff;
padding:10px 25px;
border-radius:20px
}

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

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

@media (max-width: 768px) {
.hero h2 {
font-size:20px
}
}

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

.hero p {
animation:fadeInDown 1s both .2s
}

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

.hero .btn-get-started {
color:var(--contrast-color);
background:var(--accent-color);
font-family:var(--heading-font);
font-weight:500;
font-size:15px;
letter-spacing:1px;
display:inline-block;
padding:8px 32px;
border-radius:50px;
transition:.5s;
margin:10px;
animation:fadeInUp 1s both .4s
}

.hero .btn-get-started:hover {
background:color-mix(in srgb,var(--accent-color),transparent 20%)
}

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

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

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

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

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

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

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

@keyframes fadeInUp {
from {
opacity:0;
transform:translate3d(0,100%,0)
}

to {
opacity:1;
transform:translate3d(0,0,0)
}
}

@keyframes fadeInDown {
from {
opacity:0;
transform:translate3d(0,-100%,0)
}

to {
opacity:1;
transform:translate3d(0,0,0)
}
}

.header .logo img {
max-height:70px;
margin-right:8px
}

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

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

.footer-logo {
padding-bottom:25px;
margin-bottom:25px;
border-bottom:1px solid #0d5eaf80
}

.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(--contrast-color);
border:none;
padding:12px 30px;
border-radius:999px;
font-weight:600;
font-size:16px;
line-height:1.2;
transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;
cursor:pointer;
margin:.25em 0
}

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:600;
font-size:16px;
line-height:1.2;
margin-bottom:1.25em
}

.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:600;
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
}

@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:600;
letter-spacing:.2px
}

.menu-list span.p {
white-space:nowrap;
font-variant-numeric:tabular-nums;
justify-self:end
}

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

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

.menu-item-ohne-bild {
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:auto;
display:flex;
flex-direction:column;
padding:25px;
margin:25px 0
}

.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(--bs-primary);
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 7px;}
.header .logo img {width: 150px;}
}
@media (max-width: 767px) {
.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);
}
