/*
Theme Name: RD Bauhaus Cafe
Theme URI: 
Author: tm|rd
Author URI: 
Description: ein Block Theme von rundum.digital
Requires at least: 6.8
Tested up to: 6.8
Requires PHP: 5.7
Version: 
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rd-bauhaus-cafe
Tags: 
*/

html, body{
  /* word-wrap: break-word; */

  -moz-hyphens: auto;
  -o-hyphens: auto;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;

  /* scroll-behavior: smooth; */
  -webkit-overflow-scrolling: touch;

  overflow-x: hidden;
}



.even-number-spacing{
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

body, .lang-list, .header-nav{
  font-size: clamp(
    24px,
    calc(24px + (36 - 24) * ((100vw - 320px) / (1730 - 320))),
    36px
  );
}

.header-container h1{
  font-size: clamp(
    54px,
    calc(54px + (145 - 54) * ((100vw - 320px) / (1730 - 320))),
    145px
  );
}

h2{
  font-size: clamp(
    40px,
    calc(40px + (50 - 40) * ((100vw - 320px) / (1730 - 320))),
    50px
  );
}

p a{
  color: #000;
}
p a:hover{
  color: var(--wp--preset--color--custom-rot);
}

.wp-block-button__link{
  padding-top: 2px!important;
  padding-bottom: 2px!important;
}

a[href^="tel:"] {
  text-decoration: none;
}


@media screen and (max-width: 991.98px) {
  main{
    margin-block-start: 10px!important;
  }

  .header-container .openingtime, .header-container .top-nav-row{
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media screen and (max-width: 1023.98px) {
  .mobile-padding{
    padding: 0 24px!important;
  }
  .scroll-offset{
    scroll-margin-top: 24px;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1730px) {
  .mobile-padding{
    padding: 0 50px!important;
  }
  .mobile-padding.top-bottom{
    padding: 50px!important;
  }
  .scroll-offset{
    scroll-margin-top: 100px;
  }
}



/* ************ */
/* header-container // img animation */
.header-container {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  /* justify-content: center; */
  justify-content: space-between;

  text-align: center;
  overflow: visible;
  min-height: 924px;  
  background-color: white;

  min-height: 100vh;
  height: 100%;
	
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
}

.header-container .top-nav-row{
  width: 100%;
  max-width: var(--wp--style--global--content-size);
  justify-content: space-between;
  z-index: 100;
  margin-top: 24px;
}
.header-container h1 {
  position: relative;
  z-index: 10;
}

.header-container .anim-video {
  position: absolute;
  top: 0;
  /* left: 0; */
  width: 100vw;
  max-width: 100vw;
  padding: 0;
  margin: 0;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}
.header-container .anim-video video {
  object-fit: cover;
  height: 100%;    
}
@media (min-width: 768px) {
  .header-container .anim-video video {
    object-fit: cover;
    width: inherit;
  }  
}

.header-container .openingtime{
  width: 100%;
  max-width: var(--wp--style--global--content-size);
  justify-content: space-between;
  z-index: 10;
  margin-bottom: 24px;
}
.header-container #openingtime-booking-info.openingtime p{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  column-gap: 1em;
}
.header-container #openingtime-booking-info.openingtime p span{
  white-space: pre;
}

@media (min-width: 768px) and (max-width: 1730px) {
  .header-container .openingtime, .header-container .top-nav-row{
    padding-left: 50px;
    padding-right: 50px;
  }
}

@media (max-width: 767.98px) {
	.header-container h1 {
		position: absolute!important;
		top: 300px;
	}
  .header-container .anim-video video {
    object-fit: cover;
    height: 100%;
  }  
}



/* ************ */
/* Sprach Navigation */
.lang-list{
  display: flex;
  flex-direction: row;
  gap: 2px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.lang-list li{
  display: flex;  
  align-items: center;
  justify-content: center;

  min-width: 60px;
  width: 60px;
  border: 2px solid #000000;
  border-radius: 30px;

  background-color: #ffffff;

}
.lang-list li a{
  text-decoration: none;
  color: black;
}
.lang-list li.current-lang{
  background-color: #FFE431;
  border-color: #FFE431;  
}

/* ************ */
/* Header Navigation / hover punkt animation weiter unten - hier nur menü öffnen */
.header-nav {
  display: flex;
  position: relative;
  /* top: 5px; */
}
.header-nav > ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.header-nav .menu-toggle {
  cursor: pointer;
  display: inline-block;
  user-select: none;
  border: 2px solid var(--wp--preset--color--custom-blaubeere);
  border-radius: 30px;
  min-width: 170px;
  z-index: 999999;
  position: relative;
  text-align: left;
}
.header-nav .menu-toggle[aria-expanded="false"] {  
  color: #fff;
  background-color: var(--wp--preset--color--custom-blaubeere);
  padding: 0 8px;
  text-align: center;
}
.header-nav .menu-toggle[aria-expanded="true"]{
  color: var(--wp--preset--color--custom-blaubeere);
  background-color: #fff;
  padding: 0 4px 0 12px;
}
.header-nav .sub-menu-container li a {
  display: flex;
  background-color: var(--wp--preset--color--custom-blaubeere);
  border: 2px solid var(--wp--preset--color--custom-blaubeere);
  border-radius: 30px;
  color: #fff;
  text-decoration: none;
  padding: 0 4px 0 12px;
}
.header-nav .sub-menu-container {
  position: absolute; /* container nicht vergrößern*/
  width: 100%;
  overflow: hidden;
  z-index: 99999;
  list-style: none;
  padding: 0;
  margin: 0;
}
.header-nav .sub-menu-container li {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  margin-top: 0;
  transition: max-height 0.5s ease, opacity 0.5s ease, margin-top 0.5s ease;
}

@media (min-width: 561px) {
  header{
    max-width: 1824px;
    margin: 0 auto;
  }
  .header-nav .menu-toggle[aria-expanded="false"] {
    color: var(--wp--preset--color--custom-blaubeere);
    background-color: #fff;
    padding: 0 25px;
  }
  .header-nav .menu-toggle[aria-expanded="true"]{
    padding: 0 0 0 50px;
  }
  .header-nav .menu-toggle,.home-button .wp-block-button__link {
    min-width: 290px;
  }
  .lang-list{
    gap: 8px;
  }
  .lang-list li {
    min-width: 90px;
    width: 90px;
  }

  .header-container .openingtime .wp-block-button__link{
    min-width: 344px;
  }
}


/* ************ */
/* weisser Verlauf im Introtext wenn nicht vollständig sichtbar*/
#intro {
  position: relative;
  background: white;
}
.fade-overlay {
  position: fixed;        /* fest am unteren Fensterrand */
  left: 0;
  right: 0;
  bottom: 0;
  height: 18vh;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, white 100%);
  opacity: 0;             /* Start unsichtbar */
  z-index: 9999;
}

/* ************ */
/* Speisekarte */
table {
  font-size: clamp(
    18px,
    calc(18px + (24 - 18) * ((100vw - 320px) / (1730 - 320))),
    24px
  );
}
.aagb__accordion_title{
  font-size: clamp(
    26px,
    calc(26px + (36 - 26) * ((100vw - 320px) / (1730 - 320))),
    36px
  )!important;
}

.menu-card-info h2{
  max-width: 300px;
  margin-left: 0!important;
}
.menu-card-info table{
  /* width: fit-content!important; */
  width: 100%;
  /* table-layout: fixed; */
}
.menu-card-info table tr td {
  min-width: fit-content;
    padding: clamp(
      5px,
      calc(5px + (10 - 5) * ((100vw - 320px) / (1730 - 320))),
      10px
    );
    padding-left: 0px;
    vertical-align: top;
}
.menu-card-info table tr td:first-child {  
  padding-right: clamp(
    10px,
    calc(10px + (100 - 10) * ((100vw - 320px) / (1730 - 320))),
    100px
  );
}
.menu-card-info table tr td:last-child {  
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media screen and (min-width: 768px) {
  .menu-card-info h2{
    max-width: unset;
  }
  .menu-card-info table{
    width: fit-content!important;
  }
  .menu-card-info .wp-block-aab-accordion-item table tr td:first-child{    
    min-width: 450px!important;
    width: 450px!important;
  }
  .menu-card-info .wp-block-aab-accordion-item table tr td:last-child{    
    min-width: 150px!important;
    width: 150px!important;
  }

  .menu-card-info .wp-block-aab-accordion-item:first-child table tr td:first-child{    
    max-width: fit-content!important;
    width: fit-content!important;
  }
  .menu-card-info .wp-block-aab-accordion-item:first-child table tr td:last-child{    
    max-width: 150px!important;
  }
}

/* Speisekarte - Accordion Block */
.aagb_accordion_menu_cards > .aagb__accordion_container.aagb__accordion_active{
  border-color: #000!important;
  border-top: 3px solid #000000!important;
  border-left: 0px!important;
  border-right: 0px!important;
  border-bottom: 0px!important;
}
.wp-block-aab-group-accordion .wp-block-aab-accordion-item {
  border-top: 3px solid #000000!important;
  outline: 0px;
  border-radius: 0px;
}
.wp-block-aab-group-accordion .wp-block-aab-accordion-item:last-of-type, .aagb__accordion_container.aagb__accordion_active:last-of-type{
  border-bottom: 3px solid #000000!important;
}
.aagb_accordion_menu_cards .aagb__accordion_container.wp-block-aab-accordion-item .aagb__accordion_head {
  background-color: #fff!important;
}
.aagb_accordion_menu_cards .aagb__accordion_active .aagb__accordion_body{
  border: 0px!important;
}
.wp-block-aab-group-accordion .wp-block-aab-accordion-item {
  position: relative;
  width: 100dvw; /* volle Fensterbreite ohne Scrollbar */
  margin-left: calc(-50dvw + 50%);
  margin-right: calc(-50dvw + 50%);
  box-sizing: border-box;
  border-top: 3px solid #000000;
}
.wp-block-aab-group-accordion .wp-block-aab-accordion-item .aagb__accordion_head,
.wp-block-aab-group-accordion .wp-block-aab-accordion-item .aagb__accordion_body {
  /* width: var(--wp--style--global--content-size); */
  /* max-width: var(--wp--style--global--content-size); */
  margin: 0 auto;
}
@media screen and (min-width: 992px) {
  .aagb__accordion_title {
    position: relative;
    display: inline-block;
    transition: transform 0.4s ease;
    font-size: 36px;
  }
  .aagb__accordion_title::before {
    content: '';
    position: absolute;
    left: -24px;
    top: 50%;
    transform: translateY(-50%) scale(0);
    width: 15px;
    height: 15px;
    background-color: #000;
    border-radius: 50%;
    transition: transform 0.4s ease, opacity 0.4s ease;
    opacity: 0;
  }
  .aagb__accordion_head:hover .aagb__accordion_title::before {
    transform: translateY(-50%) scale(1);
    opacity: 1;
  }
  .aagb__accordion_head:hover .aagb__accordion_title {
    transform: translateX(24px); /* optional, verschiebt die Überschrift leicht */
  }
}
.aagb__icon_dashicons_box{
  background-color: #fff;
  border: 3px solid var(--wp--preset--color--custom-blaubeere);
  width: 50px;
  height: 50px;
  border-radius: 50px;
  transition: background-color 0.4s ease;
}
.aagb__icon_dashicons_box span::before{
  color: var(--wp--preset--color--custom-blaubeere);
  transition: color 0.4s ease;
}
.aagb__accordion_head:hover .aagb__icon_dashicons_box{
  background: var(--wp--preset--color--custom-blaubeere);
}
.aagb__accordion_head:hover .aagb__icon_dashicons_box span::before{
  color: #ffffff;
}
.aagb_accordion_menu_cards .wp-block-aab-accordion-item{
  font-weight: 300;
}
.aagb_accordion_menu_cards .wp-block-aab-accordion-item strong{
  font-weight: 500;
}

.aagb_accordion_menu_cards .aagb__accordion_active .aagb__icon_dashicons_box{
  background: var(--wp--preset--color--custom-blaubeere);
}
.aagb_accordion_menu_cards .aagb__accordion_active .aagb__icon_dashicons_box span::before{
  color: #ffffff;
}

/* @media screen and (max-width: 768px) {
  .aagb__icon_dashicons_box{
    background-color: var(--wp--preset--color--custom-blaubeere);
  }
  .aagb__accordion_head:hover .aagb__icon_dashicons_box{
    background: #fff;
  }
  .aagb__icon_dashicons_box span::before{    
    color: #fff;
  }
  .aagb__accordion_head:hover .aagb__icon_dashicons_box span::before{
    color: var(--wp--preset--color--custom-blaubeere);
  }
} */




/* ************ */
/* NEWS TICKER */
/* Section komplett über den Bildschirm ziehen */
.ticker-news.alignfull {
  position: relative;
  width: 100vw;                   /* volle Breite des Viewports */
  left: 50%;                       /* ausrichten */
  right: 50%;
  margin-left: -50vw;              /* aus WordPress Container ausgleichen */
  margin-right: -50vw;
  padding: var(--wp--preset--spacing--50) 0; /* oben/unten Padding */
  overflow: hidden;                /* Ticker sauber abschneiden */
  white-space: nowrap;
  background-color: #ffe431;       /* optional */
}
/* Ticker Text */
.ticker-news p {
  display: inline-block;
  white-space: nowrap;
  font-size: 50px;
  margin: 0;
  padding: 0;
}
@media screen and (max-width: 768px) {
  .ticker-news{
    padding-top: 5px!important;
    padding-bottom: 5px!important;
  }
}

/* ************ */
/* GRID GALERIE - Desktop 3 Spalten, mobil Slider */
/* Desktop Grid */
@media (min-width: 769px) {
  .grid-galerie {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0px;
  }
  .grid-galerie .gallery-item {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 576px; /* feste Höhe Desktop */
  }
  .grid-galerie .gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .grid-galerie .hover-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
    z-index: 2;
  }
  .grid-galerie .bottom-slide { transform: translateY(100%); }
  .grid-galerie .top-slide { transform: translateY(-100%); }

  .grid-galerie:hover .hover-img.bottom-slide,
  .grid-galerie:hover .hover-img.top-slide { transform: translateY(0); }

  .grid-galerie:hover .default-img {
    opacity: 0.9;
    transition: opacity 0.5s ease;
  } 
}
@media (min-width: 1024.98px) {
  .grid-galerie {
    grid-template-columns: 5fr 3fr 4fr;
  }
}


/* Tablet */
@media (min-width: 481px) and (max-width: 768px) {
  .grid-galerie {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0px;
  }
  .grid-galerie .gallery-item {
    height: 576px;
  }
}
/* Mobile Slider */
@media (max-width: 768px) {
  .grid-galerie {
    display: block; /* Slick übernimmt Layout */
  }
  .slide-wrapper {
    width: 100%;
    height: 576px; /* feste Höhe Mobile */
    position: relative;
    overflow: hidden;
    margin-bottom: 0px;
  }
  .slick-slide img {
    display: block;
    width: 100%;
    height: 576px;
    object-fit: cover;
    object-position: center; /* zentriert */
    position: relative;
  }
}
.slick-dots{
  /* bottom: unset!important; */
  bottom: -30px !important;
}
.slick-dots li {
  margin: 0px!important; 
}
.slick-dots li button:before {
  font-size: 12px!important;
  opacity: 0.1!important;
}
.slick-dots li.slick-active button:before {
  color: var(--wp--preset--color--custom-blaubeere)!important;
  opacity: 1!important;
}
/* GRID GALERIE - ENDE */

/* ************ */
/* Bild Animation / roter Rand bei hover */
.red-bg-anim-img{
  padding: 0;
  overflow: visible;
}
.red-bg-anim-img img {
  display: block;
  /* transition: transform 0.5s ease; */
  position: relative;
  z-index: 1;
}

/* Reservierung / Booking Text */
.booking-info-container p:nth-child(2){
  margin-block-start: 0px;
}

.contact-info-right{
  max-width: 602px!important;
  max-height: 602px!important;
}

@media screen and (max-width: 991.98px) {

  .booking-info-container p:nth-child(1){
    margin-block-start: 50px;
  }
  .booking-info-container p:nth-child(2){
    margin-block-start: 24px;
    margin-block-end: 50px;
  }

  .contact-info{
    /* padding: 0 24px!important; */
    gap: 65px;
  }
  .contact-info .contact-info-left>div{
    min-height: unset!important;
    gap: 24px!important;
  }
  .contact-info .contact-info-left>div .wp-block-buttons{
    margin-bottom: 26px;
  }
  .contact-info .contact-info-left{
    margin-bottom: 26px;
  }
  .contact-info p a{
    color: var(--wp--preset--color--custom-rot)!important;
  }
  .entry-content > .wp-block-spacer{
    height: 50px!important;
  }
}

/* ************ */
/* FOOTER */
footer > div{
  padding: 0 var(--wp--style--block-gap)!important;
}
footer .nav-footer{
  max-width: 1500px;
  width: 100%;
}
footer h2 {
  width: 100%;
  font-size: clamp(
    56px,
    calc(56px + (137 - 56) * ((100vw - 320px) / (1730 - 320))),
    137px
  );

  word-break: keep-all;
  overflow-wrap: normal;
  hyphens: none;
}
footer nav.nav-footer {
  font-size: clamp(
    26px,
    calc(26px + (36 - 26) * ((100vw - 320px) / (1730 - 320))),
    36px
  );
}
footer nav:not(.nav-footer) {
  font-size: clamp(
    18px,
    calc(18px + (26 - 18) * ((100vw - 320px) / (1730 - 320))),
    26px
  );
}
footer nav.footer-info-nav ul {
  gap: 50px;
}

@media screen and (max-width: 991.98px) {
  footer > div > div{
    align-items: start!important;
    gap: 0px!important;
  }
  footer nav.nav-footer{
    padding: 90px 0 0 0;
  }
  footer nav.nav-footer ul {
    gap: 8px;
    flex-direction: column!important;
    align-items: flex-start!important;
  }
  footer nav.footer-info-nav ul {
    gap: 5px;
    margin-bottom: 50px;
    flex-direction: column!important;
    align-items: flex-start!important;
  }
  footer .wp-block-spacer{
    flex-basis: 50px;
  }
} 


/* ************ */
/* Anim hover - Punkt vor  Links / Button / Nav - nur auf desktop */
@media screen and (min-width: 991.98px) {
  .header-nav .menu-toggle, .header-nav .sub-menu-container li a {
    padding: 0 0 0 50px;
  }
  .lang-list :not(.current-lang) a span, 
  .header-nav a span,
  .header-nav .menu-toggle span,
  .wp-block-button__link span,
  .wp-block-navigation-item__content span{
    position: relative;
    display: inline-block;
    transition: transform 0.3s ease;
  }
  .lang-list :not(.current-lang) a span::before,
  .header-nav a span::before,
  .header-nav .menu-toggle span::before,
  .wp-block-button__link span::before,
  .wp-block-navigation-item__content span::before{
    content: '';
    position: absolute;
    left: -24px;
    top: 50%;
    transform: translateY(-50%) scale(0);
    width: 15px;
    height: 15px;
    background-color: #fff;
    border-radius: 50%;
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 0;
  }
  .header-nav .menu-toggle span::before {
    background-color: var(--wp--preset--color--custom-blaubeere);
  }
  .lang-list :not(.current-lang) a span::before {
    background-color: #000000;
  }
  .lang-list :not(.current-lang) a:hover span::before,
  .header-nav a:hover span::before,
  .header-nav .menu-toggle:hover span::before,
  .wp-block-button__link:hover span::before,
  .wp-block-navigation-item__content:hover span::before{
    transform: translateY(-50%) scale(1);
    opacity: 1;
  }
  .lang-list :not(.current-lang) a:hover span,
  .header-nav a:hover span,
  .header-nav .menu-toggle:hover span,
  .wp-block-button__link:hover span,
  .wp-block-navigation-item__content:hover span {
    transform: translateX(10px);
  }

  /* Footer Info nav - anim / punkte rausnehmen */
  .footer-info-nav .wp-block-navigation-item__content span,
  .footer-info-nav .wp-block-navigation-item__content span::before,
  .footer-info-nav .wp-block-navigation-item__content:hover span,
  .footer-info-nav .wp-block-navigation-item__content:hover span::before {
      all: unset;
  }
}


/* ************ */
/* scroll to top style */
#scrollToTop {
  position: fixed;
  bottom: 30px;
  right: 35px;
  width: 35px;
  height: 35px;
  background-color: #ffffff;
  border: 1px solid #cccccc;
  border-radius: 0%;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 9999;
}
#scrollToTop svg {
  width: 24px;
  height: 24px;
}
#scrollToTop.show {
  opacity: 1;
  visibility: visible;
}

/* home button style */
#goHome {
  position: fixed;
  bottom: 75px; /* über scroll-to-top */
  right: 35px;
  width: 35px;
  height: 35px;
  background-color: #ffffff;
  border: 1px solid #cccccc;
  border-radius: 0%;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 9999;
}
#goHome svg {
  width: 24px;
  height: 24px;
}
#goHome.show {
  opacity: 1;
  visibility: visible;
}


div.impress strong, div.privacy strong{
  text-decoration: underline;
  font-weight: 500;
}