:root {
    --bombolo-black: #000000;
    --bombolo-brown: #211b16;
    --bombolo-gold: #ecb774;
    --bombolo-white: #ffffff;
}

/* ================================
   TYPOGRAFIE
================================ */

body,
p,
a,
button,
input,
textarea,
.menu-primary-menu a,
.mobile-main-nav a,
.button-style-1,
.button-style-2,
.service-item .content .title,
.page-title .sub-title,
.hour-opening .opening-day,
.hour-opening .opening-time,
.footer .text,
.footer a {
    font-family: 'DM Sans', sans-serif !important;
}

.heading-section .main,
.page-title .title,
.explore-portfolio .heading-section .main,
.title-wg,
.hour-opening .title {
    font-family: 'Cinzel', serif !important;
    font-weight: 500 !important;
    letter-spacing: 0.5px;
}

/* ================================
   GRUNDFARBEN / CI
================================ */

body {
    background: var(--bombolo-black);
    color: var(--bombolo-white);
}

.footer,
.header-inner-wrap,
.mobile-nav-wrap .inner-mobile-nav,
.preload-container,
#site-logo,
.wg-about,
.wg-about .content,
.wrap,
.wg-service,
.explore-portfolio {
    background-color: var(--bombolo-black) !important;
    color: var(--bombolo-white);
}

.footer {
    background: var(--bombolo-brown) !important;
}

.heading-section .main,
.page-title .title,
p {
    color: var(--bombolo-white);
}

button,
.footer .text span,
.wg-about .hour-opening .title,
.wg-about .hour-opening ul li .active,
.heading-section .sub,
.footer .footer-opening-list li span,
.menu-primary-menu > li > a:hover,
.hour-opening .opening-time.closed,
.header-top .title {
    color: var(--bombolo-gold) !important;
}

.progress-wrap {
    background: var(--bombolo-gold) !important;
}

/* ================================
   TEMPLATE CLEANUP
================================ */

.menu-primary-menu li.current-menu-item > a::before,
.heading-section .sub-before::before,
.page-title-home::after,
.wg-service::before,
#footer > div > div.footer-bottom > svg {
    display: none !important;
}

.heading-section .sub-before {
    padding-left: 0 !important;
}

.coffee-post-item:hover::before {
    opacity: 0 !important;
    visibility: hidden !important;
}

.footer .title-wg::after {
    display: none !important;
}

.page-title-home::after {
    background-image: none !important;
}

.page-title-home {
    margin-bottom: -30px;
}

.wg-about {
    background-image: none !important;
}

#galery,
#aboutA {
    scroll-margin-top: 150px;
}

/* ================================
   HEADER / NAVIGATION
================================ */

#site-logo {
    background-color: var(--bombolo-black);
}

.header.is-fixed #site-logo {
    width: 74px;
    height: 74px;
}

.main-nav.right {
    padding-left: 100px;
}

.main-nav.left {
    padding-left: 200px;
}

#header_main > div.themesflat-container > div > div > div > div.wg-information.location > div.content > p > a,
#header_main > div.themesflat-container > div > div > div > div.wg-information.call.row-reverse.text-end > div.content > p > a {
    color: #ededed;
}

/* ================================
   HERO
================================ */

.page-title-home .slide-1 {
    background-image: url(../images/bg-section/bg-home-1.webp);
}

.page-title-home .slide-2 {
    background-image: url(../images/bg-section/bg-home-12.webp);
}

.page-title .title {
    font-weight: 700 !important;
    letter-spacing: 1px;
    text-shadow: 0 4px 18px rgba(0,0,0,0.65);
}

.page-title .sub-title {
    color: var(--bombolo-gold) !important;
    letter-spacing: 1px;
}

.page-title .text {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}

/* ================================
   BILDER
================================ */

.service-item img,
.coffee-post-item .image img,
.wg-about .image img {
    filter: brightness(0.92) contrast(1.08) saturate(1.05);
}

/* ================================
   BUTTONS / ICONS
================================ */

.footer .title-wg::after,
.wg-about .hour-opening::before,
.button-style-1,
.wg-information .icon,
.wg-welcom .button-close,
.swiper-button-next.style-1,
.swiper-button-prev.style-1 {
    background-color: var(--bombolo-black);
}

.button-style-2.active:hover {
    background-color: var(--bombolo-gold);
}

/* ================================
   ÖFFNUNGSZEITEN
================================ */

.hour-opening .opening-table {
    font-size: 17px;
}

.hour-opening .opening-row {
    grid-template-columns: 49px 1fr 102px !important;
}

/* ================================
   FOOTER
================================ */

.footer-bottom {
    border-top: 1px solid rgba(236,183,116,0.18);
}

.footer a {
    color: var(--bombolo-white);
}

.footer a:hover {
    color: var(--bombolo-gold);
}

/* ================================
   DESKTOP NAV RESPONSIVE
================================ */

