/*
 Theme Name:   Hello Elementor Child
 Description:  Hello Elementor Child Theme
 Author:        Your Name
 Template:     hello-elementor
 Version:      1.0.0
 Text Domain:  hello-elementor-child
*/

body {
    background: #101010 0% 0% no-repeat padding-box;
}

.elementor-widget-theme-site-logo img{
    width: auto!important;
}

.homepage-top-section {
    background: transparent radial-gradient(closest-side at 50% 50%, #5D1616 0%, #00000000 100%) 0% 0% no-repeat padding-box;
}

.home-location-link img {
    transition: transform 1s;
}

.home-location-link:hover img {
    transform: scale3d(1.1, 1.1, 1);
}

.home-location-link>div.e-con {
    transition: background-color 600ms ease-in-out;
}

.home-location-link:hover>div.e-con {
    background-color: #343A4F !important;
}

.position-relative {
    position: relative;
}

.event-info-wrapper {
    background: linear-gradient(327deg,
        #2B3040 0%,
        #2A2F3EF5 25%, 
        #12121200 100%) 0% 0% no-repeat;
    transition: background 300ms ease-in-out;
}

.radial-bg-after,
.radial-bg-before {
    position: relative;
    overflow: hidden;
}

.radial-bg-before::before,
.radial-bg-after::after {
    display: block;
    position: absolute;
    background: transparent radial-gradient(closest-side at 50% 50%, #5D1616 0%, #00000000 100%) 0% 0% no-repeat padding-box;
    content: '';
    width: 40vw;
    height: 40vw;
}

.radial-bg-before::before {

    left: 0;
    top: 500px;
    transform: translateX(-8vw);
}

.radial-bg-after::after {
    transform: translateX(70%);
    right: 0;
    top: 0;
}

.radial-bg-after.radial-bg-after-50-under::after {
    top: auto;
    bottom: 0;
    transform: translateX(30%) translateY(50%);
}

.elementor-location-footer a{
    color: var( --e-global-color-text );
    transition: .4s;
}

.elementor-location-footer a:hover{
    color: var(--e-global-color-accent);
}

.legals-menu li:not(:last-child){
    border-right: 1px solid var(--e-global-color-text);
}

.elementor-location-footer .elementor-nav-menu__container{
    background-color: transparent!important;
}

.elementor-location-footer .elementor-nav-menu__container .menu-item a{
    color: var( --e-global-color-text );
    padding-right: 0;
    padding-left: 0;
}

.elementor-location-footer .elementor-nav-menu__container .menu-item a:hover{
    color: var(--e-global-color-accent);
    background-color: transparent!important;
}

/* Kaffe Bar */ 
.header-bg-gradient{
    background: linear-gradient(90deg, #5D1616 0%, #000000 100%) 0% 0% no-repeat padding-box;
    background-size: 130px 100%;
}

@media screen and (max-width: 767px){
    .header-bg-gradient{
        background-size: 100px 100%;
    }
}

.friedrich-bar-logo, .frieda-restaurant-logo, .frieda-catering-logo, .fundf-logo{
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    color: transparent!important;
}

.frieda-catering-logo, .frieda-restaurant-logo{
    background-size: auto 80%;
}

.friedrich-bar-logo{
    background-image: url(/wp-content/uploads/2026/03/friedrich_kafe_bar_logo.svg);
}

.frieda-restaurant-logo{
    background-image: url(/wp-content/uploads/2026/03/frieda_restaurant_bar_logo.svg);
}

.frieda-catering-logo{
    background-image: url(/wp-content/uploads/2026/03/FRiEDA-Catering.svg);
}

.fundf-logo{
    background-image: url(/wp-content/uploads/2026/02/friedrich-liebt-frieda-logo.svg);
}

.frieda-restaurant-logo>a, .frieda-catering-logo>a{
    height: 100px;
}

.fundf-logo>a{
    height: 65px;
}

.friedrich-bar-logo>a, .friedrich-bar-logo>a.elementor-item.elementor-item-active,
.frieda-restaurant-logo>a, .frieda-restaurant-logo>a.elementor-item.elementor-item-active,
.frieda-catering-logo>a, .frieda-catering-logo>a.elementor-item.elementor-item-active,
.fundf-logo>a, .fundf-logo>a.elementor-item.elementor-item-active
{
    color: transparent!important;
}

.kaffe-bar-menu ul{
    width: 100%;
    justify-content: space-between;
}

.child-p-no-m p{
    margin-bottom: 0;
}

.bar-top-section{
    background: radial-gradient(closest-side at 50% 50%, #312D2A 0%, #00000000 100%) 0% 0% no-repeat padding-box;
}

.bar-second-section{
    background: radial-gradient(closest-side at 50% 50%, #312D2A 0%, #00000000 100%) 0% 0% no-repeat padding-box;
    background-size: 40vw 40vw;
    background-position: -10vw top;
}

.bar-bottom-section{
    background: radial-gradient(closest-side at 50% 50%, #312D2A 0%, #00000000 100%) 0% 0% no-repeat padding-box;
    background-size: 40vw 40vw;
    background-position: -20vw -100%;
}

.bar-event-thumbnail img{
    height: 250px!important;
    object-fit: cover;
    object-position: center;
}

@media screen and (min-width: 768px){
    .bar-event-thumbnail img{
        width: 370px;
        height: 250px!important;
    }
}

.elementor-location-footer .friedrich-bar-logo,
.elementor-location-footer .frieda-restaurant-logo {
    display: none!important;
}

@media screen and (max-width: 767px){
    .elementor-location-header .elementor-nav-menu--dropdown{
        background-color: #000;
        width: 100vw;
        position: absolute;
        z-index: 999;
        top: 100%
    }

    .elementor-location-header .elementor-nav-menu--dropdown .friedrich-bar-logo,
    .elementor-location-header .elementor-nav-menu--dropdown .frieda-restaurant-logo
    {
        display: none;
    }

    .elementor-location-header .elementor-nav-menu--dropdown ul li a{
        /* color: var(--e-global-color-text); */
    }
}

.restaurant-themed-list > ul li{
    margin-bottom: 10px;
}

.restaurant-themed-list > ul li::marker {
  color: var( --e-global-color-180c916 );
}

.acfdate-Ja{
    display: none;
}

.status-Nein{
    display: none;
}

.restaurant-top-section{
    background: radial-gradient(closest-side at 50% 50%, #433213 0%, #00000000 100%) 0% 0% no-repeat padding-box;
}

.restaurant-icon-box {
    width: 240px !important;
}

.restaurant-gift-section{
    position: relative;
    overflow: hidden;
}

.restaurant-gift-section{
    background: radial-gradient(closest-side at 50% 50%, #3E2208 0%, #00000000 100%) 0% 0% no-repeat padding-box;
    background-size: 40vw 40vw;
    background-position: -20vw -100%;
}

.restaurant-second-section{
    background: radial-gradient(closest-side at 50% 50%, #3E2208 0%, #00000000 100%) 0% 0% no-repeat padding-box;
    background-size: 40vw 40vw;
    background-position: -10vw top;
}

.friedrich-top-section::before{
    content: ''!important;
    display: block!important;
    position: absolute!important;
    bottom: 0!important;
    left: -100%!important;
    width: 200%!important;
    height: 300%!important;
    background: radial-gradient(closest-side at 50% 50%, #3D2A1A 0%, #00000000 100%) 0% 0% no-repeat padding-box;
}

/* ── Marquee Gallery ── */
.marquee-gallery .elementor-image-gallery {
  overflow: hidden;
  position: relative; /* needed for arrow positioning */
}

.marquee-gallery .elementor-image-gallery .gallery {
  display: flex !important;
  flex-wrap: nowrap !important;
  width: max-content;
  animation: marquee-scroll 60s linear infinite;
  gap: 30px;
  margin: 0!important;
}

.marquee-gallery .elementor-image-gallery .gallery-item {
  flex: 0 0 auto;
  width: 260px;
  max-width: 260px;
  height: 360px;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 5px !important;
}

.marquee-gallery .elementor-image-gallery figure.gallery-item {
  margin: 0 !important;
  padding: 0 !important;
}

.marquee-gallery .elementor-image-gallery .gallery-icon {
  margin: 0 !important;
  padding: 0 !important;
  display: block;
  width: 100%;
  height: 100%;
  line-height: 0;
  font-size: 0;
}

.marquee-gallery .elementor-image-gallery .gallery-item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

@keyframes marquee-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Pause on hover */
/* .marquee-gallery:hover .gallery {
  animation-play-state: paused;
} */

/* ── Arrow Buttons ── */
.marquee-friedrich-bar,
.marquee-frieda-restaurant,
.marquee-frieda-catering {
  position: relative;
}

.marquee-arrow {
  position: absolute;
  bottom: -60px;        /* tweak this value to sit ~30px below the gallery */
  z-index: 10;
  border: none;
  width: 44px;
  height: 44px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background-color: transparent!important;
}

.marquee-arrow img {
  width: 100%;
  height: 100%;
  display: block;
}

.marquee-arrow.prev { right: 64px; }
.marquee-arrow.next { right: 12px; }

/* ── Play/Pause Button ── */
.marquee-arrow.play-pause { 
  right: 116px; 
}

.play-pause-icon {
  position: relative;
  width: 14px;
  height: 20px;
}

.play-pause-icon span {
  position: absolute;
  width: 2px;
  background-color: var(--e-global-color-text, currentColor);
  transition: all 0.3s ease;
}

/* Pause (playing state) */
.marquee-arrow.playing .play-pause-icon span:nth-child(1) {
  left: 0;
  top: 0;
  height: 20px;
  transform: rotate(0deg);
  transform-origin: top center;
}
.marquee-arrow.playing .play-pause-icon span:nth-child(2) {
  left: 10px;
  bottom: 0;
  height: 20px;
  transform: rotate(0deg);
  transform-origin: bottom center;
}

/* Play (paused state) */
.marquee-arrow.paused .play-pause-icon span:nth-child(1) {
  left: 3px;
  top: 0;
  height: 15px;
  transform: rotate(-45deg);
  transform-origin: top center;
}
.marquee-arrow.paused .play-pause-icon span:nth-child(2) {
  left: 3px;
  bottom: 0;
  height: 15px;
  transform: rotate(45deg);
  transform-origin: bottom center;
}

.elementor-widget-loop-carousel .elementor-swiper-button.elementor-swiper-button-next svg, .elementor-widget-loop-carousel .elementor-swiper-button.elementor-swiper-button-prev svg{
    fill: none!important;
}

.kafe-bar-hero-overlay::before{
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse,rgba(16, 16, 16, 0.1) 0%, rgba(16, 16, 16, 1) 70%, rgba(16, 16, 16, 1) 100%)!important;
}

a#reservation-btn{
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 999;
}

#reservation-btn .elementor-button-icon{
    font-size: 48px;
}

#reservation-btn {
    position: fixed;
    bottom: 10px;
    right: 10px;
    z-index: 999;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

#reservation-btn .elementor-button-text {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

#reservation-btn .elementor-button-text::after {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
}

#reservation-btn .curved-text-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

#reservation-btn .elementor-button-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

#reservation-btn .elementor-button-icon svg {
  width: 48px;
  height: 48px;
}

.btn-anfragen #reservation-btn .elementor-button-icon{
    font-size: 34px;
}

.btn-anfragen #reservation-btn .elementor-button-icon svg{
    width: 34px;
    height: 34px;
}

.catering-top-section{
    background: radial-gradient(closest-side at 50% 50%, #0F240C 0%, #00000000 100%) 0% 0% no-repeat padding-box;
}

.orte-menu .sub-menu {
    left: auto !important;
    right: 0;
    top: 112px !important;
}

@media screen and (max-width: 767px){
    .orte-menu>nav>ul>li>a{
        padding: 5px!important;
    }

    .orte-menu .sub-menu {
        left: auto !important;
        right: 0;
        top: 100px !important;
    }
}

.cf7-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 30px;
}

.cf7-half {
  flex: 0 0 calc(50% - 16px);
}

.cf7-full {
  flex: 0 0 100%;
}

/* Stack to full width on mobile */
@media (max-width: 768px) {
  .cf7-half {
    flex: 0 0 100%;
  }
}

.wpcf7 p>label{
    display: block;
    color: var(--e-global-color-text);
    font-family: 'Poppins', 'Polymath', sans-serif;
    margin-bottom: 8px;
}

.wpcf7 form label+br{
    display: none;
}

.wpcf7 button[type=submit], .wpcf7 input[type=submit] {
    padding: 12px 24px;
    background-color: var(--e-global-color-primary);
    border: 2px solid var(--e-global-color-primary);
    border-radius: 5px;
    color: var(--e-global-color-text);
    font-weight: 500;
}

.wpcf7-list-item input[type="checkbox"]+span, .wpcf7-list-item input[type="radio"]+span{
    color: var(--e-global-color-text);
}

.wpcf7 .wpcf7-response-output{
    color: var(--e-global-color-text);
}

.wpcf7 .wpcf7-form-control[type="text"],
.wpcf7 .wpcf7-form-control[type="email"],
.wpcf7 .wpcf7-form-control[type="tel"],
.wpcf7 .wpcf7-form-control[type="url"],
.wpcf7 .wpcf7-form-control[type="number"],
.wpcf7 .wpcf7-form-control[type="date"],
.wpcf7 textarea.wpcf7-form-control,
.wpcf7 select.wpcf7-form-control
{
    background-color: var(--e-global-color-text);
    border: 1px solid var(--e-global-color-text);
    border-radius: 5px;
    margin-top: 4px;
}

.wpcf7 .wpcf7-form-control[type="text"].wpcf7-not-valid,
.wpcf7 .wpcf7-form-control[type="email"].wpcf7-not-valid,
.wpcf7 .wpcf7-form-control[type="tel"].wpcf7-not-valid,
.wpcf7 textarea.wpcf7-form-control.wpcf7-not-valid,
.wpcf7 .wpcf7-form-control[type="url"].wpcf7-not-valid,
.wpcf7 .wpcf7-form-control[type="number"].wpcf7-not-valid,
.wpcf7 .wpcf7-form-control[type="date"].wpcf7-not-valid,
.wpcf7 select.wpcf7-form-control.wpcf7-not-valid
{
    border-color: #DD4242;
}

.elementor-location-footer .menu-item.agb-link{
    display: none;
}

.cf7-step {
  display: none;
}

.cf7-step.is-active {
  display: block;
}

.cf7-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 20px;
}

.cf7-col {
  width: calc(50% - 10px);
}

.cf7-full-row {
  width: 100%;
  margin-bottom: 20px;
}

.wpcf7 form label {
  display: block;
  margin-bottom: 10px;
}

.wpcf7 input,
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  color: #090A16;
  box-sizing: border-box;
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
  color: #090A16;
  opacity: 1;
}

.wpcf7 textarea {
  min-height: 140px;
}

.cf7-nav {
  display: flex;
  gap: 12px;
  margin-top: 24px;
}

.cf7-nav .cf7-prev,
.cf7-nav .cf7-next,
.cf7-nav input[type="submit"] {
  cursor: pointer;
}

.wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.wpcf7-list-item {
  display: block;
  margin: 0 0 8px 0;
}

.wpcf7-list-item label {
  display: flex !important;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 0;
}

.wpcf7-list-item input[type="checkbox"],
.wpcf7-list-item input[type="radio"] {
  width: auto;
  margin-top: 4px;
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .cf7-col {
    width: 100%;
  }

  .cf7-nav {
    flex-wrap: wrap;
  }
}