@media only screen and (max-width: 1381px) {
    .main-nav.left {
        padding-left: 13%;
    }

    .main-nav.right {
        padding-left: 15%;
    }
}

@media only screen and (max-width: 1199px) {
    .main-nav.left {
        padding-left: 12%;
    }

    .main-nav.right {
        padding-left: 8%;
    }
}

@media only screen and (max-width: 1085px) {
    .main-nav.left {
        padding-left: 11%;
    }

    .main-nav.right {
        padding-left: 8%;
    }
      .menu-primary-menu li a {
    font-size: 13px; }
}

@media only screen and (max-width: 1020px) {
    .main-nav.left {
        padding-left: 10%;
    }

    .main-nav.right {
        padding-left: 8%;
    }
  
}

/* ================================
   MOBILE
================================ */

@media (max-width: 767px) {

    html,
    body {
        overflow-x: hidden !important;
    }

    .themesflat-container {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .page-title,
    .wg-about,
    .explore-portfolio,
    .footer {
        max-width: 100vw !important;
        overflow-x: hidden !important;
    }

    br {
        display: block;
    }

    /* Header */
    #site-logo img {
        max-height: 60px !important;
    }

    .header-inner-wrap {
        border-radius: 18px !important;
        margin: 0 12px !important;
    }

    /* Hero */
    .page-title {
        padding-top: 135px !important;
        padding-bottom: 64px !important;
    }

    .page-title .sub-title {
        display: block !important;
        font-size: clamp(12px, 3.5vw, 15px) !important;
        line-height: 1.3 !important;
        margin-bottom: 9px !important;
        text-align: center !important;
        text-transform: uppercase;
        color: var(--bombolo-gold) !important;
    }

    .page-title .title {
        font-size: clamp(28px, 9vw, 38px) !important;
        line-height: 1.05 !important;
        max-width: 92vw !important;
        margin: 12px auto !important;
        text-align: center !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
    }

    .page-title .text {
        font-size: 12px !important;
        line-height: 1.6 !important;
        max-width: 88vw !important;
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
        padding: 10px;
    }

    .page-title .buttons {
        margin-top: 18px !important;
    }

    .page-title .button-style-2 {
        margin-top: 15px !important;
    }

    /* About */
    .wg-about {
        padding-bottom: 10px !important;
    }

    .wg-about .wrap {
        display: block !important;
    }

    .wg-about .image {
        margin-bottom: 30px !important;
    }

    .wg-about .content {
        text-align: center !important;
    }

    .wg-about .heading-section .main {
        font-size: clamp(34px, 11vw, 44px) !important;
        line-height: 1.08 !important;
        max-width: 92vw !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .wg-about .heading-section .sub {
        font-size: 11px !important;
        line-height: 1.5 !important;
        letter-spacing: 1px !important;
        max-width: 88vw !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .wg-about .content p {
        font-size: 14px !important;
        line-height: 1.85 !important;
    }

    .wg-about .content > a,
    .wg-about .button-style-1 {
        margin-top: 18px !important;
    }

    /* Öffnungszeiten */
    .hour-opening {
        margin: 35px auto 0 !important;
        padding: 30px 24px !important;
        border-radius: 12px;
        max-width: 340px;
    }

    .hour-opening .title {
        font-size: clamp(24px, 7.5vw, 30px) !important;
        line-height: 1.1 !important;
        text-align: center !important;
        margin-bottom: 25px !important;
    }

    .hour-opening .opening-row {
        grid-template-columns: 54px 1fr 98px !important;
        column-gap: 8px !important;
    }

    .hour-opening .opening-day,
    .hour-opening .opening-time {
        font-size: 11px !important;
    }

    /* Kategorien */
    .wg-service {
        padding-top: 10px !important;
    }

    .wg-service .service-item {
        margin-bottom: 35px !important;
        background: #090909;
        border: 1px solid rgba(236,183,116,0.1);
        padding-bottom: 14px !important;
    }

    .wg-service .service-item img {
        width: 100%;
        display: block;
    }

    .wg-service .service-item > img {
        max-height: 265px !important;
        object-fit: contain;
    }

    .wg-service .service-item .content {
        padding: 6px 15px 0 !important;
        text-align: center;
    }

    .wg-service .service-item .content p,
    .wg-service .service-item .content img {
        display: none !important;
    }

    .wg-service .service-item .content .title {
        margin: 0 !important;
        font-size: 22px !important;
        line-height: 1.1 !important;
        font-weight: 700 !important;
        text-align: center;
        color: var(--bombolo-white);
    }

    /* Galerie */
    .explore-portfolio {
        padding-top: 20px !important;
    }

    .explore-portfolio .heading-section {
        text-align: center;
    }

    .explore-portfolio .heading-section .main {
        font-size: clamp(26px, 8.5vw, 34px) !important;
        line-height: 1.1 !important;
        max-width: 92vw !important;
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
        overflow-wrap: break-word !important;
    }

    .explore-portfolio .top-content {
        text-align: center;
        margin-top: 12px;
        margin-bottom: 25px;
    }

    .explore-portfolio .top-content p {
        max-width: 88vw !important;
        margin-left: auto !important;
        margin-right: auto !important;
        font-size: 12px !important;
        line-height: 1.65 !important;
        text-align: center !important;
    }

    .explore-next,
    .explore-prev {
        display: none !important;
    }

    /* Footer */
    .footer {
        background: var(--bombolo-brown) !important;
        padding: 70px 22px 40px !important;
        margin-top: 50px;
        text-align: center;
        border: none !important;
    }

    .footer .row {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 22px;
    }

    .footer .row > div {
        width: 100%;
        max-width: 340px !important;
        text-align: center;
        background: rgba(0,0,0,0.15);
        border: 1px solid rgba(236,183,116,0.12);
        border-radius: 12px;
        padding: 24px 20px !important;
    }

    .footer .logo {
        background: transparent !important;
        border: none !important;
        padding-top: 0 !important;
    }

    .footer #logo_footer {
        max-width: 110px !important;
        width: 110px !important;
        height: auto !important;
        margin: 0 auto 18px !important;
        display: block;
    }

    .footer .logo .text {
        max-width: 280px;
        margin: 0 auto;
    }

    .footer .title-wg,
    .footer .contact .title-wg {
        font-size: clamp(24px, 8vw, 30px) !important;
        line-height: 1.1 !important;
        margin: 25px 0 16px;
        text-align: center !important;
        color: var(--bombolo-gold) !important;
    }

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

    .footer .text,
    .footer a {
        font-size: 13px !important;
        line-height: 1.7 !important;
        text-align: center;
    }

    .footer .footer-opening-list {
        max-width: 240px;
        margin: 0 auto;
    }

    .footer .footer-opening-list .text {
        display: flex !important;
        justify-content: space-between;
        align-items: flex-start;
        gap: 12px;
        text-align: left;
    }

    .footer .footer-opening-list span {
        min-width: 70px;
    }

    .footer-bottom {
        margin-top: 35px;
        padding-top: 25px;
        border-top: 1px solid rgba(236,183,116,0.15);
        text-align: center;
    }

    .footer-bottom .text {
        font-size: 13px;
        opacity: 0.85;
    }
}

/* ================================
   SEHR KLEINE GERÄTE
================================ */

@media (max-width: 380px) {

    .page-title .title {
        font-size: clamp(26px, 8.5vw, 32px) !important;
        max-width: 90vw !important;
    }

    .wg-about .heading-section .main {
        font-size: 34px !important;
    }

    .explore-portfolio .heading-section .main {
        font-size: 28px !important;
        max-width: 88vw !important;
    }

    .footer .title-wg {
        font-size: 22px !important;
    }
}

#page > div.wg-service .title {
    color: var(--bombolo-gold);
}

.wg-service .service-item {
    overflow: hidden;
}

.wg-service .service-item img {
    transition: all 0.4s ease;
}

.wg-service .service-item:hover img {
    opacity: 0.35;
    transform: scale(1.05);
}
#page > div.wg-about > div > div > div > div > div.content {
    max-width: 900px;
}

/* ==========================
   Bombolo Button Einheitlich
========================== */

.button-style-1,
.button-style-2.active {

    background: #ecb774 !important;
    border-color: #ecb774 !important;

    color: #000 !important;

    font-weight: 800 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase;

    min-width: 220px;
    height: 56px;

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

    border-radius: 6px;

    transition: all .25s ease;
}

.button-style-1:hover,
.button-style-2.active:hover {

    background: #f3c984 !important;
    border-color: #f3c984 !important;

    color: #000 !important;

    transform: translateY(-2px);
}

/* ==========================
   SEO BLOCK BOMBLO
========================== */

.seo-content{
    max-width: 1200px;
    margin: 90px auto 50px;
    padding: 60px 40px;
    background: #080808;
    border: 1px solid rgba(236,183,116,.10);
    border-radius: 16px;
}

.seo-content h2{
    font-family: 'Cinzel', serif;
    font-size: 42px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--bombolo-gold);
    margin-bottom: 28px;
}

.seo-content p{
    font-family: 'DM Sans', sans-serif;
    font-size: 16px;
    line-height: 1.9;
    color: rgba(255,255,255,.85);
    margin-bottom: 18px;
    max-width: 1000px;
}

.seo-content strong{
    color: #ecb774;
}

@media(max-width:767px){

    .seo-content{
        margin-top: 50px;
        padding: 35px 24px;
        border-radius: 12px;
    }

    .seo-content h2{
        font-size: 30px;
        line-height: 1.25;
        text-align:center;
        margin-bottom:20px;
    }

    .seo-content p{
        font-size:14px;
        line-height:1.8;
        text-align:center;
    }
}

.heading-section .main {
    font-size: 36px;
}